@charset "UTF-8";
:root {
  --breakpoint-sm: 560px;
  --breakpoint-md: 768px;
  --breakpoint-lg: 1024px;
  --breakpoint-xl: 1280px;
  --breakpoint-2xl: 1366px;
  --inner-slim: 980px;
  --inner-base: 1080px;
  --inner-wide: 1360px;
  --tw-gradient-from-position: 0%;
  --tw-gradient-to-position: 100%;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  --view-width: 100vw;
  --font-family-base: "Zen Kaku Gothic New", sans-serif;;
  --font-family-mono: "DM Mono", monospace;;
  --font-size-base: 1.6rem;
  --line-height-base: 1.8;
  --gutter: 2rem;
  --color-text: #3a3a3a;
  --color-primary: #333;
}

/***
    The new CSS reset - version 1.11.3 (last updated 25.08.2024)
    GitHub page: https://github.com/elad2412/the-new-css-reset
***/
/*
    Remove all the styles of the "User-Agent-Stylesheet", except for the 'display' property
    - The "symbol *" part is to solve Firefox SVG sprite bug
    - The "html" element is excluded, otherwise a bug in Chrome breaks the CSS hyphens property (https://github.com/elad2412/the-new-css-reset/issues/36)
 */
*:where(:not(html, iframe, canvas, img, svg, video, audio, svg *, symbol *)) {
  all: unset;
  display: revert;
}

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

/* Fix mobile Safari increase font-size on landscape mode */
html {
  -moz-text-size-adjust: none;
  -webkit-text-size-adjust: none;
  text-size-adjust: none;
}

/* Reapply the pointer cursor for anchor tags */
a,
button {
  cursor: revert;
}

/* Remove list styles (bullets/numbers) */
ol,
ul,
menu,
summary {
  list-style: none;
}

/* Firefox: solve issue where nested ordered lists continue numbering from parent (https://bugzilla.mozilla.org/show_bug.cgi?id=1881517) */
ol {
  counter-reset: revert;
}

/* For images to not be able to exceed their container */
img {
  max-inline-size: 100%;
  max-block-size: 100%;
}

/* removes spacing between cells in tables */
table {
  border-collapse: collapse;
}

/* Safari - solving issue when using user-select:none on the <body> text input doesn't working */
input,
textarea {
  -webkit-user-select: auto;
}

/* revert the 'white-space' property for textarea elements on Safari */
textarea {
  white-space: revert;
}

/* minimum style to allow to style meter element */
meter {
  -webkit-appearance: revert;
  appearance: revert;
}

/* preformatted text - use only for this feature */
:where(pre) {
  all: revert;
  box-sizing: border-box;
}

/* reset default text opacity of input placeholder */
::placeholder {
  color: unset;
}

/* fix the feature of 'hidden' attribute.
 display:revert; revert to element instead of attribute */
:where([hidden]) {
  display: none;
}

/* revert for bug in Chromium browsers
 - fix for the content editable attribute will work properly.
 - webkit-user-select: auto; added for Safari in case of using user-select:none on wrapper element */
:where([contenteditable]:not([contenteditable=false])) {
  -moz-user-modify: read-write;
  -webkit-user-modify: read-write;
  overflow-wrap: break-word;
  -webkit-line-break: after-white-space;
  -webkit-user-select: auto;
}

/* apply back the draggable feature - exist only in Chromium and Safari */
:where([draggable=true]) {
  -webkit-user-drag: element;
}

/* Revert Modal native behavior */
:where(dialog:modal) {
  all: revert;
  box-sizing: border-box;
}

/* Remove details summary webkit styles */
::-webkit-details-marker {
  display: none;
}

html {
  font-size: 0.5475em;
}
@media (width >= 480px) {
  html {
    font-size: 0.625em;
  }
}

body {
  background: #F7F6E0 url("./img/bg-dotted.svg") repeat left top/2.2rem 2.2rem;
  font: var(--font-size-base)/var(--line-height-base) var(--font-family-base);
  color: var(--color-text);
}
body.is-open, body.is-modal-open {
  overflow: hidden;
}

* {
  letter-spacing: 0.03em;
  outline-color: var(--color-primary);
}

input,
select,
option,
textarea,
button {
  box-sizing: border-box;
  font: var(--font-size-base)/var(--line-height-base) var(--font-family-base);
  color: var(--color-text);
}

img {
  height: auto;
  max-width: 100%;
  vertical-align: bottom;
  image-rendering: smooth;
}

svg {
  width: 100%;
}

:where(button, [type=button], [type=reset], [type=submit]) {
  padding: 0;
  background: transparent;
  border: none;
  touch-action: manipulation;
}

:any-link,
button,
[type=button],
[type=reset],
[type=submit],
label[for],
select,
summary,
[role=tab],
[role=button] {
  cursor: pointer;
}

:focus:not(:focus-visible) {
  outline: none;
}

i:has(> svg) {
  line-height: 0;
}

a:not([class]) {
  color: inherit;
}

