@charset "UTF-8";
/* min-width用 */
*,
*::before,
*::after {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

:where([hidden]:not([hidden=until-found])) {
  display: none !important;
}

:where(html) {
  -webkit-text-size-adjust: none;
  color-scheme: dark light;
}

@supports not (min-block-size: 100dvb) {
  :where(html) {
    block-size: 100%;
  }
}
@media (prefers-reduced-motion: no-preference) {
  :where(html:focus-within) {
    scroll-behavior: smooth;
  }
}
:where(body) {
  block-size: 100%;
  block-size: 100dvb;
  line-height: 1.5;
  font-family: system-ui, sans-serif;
  -webkit-font-smoothing: antialiased;
}

:where(input, button, textarea, select) {
  font: inherit;
  color: inherit;
}

:where(textarea) {
  resize: vertical;
  resize: block;
}

:where(button, label, select, summary, [role=button], [role=option]) {
  cursor: pointer;
}

:where(:disabled) {
  cursor: not-allowed;
}

:where(label:has(> input:disabled), label:has(+ input:disabled)) {
  cursor: not-allowed;
}

:where(button) {
  border-style: solid;
}

:where(a) {
  text-underline-offset: 0.2ex;
}

:where(ul:not(.wp-block-list), ol:not(.wp-block-list)) {
  list-style: none;
}

:where(img, svg, video, canvas, audio, iframe, embed, object) {
  display: block;
}

:where(img, picture, svg) {
  max-inline-size: 100%;
  block-size: auto;
}

:where(p, h1, h2, h3, h4, h5, h6) {
  overflow-wrap: break-word;
}

:where(h1, h2, h3) {
  line-height: calc(1em + 0.5rem);
}

:where(hr) {
  border: none;
  border-block-start: 1px solid;
  color: inherit;
  block-size: 0;
  overflow: visible;
}

:where(:focus-visible) {
  outline: 2px solid var(--focus-color, Highlight);
  outline-offset: 2px;
}

:where(.visually-hidden:not(:focus, :active, :focus-within, .not-visually-hidden)) {
  clip-path: inset(50%) !important;
  height: 1px !important;
  width: 1px !important;
  overflow: hidden !important;
  position: absolute !important;
  white-space: nowrap !important;
  border: 0 !important;
}

/**
* Available vars:
* @var --viewport-from: <number> - Number in pixels without the unit. Required if `--font-size` is not exist.
* @var --viewport-to: <number> - Number in pixels without the unit. Required if `--font-size` is not exist.
* @var --font-size-from: <number> - Number in pixels without the unit. Required if `--font-size` and `--min-font-size` is not exist.
* @var --font-size-to: <number> - Number in pixels without the unit. Required if `--font-size` and `--max-font-size` is not exist.
* @var --max-font-size: <number> - Number in pixels without the unit. Optional.
* @var --min-font-size: <number> - Number in pixels without the unit. Optional.
* @var --viewport-unit-converter: 1vw | 1vh | 1vmin | 1vmax - Optional. Default: 1vw.
* @var --font-size: <length> | <percentage> | <absolute-size> | <relative-size> | Global values - Optional.
*/
*,
*::before,
*::after {
  --viewport-unit-converter: 1vw;
  --fz-from: var(--font-size-from, var(--min-font-size));
  --fz-to: var(--font-size-to, var(--max-font-size));
  --fz-slope: (var(--fz-to) - var(--fz-from)) / (var(--viewport-to) - var(--viewport-from)) * 100;
  --fz-intercept: (var(--viewport-to) * var(--fz-from) - var(--viewport-from) * var(--fz-to)) / (var(--viewport-to) - var(--viewport-from));
  --font-size: calc(var(--fz-slope) * var(--viewport-unit-converter) + var(--fz-intercept) * 1px);
  --min-fz-px: calc(var(--min-font-size) * 1px);
  --max-fz-px: calc(var(--max-font-size) * 1px);
  --clamp: clamp(var(--min-fz-px), var(--font-size), var(--max-fz-px));
  --max: var(--has-max, var(--min));
  --min: var(--has-min, var(--font-size));
  --has-max: min(var(--max-fz-px), var(--font-size));
  --has-min: max(var(--min-fz-px), var(--font-size));
  font-size: var(--clamp, var(--max));
}

body {
  font-family: "YakuHanJP", "Zen Kaku Gothic Antique", "ヒラギノ角ゴシック Pro", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", "Osaka", "MS Pゴシック", "MS PGothic", sans-serif;
  font-size: 15px;
  font-weight: 500;
  font-style: normal;
  color: #000000;
  line-height: 1.6;
  -webkit-text-size-adjust: 100%;
  background: #ECE3DA;
}

b,
strong,
.bold {
  font-weight: 700;
}

img {
  max-width: 100%;
}

a {
  color: #000000;
  text-decoration: none;
  transition: 0.3s;
}

a[href*="tel:"] {
  text-decoration: none !important;
}
@media (min-width: 768px) {
  a[href*="tel:"] {
    pointer-events: none;
  }
}

.l-header {
  position: absolute;
  width: 100%;
  height: 100px;
  z-index: 4;
}
.l-header__logo {
  position: absolute;
  top: 20px;
  left: 22px;
  max-width: 98px;
}
.l-header__logo img {
  width: 100%;
  max-width: 100%;
  height: auto;
}
.l-header__logo::before {
  content: "";
  position: absolute;
  transform: translateY(-60%) translateX(-30%);
  aspect-ratio: 265/188;
  min-width: 215px;
  background: url(../img/common/header_deco.svg) no-repeat center center/cover;
  z-index: -1;
}
@media (min-width: 768px) {
  .l-header__logo {
    top: 35px;
    left: 40px;
    max-width: 128px;
  }
  .l-header__logo::before {
    content: "";
    min-width: 265px;
  }
}

.l-footer {
  padding: 75px 0 45px 0;
  background: #ECE3DA;
  border-top: 1px solid #000000;
}
.l-footer__inner {
  padding: 0 7vw;
}
@media (min-width: 768px) {
  .l-footer__inner {
    padding: 0 5vw;
  }
}
.l-footer__wrap {
  display: block;
}
@media (min-width: 768px) {
  .l-footer__wrap {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
  }
}
.l-footer__address {
  font-style: normal;
  margin-top: 30px;
}
.l-footer__tel {
  font-size: 25px;
  font-family: "Josefin Sans", sans-serif;
  font-optical-sizing: auto;
  font-weight: 700;
  font-style: normal;
  line-height: 1;
  margin-top: 15px;
}
.l-footer__hours {
  margin-top: 15px;
}
.l-footer__links {
  margin-top: 30px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  transition: 0.3s cubic-bezier(0.12, 0, 0.39, 0);
}
@media (hover: hover) and (pointer: fine) {
  .l-footer__links:hover {
    opacity: 0.6;
  }
}
@media (-ms-high-contrast: none), (-ms-high-contrast: active) {
  .l-footer__links:hover {
    opacity: 0.6;
  }
}
.l-footer__item-link {
  font-size: 14px;
  display: flex;
  align-items: center;
  gap: 5px;
}
.l-footer__item-link::after {
  content: "";
  width: 10px;
  aspect-ratio: 1/1;
  background: url(../img/common/ic_blank.svg) no-repeat center center/100% auto;
}
@media (max-width: 767px) {
  .l-footer__site {
    margin-top: 50px;
  }
}
.l-footer__site-logo {
  width: 100%;
  max-width: 442px;
}
.l-footer__site-logo img {
  width: 100%;
  max-width: 100%;
  height: auto;
}
.l-footer__copyright {
  display: block;
  margin-top: 20px;
  text-align: center;
  font-size: 11px;
}

.c-button {
  display: inline-block;
  text-align: center;
  gap: 30px;
  padding: 17px 0;
  width: 206px;
  background: #E2DB5E;
  border-radius: 999px;
  border: 1px solid #000000;
  line-height: 1;
  transition: 0.3s cubic-bezier(0.12, 0, 0.39, 0);
}
@media (hover: hover) and (pointer: fine) {
  .c-button:hover {
    opacity: 0.6;
  }
}
@media (-ms-high-contrast: none), (-ms-high-contrast: active) {
  .c-button:hover {
    opacity: 0.6;
  }
}
@media (min-width: 768px) {
  .c-button {
    gap: 16px;
    padding: 15px 0;
  }
}

.c-container {
  width: 100%;
  max-width: 1076px;
  margin: 0 auto;
}

.p-home-contact__title, .p-home-process__title {
  --viewport-from: 600;
  --viewport-to: 1440;
  --min-font-size: 27;
  --max-font-size: 50;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px 15px;
}
.p-home-contact__title *, .p-home-process__title *,
.p-home-contact__title *::before,
.p-home-process__title *::before,
.p-home-contact__title *::after,
.p-home-process__title *::after {
  --viewport-unit-converter: 1vw;
  --fz-from: var(--font-size-from, var(--min-font-size));
  --fz-to: var(--font-size-to, var(--max-font-size));
  --fz-slope: (var(--fz-to) - var(--fz-from)) / (var(--viewport-to) - var(--viewport-from)) * 100;
  --fz-intercept: (var(--viewport-to) * var(--fz-from) - var(--viewport-from) * var(--fz-to)) / (var(--viewport-to) - var(--viewport-from));
  --font-size: calc(var(--fz-slope) * var(--viewport-unit-converter) + var(--fz-intercept) * 1px);
  --min-fz-px: calc(var(--min-font-size) * 1px);
  --max-fz-px: calc(var(--max-font-size) * 1px);
  --clamp: clamp(var(--min-fz-px), var(--font-size), var(--max-fz-px));
  --max: var(--has-max, var(--min));
  --min: var(--has-min, var(--font-size));
  --has-max: min(var(--max-fz-px), var(--font-size));
  --has-min: max(var(--min-fz-px), var(--font-size));
  font-size: var(--clamp, var(--max));
}
.p-home-contact__title::before, .p-home-process__title::before {
  content: attr(data-en);
  font-family: "Josefin Sans", sans-serif;
  font-optical-sizing: auto;
  font-weight: 700;
  font-style: normal;
  --viewport-from: 600;
  --viewport-to: 1440;
  --min-font-size: 12;
  --max-font-size: 17;
  line-height: 1;
  width: 100%;
  order: -2;
}
.p-home-contact__title::before *, .p-home-process__title::before *,
.p-home-contact__title::before *::before,
.p-home-process__title::before *::before,
.p-home-contact__title::before *::after,
.p-home-process__title::before *::after {
  --viewport-unit-converter: 1vw;
  --fz-from: var(--font-size-from, var(--min-font-size));
  --fz-to: var(--font-size-to, var(--max-font-size));
  --fz-slope: (var(--fz-to) - var(--fz-from)) / (var(--viewport-to) - var(--viewport-from)) * 100;
  --fz-intercept: (var(--viewport-to) * var(--fz-from) - var(--viewport-from) * var(--fz-to)) / (var(--viewport-to) - var(--viewport-from));
  --font-size: calc(var(--fz-slope) * var(--viewport-unit-converter) + var(--fz-intercept) * 1px);
  --min-fz-px: calc(var(--min-font-size) * 1px);
  --max-fz-px: calc(var(--max-font-size) * 1px);
  --clamp: clamp(var(--min-fz-px), var(--font-size), var(--max-fz-px));
  --max: var(--has-max, var(--min));
  --min: var(--has-min, var(--font-size));
  --has-max: min(var(--max-fz-px), var(--font-size));
  --has-min: max(var(--min-fz-px), var(--font-size));
  font-size: var(--clamp, var(--max));
}

.p-home-present__step-area, .p-home-about__step-area {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.p-home-present__step-item, .p-home-about__step-item {
  position: absolute;
  transform-origin: top;
  display: flex;
  z-index: -1;
}

.p-home-present__step-image, .p-home-about__step-image {
  opacity: 0;
  aspect-ratio: 88/69;
  width: 100%;
}
.p-home-present__step-image img, .p-home-about__step-image img {
  width: 100%;
  max-width: 100%;
  height: auto;
}

.p-home-kv {
  position: relative;
  width: 100%;
  height: auto;
  padding: 20vw 0 18vw;
  z-index: 1;
}
.p-home-kv::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  aspect-ratio: 390/127;
  width: 100%;
  background: url(../img/home/about_background_image-sp.png) no-repeat center center/cover;
  z-index: -2;
}
@media (min-width: 768px) {
  .p-home-kv {
    padding: 5vw 0;
    height: 100svh;
  }
  .p-home-kv::before {
    content: "";
    aspect-ratio: 1440/140;
    background: url(../img/home/about_background_image.png) no-repeat center center/cover;
  }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .p-home-kv {
    padding: 15vw 0;
    height: auto;
  }
}
.p-home-kv__name {
  position: absolute;
  bottom: 2%;
  left: 50%;
  transform: translateX(-50%);
  display: block;
  width: 158px;
  padding: 2px 0 3px;
  --viewport-from: 375;
  --viewport-to: 1440;
  --min-font-size: 8;
  --max-font-size: 10;
  color: #404040;
  background: #C1F5E1;
  border-radius: 100vmax;
  text-align: center;
}
.p-home-kv__name *,
.p-home-kv__name *::before,
.p-home-kv__name *::after {
  --viewport-unit-converter: 1vw;
  --fz-from: var(--font-size-from, var(--min-font-size));
  --fz-to: var(--font-size-to, var(--max-font-size));
  --fz-slope: (var(--fz-to) - var(--fz-from)) / (var(--viewport-to) - var(--viewport-from)) * 100;
  --fz-intercept: (var(--viewport-to) * var(--fz-from) - var(--viewport-from) * var(--fz-to)) / (var(--viewport-to) - var(--viewport-from));
  --font-size: calc(var(--fz-slope) * var(--viewport-unit-converter) + var(--fz-intercept) * 1px);
  --min-fz-px: calc(var(--min-font-size) * 1px);
  --max-fz-px: calc(var(--max-font-size) * 1px);
  --clamp: clamp(var(--min-fz-px), var(--font-size), var(--max-fz-px));
  --max: var(--has-max, var(--min));
  --min: var(--has-min, var(--font-size));
  --has-max: min(var(--max-fz-px), var(--font-size));
  --has-min: max(var(--min-fz-px), var(--font-size));
  font-size: var(--clamp, var(--max));
}
@media (min-width: 768px) {
  .p-home-kv__name {
    bottom: 4%;
    left: 16%;
    width: 193px;
    margin-left: 0;
    z-index: 1;
  }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .p-home-kv__name {
    bottom: 0;
  }
}
.p-home-kv__inner {
  padding: 0 7vw;
}
@media (min-width: 768px) {
  .p-home-kv__inner {
    padding: 0 5vw;
  }
}
.p-home-kv__wrapper {
  position: relative;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.p-home-kv__heading {
  display: flex;
  justify-content: center;
  text-align: center;
  margin: 0 auto;
}
.p-home-kv__heading-image {
  max-height: 25svh;
}
.p-home-kv__heading-image img {
  width: 100%;
  height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
}
@media (min-width: 768px) {
  .p-home-kv__heading-image {
    max-height: 45vh;
  }
}
.p-home-kv__wrap {
  position: relative;
  flex: 1;
}
.p-home-kv__circle {
  position: relative;
  aspect-ratio: 1/1;
  width: 100%;
  max-width: 185px;
  margin: 0 auto;
  background: #A0E8CC;
  border-radius: 50%;
  border: 2px solid #000000;
}
.p-home-kv__circle::before {
  content: "";
  position: absolute;
  top: 1%;
  right: -3%;
  aspect-ratio: 1/1;
  width: 100%;
  max-width: 208px;
  background: #000000;
  border-radius: 50%;
  z-index: -1;
}
@media (min-width: 768px) {
  .p-home-kv__circle {
    position: absolute;
    top: -10%;
    right: 0%;
    max-width: 280px;
  }
  .p-home-kv__circle::before {
    content: "";
    max-width: 280px;
  }
}
@media (max-width: 767px) {
  .p-home-kv__circle {
    position: relative;
    margin: 20px auto 0;
  }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .p-home-kv__circle {
    position: relative;
    margin: 20px auto 0;
  }
}
.p-home-kv__item {
  position: relative;
  text-align: center;
  z-index: 1;
}
@media (min-width: 768px) {
  .p-home-kv__item {
    margin-top: 12%;
  }
}
@media (max-width: 767px) {
  .p-home-kv__item {
    transform: translateY(11%);
  }
}
.p-home-kv__confetti {
  position: absolute;
  inset: 0;
  overflow: visible; /* ← 紙吹雪を外に飛ばす場合OK */
  pointer-events: none; /* ← ボタンなどの邪魔をしない */
}
.p-home-kv__confetti .confetti {
  position: absolute;
  width: 10px;
  height: 16px;
  border-radius: 2px;
  opacity: 0;
  will-change: transform;
  transform-style: preserve-3d;
}
.p-home-kv__parts {
  display: inline-block;
  justify-content: center;
  padding: 2px 7px 3px 8px;
  background: #E2DB5E;
  border-radius: 100vmax;
  --viewport-from: 375;
  --viewport-to: 1440;
  --min-font-size: 10;
  --max-font-size: 15;
}
.p-home-kv__parts *,
.p-home-kv__parts *::before,
.p-home-kv__parts *::after {
  --viewport-unit-converter: 1vw;
  --fz-from: var(--font-size-from, var(--min-font-size));
  --fz-to: var(--font-size-to, var(--max-font-size));
  --fz-slope: (var(--fz-to) - var(--fz-from)) / (var(--viewport-to) - var(--viewport-from)) * 100;
  --fz-intercept: (var(--viewport-to) * var(--fz-from) - var(--viewport-from) * var(--fz-to)) / (var(--viewport-to) - var(--viewport-from));
  --font-size: calc(var(--fz-slope) * var(--viewport-unit-converter) + var(--fz-intercept) * 1px);
  --min-fz-px: calc(var(--min-font-size) * 1px);
  --max-fz-px: calc(var(--max-font-size) * 1px);
  --clamp: clamp(var(--min-fz-px), var(--font-size), var(--max-fz-px));
  --max: var(--has-max, var(--min));
  --min: var(--has-min, var(--font-size));
  --has-max: min(var(--max-fz-px), var(--font-size));
  --has-min: max(var(--min-fz-px), var(--font-size));
  font-size: var(--clamp, var(--max));
}
@media (min-width: 768px) {
  .p-home-kv__parts {
    padding: 2px 9px 3px 8px;
  }
}
.p-home-kv__text {
  display: flex;
  justify-content: center;
  align-items: flex-end;
  gap: 2px;
  --viewport-from: 375;
  --viewport-to: 1440;
  --min-font-size: 25;
  --max-font-size: 40;
  font-weight: 700;
  color: #D3654C;
}
.p-home-kv__text *,
.p-home-kv__text *::before,
.p-home-kv__text *::after {
  --viewport-unit-converter: 1vw;
  --fz-from: var(--font-size-from, var(--min-font-size));
  --fz-to: var(--font-size-to, var(--max-font-size));
  --fz-slope: (var(--fz-to) - var(--fz-from)) / (var(--viewport-to) - var(--viewport-from)) * 100;
  --fz-intercept: (var(--viewport-to) * var(--fz-from) - var(--viewport-from) * var(--fz-to)) / (var(--viewport-to) - var(--viewport-from));
  --font-size: calc(var(--fz-slope) * var(--viewport-unit-converter) + var(--fz-intercept) * 1px);
  --min-fz-px: calc(var(--min-font-size) * 1px);
  --max-fz-px: calc(var(--max-font-size) * 1px);
  --clamp: clamp(var(--min-fz-px), var(--font-size), var(--max-fz-px));
  --max: var(--has-max, var(--min));
  --min: var(--has-min, var(--font-size));
  --has-max: min(var(--max-fz-px), var(--font-size));
  --has-min: max(var(--min-fz-px), var(--font-size));
  font-size: var(--clamp, var(--max));
}
.p-home-kv__text.--strong {
  --viewport-from: 375;
  --viewport-to: 1440;
  --min-font-size: 60;
  --max-font-size: 80;
  line-height: 1;
}
.p-home-kv__text.--strong *,
.p-home-kv__text.--strong *::before,
.p-home-kv__text.--strong *::after {
  --viewport-unit-converter: 1vw;
  --fz-from: var(--font-size-from, var(--min-font-size));
  --fz-to: var(--font-size-to, var(--max-font-size));
  --fz-slope: (var(--fz-to) - var(--fz-from)) / (var(--viewport-to) - var(--viewport-from)) * 100;
  --fz-intercept: (var(--viewport-to) * var(--fz-from) - var(--viewport-from) * var(--fz-to)) / (var(--viewport-to) - var(--viewport-from));
  --font-size: calc(var(--fz-slope) * var(--viewport-unit-converter) + var(--fz-intercept) * 1px);
  --min-fz-px: calc(var(--min-font-size) * 1px);
  --max-fz-px: calc(var(--max-font-size) * 1px);
  --clamp: clamp(var(--min-fz-px), var(--font-size), var(--max-fz-px));
  --max: var(--has-max, var(--min));
  --min: var(--has-min, var(--font-size));
  --has-max: min(var(--max-fz-px), var(--font-size));
  --has-min: max(var(--min-fz-px), var(--font-size));
  font-size: var(--clamp, var(--max));
}
.p-home-kv__text.--var {
  color: #000000;
  letter-spacing: -2px;
}
.p-home-kv__text.--small {
  font-size: 11px;
  color: #000000;
}
.p-home-kv__loop-wrap {
  position: absolute;
  bottom: 7%;
  left: 0;
  display: flex;
  width: 100%;
  z-index: -2;
}
@media (max-width: 767px) {
  .p-home-kv__loop-wrap {
    bottom: 12%;
  }
}
.p-home-kv__loop-texts {
  display: flex;
  gap: 20px;
  white-space: nowrap;
  flex-shrink: 0;
  padding-left: 20px;
  animation: loop-text 30s linear infinite;
}
.p-home-kv__loop-text {
  --viewport-from: 375;
  --viewport-to: 1440;
  --min-font-size: 53;
  --max-font-size: 100;
  font-family: "Josefin Sans", sans-serif;
  font-optical-sizing: auto;
  font-weight: 700;
  font-style: normal;
  color: #FFFFFF;
  line-height: 1;
}
.p-home-kv__loop-text *,
.p-home-kv__loop-text *::before,
.p-home-kv__loop-text *::after {
  --viewport-unit-converter: 1vw;
  --fz-from: var(--font-size-from, var(--min-font-size));
  --fz-to: var(--font-size-to, var(--max-font-size));
  --fz-slope: (var(--fz-to) - var(--fz-from)) / (var(--viewport-to) - var(--viewport-from)) * 100;
  --fz-intercept: (var(--viewport-to) * var(--fz-from) - var(--viewport-from) * var(--fz-to)) / (var(--viewport-to) - var(--viewport-from));
  --font-size: calc(var(--fz-slope) * var(--viewport-unit-converter) + var(--fz-intercept) * 1px);
  --min-fz-px: calc(var(--min-font-size) * 1px);
  --max-fz-px: calc(var(--max-font-size) * 1px);
  --clamp: clamp(var(--min-fz-px), var(--font-size), var(--max-fz-px));
  --max: var(--has-max, var(--min));
  --min: var(--has-min, var(--font-size));
  --has-max: min(var(--max-fz-px), var(--font-size));
  --has-min: max(var(--min-fz-px), var(--font-size));
  font-size: var(--clamp, var(--max));
}
.p-home-kv__character-area {
  margin-top: 20px;
}
@media (min-width: 768px) {
  .p-home-kv__character-area {
    margin-top: 50px;
  }
}
.p-home-kv__character-item {
  position: relative;
  aspect-ratio: 335/358;
  width: 40%;
  max-width: 335px;
  margin: 0 auto;
}
.p-home-kv__character-image {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  opacity: 0;
  animation-duration: 7s;
  animation-timing-function: steps(1); /* ← フェードなし、一瞬で切替 */
  animation-iteration-count: infinite;
}
.p-home-kv__character-image:nth-child(1) {
  animation-name: showFrame1;
}
.p-home-kv__character-image:nth-child(2) {
  animation-name: showFrame2;
}
.p-home-kv__character-image:nth-child(3) {
  animation-name: showFrame3;
}
.p-home-kv__character-head {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  aspect-ratio: 335/358;
}
.p-home-kv__character-head img {
  width: 100%;
  max-width: 100%;
  height: auto;
}
.p-home-kv__character-body {
  position: absolute;
  top: -1%;
  left: -2%;
  width: 100%;
  height: 100%;
  z-index: -1;
}
.p-home-kv__character-body img {
  width: 100%;
  max-width: 100%;
  height: auto;
}
.p-home-kv__character-name {
  position: absolute;
  top: 70%;
  left: 30%;
  display: block;
  --viewport-from: 375;
  --viewport-to: 1440;
  --min-font-size: 10;
  --max-font-size: 12;
}
.p-home-kv__character-name *,
.p-home-kv__character-name *::before,
.p-home-kv__character-name *::after {
  --viewport-unit-converter: 1vw;
  --fz-from: var(--font-size-from, var(--min-font-size));
  --fz-to: var(--font-size-to, var(--max-font-size));
  --fz-slope: (var(--fz-to) - var(--fz-from)) / (var(--viewport-to) - var(--viewport-from)) * 100;
  --fz-intercept: (var(--viewport-to) * var(--fz-from) - var(--viewport-from) * var(--fz-to)) / (var(--viewport-to) - var(--viewport-from));
  --font-size: calc(var(--fz-slope) * var(--viewport-unit-converter) + var(--fz-intercept) * 1px);
  --min-fz-px: calc(var(--min-font-size) * 1px);
  --max-fz-px: calc(var(--max-font-size) * 1px);
  --clamp: clamp(var(--min-fz-px), var(--font-size), var(--max-fz-px));
  --max: var(--has-max, var(--min));
  --min: var(--has-min, var(--font-size));
  --has-max: min(var(--max-fz-px), var(--font-size));
  --has-min: max(var(--min-fz-px), var(--font-size));
  font-size: var(--clamp, var(--max));
}
@media (max-width: 767px) {
  .p-home-kv__character-name {
    top: auto;
    bottom: 5%;
    left: 50%;
    transform: translateY(-50%) translateX(-50%);
    display: inline-block;
    width: 100%;
    text-align: center;
  }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .p-home-kv__character-name {
    top: 70%;
    left: 14%;
  }
}

@keyframes loop-text {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-50%);
  }
}
/* 3つの画像を切り替えるだけのアニメーション（フェードなし） */
@keyframes showFrame1 {
  0%, 28.56% {
    opacity: 1;
  }
  28.57%, 100% {
    opacity: 0;
  }
}
@keyframes showFrame2 {
  0%, 28.56% {
    opacity: 0;
  }
  28.57%, 71.42% {
    opacity: 1;
  }
  71.43%, 100% {
    opacity: 0;
  }
}
@keyframes showFrame3 {
  0%, 71.42% {
    opacity: 0;
  }
  71.43%, 100% {
    opacity: 1;
  }
}
/* ===========================
  1枚目：頭だけゆらゆら
=========================== */
.p-home-kv__character-image:nth-child(1) .p-home-kv__character-head {
  animation: headSwing 2s ease-in-out infinite;
  transform-origin: center bottom;
}

@keyframes headSwing {
  0% {
    transform: rotate(0deg);
  }
  25% {
    transform: rotate(3deg);
  }
  50% {
    transform: rotate(0deg);
  }
  75% {
    transform: rotate(-3deg);
  }
  100% {
    transform: rotate(0deg);
  }
}
.p-home-about {
  position: relative;
  background: #A0E8CC;
  padding: 30vw 0;
  overflow: clip;
  z-index: -2;
}
.p-home-about::before {
  content: "";
  position: absolute;
  bottom: -1%;
  left: 0;
  aspect-ratio: 390/81;
  width: 100%;
  background: url(../img/home/trouble_background_image-sp.png) no-repeat center center/cover;
}
@media (min-width: 768px) {
  .p-home-about {
    padding: 20vw 0 30vw;
  }
  .p-home-about::before {
    content: "";
    aspect-ratio: 1440/212;
    background: url(../img/home/trouble_background_image.png) no-repeat center center/cover;
  }
}
.p-home-about__decoration {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: -1;
}
.p-home-about__decoration::before {
  content: "";
  position: absolute;
  top: 0;
  right: -22%;
  transform: rotate(5deg);
  aspect-ratio: 269/198;
  width: 203px;
  background: url(../img/home/cloud_image.png) no-repeat center center/cover;
  opacity: 0.5;
}
.p-home-about__decoration::after {
  content: "";
  position: absolute;
  bottom: 17%;
  left: -26%;
  transform: scale(1, -1) rotate(-9deg);
  aspect-ratio: 269/198;
  width: 203px;
  background: url(../img/home/cloud_image.png) no-repeat center center/cover;
  opacity: 0.5;
}
@media (min-width: 768px) {
  .p-home-about__decoration::before {
    content: "";
    right: -3%;
    width: 269px;
  }
  .p-home-about__decoration::after {
    content: "";
    bottom: 20%;
    left: -5%;
    width: 269px;
  }
}
.p-home-about__inner {
  padding: 0 7vw;
}
@media (min-width: 768px) {
  .p-home-about__inner {
    padding: 0 5vw;
  }
}
.p-home-about__title {
  transform: rotate(-3deg);
  max-width: 380px;
  margin: 0 auto;
}
.p-home-about__title img {
  width: 100%;
  max-width: 100%;
  height: auto;
}
@media (min-width: 768px) {
  .p-home-about__title {
    max-width: 780px;
  }
}
.p-home-about__wrap {
  display: block;
}
@media (min-width: 768px) {
  .p-home-about__wrap {
    display: flex;
    align-items: flex-start;
    gap: 104px;
    margin-top: 100px;
    padding-left: 8vw;
  }
}
.p-home-about__character {
  position: static;
  width: 100%;
  max-width: 205px;
  margin: 35px auto 0;
}
.p-home-about__character img {
  width: 100%;
  max-width: 100%;
  height: auto;
}
@media (min-width: 768px) {
  .p-home-about__character {
    position: sticky;
    top: 10%;
    left: 0;
    width: 40%;
  }
}
.p-home-about__texts {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 45px;
}
@media (max-width: 767px) {
  .p-home-about__texts {
    margin-top: 40px;
  }
}
.p-home-about__text {
  --viewport-from: 375;
  --viewport-to: 1440;
  --min-font-size: 18;
  --max-font-size: 24;
  line-height: 2.5;
}
.p-home-about__text *,
.p-home-about__text *::before,
.p-home-about__text *::after {
  --viewport-unit-converter: 1vw;
  --fz-from: var(--font-size-from, var(--min-font-size));
  --fz-to: var(--font-size-to, var(--max-font-size));
  --fz-slope: (var(--fz-to) - var(--fz-from)) / (var(--viewport-to) - var(--viewport-from)) * 100;
  --fz-intercept: (var(--viewport-to) * var(--fz-from) - var(--viewport-from) * var(--fz-to)) / (var(--viewport-to) - var(--viewport-from));
  --font-size: calc(var(--fz-slope) * var(--viewport-unit-converter) + var(--fz-intercept) * 1px);
  --min-fz-px: calc(var(--min-font-size) * 1px);
  --max-fz-px: calc(var(--max-font-size) * 1px);
  --clamp: clamp(var(--min-fz-px), var(--font-size), var(--max-fz-px));
  --max: var(--has-max, var(--min));
  --min: var(--has-min, var(--font-size));
  --has-max: min(var(--max-fz-px), var(--font-size));
  --has-min: max(var(--min-fz-px), var(--font-size));
  font-size: var(--clamp, var(--max));
}
.p-home-about__step-item {
  bottom: 4%;
  right: -3%;
  transform: rotate(-22deg);
  width: 88%;
}
@media (min-width: 768px) {
  .p-home-about__step-item {
    bottom: 9%;
    width: 48%;
  }
}
.p-home-trouble {
  position: relative;
  padding: 5vw 0 10vw;
  background: #EBE7A0;
  overflow: hidden;
  z-index: 0;
}
.p-home-trouble__inner {
  padding: 0 7vw;
}
@media (min-width: 768px) {
  .p-home-trouble__inner {
    padding: 0 5vw;
  }
}
.p-home-trouble__title {
  position: relative;
  display: flex;
  flex-direction: column;
  max-width: 600px;
  margin-left: 0;
}
.p-home-trouble__title img {
  width: 100%;
  max-width: 100%;
  height: auto;
}
@media (min-width: 768px) {
  .p-home-trouble__title {
    margin-left: 32%;
  }
}
.p-home-trouble__title-character {
  position: relative;
  transform: translateY(30px);
  aspect-ratio: 291/224;
  width: 100%;
  max-width: 220px;
  background: url(../img/home/character_img03.png) no-repeat center center/cover;
  order: -1;
}
@media (min-width: 768px) {
  .p-home-trouble__title-character {
    position: absolute;
    top: 0;
    left: -37%;
    max-width: 290px;
  }
}
@media (max-width: 767px) {
  .p-home-trouble__title-character {
    margin-left: 10px;
  }
}
.p-home-trouble__caption {
  margin-top: 24px;
  text-align: center;
  line-height: 2;
  --viewport-from: 375;
  --viewport-to: 1440;
  --min-font-size: 15;
  --max-font-size: 16;
}
.p-home-trouble__caption *,
.p-home-trouble__caption *::before,
.p-home-trouble__caption *::after {
  --viewport-unit-converter: 1vw;
  --fz-from: var(--font-size-from, var(--min-font-size));
  --fz-to: var(--font-size-to, var(--max-font-size));
  --fz-slope: (var(--fz-to) - var(--fz-from)) / (var(--viewport-to) - var(--viewport-from)) * 100;
  --fz-intercept: (var(--viewport-to) * var(--fz-from) - var(--viewport-from) * var(--fz-to)) / (var(--viewport-to) - var(--viewport-from));
  --font-size: calc(var(--fz-slope) * var(--viewport-unit-converter) + var(--fz-intercept) * 1px);
  --min-fz-px: calc(var(--min-font-size) * 1px);
  --max-fz-px: calc(var(--max-font-size) * 1px);
  --clamp: clamp(var(--min-fz-px), var(--font-size), var(--max-fz-px));
  --max: var(--has-max, var(--min));
  --min: var(--has-min, var(--font-size));
  --has-max: min(var(--max-fz-px), var(--font-size));
  --has-min: max(var(--min-fz-px), var(--font-size));
  font-size: var(--clamp, var(--max));
}
@media (min-width: 768px) {
  .p-home-trouble__caption {
    margin-top: 50px;
  }
}
.p-home-trouble__contents {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  -moz-column-gap: 40px;
       column-gap: 40px;
  row-gap: 40px;
  align-items: flex-start;
  margin-top: 24px;
}
@media (min-width: 768px) {
  .p-home-trouble__contents {
    grid-template-columns: repeat(4, 1fr);
    margin-top: 80px;
    row-gap: 80px;
  }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .p-home-trouble__contents {
    grid-template-columns: repeat(3, 1fr);
    row-gap: 80px;
  }
}
.p-home-trouble__content {
  position: relative;
  display: grid;
  grid-template-rows: subgrid;
  grid-row: span 1;
}
.p-home-trouble__content:nth-child(1), .p-home-trouble__content:nth-child(3) {
  transform: rotate(3deg);
}
.p-home-trouble__content:nth-child(6), .p-home-trouble__content:nth-child(8) {
  transform: translateY(20px) rotate(3deg);
}
.p-home-trouble__content:nth-child(2), .p-home-trouble__content:nth-child(4) {
  transform: translateY(20px) rotate(-3deg);
}
.p-home-trouble__content:nth-child(5), .p-home-trouble__content:nth-child(7) {
  transform: rotate(-3deg);
}
.p-home-trouble__content.--line .p-home-trouble__info {
  clip-path: polygon(25% 0, 100% 0, 100% 80%, 75% 100%, 0 100%, 0 20%);
}
.p-home-trouble__content.--line::before {
  content: "";
  position: absolute;
  top: 0;
  left: 11%;
  transform: translateY(-28%) rotate(46deg);
  transform-origin: center;
  aspect-ratio: 1/1;
  width: 2px;
  height: 50%;
  background: #000000;
  z-index: 1;
}
.p-home-trouble__content.--line::after {
  content: "";
  position: absolute;
  bottom: 0;
  right: 11%;
  transform: translateY(28%) rotate(46deg);
  transform-origin: center;
  aspect-ratio: 1/1;
  width: 2px;
  height: 50%;
  background: #000000;
  z-index: 1;
}
@media (min-width: 1080px) {
  .p-home-trouble__content.--line::before {
    content: "";
    transform: translateY(-28%) rotate(47deg);
  }
  .p-home-trouble__content.--line::after {
    content: "";
    transform: translateY(28%) rotate(47deg);
  }
}
@media (max-width: 767px) {
  .p-home-trouble__content.--line::before {
    content: "";
    transform: translateY(-28%) rotate(48deg);
    width: 2px;
  }
  .p-home-trouble__content.--line::after {
    content: "";
    transform: translateY(28%) rotate(48deg);
    width: 2px;
  }
}
.p-home-trouble__info {
  position: relative;
  background: #FFFFFF;
  border: 2px solid #000000;
  padding: 15px;
}
@media (min-width: 768px) {
  .p-home-trouble__info {
    padding: 30px;
  }
}
.p-home-trouble__item-image {
  width: 80%;
  margin: 0 auto;
}
.p-home-trouble__item-image img {
  width: 100%;
  max-width: 100%;
  height: auto;
}
.p-home-trouble__item-text {
  margin-top: 4px;
  --viewport-from: 375;
  --viewport-to: 1440;
  --min-font-size: 15;
  --max-font-size: 22;
  font-weight: 700;
  text-align: center;
}
.p-home-trouble__item-text *,
.p-home-trouble__item-text *::before,
.p-home-trouble__item-text *::after {
  --viewport-unit-converter: 1vw;
  --fz-from: var(--font-size-from, var(--min-font-size));
  --fz-to: var(--font-size-to, var(--max-font-size));
  --fz-slope: (var(--fz-to) - var(--fz-from)) / (var(--viewport-to) - var(--viewport-from)) * 100;
  --fz-intercept: (var(--viewport-to) * var(--fz-from) - var(--viewport-from) * var(--fz-to)) / (var(--viewport-to) - var(--viewport-from));
  --font-size: calc(var(--fz-slope) * var(--viewport-unit-converter) + var(--fz-intercept) * 1px);
  --min-fz-px: calc(var(--min-font-size) * 1px);
  --max-fz-px: calc(var(--max-font-size) * 1px);
  --clamp: clamp(var(--min-fz-px), var(--font-size), var(--max-fz-px));
  --max: var(--has-max, var(--min));
  --min: var(--has-min, var(--font-size));
  --has-max: min(var(--max-fz-px), var(--font-size));
  --has-min: max(var(--min-fz-px), var(--font-size));
  font-size: var(--clamp, var(--max));
}
@media (min-width: 768px) {
  .p-home-trouble__item-text {
    margin-top: 20px;
  }
}
.p-home-trouble__bottom-text-area {
  display: flex;
  justify-content: center;
}
.p-home-trouble__bottom-text {
  display: inline-block;
  margin-top: 70px;
  padding-bottom: 14px;
  background-image: radial-gradient(circle, #000000 1px, transparent 2px);
  background-position: left bottom;
  background-repeat: repeat-x;
  background-size: 7px 6px;
  text-align: center;
  --viewport-from: 375;
  --viewport-to: 1440;
  --min-font-size: 24;
  --max-font-size: 40;
  font-weight: 700;
}
.p-home-trouble__bottom-text *,
.p-home-trouble__bottom-text *::before,
.p-home-trouble__bottom-text *::after {
  --viewport-unit-converter: 1vw;
  --fz-from: var(--font-size-from, var(--min-font-size));
  --fz-to: var(--font-size-to, var(--max-font-size));
  --fz-slope: (var(--fz-to) - var(--fz-from)) / (var(--viewport-to) - var(--viewport-from)) * 100;
  --fz-intercept: (var(--viewport-to) * var(--fz-from) - var(--viewport-from) * var(--fz-to)) / (var(--viewport-to) - var(--viewport-from));
  --font-size: calc(var(--fz-slope) * var(--viewport-unit-converter) + var(--fz-intercept) * 1px);
  --min-fz-px: calc(var(--min-font-size) * 1px);
  --max-fz-px: calc(var(--max-font-size) * 1px);
  --clamp: clamp(var(--min-fz-px), var(--font-size), var(--max-fz-px));
  --max: var(--has-max, var(--min));
  --min: var(--has-min, var(--font-size));
  --has-max: min(var(--max-fz-px), var(--font-size));
  --has-min: max(var(--min-fz-px), var(--font-size));
  font-size: var(--clamp, var(--max));
}
@media (min-width: 768px) {
  .p-home-trouble__bottom-text {
    margin-top: 100px;
    padding-bottom: 14px;
  }
}

.js-gaan {
  display: inline-block;
  transform-origin: center;
}

.js-gaan-trigger {
  overflow: visible !important; /* ← 超重要！ */
}

.p-home-present {
  position: relative;
  background: #ECE3DA;
  z-index: 0;
  padding: 25vw 0 40vw;
  overflow: hidden;
}
.p-home-present::before {
  content: "";
  position: absolute;
  top: -4%;
  left: 0;
  aspect-ratio: 390/264;
  width: 100%;
  background: url(../img/home/trouble_bottom_background_image-sp.png) no-repeat center center/cover;
}
@media (min-width: 768px) {
  .p-home-present {
    padding: 0 0 20vw;
  }
  .p-home-present::before {
    content: "";
    top: 0;
    aspect-ratio: 1440/228;
    background: url(../img/home/trouble_bottom_background_image.png) no-repeat center center/cover;
  }
}
.p-home-present__decoration {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: -1;
}
.p-home-present__decoration::before {
  content: "";
  position: absolute;
  top: 15%;
  right: -3%;
  transform: rotate(5deg);
  aspect-ratio: 269/198;
  width: 203px;
  background: url(../img/home/cloud_image.png) no-repeat center center/cover;
  opacity: 0.5;
}
.p-home-present__decoration::after {
  content: "";
  position: absolute;
  bottom: 9%;
  left: -3%;
  transform: scale(1, -1) rotate(-9deg);
  aspect-ratio: 269/198;
  width: 203px;
  background: url(../img/home/cloud_image.png) no-repeat center center/cover;
  opacity: 0.5;
}
@media (max-width: 767px) {
  .p-home-present__decoration {
    display: none;
  }
}
.p-home-present__inner {
  padding: 0 7vw;
}
@media (min-width: 768px) {
  .p-home-present__inner {
    padding: 0 5vw;
  }
}
.p-home-present__step-item {
  top: 3%;
  left: -20%;
  transform: rotate(11deg);
  width: 90%;
  z-index: 0;
}
@media (min-width: 768px) {
  .p-home-present__step-item {
    top: 9%;
    left: -10%;
    transform: rotate(15deg);
    width: 40%;
  }
}
.p-home-present__wrap {
  position: relative;
  max-width: 280px;
  height: 470px;
  padding: 37px 24px;
  border: 2px solid #000000;
  background: #FFFFFF;
  border-radius: 50px 50px 0 0;
  margin: 0 auto;
}
@media (min-width: 768px) {
  .p-home-present__wrap {
    max-width: 750px;
    padding: 50px;
    border-radius: 213px 213px 0 0;
  }
}
.p-home-present__title {
  text-align: center;
}
.p-home-present__title-item {
  display: block;
}
@media (min-width: 768px) {
  .p-home-present__title-item {
    display: flex;
    justify-content: center;
    align-items: baseline;
    gap: 10px;
  }
  .p-home-present__title-item:not(:first-of-type) {
    margin-top: 16px;
  }
}
@media (max-width: 767px) {
  .p-home-present__title-item:first-of-type {
    display: flex;
    justify-content: center;
    align-items: baseline;
    gap: 10px;
  }
}
.p-home-present__title-text {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  white-space: nowrap;
}
@media (max-width: 767px) {
  .p-home-present__title-text {
    margin-top: 12px;
  }
}
.p-home-present__title-text-nomal {
  display: block;
  --viewport-from: 375;
  --viewport-to: 1440;
  --min-font-size: 19;
  --max-font-size: 30;
  font-weight: 700;
  line-height: 1;
}
.p-home-present__title-text-nomal *,
.p-home-present__title-text-nomal *::before,
.p-home-present__title-text-nomal *::after {
  --viewport-unit-converter: 1vw;
  --fz-from: var(--font-size-from, var(--min-font-size));
  --fz-to: var(--font-size-to, var(--max-font-size));
  --fz-slope: (var(--fz-to) - var(--fz-from)) / (var(--viewport-to) - var(--viewport-from)) * 100;
  --fz-intercept: (var(--viewport-to) * var(--fz-from) - var(--viewport-from) * var(--fz-to)) / (var(--viewport-to) - var(--viewport-from));
  --font-size: calc(var(--fz-slope) * var(--viewport-unit-converter) + var(--fz-intercept) * 1px);
  --min-fz-px: calc(var(--min-font-size) * 1px);
  --max-fz-px: calc(var(--max-font-size) * 1px);
  --clamp: clamp(var(--min-fz-px), var(--font-size), var(--max-fz-px));
  --max: var(--has-max, var(--min));
  --min: var(--has-min, var(--font-size));
  --has-max: min(var(--max-fz-px), var(--font-size));
  --has-min: max(var(--min-fz-px), var(--font-size));
  font-size: var(--clamp, var(--max));
}
@media (max-width: 767px) {
  .p-home-present__title-text-nomal {
    margin-top: 5px;
  }
}
.p-home-present__title-text-large {
  display: block;
  --viewport-from: 375;
  --viewport-to: 1440;
  --min-font-size: 25;
  --max-font-size: 40;
  font-weight: 700;
  line-height: 1;
}
.p-home-present__title-text-large *,
.p-home-present__title-text-large *::before,
.p-home-present__title-text-large *::after {
  --viewport-unit-converter: 1vw;
  --fz-from: var(--font-size-from, var(--min-font-size));
  --fz-to: var(--font-size-to, var(--max-font-size));
  --fz-slope: (var(--fz-to) - var(--fz-from)) / (var(--viewport-to) - var(--viewport-from)) * 100;
  --fz-intercept: (var(--viewport-to) * var(--fz-from) - var(--viewport-from) * var(--fz-to)) / (var(--viewport-to) - var(--viewport-from));
  --font-size: calc(var(--fz-slope) * var(--viewport-unit-converter) + var(--fz-intercept) * 1px);
  --min-fz-px: calc(var(--min-font-size) * 1px);
  --max-fz-px: calc(var(--max-font-size) * 1px);
  --clamp: clamp(var(--min-fz-px), var(--font-size), var(--max-fz-px));
  --max: var(--has-max, var(--min));
  --min: var(--has-min, var(--font-size));
  --has-max: min(var(--max-fz-px), var(--font-size));
  --has-min: max(var(--min-fz-px), var(--font-size));
  font-size: var(--clamp, var(--max));
}
.p-home-present__title-text-strong {
  position: relative;
  display: inline-block;
  margin-top: 20px;
  padding-bottom: 30px;
  text-align: center;
  --viewport-from: 375;
  --viewport-to: 1440;
  --min-font-size: 57;
  --max-font-size: 80;
  -webkit-text-stroke: 1px #000000;
  color: #E2DB5E;
  line-height: 1.193;
}
.p-home-present__title-text-strong *,
.p-home-present__title-text-strong *::before,
.p-home-present__title-text-strong *::after {
  --viewport-unit-converter: 1vw;
  --fz-from: var(--font-size-from, var(--min-font-size));
  --fz-to: var(--font-size-to, var(--max-font-size));
  --fz-slope: (var(--fz-to) - var(--fz-from)) / (var(--viewport-to) - var(--viewport-from)) * 100;
  --fz-intercept: (var(--viewport-to) * var(--fz-from) - var(--viewport-from) * var(--fz-to)) / (var(--viewport-to) - var(--viewport-from));
  --font-size: calc(var(--fz-slope) * var(--viewport-unit-converter) + var(--fz-intercept) * 1px);
  --min-fz-px: calc(var(--min-font-size) * 1px);
  --max-fz-px: calc(var(--max-font-size) * 1px);
  --clamp: clamp(var(--min-fz-px), var(--font-size), var(--max-fz-px));
  --max: var(--has-max, var(--min));
  --min: var(--has-min, var(--font-size));
  --has-max: min(var(--max-fz-px), var(--font-size));
  --has-min: max(var(--min-fz-px), var(--font-size));
  font-size: var(--clamp, var(--max));
}
.p-home-present__title-text-strong::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-image: radial-gradient(circle, #000000 1px, transparent 2px);
  background-position: left bottom;
  background-repeat: repeat-x;
  background-size: 7px 6px;
}
@media (min-width: 768px) {
  .p-home-present__title-text-strong {
    margin-top: 20px;
    padding-bottom: 20px;
    -webkit-text-stroke: 2px #000000;
  }
}
.p-home-present__caption {
  text-align: center;
  --viewport-from: 375;
  --viewport-to: 1440;
  --min-font-size: 15;
  --max-font-size: 20;
  margin-top: 20px;
}
.p-home-present__caption *,
.p-home-present__caption *::before,
.p-home-present__caption *::after {
  --viewport-unit-converter: 1vw;
  --fz-from: var(--font-size-from, var(--min-font-size));
  --fz-to: var(--font-size-to, var(--max-font-size));
  --fz-slope: (var(--fz-to) - var(--fz-from)) / (var(--viewport-to) - var(--viewport-from)) * 100;
  --fz-intercept: (var(--viewport-to) * var(--fz-from) - var(--viewport-from) * var(--fz-to)) / (var(--viewport-to) - var(--viewport-from));
  --font-size: calc(var(--fz-slope) * var(--viewport-unit-converter) + var(--fz-intercept) * 1px);
  --min-fz-px: calc(var(--min-font-size) * 1px);
  --max-fz-px: calc(var(--max-font-size) * 1px);
  --clamp: clamp(var(--min-fz-px), var(--font-size), var(--max-fz-px));
  --max: var(--has-max, var(--min));
  --min: var(--has-min, var(--font-size));
  --has-max: min(var(--max-fz-px), var(--font-size));
  --has-min: max(var(--min-fz-px), var(--font-size));
  font-size: var(--clamp, var(--max));
}
@media (min-width: 768px) {
  .p-home-present__caption {
    margin-top: 26px;
  }
}
.p-home-present__caption-example {
  display: block;
  text-align: center;
  --viewport-from: 375;
  --viewport-to: 1440;
  --min-font-size: 14;
  --max-font-size: 16;
  line-height: 1;
  margin-top: 16px;
}
.p-home-present__caption-example *,
.p-home-present__caption-example *::before,
.p-home-present__caption-example *::after {
  --viewport-unit-converter: 1vw;
  --fz-from: var(--font-size-from, var(--min-font-size));
  --fz-to: var(--font-size-to, var(--max-font-size));
  --fz-slope: (var(--fz-to) - var(--fz-from)) / (var(--viewport-to) - var(--viewport-from)) * 100;
  --fz-intercept: (var(--viewport-to) * var(--fz-from) - var(--viewport-from) * var(--fz-to)) / (var(--viewport-to) - var(--viewport-from));
  --font-size: calc(var(--fz-slope) * var(--viewport-unit-converter) + var(--fz-intercept) * 1px);
  --min-fz-px: calc(var(--min-font-size) * 1px);
  --max-fz-px: calc(var(--max-font-size) * 1px);
  --clamp: clamp(var(--min-fz-px), var(--font-size), var(--max-fz-px));
  --max: var(--has-max, var(--min));
  --min: var(--has-min, var(--font-size));
  --has-max: min(var(--max-fz-px), var(--font-size));
  --has-min: max(var(--min-fz-px), var(--font-size));
  font-size: var(--clamp, var(--max));
}
@media (min-width: 768px) {
  .p-home-present__caption-example {
    margin-top: 8px;
  }
}
.p-home-present__content {
  position: relative;
  background: #A0E8CC;
  border: 2px solid #000000;
  border-radius: 30px;
  padding: 40px 24px 102px;
  margin: -8% auto 0;
}
.p-home-present__content::before {
  content: "";
  position: absolute;
  top: 2%;
  left: 3%;
  width: 100%;
  height: 100%;
  background: #000000;
  border-radius: 30px;
  z-index: -1;
}
@media (min-width: 768px) {
  .p-home-present__content {
    padding: 71px 102px 52px 81px;
    max-width: 910px;
  }
  .p-home-present__content::before {
    content: "";
    top: 2%;
    left: 1%;
  }
}
.p-home-present__content-decoration {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.p-home-present__confetti {
  position: absolute;
  inset: 0;
  overflow: visible; /* ← 紙吹雪を外に飛ばす場合OK */
  pointer-events: none; /* ← ボタンなどの邪魔をしない */
}
@media (max-width: 767px) {
  .p-home-present__confetti {
    top: auto;
    bottom: 0;
  }
}
.p-home-present__confetti .confetti {
  position: absolute;
  width: 10px;
  height: 16px;
  border-radius: 2px;
  opacity: 0;
  will-change: transform;
  transform-style: preserve-3d;
}
.p-home-present__content-character {
  position: absolute;
  bottom: -20%;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  aspect-ratio: 212/221;
  max-width: 173px;
  background: url(../img/home/character_img04.png) no-repeat center center/cover;
}
@media (min-width: 768px) {
  .p-home-present__content-character {
    bottom: -40%;
    left: auto;
    right: -7%;
    transform: translateX(0);
    max-width: 212px;
  }
}
.p-home-present__content-title {
  display: block;
  --viewport-from: 375;
  --viewport-to: 1440;
  --min-font-size: 20;
  --max-font-size: 30;
  line-height: 1.5;
  font-weight: 700;
  text-align: center;
}
.p-home-present__content-title *,
.p-home-present__content-title *::before,
.p-home-present__content-title *::after {
  --viewport-unit-converter: 1vw;
  --fz-from: var(--font-size-from, var(--min-font-size));
  --fz-to: var(--font-size-to, var(--max-font-size));
  --fz-slope: (var(--fz-to) - var(--fz-from)) / (var(--viewport-to) - var(--viewport-from)) * 100;
  --fz-intercept: (var(--viewport-to) * var(--fz-from) - var(--viewport-from) * var(--fz-to)) / (var(--viewport-to) - var(--viewport-from));
  --font-size: calc(var(--fz-slope) * var(--viewport-unit-converter) + var(--fz-intercept) * 1px);
  --min-fz-px: calc(var(--min-font-size) * 1px);
  --max-fz-px: calc(var(--max-font-size) * 1px);
  --clamp: clamp(var(--min-fz-px), var(--font-size), var(--max-fz-px));
  --max: var(--has-max, var(--min));
  --min: var(--has-min, var(--font-size));
  --has-max: min(var(--max-fz-px), var(--font-size));
  --has-min: max(var(--min-fz-px), var(--font-size));
  font-size: var(--clamp, var(--max));
}
.p-home-present__info-item {
  display: flex;
  justify-content: center;
  align-items: center;
  aspect-ratio: 1/1;
  width: 115px;
  background: #F5F082;
  border-radius: 50%;
}
@media (min-width: 768px) {
  .p-home-present__info-item {
    width: 149px;
  }
}
@media (max-width: 767px) {
  .p-home-present__info-item {
    margin: 12px auto 0;
  }
}
.p-home-present__info-text {
  --viewport-from: 375;
  --viewport-to: 1440;
  --min-font-size: 17;
  --max-font-size: 24;
  line-height: 1.375;
}
.p-home-present__info-text *,
.p-home-present__info-text *::before,
.p-home-present__info-text *::after {
  --viewport-unit-converter: 1vw;
  --fz-from: var(--font-size-from, var(--min-font-size));
  --fz-to: var(--font-size-to, var(--max-font-size));
  --fz-slope: (var(--fz-to) - var(--fz-from)) / (var(--viewport-to) - var(--viewport-from)) * 100;
  --fz-intercept: (var(--viewport-to) * var(--fz-from) - var(--viewport-from) * var(--fz-to)) / (var(--viewport-to) - var(--viewport-from));
  --font-size: calc(var(--fz-slope) * var(--viewport-unit-converter) + var(--fz-intercept) * 1px);
  --min-fz-px: calc(var(--min-font-size) * 1px);
  --max-fz-px: calc(var(--max-font-size) * 1px);
  --clamp: clamp(var(--min-fz-px), var(--font-size), var(--max-fz-px));
  --max: var(--has-max, var(--min));
  --min: var(--has-min, var(--font-size));
  --has-max: min(var(--max-fz-px), var(--font-size));
  --has-min: max(var(--min-fz-px), var(--font-size));
  font-size: var(--clamp, var(--max));
}
.p-home-present__info {
  display: block;
}
@media (min-width: 768px) {
  .p-home-present__info {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 24px;
  }
}
.p-home-present__parts-item {
  display: flex;
  justify-content: center;
  align-items: baseline;
  gap: 5px;
}
.p-home-present__parts-text-nomal {
  --viewport-from: 375;
  --viewport-to: 1440;
  --min-font-size: 32;
  --max-font-size: 51;
  font-weight: 700;
}
.p-home-present__parts-text-nomal *,
.p-home-present__parts-text-nomal *::before,
.p-home-present__parts-text-nomal *::after {
  --viewport-unit-converter: 1vw;
  --fz-from: var(--font-size-from, var(--min-font-size));
  --fz-to: var(--font-size-to, var(--max-font-size));
  --fz-slope: (var(--fz-to) - var(--fz-from)) / (var(--viewport-to) - var(--viewport-from)) * 100;
  --fz-intercept: (var(--viewport-to) * var(--fz-from) - var(--viewport-from) * var(--fz-to)) / (var(--viewport-to) - var(--viewport-from));
  --font-size: calc(var(--fz-slope) * var(--viewport-unit-converter) + var(--fz-intercept) * 1px);
  --min-fz-px: calc(var(--min-font-size) * 1px);
  --max-fz-px: calc(var(--max-font-size) * 1px);
  --clamp: clamp(var(--min-fz-px), var(--font-size), var(--max-fz-px));
  --max: var(--has-max, var(--min));
  --min: var(--has-min, var(--font-size));
  --has-max: min(var(--max-fz-px), var(--font-size));
  --has-min: max(var(--min-fz-px), var(--font-size));
  font-size: var(--clamp, var(--max));
}
.p-home-present__parts-text-nomal.--var {
  color: #D3654C;
}
.p-home-present__parts-text-number {
  --viewport-from: 375;
  --viewport-to: 1440;
  --min-font-size: 86;
  --max-font-size: 135;
  font-weight: 700;
  line-height: 1;
  color: #D3654C;
}
.p-home-present__parts-text-number *,
.p-home-present__parts-text-number *::before,
.p-home-present__parts-text-number *::after {
  --viewport-unit-converter: 1vw;
  --fz-from: var(--font-size-from, var(--min-font-size));
  --fz-to: var(--font-size-to, var(--max-font-size));
  --fz-slope: (var(--fz-to) - var(--fz-from)) / (var(--viewport-to) - var(--viewport-from)) * 100;
  --fz-intercept: (var(--viewport-to) * var(--fz-from) - var(--viewport-from) * var(--fz-to)) / (var(--viewport-to) - var(--viewport-from));
  --font-size: calc(var(--fz-slope) * var(--viewport-unit-converter) + var(--fz-intercept) * 1px);
  --min-fz-px: calc(var(--min-font-size) * 1px);
  --max-fz-px: calc(var(--max-font-size) * 1px);
  --clamp: clamp(var(--min-fz-px), var(--font-size), var(--max-fz-px));
  --max: var(--has-max, var(--min));
  --min: var(--has-min, var(--font-size));
  --has-max: min(var(--max-fz-px), var(--font-size));
  --has-min: max(var(--min-fz-px), var(--font-size));
  font-size: var(--clamp, var(--max));
}
.p-home-present__parts-text-medium {
  --viewport-from: 375;
  --viewport-to: 1440;
  --min-font-size: 43;
  --max-font-size: 71;
  font-weight: 700;
  color: #D3654C;
}
.p-home-present__parts-text-medium *,
.p-home-present__parts-text-medium *::before,
.p-home-present__parts-text-medium *::after {
  --viewport-unit-converter: 1vw;
  --fz-from: var(--font-size-from, var(--min-font-size));
  --fz-to: var(--font-size-to, var(--max-font-size));
  --fz-slope: (var(--fz-to) - var(--fz-from)) / (var(--viewport-to) - var(--viewport-from)) * 100;
  --fz-intercept: (var(--viewport-to) * var(--fz-from) - var(--viewport-from) * var(--fz-to)) / (var(--viewport-to) - var(--viewport-from));
  --font-size: calc(var(--fz-slope) * var(--viewport-unit-converter) + var(--fz-intercept) * 1px);
  --min-fz-px: calc(var(--min-font-size) * 1px);
  --max-fz-px: calc(var(--max-font-size) * 1px);
  --clamp: clamp(var(--min-fz-px), var(--font-size), var(--max-fz-px));
  --max: var(--has-max, var(--min));
  --min: var(--has-min, var(--font-size));
  --has-max: min(var(--max-fz-px), var(--font-size));
  --has-min: max(var(--min-fz-px), var(--font-size));
  font-size: var(--clamp, var(--max));
}
.p-home-present__parts-text-large {
  --viewport-from: 375;
  --viewport-to: 1440;
  --min-font-size: 40;
  --max-font-size: 65;
  font-weight: 700;
}
.p-home-present__parts-text-large *,
.p-home-present__parts-text-large *::before,
.p-home-present__parts-text-large *::after {
  --viewport-unit-converter: 1vw;
  --fz-from: var(--font-size-from, var(--min-font-size));
  --fz-to: var(--font-size-to, var(--max-font-size));
  --fz-slope: (var(--fz-to) - var(--fz-from)) / (var(--viewport-to) - var(--viewport-from)) * 100;
  --fz-intercept: (var(--viewport-to) * var(--fz-from) - var(--viewport-from) * var(--fz-to)) / (var(--viewport-to) - var(--viewport-from));
  --font-size: calc(var(--fz-slope) * var(--viewport-unit-converter) + var(--fz-intercept) * 1px);
  --min-fz-px: calc(var(--min-font-size) * 1px);
  --max-fz-px: calc(var(--max-font-size) * 1px);
  --clamp: clamp(var(--min-fz-px), var(--font-size), var(--max-fz-px));
  --max: var(--has-max, var(--min));
  --min: var(--has-min, var(--font-size));
  --has-max: min(var(--max-fz-px), var(--font-size));
  --has-min: max(var(--min-fz-px), var(--font-size));
  font-size: var(--clamp, var(--max));
}
.p-home-present__parts-text-symbol {
  --viewport-from: 375;
  --viewport-to: 1440;
  --min-font-size: 50;
  --max-font-size: 80;
  font-weight: 700;
}
.p-home-present__parts-text-symbol *,
.p-home-present__parts-text-symbol *::before,
.p-home-present__parts-text-symbol *::after {
  --viewport-unit-converter: 1vw;
  --fz-from: var(--font-size-from, var(--min-font-size));
  --fz-to: var(--font-size-to, var(--max-font-size));
  --fz-slope: (var(--fz-to) - var(--fz-from)) / (var(--viewport-to) - var(--viewport-from)) * 100;
  --fz-intercept: (var(--viewport-to) * var(--fz-from) - var(--viewport-from) * var(--fz-to)) / (var(--viewport-to) - var(--viewport-from));
  --font-size: calc(var(--fz-slope) * var(--viewport-unit-converter) + var(--fz-intercept) * 1px);
  --min-fz-px: calc(var(--min-font-size) * 1px);
  --max-fz-px: calc(var(--max-font-size) * 1px);
  --clamp: clamp(var(--min-fz-px), var(--font-size), var(--max-fz-px));
  --max: var(--has-max, var(--min));
  --min: var(--has-min, var(--font-size));
  --has-max: min(var(--max-fz-px), var(--font-size));
  --has-min: max(var(--min-fz-px), var(--font-size));
  font-size: var(--clamp, var(--max));
}
.p-home-present__parts-text-notes {
  display: none;
  font-size: 12px;
}
@media (min-width: 768px) {
  .p-home-present__parts-text-notes {
    display: block;
  }
}
.p-home-present__parts-text-notes.--sp {
  display: none;
}
@media (max-width: 767px) {
  .p-home-present__parts-text-notes.--sp {
    display: block;
    text-align: center;
  }
}

.p-home-band {
  width: 100%;
  overflow: hidden;
  display: flex;
  border-top: 3px solid #000000;
  border-bottom: 3px solid #000000;
  padding: 20px 0 10px;
  background: #FFFFFF;
}
@media (min-width: 768px) {
  .p-home-band {
    padding: 40px 0 20px;
  }
}
.p-home-band__loop-texts {
  display: flex;
  white-space: nowrap;
  flex-shrink: 0;
  padding-left: 20px;
  animation: band-loop 20s linear infinite;
}
.p-home-band__loop-text {
  --viewport-from: 375;
  --viewport-to: 1440;
  --min-font-size: 50;
  --max-font-size: 80;
  font-family: "Josefin Sans", sans-serif;
  font-optical-sizing: auto;
  font-weight: 700;
  font-style: normal;
  color: #E2DB5E;
  line-height: 1;
}
.p-home-band__loop-text *,
.p-home-band__loop-text *::before,
.p-home-band__loop-text *::after {
  --viewport-unit-converter: 1vw;
  --fz-from: var(--font-size-from, var(--min-font-size));
  --fz-to: var(--font-size-to, var(--max-font-size));
  --fz-slope: (var(--fz-to) - var(--fz-from)) / (var(--viewport-to) - var(--viewport-from)) * 100;
  --fz-intercept: (var(--viewport-to) * var(--fz-from) - var(--viewport-from) * var(--fz-to)) / (var(--viewport-to) - var(--viewport-from));
  --font-size: calc(var(--fz-slope) * var(--viewport-unit-converter) + var(--fz-intercept) * 1px);
  --min-fz-px: calc(var(--min-font-size) * 1px);
  --max-fz-px: calc(var(--max-font-size) * 1px);
  --clamp: clamp(var(--min-fz-px), var(--font-size), var(--max-fz-px));
  --max: var(--has-max, var(--min));
  --min: var(--has-min, var(--font-size));
  --has-max: min(var(--max-fz-px), var(--font-size));
  --has-min: max(var(--min-fz-px), var(--font-size));
  font-size: var(--clamp, var(--max));
}
.p-home-band__loop-decoration {
  --viewport-from: 375;
  --viewport-to: 1440;
  --min-font-size: 50;
  --max-font-size: 80;
  font-family: "Josefin Sans", sans-serif;
  font-optical-sizing: auto;
  font-weight: 700;
  font-style: normal;
  color: #000000;
}
.p-home-band__loop-decoration *,
.p-home-band__loop-decoration *::before,
.p-home-band__loop-decoration *::after {
  --viewport-unit-converter: 1vw;
  --fz-from: var(--font-size-from, var(--min-font-size));
  --fz-to: var(--font-size-to, var(--max-font-size));
  --fz-slope: (var(--fz-to) - var(--fz-from)) / (var(--viewport-to) - var(--viewport-from)) * 100;
  --fz-intercept: (var(--viewport-to) * var(--fz-from) - var(--viewport-from) * var(--fz-to)) / (var(--viewport-to) - var(--viewport-from));
  --font-size: calc(var(--fz-slope) * var(--viewport-unit-converter) + var(--fz-intercept) * 1px);
  --min-fz-px: calc(var(--min-font-size) * 1px);
  --max-fz-px: calc(var(--max-font-size) * 1px);
  --clamp: clamp(var(--min-fz-px), var(--font-size), var(--max-fz-px));
  --max: var(--has-max, var(--min));
  --min: var(--has-min, var(--font-size));
  --has-max: min(var(--max-fz-px), var(--font-size));
  --has-min: max(var(--min-fz-px), var(--font-size));
  font-size: var(--clamp, var(--max));
}

@keyframes band-loop {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-50%);
  }
}
.p-home-process {
  position: relative;
  background: #ECE3DA;
  z-index: 0;
  padding: 10vw 0 20vw;
}
@media (min-width: 768px) {
  .p-home-process {
    padding: 20vw 0 0;
  }
}
.p-home-process::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  transform: translateY(100%);
  aspect-ratio: 390/80;
  width: 100%;
  background: url(../img/home/process_background_image-sp.png) no-repeat center center/cover;
  z-index: -1;
}
@media (min-width: 768px) {
  .p-home-process::before {
    content: "";
    transform: translateY(60%);
    aspect-ratio: 1440/329;
    background: url(../img/home/process_background_image.png) no-repeat center center/cover;
  }
}
.p-home-process__inner {
  padding: 0 7vw;
}
@media (min-width: 768px) {
  .p-home-process__inner {
    padding: 0 5vw;
  }
}
.p-home-process__wrap {
  display: block;
  margin-top: 42px;
}
@media (min-width: 768px) {
  .p-home-process__wrap {
    display: flex;
    align-items: flex-start;
    margin-top: 0px;
  }
}
.p-home-process__title {
  position: static;
}
.p-home-process__title:after {
  content: "";
  width: 35px;
  aspect-ratio: 35/36;
  background: url(../img/home/title_apple_icon.svg) no-repeat center center/auto 100%;
  order: -1;
}
@media (min-width: 768px) {
  .p-home-process__title {
    position: sticky;
    top: 10%;
    left: 0;
  }
}
.p-home-process__contents {
  width: 100%;
  margin-top: 40px;
}
@media (min-width: 768px) {
  .p-home-process__contents {
    width: 464px;
    margin-top: 0;
  }
}
.p-home-process__content {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.p-home-process__content:not(:first-of-type) {
  margin-top: 30px;
}
.p-home-process__content::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 7px;
  height: 100%;
  background: #FFFFFF;
  z-index: -1;
}
@media (min-width: 768px) {
  .p-home-process__content {
    gap: 30px;
  }
}
.p-home-process__content-item {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 16px 0 15px;
  background: #FFFFFF;
  border: 1px solid #000000;
  border-radius: 10px;
}
@media (min-width: 768px) {
  .p-home-process__content-item {
    padding: 24px 0;
  }
}
.p-home-process__content-item:last-of-type {
  grid-column: 2;
}
.p-home-process__content-item.--first {
  background: #A0E8CC;
}
@media (max-width: 767px) {
  .p-home-process__content-item.--first {
    padding: 11px 0 10px;
  }
}
.p-home-process__content-item.--last {
  background: #E2DB5E;
}
@media (max-width: 767px) {
  .p-home-process__content-item.--last {
    padding: 11px 0 10px;
  }
}
.p-home-process__content-item-text {
  display: block;
  text-align: center;
  --viewport-from: 375;
  --viewport-to: 1440;
  --min-font-size: 15;
  --max-font-size: 16;
}
.p-home-process__content-item-text *,
.p-home-process__content-item-text *::before,
.p-home-process__content-item-text *::after {
  --viewport-unit-converter: 1vw;
  --fz-from: var(--font-size-from, var(--min-font-size));
  --fz-to: var(--font-size-to, var(--max-font-size));
  --fz-slope: (var(--fz-to) - var(--fz-from)) / (var(--viewport-to) - var(--viewport-from)) * 100;
  --fz-intercept: (var(--viewport-to) * var(--fz-from) - var(--viewport-from) * var(--fz-to)) / (var(--viewport-to) - var(--viewport-from));
  --font-size: calc(var(--fz-slope) * var(--viewport-unit-converter) + var(--fz-intercept) * 1px);
  --min-fz-px: calc(var(--min-font-size) * 1px);
  --max-fz-px: calc(var(--max-font-size) * 1px);
  --clamp: clamp(var(--min-fz-px), var(--font-size), var(--max-fz-px));
  --max: var(--has-max, var(--min));
  --min: var(--has-min, var(--font-size));
  --has-max: min(var(--max-fz-px), var(--font-size));
  --has-min: max(var(--min-fz-px), var(--font-size));
  font-size: var(--clamp, var(--max));
}
.p-home-process__content-item-bold {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 20px;
  --viewport-from: 375;
  --viewport-to: 1440;
  --min-font-size: 17;
  --max-font-size: 20;
  font-weight: 700;
}
.p-home-process__content-item-bold *,
.p-home-process__content-item-bold *::before,
.p-home-process__content-item-bold *::after {
  --viewport-unit-converter: 1vw;
  --fz-from: var(--font-size-from, var(--min-font-size));
  --fz-to: var(--font-size-to, var(--max-font-size));
  --fz-slope: (var(--fz-to) - var(--fz-from)) / (var(--viewport-to) - var(--viewport-from)) * 100;
  --fz-intercept: (var(--viewport-to) * var(--fz-from) - var(--viewport-from) * var(--fz-to)) / (var(--viewport-to) - var(--viewport-from));
  --font-size: calc(var(--fz-slope) * var(--viewport-unit-converter) + var(--fz-intercept) * 1px);
  --min-fz-px: calc(var(--min-font-size) * 1px);
  --max-fz-px: calc(var(--max-font-size) * 1px);
  --clamp: clamp(var(--min-fz-px), var(--font-size), var(--max-fz-px));
  --max: var(--has-max, var(--min));
  --min: var(--has-min, var(--font-size));
  --has-max: min(var(--max-fz-px), var(--font-size));
  --has-min: max(var(--min-fz-px), var(--font-size));
  font-size: var(--clamp, var(--max));
}
.p-home-process__content-item-bold::after {
  content: "";
  display: block;
  width: 100%;
}
.p-home-process__content-item-bold.--first::after {
  content: "";
  aspect-ratio: 61/42;
  width: 43px;
  background: url(../img/home/process_icon01.png) no-repeat center center/cover;
}
@media (min-width: 768px) {
  .p-home-process__content-item-bold.--first::after {
    content: "";
    width: 61px;
  }
}
.p-home-process__content-item-bold.--last::after {
  content: "";
  aspect-ratio: 38/46;
  width: 27px;
  background: url(../img/home/process_icon02.png) no-repeat center center/cover;
}
@media (min-width: 768px) {
  .p-home-process__content-item-bold.--last::after {
    content: "";
    width: 38px;
  }
}
.p-home-process__content-item-line {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translateY(-50%) translateX(-50%);
  width: 7px;
  height: 250%;
  background: #FFFFFF;
  z-index: -1;
}
.p-home-process__content-item-line.--arrow::before {
  content: "";
  position: absolute;
  bottom: -9px;
  left: 50%;
  transform: translateX(-50%);
  clip-path: polygon(50% 100%, 0 0, 100% 0);
  aspect-ratio: 20/17;
  width: 20px;
  background: #FFFFFF;
}
.p-home-process__content-item-line.--arrow.--long {
  height: 350%;
}
@media (max-width: 767px) {
  .p-home-process__content-item-line.--arrow.--long {
    top: 70%;
  }
}
.p-home-process__content-item-line.--right {
  top: 50%;
  left: -25%;
  transform: translateY(-50%) translateX(0);
  width: 50%;
  height: 7px;
}
.p-home-process__content-item-line.--right::before {
  content: "";
  position: absolute;
  bottom: -5px;
  left: 0;
  transform: translateX(-50%);
  clip-path: polygon(0 50%, 100% 0, 100% 100%);
  aspect-ratio: 20/17;
  width: 20px;
  background: #FFFFFF;
}
.p-home-process__content-item-line.--short {
  height: 250%;
}
@media (min-width: 768px) {
  .p-home-process__content-item-line {
    height: 300%;
  }
}
.p-home-process__content-item-character {
  position: absolute;
  bottom: -80%;
  left: 0;
  width: 100%;
  height: 100%;
}
.p-home-process__content-item-character::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  aspect-ratio: 70/55;
  width: 58px;
  background: url(../img/home/process_house_image.png) no-repeat center center/cover;
}
.p-home-process__content-item-character::after {
  content: "";
  position: absolute;
  bottom: 0;
  right: 0;
  aspect-ratio: 82/68;
  width: 58px;
  background: url(../img/home/process_character_image.png) no-repeat center center/cover;
}
@media (min-width: 768px) {
  .p-home-process__content-item-character {
    bottom: -100%;
  }
  .p-home-process__content-item-character::before {
    content: "";
    width: 70px;
  }
  .p-home-process__content-item-character::after {
    content: "";
    width: 82px;
  }
}
.p-home-process__second-content {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  -moz-column-gap: 48px;
       column-gap: 48px;
  row-gap: 20px;
  margin-top: 20px;
}
@media (min-width: 768px) {
  .p-home-process__second-content {
    -moz-column-gap: 70px;
         column-gap: 70px;
    margin-top: 30px;
    row-gap: 30px;
  }
}
.p-home-process__text-area {
  width: 100%;
  margin-top: 67px;
}
@media (min-width: 768px) {
  .p-home-process__text-area {
    width: 629px;
    margin: 114px auto 0;
  }
}
.p-home-process__text-list {
  margin-top: 17px;
}
.p-home-process__text-item {
  position: relative;
}
.p-home-process__text-item::before {
  content: "";
  position: absolute;
  top: 10px;
  left: -4%;
  width: 4px;
  height: 4px;
  aspect-ratio: 1/1;
  border-radius: 50%;
  background: #000000;
}
.p-home-process__text-item-notes {
  display: block;
}
.p-home-process__text-area-title {
  font-size: 15px;
}
.p-home-process__text-notes {
  display: block;
  margin-top: 17px;
}