.l-aside__logo {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0 1.6rem;
  padding-top: 39.6vh;
  padding-left: 0.3rem;
}
.l-aside__logo::before {
  content: "";
  width: 2.4rem;
  height: 2.4rem;
  background-color: #000;
}
.l-aside__logo span {
  font-size: 2.4rem;
  font-weight: bold;
  color: #000;
  letter-spacing: 0.13em;
}
.l-aside__cta {
  position: relative;
  padding-top: 37vh;
}
.l-aside__cta::before {
  content: "";
  position: absolute;
  left: -2.3rem;
  bottom: -0.8rem;
  width: 9rem;
  aspect-ratio: 181/204;
  background: url("./img/cat-reqbtn.png") no-repeat center center/contain;
  animation: sway01 3s infinite ease-in-out;
}
.l-aside__btn {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 28rem;
  height: 6.4rem;
  background-color: #FFE100;
  background-image: url("./img/icon-reqbtn.png");
  background-position: center right 3.3rem;
  background-repeat: no-repeat;
  background-size: 3.2rem 3.2rem;
  border-radius: 5px;
  box-shadow: 0 0.3rem 0.6rem rgba(0, 0, 0, 0.25);
  font-size: 1.6rem;
  font-weight: 500;
}
@media (any-hover: hover) {
  .l-aside__btn {
    transition: 0.3s opacity ease-in-out;
  }
  .l-aside__btn:hover {
    opacity: 0.6;
  }
}
@media (width >= 1280px) {
  .l-aside {
    display: flex;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 10;
    flex-direction: column;
    align-items: center;
    width: calc(var(--view-width) * 0.5 - 24rem);
    height: 100vh;
  }
}
@media (width >= 1300px) {
  .l-aside__cta {
    padding-left: 9.2rem;
  }
  .l-aside__cta::before {
    left: 2.3rem;
  }
}
@media (width < 1280px) {
  .l-aside {
    display: none;
  }
}

.l-company {
  padding-top: 6.9rem;
  padding-bottom: 12.1rem;
}
.l-company .c-hgrp h2::after {
  content: "";
  position: absolute;
  left: 50%;
  translate: -50% 2rem;
  bottom: -2rem;
  width: 140%;
  aspect-ratio: 386/140;
  background: url("./img/title-company.png") no-repeat center center/cover;
}

.l-contact {
  padding: 7.5rem 2rem 8rem;
  background-color: #EBE8E5;
}
.l-contact .c-hgrp h2::after {
  content: "";
  position: absolute;
  left: 50%;
  translate: -50% 2rem;
  bottom: -2rem;
  width: 166%;
  aspect-ratio: 538/140;
  background: url("./img/title-contact.png") no-repeat center center/cover;
}

.l-container {
  max-width: 480px;
  background-color: #fff;
  box-shadow: 0 0.3rem 1rem rgba(32, 32, 32, 0.05);
  margin-inline: auto;
}

.l-copy {
  position: relative;
  padding-top: 9.9rem;
  padding-bottom: 9.3rem;
  background-image: url("./img/copy-top.png"), url("./img/copy-bottom.png");
  background-position: center top 4rem, center bottom 4.9rem;
  background-repeat: no-repeat, no-repeat;
  background-size: 100% auto, 100% auto;
  font-weight: 500;
  color: #303030;
  text-align: center;
  line-height: 2;
  margin-inline: 2rem;
}
.l-copy::before {
  content: "";
  position: absolute;
  top: 4rem;
  left: 0;
  width: 8rem;
  aspect-ratio: 16/17;
  background: url("./img/keito-copy.png") no-repeat center center/cover;
}
.l-copy::after {
  content: "";
  position: absolute;
  bottom: 4.9rem;
  right: 0;
  width: 8rem;
  aspect-ratio: 16/17;
  background: url("./img/cat-copy.png") no-repeat center center/cover;
  transform-origin: bottom center;
  animation: cat-copy-yurayura 7s ease-in-out infinite;
}

@keyframes cat-copy-yurayura {
  0% {
    transform: rotate(0deg) translateY(0);
  }
  20% {
    transform: rotate(4.5deg) translateY(-0.2rem);
  }
  40% {
    transform: rotate(-4deg) translateY(0.2rem);
  }
  60% {
    transform: rotate(4deg) translateY(-0.15rem);
  }
  80% {
    transform: rotate(-4.5deg) translateY(0.15rem);
  }
  100% {
    transform: rotate(0deg) translateY(0);
  }
}
.l-feature {
  padding-top: 7rem;
}
.l-feature .c-hgrp h2::after {
  content: "";
  position: absolute;
  left: 50%;
  translate: -50% 2rem;
  bottom: -2rem;
  width: 140%;
  aspect-ratio: 29/7;
  background: url("./img/title-feature.png") no-repeat center center/cover;
}

.l-fixed {
  display: grid;
  position: fixed;
  left: calc(50% - min(48rem, 100%) * 0.5);
  bottom: 0;
  z-index: 85;
  grid-template-columns: 351fr 127fr;
  gap: 0 0.2rem;
  width: min(48rem, 100%);
}
.l-fixed a {
  display: flex;
  height: 9rem;
  background-color: #FFE100;
  border-radius: 5px;
}
.l-fixed__btn01 {
  position: relative;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 0.5rem 0;
  padding-top: 1.3rem;
  padding-left: 5.3rem;
}
.l-fixed__cat {
  position: absolute;
  left: -0.2rem;
  bottom: -1.6rem;
  width: 9.1rem;
}
.l-fixed__btn02 {
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 1rem 0;
}
@media (width >= 768px) {
  .l-fixed {
    left: calc(50% - min(48rem, 100%) * 0.5 - 14.4rem);
  }
}
@media (width >= 1280px) {
  .l-fixed {
    left: calc(50% - min(48rem, 100%) * 0.5);
  }
}

.l-footer {
  position: relative;
  padding-top: 9.8rem;
  padding-bottom: 1rem;
  background-color: #f6f6f4;
}
.l-footer__logo {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0 1.6rem;
}
.l-footer__logo::before {
  content: "";
  width: 2.4rem;
  height: 2.4rem;
  margin-left: -1rem;
  background-color: #000;
}
.l-footer__logo span {
  font-size: 2.4rem;
  font-weight: bold;
  color: #000;
  letter-spacing: 0.13em;
}
.l-footer__pagetop {
  position: absolute;
  top: -7.6rem;
  right: 1.2rem;
}
.l-footer__pagetop span {
  display: block;
  font-size: 1.4rem;
  letter-spacing: 0.05em;
}
.l-footer__pagetop i {
  display: block;
  padding-left: 6.4rem;
  margin-top: -0.8rem;
}
.l-footer__copyright {
  padding-top: 6.7rem;
  font-size: 1.2rem;
  text-align: center;
  letter-spacing: 0.05em;
}