.p-home-movie {
  padding: 30vw 0 0;
  background: #FFFFFF;
}
@media (min-width: 768px) {
  .p-home-movie {
    padding: 20vw 0 0;
  }
}
.p-home-movie__decoration {
  max-width: 350px;
  margin: 0 auto;
  transform: rotate(-3deg);
}
.p-home-movie__decoration img {
  width: 100%;
  max-width: 100%;
  height: auto;
}
@media (max-width: 767px) {
  .p-home-movie__decoration {
    width: 60%;
  }
}
.p-home-movie__module {
  position: relative;
  cursor: pointer;
  margin-top: 30px;
}
.p-home-movie__module img {
  width: 100%;
  max-width: 100%;
  height: auto;
}
.p-home-movie__module-button {
  position: absolute;
  top: 45%;
  left: 50%;
  display: block;
  transform: translateX(-50%);
  width: 100%;
  aspect-ratio: 1/1;
  width: 30px;
  border-radius: 50%;
  background: #777777;
  opacity: 0.75;
}
.p-home-movie__module-button::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translateY(-50%) translateX(-50%);
  aspect-ratio: 1/1;
  width: 10px;
  clip-path: polygon(0 0, 0% 100%, 100% 50%);
  background: #FFFFFF;
}
@media (min-width: 768px) {
  .p-home-movie__module-button {
    width: 58px;
  }
  .p-home-movie__module-button::before {
    content: "";
    width: 20px;
  }
}

.p-home-contact {
  padding: 30vw 0 10vw;
  background: #FFFFFF;
}
@media (min-width: 768px) {
  .p-home-contact {
    padding: 15vw 0 20vw;
  }
}
.p-home-contact__inner {
  padding: 0 7vw;
}
@media (min-width: 768px) {
  .p-home-contact__inner {
    padding: 0 5vw;
  }
}
.p-home-contact__title:after {
  content: "";
  width: 35px;
  aspect-ratio: 35/40;
  background: url(../img/home/title_acorn_icon.svg) no-repeat center center/auto 100%;
  order: -1;
}
@media (min-width: 768px) {
  .p-home-contact__form {
    margin: 135px auto 0 auto;
  }
}
.p-home-contact__details {
  display: block;
}
@media (min-width: 768px) {
  .p-home-contact__details {
    display: grid;
    grid-template-columns: 210px auto;
  }
}
.p-home-contact__term {
  font-size: 16px;
  margin-top: 30px;
  padding: 16px 0;
}
.p-home-contact__required {
  color: #FF0000;
}
.p-home-contact__input {
  font-size: 16px;
  margin-top: 0px;
  align-self: center;
}
@media (min-width: 768px) {
  .p-home-contact__input {
    margin-top: 30px;
  }
}
.p-home-contact__input input::-moz-placeholder {
  color: #ACACAC;
  opacity: 1;
}
.p-home-contact__input input::placeholder {
  color: #ACACAC;
  opacity: 1;
}
.p-home-contact__input input[type=text], .p-home-contact__input input[type=tel], .p-home-contact__input input[type=email] {
  font-size: 16px;
  min-height: 40px;
  padding: 0 16px;
  background: #FFFFFF;
  border: 1px solid #DDDDDD;
}
@media (min-width: 768px) {
  .p-home-contact__input input[type=text], .p-home-contact__input input[type=tel], .p-home-contact__input input[type=email] {
    min-height: 60px;
  }
}
.p-home-contact__input .--w-full {
  width: 100%;
}
.p-home-contact__input .--w-small {
  width: 100px;
}
.p-home-contact__input input[type=tel], .p-home-contact__input input[type=email] {
  width: 100%;
}
.p-home-contact__input textarea {
  font-size: 16px;
  width: 100%;
  padding: 16px;
  background: #FFFFFF;
  border: 1px solid #DDDDDD;
}
.p-home-contact__input textarea::-moz-placeholder {
  color: #ACACAC;
  opacity: 1;
}
.p-home-contact__input textarea::placeholder {
  color: #ACACAC;
  opacity: 1;
}
.p-home-contact__input select {
  font-size: 16px;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  min-width: 72px;
  min-height: 40px;
  padding: 0 16px;
  background: url(../img/common/ic_select_arrow.svg) no-repeat center right 16px/8px auto;
  background-color: #FFFFFF;
  border: 1px solid #DDDDDD;
}
@media (min-width: 768px) {
  .p-home-contact__input select {
    min-height: 60px;
  }
}
.p-home-contact__birthday-group, .p-home-contact__build-group {
  width: 100%;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 16px 1em;
}
.p-home-contact .wpcf7-response-output {
  display: none !important;
}
.p-home-contact .wpcf7 form.sent .wpcf7-response-output,
.p-home-contact .wpcf7 form.invalid .wpcf7-response-output,
.p-home-contact .wpcf7 form.failed .wpcf7-response-output {
  display: block !important;
}
.p-home-contact .wpcf7-radio {
  display: inline-flex;
  align-items: center;
  gap: 20px;
}
.p-home-contact .wpcf7-radio input[type=radio] {
  display: none;
}
.p-home-contact .wpcf7-radio input[type=radio]:checked + span::after {
  background: #90D5BA;
}
.p-home-contact .wpcf7-radio label {
  font-size: 16px;
  display: flex;
  align-items: center;
  cursor: pointer;
}
.p-home-contact .wpcf7-radio .wpcf7-list-item-label {
  display: flex;
  align-items: center;
  position: relative;
}
.p-home-contact .wpcf7-radio .wpcf7-list-item-label::before {
  content: "";
  width: 16px;
  height: 16px;
  margin-right: 3px;
  border: 1px solid #000000;
  border-radius: 50%;
  box-sizing: border-box;
  display: inline-block;
  transition: all 0.2s ease;
}
.p-home-contact .wpcf7-radio .wpcf7-list-item-label::after {
  content: "";
  width: 10px;
  height: 10px;
  background: #FFFFFF;
  border-radius: 50%;
  box-sizing: border-box;
  display: inline-block;
  transition: all 0.2s ease;
  position: absolute;
  left: 3px;
}
.p-home-contact .wpcf7-list-item {
  margin: 0;
}
.p-home-contact .wpcf7-not-valid-tip {
  font-size: 14px;
  color: #FF0000;
  margin-top: 5px;
}
.p-home-contact__policy {
  font-size: 14px;
  text-align: center;
  margin-top: 75px;
}
.p-home-contact__policy a {
  text-decoration: underline;
}
.p-home-contact__recaptcha {
  font-size: 14px;
  color: #707070;
  text-align: center;
  margin-top: 15px;
}
.p-home-contact__recaptcha a {
  color: #707070;
  text-decoration: underline;
}
.p-home-contact__submit {
  text-align: center;
  margin-top: 65px;
}
.p-home-contact__submit input {
  font-size: 16px;
  min-width: 206px;
  min-height: 56px;
  background: #E2DB5E;
  border: 1px solid #000000;
  border-radius: 9999px;
}
.p-home-contact .wpcf7-form-control {
  cursor: pointer;
  transition: 0.3s cubic-bezier(0.12, 0, 0.39, 0);
}
@media (hover: hover) and (pointer: fine) {
  .p-home-contact .wpcf7-form-control:hover {
    opacity: 0.6;
  }
}
@media (-ms-high-contrast: none), (-ms-high-contrast: active) {
  .p-home-contact .wpcf7-form-control:hover {
    opacity: 0.6;
  }
}
.p-home-contact .wpcf7-spinner {
  display: none !important;
}