.l-idea {
  padding-top: 7rem;
  padding-bottom: 8.1rem;
  background-color: #f9f9f9;
}
.l-idea .c-hgrp h2::after {
  content: "";
  position: absolute;
  left: 50%;
  translate: -50% 2rem;
  bottom: -2.5rem;
  width: 120%;
  aspect-ratio: 400/70;
  background: url("./img/title-idea.png") no-repeat center center/cover;
}

.l-loading {
  display: flex;
  position: fixed;
  inset: 0;
  z-index: 999;
  justify-content: center;
  align-items: center;
  background-color: #fff;
}
.l-loading__logo {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0 1.6rem;
}
.l-loading__square {
  width: 2.4rem;
  height: 2.4rem;
  background-color: #000;
  opacity: 0;
}
.l-loading__txts {
  display: flex;
  font-size: 2.4rem;
  font-weight: bold;
  color: #000;
  letter-spacing: 0.13em;
}
.l-loading__txts span {
  display: block;
  width: 0;
  overflow: hidden;
}

.l-model {
  position: relative;
  padding-top: 7rem;
}
.l-model .c-hgrp h2::after {
  content: "";
  position: absolute;
  left: 50%;
  translate: -50% 2rem;
  bottom: -2.5rem;
  width: 140%;
  aspect-ratio: 36/7;
  background: url("./img/title-model.png") no-repeat center center/cover;
}

.l-mv {
  display: grid;
  position: relative;
  grid-template-columns: 1fr 1fr;
}
.l-mv__col1 {
  grid-column: 1;
  grid-row: 1;
}
.l-mv__col2 {
  grid-column: 2;
  grid-row: 1;
}
.l-mv__col3 {
  grid-column: 1;
  grid-row: 2;
}
.l-mv__col4 {
  grid-column: 1;
  grid-row: 3;
}
.l-mv__col5 {
  grid-column: 2;
  grid-row: 3;
}
.l-mv__ttl {
  display: flex;
  position: relative;
  z-index: 1;
  align-items: center;
  grid-column: 2;
  grid-row: 2;
  padding-top: 3.5rem;
}
.l-mv__ttl figure {
  translate: -1.7rem 0;
}

.l-nav {
  position: fixed;
  top: 0;
  z-index: 90;
}
.l-nav__illust {
  position: absolute;
  bottom: 13.6rem;
  right: 3.1rem;
  width: 12.8rem;
  pointer-events: none;
}
@media (width >= 768px) {
  .l-nav {
    display: flex;
    right: 0;
    justify-content: flex-end;
    align-items: center;
    width: calc(var(--view-width) - 48rem);
    height: 100vh;
    pointer-events: none;
  }
  .l-nav__container {
    pointer-events: all;
  }
  .l-nav__list {
    display: grid;
    grid-template-columns: 100%;
    gap: 5.4vh 0;
    width: -webkit-fit-content;
    width: fit-content;
    padding-left: 7rem;
    padding-right: 2rem;
    margin-inline: auto;
  }
  .l-nav__list li {
    position: relative;
    font-weight: 500;
  }
  .l-nav__list li.is-active::before {
    content: "";
    position: absolute;
    left: -5.6rem;
    width: 5.5rem;
    aspect-ratio: 111/80;
    background: url("./img/icon-nav-active.png") no-repeat center center/cover;
  }
  .l-nav__illust {
    bottom: 2.7rem;
    right: 2.2rem;
    width: 12rem;
  }
}
@media (width >= 1280px) {
  .l-nav {
    justify-content: center;
    width: calc(var(--view-width) * 0.5 - 24rem);
  }
  .l-nav__list {
    padding-left: 1.4rem;
    padding-right: 0;
  }
  .l-nav__list li.is-active::before {
    left: -6.6rem;
  }
  .l-nav__illust {
    bottom: 5.4rem;
    right: 5.3rem;
    width: 18rem;
  }
}
@media (width < 768px) {
  .l-nav {
    left: 0;
    width: 100%;
    height: 100vh;
    background: url("./img/bg-nav-dotted.svg") repeat left top/2.2rem 2.2rem;
    opacity: 0;
    visibility: hidden;
    transition-duration: 0.3s;
    transition-property: visibility, opacity;
  }
  .l-nav:is(body.is-open *) {
    opacity: 1;
    visibility: visible;
  }
  .l-nav__container {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100%;
  }
  .l-nav__list {
    display: grid;
    grid-template-columns: 100%;
    gap: 3.6rem 0;
  }
  .l-nav__list li {
    text-align: center;
  }
}

.l-promise {
  padding-top: 7rem;
}
.l-promise .c-hgrp h2::after {
  content: "";
  position: absolute;
  left: 50%;
  translate: -50% 2rem;
  bottom: -2.5rem;
  width: 140%;
  aspect-ratio: 36/7;
  background: url("./img/title-promise.png") no-repeat center center/cover;
}
.l-promise .c-prev-btn,
.l-promise .c-next-btn {
  top: 39.5rem;
}
.l-promise .c-prev-btn {
  left: 2rem;
}
.l-promise .c-next-btn {
  right: 2rem;
}

.l-suggest {
  padding-top: 3rem;
  padding-bottom: 8.1rem;
  background: url("./img/bg-dotted.svg") repeat left top/2.2rem 2.2rem;
}
.l-suggest .c-hgrp h2::after {
  content: "";
  position: absolute;
  left: 50%;
  translate: -50% 2rem;
  bottom: -2rem;
  width: 120%;
  aspect-ratio: 400/111;
  background: url("./img/title-suggestion.png") no-repeat center center/cover;
}