.wpcf7 span[data-name=birth-year] span.wpcf7-not-valid-tip {
  display: none;
}

.wpcf7 span[data-name=birth-month] span.wpcf7-not-valid-tip {
  display: none;
}

.wpcf7 span[data-name=birth-day] span.wpcf7-not-valid-tip {
  display: none;
}

.wpcf7 div.p-home-contact__birthday-group:has(span[data-name=birth-year]) + div,
div.p-home-contact__birthday-group:has(span[data-name=birth-month]) + div,
div.p-home-contact__birthday-group:has(span[data-name=birth-day]) + div {
  display: none;
}

.wpcf7 div:has(span[data-name=birth-year] span.wpcf7-not-valid-tip) + div,
div:has(span[data-name=birth-month] span.wpcf7-not-valid-tip) + div,
div:has(span[data-name=birth-day] span.wpcf7-not-valid-tip) + div {
  display: block;
}

.wpcf7 span[data-name=buildings-age] span.wpcf7-not-valid-tip {
  display: none;
}

.wpcf7 span[data-name=floor-plan] span.wpcf7-not-valid-tip {
  display: none;
}

.wpcf7 span[data-name=reform-history] span.wpcf7-not-valid-tip {
  display: none;
}

.wpcf7 div.p-home-contact__build-group:has(span[data-name=buildings-age]) + div,
div.p-home-contact__build-group:has(span[data-name=floor-plan]) + div,
div.p-home-contact__build-group:has(span[data-name=reform-history]) + div {
  display: none;
}

.wpcf7 div:has(span[data-name=buildings-age] span.wpcf7-not-valid-tip) + div,
div:has(span[data-name=floor-plan] span.wpcf7-not-valid-tip) + div,
div:has(span[data-name=reform-history] span.wpcf7-not-valid-tip) + div {
  display: block;
}

.grecaptcha-badge {
  visibility: hidden;
}

/*------------------------------------
  thanks
-------------------------------------*/
.p-thanks-head {
  position: relative;
  width: 100%;
  height: 403px;
  z-index: 0;
  background: #FFFFFF;
}
.p-thanks-head::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 403px;
  background: url(../img/common/back_ground_image-sp.png) no-repeat center bottom/cover;
}
@media (min-width: 768px) {
  .p-thanks-head {
    height: 413px;
  }
  .p-thanks-head::before {
    content: "";
    width: 100%;
    height: 413px;
    background: url(../img/common/back_ground_image.png) no-repeat center bottom/cover;
  }
}
.p-thanks-head__wrap {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 403px;
}
@media (min-width: 768px) {
  .p-thanks-head__wrap {
    height: 413px;
  }
}
.p-thanks-head__info {
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
}
.p-thanks-head__characters {
  position: relative;
  width: 100%;
  aspect-ratio: 119/127;
  max-width: 119px;
  margin: 0 auto;
  pointer-events: none;
}
.p-thanks-head__character {
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  opacity: 0;
  animation: switchImages 2s infinite steps(1);
}
.p-thanks-head__character:nth-child(1) {
  animation-delay: 0s;
}
.p-thanks-head__character:nth-child(2) {
  animation-delay: 1s;
}
.p-thanks-head__character img {
  width: 100%;
  max-width: 100%;
  height: auto;
}
@media (min-width: 768px) {
  .p-thanks-head__character {
    bottom: 0;
    max-width: 119px;
  }
}
.p-thanks-head__inner {
  padding: 0 7vw;
}
@media (min-width: 768px) {
  .p-thanks-head__inner {
    padding: 0 5vw;
  }
}
.p-thanks-head__contents {
  position: relative;
}
.p-thanks-head__title {
  text-align: center;
}
.p-thanks-head__title-ja {
  --viewport-from: 375;
  --viewport-to: 1440;
  --min-font-size: 15;
  --max-font-size: 16;
}
.p-thanks-head__title-ja *,
.p-thanks-head__title-ja *::before,
.p-thanks-head__title-ja *::after {
  --viewport-unit-converter: 1vw;
  --fz-from: var(--font-size-from, var(--min-font-size));
  --fz-to: var(--font-size-to, var(--max-font-size));
  --fz-slope: (var(--fz-to) - var(--fz-from)) / (var(--viewport-to) - var(--viewport-from)) * 100;
  --fz-intercept: (var(--viewport-to) * var(--fz-from) - var(--viewport-from) * var(--fz-to)) / (var(--viewport-to) - var(--viewport-from));
  --font-size: calc(var(--fz-slope) * var(--viewport-unit-converter) + var(--fz-intercept) * 1px);
  --min-fz-px: calc(var(--min-font-size) * 1px);
  --max-fz-px: calc(var(--max-font-size) * 1px);
  --clamp: clamp(var(--min-fz-px), var(--font-size), var(--max-fz-px));
  --max: var(--has-max, var(--min));
  --min: var(--has-min, var(--font-size));
  --has-max: min(var(--max-fz-px), var(--font-size));
  --has-min: max(var(--min-fz-px), var(--font-size));
  font-size: var(--clamp, var(--max));
}
.p-thanks-head__title-en {
  --viewport-from: 375;
  --viewport-to: 1440;
  --min-font-size: 42;
  --max-font-size: 85;
  font-family: "Josefin Sans", sans-serif;
  font-optical-sizing: auto;
  font-weight: 700;
  font-style: normal;
}
.p-thanks-head__title-en *,
.p-thanks-head__title-en *::before,
.p-thanks-head__title-en *::after {
  --viewport-unit-converter: 1vw;
  --fz-from: var(--font-size-from, var(--min-font-size));
  --fz-to: var(--font-size-to, var(--max-font-size));
  --fz-slope: (var(--fz-to) - var(--fz-from)) / (var(--viewport-to) - var(--viewport-from)) * 100;
  --fz-intercept: (var(--viewport-to) * var(--fz-from) - var(--viewport-from) * var(--fz-to)) / (var(--viewport-to) - var(--viewport-from));
  --font-size: calc(var(--fz-slope) * var(--viewport-unit-converter) + var(--fz-intercept) * 1px);
  --min-fz-px: calc(var(--min-font-size) * 1px);
  --max-fz-px: calc(var(--max-font-size) * 1px);
  --clamp: clamp(var(--min-fz-px), var(--font-size), var(--max-fz-px));
  --max: var(--has-max, var(--min));
  --min: var(--has-min, var(--font-size));
  --has-max: min(var(--max-fz-px), var(--font-size));
  --has-min: max(var(--min-fz-px), var(--font-size));
  font-size: var(--clamp, var(--max));
}
@media (min-width: 768px) {
  .p-thanks-head__title-en {
    margin-top: 15px;
  }
}