.l-works {
  margin-top: -0.1rem;
}
.l-works .c-hgrp h2::after {
  content: "";
  position: absolute;
  left: 50%;
  translate: -50% 2rem;
  bottom: -2.5rem;
  width: 130%;
  aspect-ratio: 36/7;
  background: url("./img/title-works.png") no-repeat center center/cover;
}

.l-wrapper {
  padding-bottom: 9rem;
}
@media (width >= 768px) {
  .l-wrapper {
    padding-right: 28.8rem;
  }
}
@media (width >= 1280px) {
  .l-wrapper {
    padding-right: 0;
  }
}

.c-suggest-box__hgrp {
  display: flex;
  align-items: center;
  gap: 0 2.2rem;
}
.c-suggest-box__hgrp p {
  font-family: "DM Mono", monospace;;
  font-size: 2.4rem;
  font-weight: 500;
  color: #EFD75E;
  letter-spacing: 0.05em;
}
.c-suggest-box__hgrp h3 {
  font-size: 1.8rem;
  font-weight: 500;
  letter-spacing: 0.03em;
}
.c-suggest-box__cont {
  position: relative;
  z-index: 0;
  padding: 2.4rem 1.5rem;
  margin-top: 0.3rem;
  background-color: #F0EEC6;
  border-radius: 5px;
  box-shadow: 0 0.4rem 0.4rem rgba(0, 0, 0, 0.25);
}
.c-suggest-box__cat {
  position: absolute;
  z-index: 0;
}

.c-idea-box {
  padding: 3.2rem 0 2.8rem;
  background-color: #fff;
  border-radius: 5px;
  box-shadow: 0 0 1rem rgba(239, 215, 94, 0.25);
}
.c-idea-box__btn {
  display: grid;
  align-items: center;
  grid-template-columns: 4rem 1fr;
  gap: 0 3.2rem;
  padding-left: 3.2rem;
}
.c-idea-box__cont {
  position: relative;
  max-width: 320px;
  padding-top: 5.7rem;
  margin-inline: auto;
}
.c-idea-box__cont::before {
  content: "";
  position: absolute;
  top: 3.3rem;
  left: 0;
  width: 100%;
  height: 0.1rem;
  background-color: rgba(255, 243, 195, 0.6);
}

.c-feature-box__ttl {
  display: flex;
  align-items: center;
  gap: 0 1.2rem;
  padding-left: 5.1rem;
  padding-bottom: 0.7rem;
}
.c-feature-box__ttl i {
  font-family: "DM Mono", monospace;;
  font-size: 3.6rem;
  font-weight: 500;
  color: #FFE100;
  letter-spacing: 0.05em;
}
.c-feature-box__ttl span {
  font-weight: 500;
}

.c-model-box {
  padding: 4.1rem 2rem 5.6rem;
  background-color: #f6f6f4;
}
.c-model-box__ttl {
  padding-bottom: 0.8rem;
  margin-bottom: 4rem;
  border-bottom: 1px solid #aeaaa7;
  font-family: "DM Mono", monospace;;
  font-size: 2rem;
  font-weight: 500;
  color: #EFD75E;
  letter-spacing: 0.05em;
}
.c-model-box__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem 2.4rem;
  padding-top: 2.6rem;
}
.c-model-box__tags li {
  font-size: 1.4rem;
  color: #aeaaa7;
  letter-spacing: 0.05em;
}
.c-model-box__map {
  padding-top: 4.2rem;
  padding-bottom: 0.3rem;
}
.c-model-box__map iframe {
  width: 100%;
}

.c-menu-btn {
  position: fixed;
  top: 2rem;
  right: 2rem;
  z-index: 99;
  width: 4.4rem;
  height: 4.4rem;
}
.c-menu-btn::before, .c-menu-btn::after {
  content: "";
  position: absolute;
  z-index: 1;
  height: 0.1rem;
  background-color: #fff;
}
.c-menu-btn::before {
  top: 0;
  right: 0;
  width: 2.5rem;
}
.c-menu-btn::after {
  top: 1.6rem;
  right: 0;
  width: 4.4rem;
}
.c-menu-btn:is(body.is-open *)::before, .c-menu-btn:is(body.is-open *)::after {
  top: 1.6rem;
  width: 4.4rem;
  background-color: #000;
}
.c-menu-btn:is(body.is-open *)::before {
  rotate: 45deg;
}
.c-menu-btn:is(body.is-open *)::after {
  rotate: -45deg;
}
@media (width >= 768px) {
  .c-menu-btn {
    display: none;
  }
}

.c-prev-btn,
.c-next-btn {
  position: absolute;
  top: 50%;
  z-index: 10;
  width: 5rem;
  height: 5rem;
  translate: 0 -50%;
  cursor: pointer;
}

.c-prev-btn {
  left: 0.8rem;
}

.c-next-btn {
  right: 0.8rem;
}