@keyframes switchImages {
  0% {
    opacity: 1;
  }
  49% {
    opacity: 1;
  }
  50% {
    opacity: 0;
  }
  100% {
    opacity: 0;
  }
}
.p-thanks-bottom {
  position: relative;
  padding: 10vw 0 10vw;
  background: #FFFFFF;
  z-index: 0;
}
@media (min-width: 768px) {
  .p-thanks-bottom {
    padding: 5vw 0 10vw;
  }
}
.p-thanks-bottom__inner {
  padding: 0 7vw;
}
@media (min-width: 768px) {
  .p-thanks-bottom__inner {
    padding: 0 5vw;
  }
}
.p-thanks-bottom__caption {
  text-align: left;
  line-height: 2;
}
@media (min-width: 768px) {
  .p-thanks-bottom__caption {
    text-align: center;
  }
}
.p-thanks-bottom__button {
  text-align: center;
  margin-top: 24px;
}
@media (min-width: 768px) {
  .p-thanks-bottom__button {
    margin-top: 80px;
  }
}

/*------------------------------------
  notfound
-------------------------------------*/
.p-notfound-head {
  position: relative;
  width: 100%;
  height: 403px;
  z-index: 0;
  background: #FFFFFF;
}
.p-notfound-head::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 403px;
  background: url(../img/common/back_ground_image-sp.png) no-repeat center bottom/cover;
}
@media (min-width: 768px) {
  .p-notfound-head {
    height: 413px;
  }
  .p-notfound-head::before {
    content: "";
    width: 100%;
    height: 413px;
    background: url(../img/common/back_ground_image.png) no-repeat center bottom/cover;
  }
}
.p-notfound-head__wrap {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 403px;
}
@media (min-width: 768px) {
  .p-notfound-head__wrap {
    height: 413px;
  }
}
.p-notfound-head__info {
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
}
.p-notfound-head__characters {
  position: relative;
  width: 100%;
  aspect-ratio: 119/126;
  max-width: 119px;
  margin: 0 auto;
  pointer-events: none;
}
.p-notfound-head__character {
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  animation: gaanShake 3s linear infinite;
  transform-origin: center;
}
.p-notfound-head__character:nth-child(2) {
  animation: hatFloat 3s ease-in-out infinite;
}
.p-notfound-head__character img {
  width: 100%;
  max-width: 100%;
  height: auto;
}
@media (min-width: 768px) {
  .p-notfound-head__character {
    bottom: 0;
    max-width: 119px;
  }
}
.p-notfound-head__inner {
  padding: 0 7vw;
}
@media (min-width: 768px) {
  .p-notfound-head__inner {
    padding: 0 5vw;
  }
}
.p-notfound-head__contents {
  position: relative;
}
.p-notfound-head__title {
  text-align: center;
}
.p-notfound-head__title-small {
  --viewport-from: 375;
  --viewport-to: 1440;
  --min-font-size: 15;
  --max-font-size: 17;
  font-family: "Josefin Sans", sans-serif;
  font-optical-sizing: auto;
  font-weight: 700;
  font-style: normal;
}
.p-notfound-head__title-small *,
.p-notfound-head__title-small *::before,
.p-notfound-head__title-small *::after {
  --viewport-unit-converter: 1vw;
  --fz-from: var(--font-size-from, var(--min-font-size));
  --fz-to: var(--font-size-to, var(--max-font-size));
  --fz-slope: (var(--fz-to) - var(--fz-from)) / (var(--viewport-to) - var(--viewport-from)) * 100;
  --fz-intercept: (var(--viewport-to) * var(--fz-from) - var(--viewport-from) * var(--fz-to)) / (var(--viewport-to) - var(--viewport-from));
  --font-size: calc(var(--fz-slope) * var(--viewport-unit-converter) + var(--fz-intercept) * 1px);
  --min-fz-px: calc(var(--min-font-size) * 1px);
  --max-fz-px: calc(var(--max-font-size) * 1px);
  --clamp: clamp(var(--min-fz-px), var(--font-size), var(--max-fz-px));
  --max: var(--has-max, var(--min));
  --min: var(--has-min, var(--font-size));
  --has-max: min(var(--max-fz-px), var(--font-size));
  --has-min: max(var(--min-fz-px), var(--font-size));
  font-size: var(--clamp, var(--max));
}
.p-notfound-head__title-large {
  --viewport-from: 375;
  --viewport-to: 1440;
  --min-font-size: 42;
  --max-font-size: 85;
  font-family: "Josefin Sans", sans-serif;
  font-optical-sizing: auto;
  font-weight: 700;
  font-style: normal;
}
.p-notfound-head__title-large *,
.p-notfound-head__title-large *::before,
.p-notfound-head__title-large *::after {
  --viewport-unit-converter: 1vw;
  --fz-from: var(--font-size-from, var(--min-font-size));
  --fz-to: var(--font-size-to, var(--max-font-size));
  --fz-slope: (var(--fz-to) - var(--fz-from)) / (var(--viewport-to) - var(--viewport-from)) * 100;
  --fz-intercept: (var(--viewport-to) * var(--fz-from) - var(--viewport-from) * var(--fz-to)) / (var(--viewport-to) - var(--viewport-from));
  --font-size: calc(var(--fz-slope) * var(--viewport-unit-converter) + var(--fz-intercept) * 1px);
  --min-fz-px: calc(var(--min-font-size) * 1px);
  --max-fz-px: calc(var(--max-font-size) * 1px);
  --clamp: clamp(var(--min-fz-px), var(--font-size), var(--max-fz-px));
  --max: var(--has-max, var(--min));
  --min: var(--has-min, var(--font-size));
  --has-max: min(var(--max-fz-px), var(--font-size));
  --has-min: max(var(--min-fz-px), var(--font-size));
  font-size: var(--clamp, var(--max));
}
@media (min-width: 768px) {
  .p-notfound-head__title-large {
    margin-top: 15px;
  }
}