.c-model-btn {
  position: relative;
  width: 100%;
  padding-top: 1.4rem;
  padding-bottom: 2.1rem;
  cursor: pointer;
  background-color: #F0EEC6;
}
.c-model-btn__toggle {
  display: flex;
  position: absolute;
  top: 50%;
  right: 2rem;
  justify-content: center;
  align-items: center;
  width: 2.6rem;
  height: 2.6rem;
  translate: 0 -50%;
}
.c-model-btn__toggle::before, .c-model-btn__toggle::after {
  content: "";
  position: absolute;
  width: 2.6rem;
  height: 0.1rem;
  background-color: #aeaaa7;
}
.c-model-btn__toggle::before {
  rotate: 90deg;
  transition-duration: 0.3s;
  transition-property: rotate;
}
.c-model-btn__ttl {
  position: relative;
  width: -webkit-fit-content;
  width: fit-content;
  font-size: 2rem;
  font-weight: 500;
  margin-inline: auto;
}
.c-model-btn__ttl::before {
  content: "";
  position: absolute;
  top: 0.2rem;
  left: -5.1rem;
  width: 3.2rem;
  height: 3.2rem;
  background: url("./img/icon-model.png") no-repeat center center/cover;
}
.c-model-btn__txt {
  width: -webkit-fit-content;
  width: fit-content;
  padding-top: 0.4rem;
  font-weight: 500;
  margin-inline: auto;
}
.c-model-btn.is-open .c-model-btn__toggle::before {
  rotate: 0deg;
}

.c-requst-btn {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 6.4rem;
  background-color: #FFE100;
  background-image: url("./img/icon-reqbtn.png");
  background-position: center right 3.3rem;
  background-repeat: no-repeat;
  background-size: 3.2rem 3.2rem;
  border-radius: 5px;
  box-shadow: 0 0.3rem 0.6rem rgba(0, 0, 0, 0.25);
  font-size: 1.6rem;
  font-weight: 500;
}

.c-form-btn {
  display: flex;
  position: relative;
  justify-content: center;
  align-items: center;
  height: 12rem;
  background-color: #9d9d9d;
  border-radius: 5px;
  box-shadow: 0 0.4rem 0.4rem rgba(0, 0, 0, 0.25);
  cursor: pointer;
}
.c-form-btn span {
  position: relative;
  z-index: 1;
  font-weight: 500;
  color: #fff;
  text-align: center;
  line-height: 2;
}
.c-form-btn figure {
  display: flex;
  position: absolute;
  inset: 0;
  z-index: 0;
  justify-content: center;
  align-items: center;
}
.c-form-btn.is-active {
  background-color: #F0EEC6;
}
.c-form-btn.is-active span {
  color: #303030;
}

.c-hgrp > p {
  opacity: 0;
  font-family: "DM Mono", monospace;;
  font-size: 2rem;
  font-weight: 500;
  color: #EFD75E;
  text-align: center;
  letter-spacing: 0.05em;
  transition-duration: 0.5s;
  transition-property: translate, opacity;
  translate: 0 2rem;
}
.c-hgrp > p:is(.is-inview *) {
  opacity: 1;
  translate: 0 0;
}
.c-hgrp > h2 {
  position: relative;
  z-index: 1;
  width: -webkit-fit-content;
  width: fit-content;
  margin-inline: auto;
}
.c-hgrp > h2::after {
  opacity: 0;
  transition-delay: 0.2s;
  transition-duration: 0.5s;
  transition-property: translate, opacity;
  translate: -50% 2rem;
}
.c-hgrp > h2 span {
  display: block;
  position: relative;
  z-index: 1;
  width: -webkit-fit-content;
  width: fit-content;
  opacity: 0;
  font-size: 2.4rem;
  font-weight: 500;
  letter-spacing: 0.05em;
  line-height: 1.6666666667;
  margin-inline: auto;
  translate: 0 2rem;
  transition-delay: 0.5s;
  transition-duration: 0.5s;
  transition-property: translate, opacity;
}
.c-hgrp > h2:is(.is-inview *) span {
  opacity: 1;
  translate: 0 0;
}
.c-hgrp > h2:is(.is-inview *)::after {
  translate: -50% 0%;
  opacity: 1;
}

.c-work-hgrp > p {
  font-family: "DM Mono", monospace;;
  font-size: 2rem;
  font-weight: 500;
  color: #EFD75E;
  text-align: center;
  letter-spacing: 0.05em;
}
.c-work-hgrp > h3 {
  padding-top: 1.2rem;
  font-size: 2rem;
  font-weight: 500;
  text-align: center;
  letter-spacing: 0.05em;
}

.c-mask-img {
  -webkit-mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0));
  mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0));
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
}

.c-company-table {
  width: 100%;
}
.c-company-table th {
  width: 11.8rem;
  font-weight: 500;
  line-height: 2;
}
.c-company-table td {
  width: auto;
  line-height: 2;
}
.c-company-table th,
.c-company-table td {
  padding-block: 3.8rem 3.7rem;
}
.c-company-table tr + tr {
  border-top: 1px solid #EBE8E5;
}
.c-company-table li {
  position: relative;
  padding-left: 1.5em;
}
.c-company-table li::before {
  content: "・";
  position: absolute;
  left: 0;
}
.c-company-table dt {
  position: relative;
  padding-left: 1.5em;
  color: #4b5774;
}
.c-company-table dt::before {
  content: "・";
  position: absolute;
  left: 0;
}
.c-company-table dd {
  padding-left: 1.5em;
}

.c-fadein {
  opacity: 0;
  translate: 0 2rem;
  transition-duration: 0.5s;
  transition-property: opacity, translate;
}
.c-fadein.is-inview {
  opacity: 1;
  translate: 0 0;
}

.c-blurin {
  opacity: 0;
  filter: blur(2rem);
  scale: 0.95;
  transition-duration: 0.7s;
  transition-property: opacity, filter, scale;
}
.c-blurin.is-inview {
  opacity: 1;
  filter: blur(0);
  scale: 1;
}

.c-sway01 {
  animation: sway01 3s infinite ease-in-out;
}

@keyframes sway01 {
  0% {
    transform: rotate(0deg) translateY(0);
  }
  25% {
    transform: rotate(3deg) translateY(-0.1rem);
  }
  50% {
    transform: rotate(-3deg) translateY(0.1rem);
  }
  75% {
    transform: rotate(2deg) translateY(-0.05rem);
  }
  100% {
    transform: rotate(0deg) translateY(0);
  }
}
.c-sway02 {
  transform-origin: center bottom;
  animation: sway02 5s infinite ease-in-out;
}