@keyframes gaanShake {
  /* ------- 0〜40%（2秒）高速ブルブル ------- */
  0% {
    transform: translateX(-50%) translateX(0);
  }
  2% {
    transform: translateX(-50%) translateX(-1px);
  }
  4% {
    transform: translateX(-50%) translateX(1px);
  }
  6% {
    transform: translateX(-50%) translateX(-1px);
  }
  8% {
    transform: translateX(-50%) translateX(1px);
  }
  10% {
    transform: translateX(-50%) translateX(-1px);
  }
  12% {
    transform: translateX(-50%) translateX(1px);
  }
  14% {
    transform: translateX(-50%) translateX(-1px);
  }
  16% {
    transform: translateX(-50%) translateX(1px);
  }
  18% {
    transform: translateX(-50%) translateX(-1px);
  }
  20% {
    transform: translateX(-50%) translateX(1px);
  }
  22% {
    transform: translateX(-50%) translateX(-1px);
  }
  24% {
    transform: translateX(-50%) translateX(1px);
  }
  26% {
    transform: translateX(-50%) translateX(-1px);
  }
  28% {
    transform: translateX(-50%) translateX(1px);
  }
  30% {
    transform: translateX(-50%) translateX(-1px);
  }
  32% {
    transform: translateX(-50%) translateX(1px);
  }
  36% {
    transform: translateX(-50%) translateX(-1px);
  }
  40% {
    transform: translateX(-50%) translateX(0);
  }
  /* ------- 40〜100%（3秒停止） ------- */
  100% {
    transform: translateX(-50%) translateX(0);
  }
}
@keyframes hatFloat {
  0% {
    transform: translateX(-50%) translate(0, 0);
  }
  20% {
    transform: translateX(-50%) translate(3px, -25px);
  }
  40% {
    transform: translateX(-50%) translate(0, 0);
  }
  100% {
    transform: translateX(-50%) translate(0, 0);
  }
}
.p-notfound-bottom {
  position: relative;
  padding: 10vw 0 10vw;
  background: #FFFFFF;
  z-index: 0;
}
@media (min-width: 768px) {
  .p-notfound-bottom {
    padding: 5vw 0 10vw;
  }
}
.p-notfound-bottom__inner {
  padding: 0 7vw;
}
@media (min-width: 768px) {
  .p-notfound-bottom__inner {
    padding: 0 5vw;
  }
}
.p-notfound-bottom__caption {
  text-align: left;
  line-height: 2;
}
@media (min-width: 768px) {
  .p-notfound-bottom__caption {
    text-align: center;
  }
}
.p-notfound-bottom__button {
  text-align: center;
  margin-top: 24px;
}
@media (min-width: 768px) {
  .p-notfound-bottom__button {
    margin-top: 80px;
  }
}

/*----------------------------------------------------
  margin-top
----------------------------------------------------*/
.u-mt10 {
  margin-top: 10px;
}

.u-mt20 {
  margin-top: 20px;
}

.u-mt30 {
  margin-top: 30px;
}

.u-mt40 {
  margin-top: 40px;
}

.u-mt50 {
  margin-top: 50px;
}

.u-mt60 {
  margin-top: 60px;
}

.u-mt70 {
  margin-top: 70px;
}

.u-mt80 {
  margin-top: 80px;
}

.u-mt90 {
  margin-top: 90px;
}

.u-mt100 {
  margin-top: 100px;
}

@media (min-width: 1080px) {
  .u-mt10-lg-min {
    margin-top: 10px;
  }
}

@media (min-width: 1080px) {
  .u-mt20-lg-min {
    margin-top: 20px;
  }
}

@media (min-width: 1080px) {
  .u-mt30-lg-min {
    margin-top: 30px;
  }
}

@media (min-width: 1080px) {
  .u-mt40-lg-min {
    margin-top: 40px;
  }
}

@media (min-width: 1080px) {
  .u-mt50-lg-min {
    margin-top: 50px;
  }
}

@media (min-width: 1080px) {
  .u-mt60-lg-min {
    margin-top: 60px;
  }
}

@media (min-width: 1080px) {
  .u-mt70-lg-min {
    margin-top: 70px;
  }
}

@media (min-width: 1080px) {
  .u-mt80-lg-min {
    margin-top: 80px;
  }
}

@media (min-width: 1080px) {
  .u-mt90-lg-min {
    margin-top: 90px;
  }
}

@media (min-width: 1080px) {
  .u-mt100-lg-min {
    margin-top: 100px;
  }
}

/*----------------------------------------------------
  margin-bottom
----------------------------------------------------*/
.u-mb10 {
  margin-bottom: 10px;
}

.u-mb20 {
  margin-bottom: 20px;
}

.u-mb30 {
  margin-bottom: 30px;
}

.u-mb40 {
  margin-bottom: 40px;
}

.u-mb50 {
  margin-bottom: 50px;
}

.u-mb60 {
  margin-bottom: 60px;
}

.u-mb70 {
  margin-bottom: 70px;
}

.u-mb80 {
  margin-bottom: 80px;
}

.u-mb90 {
  margin-bottom: 90px;
}

.u-mb100 {
  margin-bottom: 100px;
}

@media (min-width: 1080px) {
  .u-mb10-lg-min {
    margin-bottom: 10px;
  }
}

@media (min-width: 1080px) {
  .u-mb20-lg-min {
    margin-bottom: 20px;
  }
}

@media (min-width: 1080px) {
  .u-mb30-lg-min {
    margin-bottom: 30px;
  }
}

@media (min-width: 1080px) {
  .u-mb40-lg-min {
    margin-bottom: 40px;
  }
}

@media (min-width: 1080px) {
  .u-mb50-lg-min {
    margin-bottom: 50px;
  }
}

@media (min-width: 1080px) {
  .u-mb60-lg-min {
    margin-bottom: 60px;
  }
}

@media (min-width: 1080px) {
  .u-mb70-lg-min {
    margin-bottom: 70px;
  }
}

@media (min-width: 1080px) {
  .u-mb80-lg-min {
    margin-bottom: 80px;
  }
}

@media (min-width: 1080px) {
  .u-mb90-lg-min {
    margin-bottom: 90px;
  }
}

@media (min-width: 1080px) {
  .u-mb100-lg-min {
    margin-bottom: 100px;
  }
}

/*----------------------------------------------------
  margin-left
----------------------------------------------------*/
.u-ml10 {
  margin-left: 10px;
}

.u-ml20 {
  margin-left: 20px;
}

.u-ml30 {
  margin-left: 30px;
}

.u-ml40 {
  margin-left: 40px;
}

.u-ml50 {
  margin-left: 50px;
}

.u-ml60 {
  margin-left: 60px;
}

.u-ml70 {
  margin-left: 70px;
}

.u-ml80 {
  margin-left: 80px;
}

.u-ml90 {
  margin-left: 90px;
}

.u-ml100 {
  margin-left: 100px;
}

@media (min-width: 1080px) {
  .u-ml10-lg-min {
    margin-left: 10px;
  }
}

@media (min-width: 1080px) {
  .u-ml20-lg-min {
    margin-left: 20px;
  }
}

@media (min-width: 1080px) {
  .u-ml30-lg-min {
    margin-left: 30px;
  }
}

@media (min-width: 1080px) {
  .u-ml40-lg-min {
    margin-left: 40px;
  }
}

@media (min-width: 1080px) {
  .u-ml50-lg-min {
    margin-left: 50px;
  }
}

@media (min-width: 1080px) {
  .u-ml60-lg-min {
    margin-left: 60px;
  }
}

@media (min-width: 1080px) {
  .u-ml70-lg-min {
    margin-left: 70px;
  }
}

@media (min-width: 1080px) {
  .u-ml80-lg-min {
    margin-left: 80px;
  }
}

@media (min-width: 1080px) {
  .u-ml90-lg-min {
    margin-left: 90px;
  }
}

@media (min-width: 1080px) {
  .u-ml100-lg-min {
    margin-left: 100px;
  }
}

/*----------------------------------------------------
  margin-right
----------------------------------------------------*/
.u-mr10 {
  margin-right: 10px;
}

.u-mr20 {
  margin-right: 20px;
}

.u-mr30 {
  margin-right: 30px;
}

.u-mr40 {
  margin-right: 40px;
}

.u-mr50 {
  margin-right: 50px;
}

.u-mr60 {
  margin-right: 60px;
}

.u-mr70 {
  margin-right: 70px;
}

.u-mr80 {
  margin-right: 80px;
}

.u-mr90 {
  margin-right: 90px;
}

.u-mr100 {
  margin-right: 100px;
}

@media (min-width: 1080px) {
  .u-mr10-lg-min {
    margin-right: 10px;
  }
}

@media (min-width: 1080px) {
  .u-mr20-lg-min {
    margin-right: 20px;
  }
}

@media (min-width: 1080px) {
  .u-mr30-lg-min {
    margin-right: 30px;
  }
}

@media (min-width: 1080px) {
  .u-mr40-lg-min {
    margin-right: 40px;
  }
}

@media (min-width: 1080px) {
  .u-mr50-lg-min {
    margin-right: 50px;
  }
}

@media (min-width: 1080px) {
  .u-mr60-lg-min {
    margin-right: 60px;
  }
}

@media (min-width: 1080px) {
  .u-mr70-lg-min {
    margin-right: 70px;
  }
}

@media (min-width: 1080px) {
  .u-mr80-lg-min {
    margin-right: 80px;
  }
}

@media (min-width: 1080px) {
  .u-mr90-lg-min {
    margin-right: 90px;
  }
}

@media (min-width: 1080px) {
  .u-mr100-lg-min {
    margin-right: 100px;
  }
}

/*----------------------------------------------------
  テキスト
----------------------------------------------------*/
.u-text-center {
  text-align: center;
}

.u-text-left {
  text-align: left;
}

.u-text-right {
  text-align: right;
}

.u-text-justify {
  text-align: justify;
  text-justify: inter-ideograph;
  word-break: break-all;
}

/*----------------------------------------------------
  display: none系
----------------------------------------------------*/
@media (max-width: 767px) {
  .u-dn-sp-only {
    display: none;
  }
}

@media (min-width: 768px) {
  .u-dn-md {
    display: none;
  }
}/*# sourceMappingURL=style.css.map */