@keyframes sway02 {
  0% {
    transform: rotate(0deg) translateY(0);
  }
  15% {
    transform: rotate(6deg) translateY(-0.3rem);
  }
  30% {
    transform: rotate(-6deg) translateY(0.3rem);
  }
  45% {
    transform: rotate(4deg) translateY(-0.2rem);
  }
  60% {
    transform: rotate(-4deg) translateY(0.2rem);
  }
  75% {
    transform: rotate(2deg) translateY(-0.1rem);
  }
  90% {
    transform: rotate(-2deg) translateY(0.1rem);
  }
  100% {
    transform: rotate(0deg) translateY(0);
  }
}
.c-sway03 {
  animation: sway03 5s infinite ease-in-out;
}

@keyframes sway03 {
  0% {
    transform: rotate(0deg) translateY(0);
  }
  20% {
    transform: rotate(4.5deg) translateY(-0.2rem);
  }
  40% {
    transform: rotate(-4deg) translateY(0.2rem);
  }
  60% {
    transform: rotate(4deg) translateY(-0.15rem);
  }
  80% {
    transform: rotate(-4.5deg) translateY(0.15rem);
  }
  100% {
    transform: rotate(0deg) translateY(0);
  }
}
.c-sway04 {
  animation: float 4s ease-in-out infinite;
}

@keyframes float {
  0%, 100% {
    transform: translateY(0) rotate(-2deg);
  }
  50% {
    transform: translateY(-1.2rem) rotate(2deg);
  }
}
.visible{
  visibility: visible;
}
.collapse{
  visibility: collapse;
}
.fixed{
  position: fixed;
}
.absolute{
  position: absolute;
}
.relative{
  position: relative;
}
.-bottom-102{
  bottom: -10.200000000000001rem;
}
.-bottom-27{
  bottom: -2.7rem;
}
.-left-99{
  left: -9.9rem;
}
.-right-71{
  right: -7.1rem;
}
.-right-91{
  right: -9.1rem;
}
.right-16{
  right: 1.6rem;
}
.right-50{
  right: 5rem;
}
.top-18{
  top: 1.8rem;
}
.top-20{
  top: 2rem;
}
.top-4{
  top: 0.4rem;
}
.mx-auto{
  margin-left: auto;
  margin-right: auto;
}
.mb-22{
  margin-bottom: 2.2rem;
}
.mb-23{
  margin-bottom: 2.3000000000000003rem;
}
.mb-26{
  margin-bottom: 2.6rem;
}
.mt-18{
  margin-top: 1.8rem;
}
.mt-20{
  margin-top: 2rem;
}
.mt-33{
  margin-top: 3.3000000000000003rem;
}
.mt-34{
  margin-top: 3.4000000000000004rem;
}
.block{
  display: block;
}
.flex{
  display: flex;
}
.table{
  display: table;
}
.grid{
  display: grid;
}
.hidden{
  display: none;
}
.h-0{
  height: 0rem;
}
.h-80{
  height: 8rem;
}
.w-32{
  width: 3.2rem;
}
.w-fit{
  width: -webkit-fit-content;
  width: fit-content;
}
.border-collapse{
  border-collapse: collapse;
}
.translate-x-3{
  --tw-translate-x: 0.30000000000000004rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.translate-y-1{
  --tw-translate-y: 0.1rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.translate-y-3{
  --tw-translate-y: 0.30000000000000004rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.transform{
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.grid-cols-1{
  grid-template-columns: repeat(1, minmax(0, 1fr));
}
.grid-cols-2{
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.flex-wrap{
  flex-wrap: wrap;
}
.items-center{
  align-items: center;
}
.justify-center{
  justify-content: center;
}
.gap-x-11{
  column-gap: 1.1rem;
}
.gap-x-40{
  column-gap: 4rem;
}
.gap-x-8{
  column-gap: 0.8rem;
}
.gap-y-1{
  row-gap: 0.1rem;
}
.gap-y-40{
  row-gap: 4rem;
}
.gap-y-70{
  row-gap: 7rem;
}
.overflow-hidden{
  overflow: hidden;
}
.border{
  border-width: 1px;
}
.bg-beige{
  --tw-bg-opacity: 1;
  background-color: rgb(240 238 198 / var(--tw-bg-opacity, 1));
}
.bg-gray{
  --tw-bg-opacity: 1;
  background-color: rgb(235 232 229 / var(--tw-bg-opacity, 1));
}
.px-8{
  padding-left: 0.8rem;
  padding-right: 0.8rem;
}
.px-gutter{
  padding-left: 2rem;
  padding-right: 2rem;
}
.pb-23{
  padding-bottom: 2.3000000000000003rem;
}
.pb-34{
  padding-bottom: 3.4000000000000004rem;
}
.pb-55{
  padding-bottom: 5.5rem;
}
.pb-56{
  padding-bottom: 5.6000000000000005rem;
}
.pb-75{
  padding-bottom: 7.5rem;
}
.pb-77{
  padding-bottom: 7.7rem;
}
.pb-78{
  padding-bottom: 7.800000000000001rem;
}
.pl-100{
  padding-left: 10rem;
}
.pl-16{
  padding-left: 1.6rem;
}
.pr-100{
  padding-right: 10rem;
}
.pt-20{
  padding-top: 2rem;
}
.pt-23{
  padding-top: 2.3000000000000003rem;
}
.pt-24{
  padding-top: 2.4000000000000004rem;
}
.pt-25{
  padding-top: 2.5rem;
}
.pt-26{
  padding-top: 2.6rem;
}
.pt-32{
  padding-top: 3.2rem;
}
.pt-34{
  padding-top: 3.4000000000000004rem;
}
.pt-37{
  padding-top: 3.7rem;
}
.pt-40{
  padding-top: 4rem;
}
.pt-41{
  padding-top: 4.1000000000000005rem;
}
.pt-42{
  padding-top: 4.2rem;
}
.pt-43{
  padding-top: 4.3rem;
}
.pt-5{
  padding-top: 0.5rem;
}
.pt-56{
  padding-top: 5.6000000000000005rem;
}
.text-center{
  text-align: center;
}
.font-mono{
  font-family: "DM Mono", monospace;;
}
.text-14{
  font-size: 1.4rem;
}
.text-16{
  font-size: 1.6rem;
}
.text-20{
  font-size: 2rem;
}
.text-24{
  font-size: 2.4rem;
}
.font-bold{
  font-weight: 700;
}
.font-medium{
  font-weight: 500;
}
.leading-\[1\.3\]{
  line-height: 1.3;
}
.leading-relaxed{
  line-height: 2;
}
.leading-tight{
  line-height: 1;
}
.tracking-wide{
  letter-spacing: 0.05em;
}
.text-white{
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}
.outline{
  outline-style: solid;
}
.blur{
  --tw-blur: blur(0.8rem);
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.filter{
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.transition{
  transition-property: color, background-color, border-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-text-decoration-color, -webkit-backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-text-decoration-color, -webkit-backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.ease-in-out{
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}


/* ************************************************************************************ */
/* フォーム部分 */
.wpcf7-list-item {
margin: 0 0 1em 0;
}
.wpcf7-list-item {
margin: 0;
  margin: 0 !important;
  display: flex !important;
  align-items: center;
	justify-content: center;
  gap: 8px;
}
form {
overflow: hidden;
}
form ul {
display: block;
  margin: 0;
}
form ul {
margin-top: 5%;
    margin-bottom: 3%;
    flex-wrap: wrap;
}
.item-notice {
width: 100%;
  margin-right: 0;
  margin-left: auto;
  margin-top: 13px;
  line-height: 1.5;
  font-size: 14px !important;
}
.item-notice strong {
font-size: 13px;
  font-weight: bold;
  margin-bottom: 8px;
  display: block;
}
.item-notice p {
font-size: 14px;
}
form ul li:last-of-type {
width: 100%;
}
form ul .item-name {
color: #2C2928;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-direction: row-reverse;
  gap: 16px;
  margin-bottom: 8px;
  font-size: 16px;
  font-weight: 500;
}
form ul .item-name {
font-size: 14px;
}
form ul li:last-of-type .item-form {
width: 100%;
  display: block;
}
form ul li:last-of-type .item-form span {
width: 100%;
  display: block;
}
form ul li:last-of-type input {
width: 100%;
  display: block;
	background: #FFF;
}
form ul li:last-of-type textarea {
width: 100%;
  display: block;
  resize: vertical;
  height: 240px;
	background: #FFF;
}
form ul li:last-of-type textarea {
padding: 16px;
    font-size: 14px;
}
form ul li:last-of-type select {
border: none;
  padding: 8px;
  font-size: 16px;
  letter-spacing: normal;
  box-sizing: border-box;
  background: #fff !important;
}
.section-form__check1 {
text-align: center;
  font-size: 14px;
}
.contact__form ul.form-tab button.active {
color: #186a68;
  border-top: 1px solid #186a68;
  border-bottom: 1px solid #186a68;
}
.submit_btn {
display: block;
  width: 100%;
  color: #000;
  text-align: center;
  border-radius: 100px;
  border: none;
  margin: auto;
  position: relative;
}
.submit_btn:hover {
}
.section-form__check {
text-align: center;
  margin-top: 16px;
  margin-bottom: 48px;
}
.section-form__check {
margin-bottom: 5%;
}
.section-form__check span {
background: none;
}
.submit_btn:after {
position: absolute;
  content: "";
  width: 32px;
  height: 6px;
  top: 50%;
  transform: translateY(-48%);
  right: 24px;
  size: cover !important;
  position: center center !important;
}
.wpcf7-spinner {
display: none !important;
}
li.item-form.itemform_add_search {
display: flex;
  justify-content: space-between;
  display: flex;
  justify-content: space-between;
}
li.item-form.itemform_add_search span {
width: calc(100% - 140px);
}
li.item-form.itemform_add_search span {
width: 100%;
}
.form-caption {
margin-bottom: 120px;
}
.form-caption {
margin-bottom: 32px;
}
.form-caption p {
font-size: 16px;
  text-align: center;
}
.form-caption p {
font-size: 14px;
    text-align: left;
}
.section-form-privacy__cnt {
height: 180px;
  overflow-y: scroll;
  padding: 18px;
  margin-bottom: 32px;
}
.section-form-privacy__cnt h3 {
font-size: 16px;
  border-bottom: 1px solid #ccc;
  padding-bottom: 6px;
  margin-bottom: 12px;
  margin-top: 32px;
}
.section-form-privacy__cnt h3:first-of-type {
margin-top: 0;
}
.section-form-privacy__cnt p {
font-size: 14px;
}
.formError {
z-index: 20 !important;
}
.xdsoft_datetimepicker {
z-index: 21 !important;
}
form ul li:first-of-type, form ul li:last-of-type {
width: 100%;
}
form ul li:first-of-type {
margin-bottom: 16px;
}
form [type=submit] {
font-size: 18px;
}
form [type=submit] {
background: #FFE100;
  max-width: 400px;
  display: block;
  width: 100%;
  text-align: center;
  border: none;
  padding: 16px;
  margin: auto;
  position: relative;
  font-size: 1.6rem;
  letter-spacing: 0.05em;
  font-weight: 400;
  opacity: 1;
  transition: 0.3s;
  color: #303030;
}
.wpcf7-form-control {
border: none;
  padding: 8px;
  font-size: 16px;
  letter-spacing: normal;
  box-sizing: border-box;
  width: 100%;
}
.wpcf7-form-control.wpcf7-radio label {
display: flex;
  gap: 12px;
  cursor: pointer;
}
.wpcf7-form-control.wpcf7-radio label input {
width: 24px;
  height: 24px;
}
.wpcf7-form-control.wpcf7-radio label .wpcf7-list-item-label {
width: calc(100% - 36px);
}
.wpcf7-form-control.wpcf7-radio label .wpcf7-list-item-label {
width: 100%;
}
form * {
font-family: "Zen Kaku Gothic New", serif;
  font-size: 1.4rem;
  font-weight: 400;
  letter-spacing: 0.05em;
  color: #444444;
}
.wpcf7-not-valid-tip {
/*   display: none !important; */
}
.wpcf7-not-valid-tip {
display: none !important;
}
.form__notice {
font-size: 14px;
  margin-top: 16px;
}
.form__notice {
font-size: 12px;
    margin-top: 2%;
}
.privacy-policy-scroll {
background: #FFF;
  padding: 20px 16px;
  max-height: 200px;
  height: 100%;
  margin-top: 24px;
  overflow: hidden scroll;
}
.privacy-policy-scroll::-webkit-scrollbar {
width: 8px;
}
.privacy-policy-scroll::-webkit-scrollbar-thumb {
background: #A7A7A7;
  border-radius: 10px;
}
.privacy-policy-scroll::-webkit-scrollbar-track {
background: #FFF;
}
.privacy-policy-scroll .simplebar-track {
width: 0.3rem;
}
.privacy-policy-scroll .simplebar-scrollbar {
width: 0.3rem;
}
.privacy-policy-scroll .simplebar-scrollbar::before {
width: 0.3rem;
  color: #fff;
  opacity: 1;
}
.privacy-policy-scroll p {
font-size: 14px;
  line-height: 1.71;
}
.item-form.itemform_add_search {
display: flex !important;
  gap: 16px;
}
.item-form.itemform_add_search .wpcf7-form-control-wrap {
width: calc(100% - 96px);
}
span.wpcf7-form-control.wpcf7-radio {
background: unset;
}
span.wpcf7-form-control.wpcf7-radio {
display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.section-form__check2 {
text-align: center;
}
span.wpcf7-form-control.wpcf7-checkbox.wpcf7-validates-as-required {
background: none;
}
span.wpcf7-form-control.wpcf7-checkbox.wpcf7-validates-as-required .wpcf7-list-item-label {
font-size: 14px;
  line-height: 1;
}
.wpcf7-form-control-wrap[data-name=radio-plan] span.wpcf7-list-item {
margin: 0;
}
.wpcf7-form-control.wpcf7-radio label input[type=radio] {
width: 18px;
  height: 18px;
  border: 1px solid #111111;
  border-radius: 50%;
  color: #FFFFFF;
  -moz-appearance: none;
  appearance: none;
  -webkit-appearance: none;
  outline: none;
  cursor: pointer;
}
.wpcf7-form-control.wpcf7-radio label input[type=radio]:checked {
color: #000000 !important;
  box-shadow: inset 0 0 0 4px #FFFFFF;
}
.wpcf7-list-item input[type=radio] {
width: auto !important;
}
.section-form__check2 .wpcf7-list-item {
justify-content: center;
}
.item-req {
background: #FFE100;
  color: #303030;
  text-align: center;
  padding: 5px 21px;
  font-size: 1.4rem;
  font-weight: 400;
  letter-spacing: 0.05em;
	border-radius: 100px;
}
.item-noreq {
background: #B4B4B4;
  color: #fff;
  text-align: center;
  padding: 5px 21px;
  font-size: 1.4rem;
  font-weight: 400;
  letter-spacing: 0.05em;
	border-radius: 100px;
}
.wpcf7c-elm-step1 {
background: #FFE100;
  width: 80px;
  font-size: 1.4rem;
  font-weight: 400;
  text-align: center;
  border: none;
  color: #303030;
}
.reserve-notice {
color: #444444;
  font-size: 1.4rem;
  font-style: normal;
  font-weight: 400;
  line-height: 1.71;
  letter-spacing: 0.05em;
  margin-top: 8px;
}
form [type=submit]:hover {
opacity: 0.5;
    transition: 0.3s;
}
.privacy-box {
color: #444444;
  background: #fff;
  border: none;
  height: 200px;
  overflow-y: auto;
  overflow-x: hidden;
  padding: 16px;
}


/*追加*/
.feature-box__txt {
	position: relative;
	max-height: calc(4em *1.55);
  line-height: 1.5;
	overflow: hidden;
	transition: .4s;
}
.feature-box__txt.active {
max-height: 1000px;
}
.feature-box__txt::after {
content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: calc(3em * 1.5);
	background: linear-gradient(to top, rgba(255, 255, 255, 1), transparent);
opacity: 1;
	pointer-events: none;
	transition: .4s;
}
.feature-box__txt.active::after {
opacity: 0;
}
.feature-box__more {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
	margin-top: 1em;
  width: 100%;
  max-width: 432px;
  height: 45px;
	border-radius: 5px;
  background: #FFE100;
	cursor: pointer;
}
.feature-box__more::before {
	content: "詳しく見る";
  font-size: 1.6rem;
  letter-spacing: 0.03em;
  text-align: center;
  color: #303030;
}

.feature-box__more.active {
  background: #666;
  color: #fff;
}
.feature-box__more.active::before {
	content: "閉じる";
  color: #fff;
}


.xdsoft_time_variant {
	margin-top: 0!important;
}