@charset "UTF-8";
:root {
  /* Design */
  --design-widith-sm: 375;
  --design-widith-md: 768;
  --design-widith-lg: 1186;
  /* Color */
  --c-white: #fff;
  --c-black: #212121;
  --c-main: #15AE29;
  /* Font Family */
  --font-ja: "Noto Sans JP", sans-serif;
  --font-en: "Asap", sans-serif;
  /* Font Size */
  /*---------- SP ----------*/
  /*40px*/
  --font-size-sp40: min(10.2222vw, 2.5rem);
  /*32px*/
  --font-size-sp32: min(8.533333vw, 2rem);
  /*24px*/
  --font-size-sp24: min(6.4vw, 1.5rem);
  /*20px*/
  --font-size-sp20: min(5.33333vw, 1.25rem);
  /*18px*/
  --font-size-sp18: min(4.8vw, 1.125rem);
  /*16px*/
  --font-size-sp16: min(4.26666vw, 1rem);
  /*14px*/
  --font-size-sp14: min(3.733333vw, .875rem);
  /*---------- PC----------*/
  /*74px*/
  --font-size-pc74: min(5.78vw, 4.625rem);
  /*48px*/
  --font-size-pc48: min(4vw, 3rem);
  /*40px*/
  --font-size-pc40: min(3.33333vw, 2.5rem);
  /*36px*/
  --font-size-pc36: min(2.8vw, 2.25rem);
  /*32px*/
  --font-size-pc32: min(2.66666vw, 2rem);
  /*28px*/
  --font-size-pc28: min(2.33333vw, 1.75rem);
  /*24px*/
  --font-size-pc24: min(2vw, 1.5rem);
  /*20px*/
  --font-size-pc20: min(1.66666vw, 1.25rem);
  /*18x*/
  --font-size-pc18: min(1.5vw, 1.125rem);
  /*16px*/
  --font-size-pc16: min(1.33333vw, 1rem);
  /*14px*/
  --font-size-pc14: min(1.16666vw, 0.875rem);
  /* Font Weight */
  --font-light: 300;
  --font-regular: 400;
  --font-medium: 500;
  --font-semi-bold: 600;
  --font-bold: 700;
  --font-ex-bold: 900;
  /* Line Height */
  --lh-ss: 1;
  --lh-s: 1.2;
  --lh-m: 1.45;
  --lh-l: 1.8;
  --lh-xl: 2;
  /* Letter Spacing */
  --tracking-normal: normal;
  --tracking-wide: 0.04em;
  --tracking-wider: 0.08em;
  --tracking-widest: 0.16em;
  /* Margin */
  /* 8 */
  --space-xs: .5rem;
  --space-s: 1rem;
  /* 24 */
  --space-m: 1.5rem;
  /* 32 */
  --space-l: 2rem;
  /* 40 */
  --space-xl: 2.5rem;
  /* 56 */
  --space-xxl: 3.5rem;
  /* Container Size & Offset */
  --max-container-size: 1440px;
  --offset-xs: 1.5vw;
  --offset-sm: 2.5vw;
  --offset-md: 5vw;
  --offset-lg: 10vw;
  /* Radius */
  --radius-sm: 4px;
  --radius-m: 8px;
  --radius-md: 16px;
  --radius-lg: 2.5rem;
  --radius-full: 50%;
  /* Transition & Animation */
  --duration-fast: 0.3s;
  --duration-normal: 0.6s;
  --duration-slow: 1.2s;
  --ease-in-sine: cubic-bezier(0.12, 0, 0.39, 0);
  --ease-out-sine: cubic-bezier(0.61, 1, 0.88, 1);
  --ease-in-out-sine: cubic-bezier(0.37, 0, 0.63, 1);
  --ease-in-quart: cubic-bezier(0.5, 0, 0.75, 0);
  --ease-out-quart: cubic-bezier(0.25, 1, 0.5, 1);
  --ease-in-out-quart: cubic-bezier(0.76, 0, 0.24, 1);
  --ease-in-expo: cubic-bezier(0.7, 0, 0.84, 0);
  --ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-in-out-expo: cubic-bezier(0.87, 0, 0.13, 1);
}

em {
  font-style: normal;
}

/*========== 変数設定 ==========*/
/*========== ブレークポイント ==========*/
/*========== メディアクエリミックスイン ==========*/
/*========== ユーティリティ ==========*/
@media screen and (max-width: 767px) {
  .is-pc {
    display: none;
  }
}
@media screen and (min-width: 768px) and (max-width: 1200px) {
  .is-sp {
    display: none;
  }
}
@media screen and (min-width: 768px) {
  .is-sp {
    display: none;
  }
}
/* stylelint-disable */
/*! Oreset.css v2.0.0 | MIT License | https://github.com/hilosiva/Oreset.css */
/*
  # Global
---------------------------------------------- */
*,
::before,
::after {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

/*
  # Document & Sections
---------------------------------------------- */
:where(html) {
  block-size: 100%;
  -webkit-text-size-adjust: none;
}

:where(body) {
  background-color: #fff;
  min-block-size: 100%;
  text-rendering: optimizeLegibility;
  line-height: var(--lh-l);
  font-family: var(--font-ja);
  color: var(--c-black);
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}

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

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

:where(ul, ol) {
  list-style-type: "";
}

/*
  # Text-level semantics
---------------------------------------------- */
:where(a:not([class])) {
  -webkit-text-decoration-skip: ink;
  text-decoration-skip-ink: auto;
}

/*
  # Embedded content
---------------------------------------------- */
:where(img, svg, video, canvas, audio, iframe, embed, object) {
  display: block;
}

:where(img, picture, svg) {
  width: 100%;
  height: auto;
}

:where(svg:not([fill])) {
  fill: currentColor;
}

/*
  # Tabular data
---------------------------------------------- */
:where(table) {
  border-collapse: collapse;
}

/*
  # Forms
---------------------------------------------- */
:where(input, button, textarea, select, optgroup) {
  font: inherit;
  color: inherit;
}

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

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

:where(input[type=file])::-webkit-file-upload-button {
  cursor: pointer;
}

:where(input[type=file])::-webkit-file-upload-button,
:where(input[type=file])::file-selector-button {
  cursor: pointer;
}

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

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

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

/*
  # Interactive & Misc
---------------------------------------------- */
:where(template, [hidden]:not([hidden=until-found])) {
  display: none;
}

:where(dialog, [popover]) {
  border: none;
  background: none;
  color: inherit;
  inset: unset;
  max-width: unset;
  max-height: unset;
}

:where(dialog:not([open], [popover]), [popover]:not(:popover-open)) {
  display: none;
}

/*
  # Accessibility
---------------------------------------------- */
:where([disabled], [aria-disabled=true]) {
  cursor: not-allowed;
}

:where([aria-busy=true]) {
  cursor: progress;
}

:where([aria-controls]) {
  cursor: pointer;
}

:where([aria-hidden=false][hidden]) {
  display: initial;
}

:where([aria-hidden=false][hidden]):not(:focus) {
  position: absolute;
  clip: rect(0, 0, 0, 0);
}

:where(:focus:not(:focus-visible), ::before:focus:not(:focus-visible), ::after:focus:not(:focus-visible)) {
  outline: none;
}

/*
  # aタグ
---------------------------------------------- */
a {
  background-color: transparent;
  text-decoration: none;
  color: inherit;
}

/**
 * Prettier ignore
 */
@media (prefers-reduced-motion: reduce) {
  ::-webkit-backdrop {
    -webkit-transition: none !important;
    transition: none !important;
    -webkit-animation: none !important;
            animation: none !important;
    scroll-behavior: auto !important;
  }
  *,
*:before,
*:after,
::backdrop {
    transition: none !important;
    -webkit-animation: none !important;
            animation: none !important;
    scroll-behavior: auto !important;
  }
}
/* Forms */
/* ============================================ */
/**
 * Reset form fields to make them styleable
 */
input,
button,
textarea,
select {
  /* デフォルトスタイルをリセット */
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  /* font-familyを継承しないので、継承させる */
  font-family: inherit;
  /* iOSの角丸をリセット */
  border-radius: 0;
  /* box-size */
  box-sizing: border-box;
  /* 文字の大きさ iOSでズームさせないために16px以上を指定 */
  font-size: 16px;
  /* 文字色を親から継承 */
  color: inherit;
}

label {
  /* iOSでのlabelとinput,select,textareaの関連付け */
  cursor: pointer;
}

/* スピンボタン非表示 chrome,safari */
input[type=number]::-webkit-outer-spin-button,
input[type=number]::-webkit-inner-spin-button,
input[type=month]::-webkit-outer-spin-button,
input[type=month]::-webkit-inner-spin-button,
input[type=datetime-local]::-webkit-outer-spin-button,
input[type=datetime-local]::-webkit-inner-spin-button,
input[type=week]::-webkit-outer-spin-button,
input[type=week]::-webkit-inner-spin-button,
input[type=time]::-webkit-outer-spin-button,
input[type=time]::-webkit-inner-spin-button,
input[type=date]::-webkit-outer-spin-button,
input[type=date]::-webkit-inner-spin-button {
  /*-webkit-appearance: none;
    margin: 0;*/
  display: none;
}

/* スピンボタン非表示(firefox) */
input[type=number],
input[type=month],
input[type=datetime-local],
input[type=week],
input[type=time],
input[type=date] {
  -moz-appearance: textfield;
}

/* クリアボタン非表示 */
input[type=date]::-webkit-clear-button,
input[type=month]::-webkit-clear-button,
input[type=datetime-local]::-webkit-clear-button,
input[type=time]::-webkit-clear-button,
input[type=week]::-webkit-clear-button {
  -webkit-appearance: none;
}

/* input */
input {
  /* inputの枠線を消す */
  border: 1px solid transparent;
  transition: border 0.2s ease-out;
  /*inputのフォーカス時の枠線を消す*/
  outline: 0;
}

select {
  /* 右端の▼を消す */
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  border: none;
  /*inputのフォーカス時の枠線を消す*/
  outline: 0;
}

/**
  * Remove padding
  */
option {
  padding: 0;
}

/**
  * Reset to invisible
  */
fieldset {
  margin: 0;
  padding: 0;
  min-width: 0;
}

/*
  # other
---------------------------------------------- */
/*-- telスマホのみ --*/
@media (min-width: 751px) {
  a[href*="tel:"] {
    pointer-events: none;
    cursor: default;
    text-decoration: none;
  }
}
a {
  text-decoration: none;
  color: inherit;
}

/*------------------------------
layout > header
------------------------------*/
.l-header {
  padding-block: 1.5rem;
  background-color: rgba(255, 255, 255, 0.85);
  position: -webkit-sticky;
  position: sticky;
  top: 0;
  z-index: 10;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.05);
}

.l-header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--font-size-sp20);
}
@media screen and (min-width: 768px) {
  .l-header-inner {
    gap: var(--font-size-pc20);
  }
}

.l-header-logo {
  max-width: 8.75rem;
}
@media screen and (min-width: 768px) {
  .l-header-logo {
    max-width: 11.5625rem;
  }
}
.l-header-logo:hover, .l-header-logo:focus {
  opacity: 0.7;
}

.l-global-nav {
  display: block grid;
  align-items: center;
}
@media screen and (max-width: 767px) {
  .l-global-nav {
    gap: 1.25rem;
  }
}
@media screen and (min-width: 768px) {
  .l-global-nav {
    display: block flex;
  }
}

.l-global-nav-lists {
  display: grid;
  gap: var(--font-size-sp24);
}
@media screen and (min-width: 768px) {
  .l-global-nav-lists {
    display: flex;
    align-items: center;
    gap: var(--font-size-pc48);
  }
}

.l-header-nav {
  display: flex;
}

.l-header-tel {
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
}
@media screen and (min-width: 768px) {
  .l-header-tel {
    margin-left: var(--font-size-pc32);
  }
}

.l-header-tel img {
  max-width: 1.125rem;
}

.l-global-nav-link {
  font-size: clamp(var(--font-size-sp16), 1.6vw, min(1.04166vw, 1rem));
  font-weight: var(--font-bold);
  letter-spacing: var(--tracking-wide);
  transition: var(--duration-normal);
}
.l-global-nav-link:hover {
  color: var(--c-main);
}

.drawer-menu {
  display: none;
}

/* スマホメニュー
--------------------------------*/
@media screen and (max-width: 767px) {
  .drawer-menu {
    position: fixed;
    right: 10px;
    top: 10px;
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: none;
    border: none;
    padding: 0;
    z-index: 22;
    cursor: pointer;
  }
  .drawer-menu::before,
.drawer-menu::after {
    content: "";
    position: absolute;
    width: 30px;
    height: 3px;
    background-color: var(--c-main);
    transition: 0.3s ease-in-out;
  }
  .drawer-menu::before {
    top: 14px;
  }
  .drawer-menu::after {
    top: 26px;
  }
  /* メニューが開いたとき */
  .drawer-menu.active::before {
    transform: rotate(45deg);
    top: 1.125rem;
    background-color: var(--c-white);
  }
  .drawer-menu.active::after {
    transform: rotate(-45deg);
    top: 1.125rem;
    background-color: var(--c-white);
  }
  /* ナビメニュー内 */
  .l-global-nav {
    position: fixed;
    z-index: 10;
    top: 0;
    right: 0;
    width: min(90%, 52rem);
    overflow-y: auto;
    background: rgba(15, 47, 23, 0.8509803922);
    color: var(--c-white);
    transform: translateX(100%);
    transition: transform 0.6s ease, visibility 0s linear 0.6s;
    overflow-y: scroll;
    border-radius: 0 0 0 0.625rem;
    padding: 4rem 2.5rem 4rem;
  }
  .l-global-nav.active {
    transform: translateX(0);
    visibility: visible;
    transition: transform 0.6s ease;
  }
  .l-header-nav ul {
    height: 100%;
    overflow: auto;
    width: 100%;
  }
  .l-header-nav-lists:last-child {
    padding-bottom: 0;
    border-bottom: none;
  }
}
/*------------------------------
layout > footer
------------------------------*/
.l-footer {
  padding-block: 3.625rem;
  background: url(../../assets/img/footer-sp.jpg) top left/cover no-repeat;
  color: var(--c-white);
}
@media screen and (min-width: 768px) {
  .l-footer {
    background: url(../../assets/img/footer.jpg) top left/cover no-repeat;
  }
}

.l-footer-nav-container {
  display: grid;
  justify-content: space-between;
  gap: 2.5rem;
}
@media screen and (min-width: 768px) {
  .l-footer-nav-container {
    display: flex;
    gap: 1rem;
  }
}

.l-footer-company-name {
  font-weight: var(--font-bold);
  font-size: var(--font-size-sp18);
  transition: var(--duration-fast);
}
.l-footer-company-name:hover {
  opacity: 0.7;
}
@media screen and (min-width: 768px) {
  .l-footer-company-name {
    font-size: var(--font-size-pc20);
  }
}

.l-footer-nav-lists {
  display: flex;
  flex-wrap: wrap;
  font-size: clamp(0.875rem, 1.5vw, 0.9375rem);
  font-weight: var(--font-bold);
  gap: 1.5rem;
}
@media screen and (min-width: 768px) {
  .l-footer-nav-lists {
    gap: 3rem;
  }
}
.l-footer-nav-lists a {
  transition: var(--duration-fast);
}
.l-footer-nav-lists a:hover {
  opacity: 0.7;
}

.l-footer-copyright {
  margin-top: 4.875rem;
  text-align: center;
  display: block;
  font-size: clamp(min(2.66666vw, 10px), 1.4vw, 0.625rem);
}

/*------------------------------
layout > section
------------------------------*/
.l-section {
  padding-block: 3.125rem;
}
@media screen and (min-width: 768px) {
  .l-section {
    padding-block: 4.5rem;
  }
}

.l-section-l {
  padding-block: 5rem;
}
@media screen and (min-width: 768px) {
  .l-section-l {
    padding-block: 6.25rem;
  }
}

.l-section-bg {
  width: 100%;
  height: auto;
}
.l-section-bg::before {
  content: "";
  display: block;
  width: 100%;
  height: 100vh;
  position: fixed;
  top: 0;
  left: 0;
  z-index: -10;
  background: url(../../assets/img/bg.jpg) center/cover no-repeat;
}

/*------------------------------
layout > container
------------------------------*/
.l-container {
  margin-inline: auto;
  padding-inline: 1.25rem;
  width: 100%;
}
.l-container.--m {
  max-width: 70rem;
}
.l-container.--s {
  max-width: 57.5rem;
}
.l-container.--ss {
  max-width: 46.875rem;
}

.l-cta {
  padding-block: 3.5rem;
  background: url(../../assets/img/cta-sp.jpg) center bottom/cover no-repeat;
}
@media screen and (min-width: 768px) {
  .l-cta {
    background: url(../../assets/img/cta.jpg) center bottom/cover no-repeat;
  }
}

.l-cta-inner {
  display: flex;
  gap: 2.5rem;
}
@media screen and (max-width: 767px) {
  .l-cta-inner {
    flex-direction: column;
  }
}

.l-cta-card {
  width: 100%;
  padding: 2rem 1rem;
  background-color: var(--c-white);
  border-radius: 1rem;
}
.l-cta-card h3 {
  margin-top: 1rem;
  text-align: center;
}
.l-cta-card p {
  text-align: center;
  margin-block: 1.5rem;
  padding-inline: 1rem;
  color: #595959;
  line-height: 1.8;
}

.l-cta-button {
  display: flex;
  align-items: center;
  justify-content: center;
}

.l-contact {
  position: relative;
  padding-block: 4rem;
}
@media screen and (min-width: 768px) {
  .l-contact {
    padding-block: 4.5rem 8.375rem;
  }
}

.l-contact-card {
  padding: 2rem 1.25rem;
  border-radius: 1rem;
  background-color: var(--c-white);
}
@media screen and (min-width: 768px) {
  .l-contact-card {
    padding: 3rem 3rem 3.5rem;
  }
}

.l-contact-message {
  margin-top: 1.5rem;
  text-align: center;
}

.p-top-contact-memo {
  margin-block: 1.5rem;
}
@media screen and (max-width: 767px) {
  .p-top-contact-memo {
    text-align: center;
    margin-block: 0.5rem 1.5rem;
  }
}
.p-top-contact-memo small {
  font-size: 0.75rem;
  font-weight: var(--font-medium);
}
.p-top-contact-memo span {
  color: #C90000;
}

/*** プラポリ
--------------------***/
.privacy-container {
  width: 100%;
  margin-right: auto;
  margin-left: auto;
}

.privacy-policy {
  height: 11.25rem;
  margin-top: 1.5rem;
  padding: 20px 18px;
  overflow: scroll;
  border: 1px solid #d3d3d3;
  background: #fff;
  border-radius: 4px;
  color: #212121;
  font-weight: 400;
  font-size: 15px;
  line-height: 1.65;
  background-color: #fcfcfc;
}
@media screen and (min-width: 768px) {
  .privacy-policy {
    height: 14.375rem;
  }
}
.privacy-policy h2 {
  color: var(--c-main);
  font-family: var(--font-en);
  text-transform: uppercase;
  text-align: center;
  margin-bottom: 1rem;
  letter-spacing: 0.01em;
  font-size: clamp(20px, 1.5vw, 24px);
}
.privacy-policy p {
  margin-bottom: 0.8rem;
}

.privacy-policy h3 {
  margin: 1.5rem 0 1rem;
  padding-inline: 0.3rem;
  border-left: 4px solid var(--c-main);
  font-size: 1.0625rem;
  line-height: 1.4;
  letter-spacing: var(--tracking-widest);
}

.privacy-policy ul li {
  padding-left: 12px;
  position: relative;
}
.privacy-policy ul li::before {
  position: absolute;
  left: 0;
  content: "・";
}

.privacy-policy ol li {
  padding-left: 24px;
  position: relative;
}
.privacy-policy ol li span {
  position: absolute;
  left: 0;
}

.privacy-check {
  margin-top: 2rem;
  text-align: center;
}
.privacy-check p label {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
}

::-moz-placeholder {
  color: #c8c8c8;
  font-size: 16px;
}

::placeholder {
  color: #c8c8c8;
  font-size: 16px;
}

input[type=checkbox] {
  -webkit-appearance: checkbox;
  -moz-appearance: checkbox;
       appearance: checkbox;
  width: 20px;
  height: 20px;
}

/*** サンクスページ
--------------------***/
.p-thanks-inner {
  margin-top: 4rem;
}

.wrap {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}

.p-thanks {
  display: flex;
  align-items: center;
  flex-direction: column;
}
.p-thanks .l-section {
  padding-block: 9.375rem;
}

.p-thanks-button {
  margin-top: 3rem;
}

.l-footer {
  margin-top: auto;
}

.check-box {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 6px;
}

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

.u-accent {
  color: var(--c-main);
}

.u-bold {
  font-weight: var(--font-bold);
}

.c-title {
  font-size: var(--font-size-sp24);
  font-weight: var(--font-bold);
  line-height: 1.45;
}
@media screen and (min-width: 768px) {
  .c-title {
    font-size: var(--font-size-pc32);
    line-height: 1.6;
  }
}

.c-title-en {
  display: inline-block;
  color: var(--c-main);
  font-size: var(--font-size-sp16);
  font-family: var(--font-en);
  font-weight: var(--font-semi-bold);
  text-transform: uppercase;
  line-height: var(--lh-m);
}
@media screen and (min-width: 768px) {
  .c-title-en {
    font-size: var(--font-size-pc20);
  }
}

.c-title-group {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

.c-title-m {
  font-size: var(--font-size-sp20);
}
@media screen and (min-width: 768px) {
  .c-title-m {
    font-size: var(--font-size-pc24);
    line-height: 1.6;
  }
}

.c-title-s {
  font-size: var(--font-size-sp18);
}
@media screen and (min-width: 768px) {
  .c-title-s {
    font-size: var(--font-size-pc20);
    line-height: 1.6;
  }
}

.c-title-center {
  text-align: center;
}

.c-title-line {
  position: relative;
}
.c-title-line:after {
  position: absolute;
  content: "";
  bottom: -1.25rem;
  left: 50%;
  transform: translateY(-50%);
  width: 3.5rem;
  height: 0.1875rem;
  background-color: var(--c-main);
}

/*** 共通
--------------------***/
.c-button {
  position: relative;
  padding: 0.5rem 1.5rem;
  width: 100%;
  max-width: -webkit-fit-content;
  max-width: -moz-fit-content;
  max-width: fit-content;
  border-radius: 3.125rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  transition: 0.3s ease-in-out;
  z-index: 0;
  font-weight: var(--font-semi-bold);
  letter-spacing: var(--tracking-wide);
}
.c-button.--m {
  font-size: var(--font-size-sp16);
}
@media screen and (min-width: 768px) {
  .c-button.--m {
    font-size: var(--font-size-pc18);
  }
}
.c-button.--l {
  min-width: 12.5rem;
  height: 4rem;
  border-radius: 0.5rem;
  font-size: var(--font-size-sp18);
  justify-content: center;
}
@media screen and (min-width: 768px) {
  .c-button.--l {
    font-size: var(--font-size-pc20);
  }
}
.c-button.--green {
  border: 2px solid var(--c-main);
  background-color: var(--c-main);
  color: var(--c-white);
}
.c-button.--green:hover, .c-button.--green:focus {
  background-color: var(--c-white);
  color: var(--c-main);
}
.c-button.--yellow {
  border: 2px solid #FFFF00;
  background-color: #FFFF00;
}
.c-button.--yellow:hover, .c-button.--yellow:focus {
  background-color: #fff;
  background-color: #FEFFE1;
}

.c-buttonEntry {
  position: fixed;
  top: 60%;
  right: 0;
  width: 2.625rem;
  height: 8.75rem;
  background-color: #FFFF00;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  border-radius: 0.5rem 0 0 0.5rem;
  cursor: pointer;
  transition: var(--duration-fast);
  border: solid 3px #FFFF00;
}
@media screen and (min-width: 768px) {
  .c-buttonEntry {
    top: 20%;
    width: 3.75rem;
    height: 10.3125rem;
  }
}
.c-buttonEntry:hover {
  background-color: var(--c-white);
  border-right: solid 3px transparent;
}
.c-buttonEntry span {
  text-transform: uppercase;
  writing-mode: vertical-rl;
  text-orientation: upright;
  font-weight: var(--font-bold);
  line-height: 1.2;
  letter-spacing: 0.1em;
}
.c-buttonEntry img {
  margin-top: 0.25rem;
  max-width: 1.5625rem;
}

.js-entry {
  opacity: 0;
  transition: opacity 0.5s ease, transform 0.5s ease;
  transform: translateY(20px);
  pointer-events: none;
}
.js-entry.is-fadein {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}

.c-text-lead {
  font-size: var(--font-size-sp16);
  font-weight: var(--font-medium);
}
@media screen and (min-width: 768px) {
  .c-text-lead {
    font-size: var(--font-size-pc16);
  }
}

.c-text-l {
  font-size: var(--font-size-sp24);
}
@media screen and (min-width: 768px) {
  .c-text-l {
    font-size: var(--font-size-pc40);
  }
}

@-webkit-keyframes yurayura {
  0%, 100% {
    transform: rotate(3deg);
  }
  50% {
    transform: rotate(-3deg);
  }
}

@keyframes yurayura {
  0%, 100% {
    transform: rotate(3deg);
  }
  50% {
    transform: rotate(-3deg);
  }
}
@-webkit-keyframes fuwafuwa {
  0% {
    transform: translateY(-4%);
  }
  100% {
    transform: translateY(3%);
  }
}
@keyframes fuwafuwa {
  0% {
    transform: translateY(-4%);
  }
  100% {
    transform: translateY(3%);
  }
}
/*------------------------------
component > inview
------------------------------*/
/* フェードイン(初期値) */
.js-fadeIn {
  opacity: 0;
  transition: opacity 0.8s, transform 0.8s;
}

/* フェードアップ */
.js-fadeUp {
  opacity: 0;
  transform: translateY(50px);
  transition: transform 0.5s ease;
}

/* フェードアップ(スクロールした後) */
.js-fadeUp.is-inview {
  opacity: 1;
  transform: translateY(0);
}

.js-fadeIn.is-inview {
  opacity: 1;
}

/* 横スライド（右から左へ）初期状態 */
.js-slideLeft {
  opacity: 0;
  transform: translateX(-30px);
  /* 右からスライドイン */
  transition: transform 0.5s ease, opacity 0.5s ease;
  transition-delay: 0.3s;
}

/* スクロールで表示された後 */
.js-slideLeft.is-inview {
  opacity: 1;
  transform: translateX(0);
}

@media screen and (max-width: 767px) {
  .delay-05s-sp {
    transition-delay: 0.5s;
  }
}
@media screen and (min-width: 768px) {
  .delay-03s {
    transition-delay: 0.3s;
  }
  .delay-05s {
    transition-delay: 0.5s;
  }
  .delay-07s {
    transition-delay: 1s;
  }
}
/*--------------------------------
ページトップへ戻るボタン
--------------------------------*/
.js-scroll-fadein {
  transition: opacity 1s;
  visibility: hidden;
  opacity: 0;
}

.js-scroll-fadein.is-fadein {
  visibility: visible;
  opacity: 1;
}

.page_top_arrow {
  position: fixed;
  right: 1rem;
  bottom: 2rem;
  color: var(--c-white);
  cursor: pointer;
  background-color: #0f871f;
  border: solid 2px #0f871f;
  width: 3rem;
  height: 3rem;
  transition: all 0.2s ease-in-out;
  z-index: 6;
}
@media screen and (min-width: 768px) {
  .page_top_arrow {
    width: 4rem;
    height: 4rem;
  }
}

.page_top_arrow:hover {
  color: #0f871f;
  background-color: var(--c-white);
}

.page_top_arrow:before {
  content: "";
  width: 1.1875rem;
  height: 1.1875rem;
  border-top: solid 4px var(--c-white);
  border-right: solid 4px var(--c-white);
  left: 46%;
  transform: rotate(-45deg) translateX(-50%);
  position: absolute;
}

.page_top_arrow:hover:before {
  border-top: solid 4px #0f871f;
  border-right: solid 4px #0f871f;
}

.page_top_arrow:before {
  top: 10px;
}
@media screen and (min-width: 768px) {
  .page_top_arrow:before {
    top: 17px;
  }
}

.p-mv {
  overflow-x: hidden;
}
@media screen and (max-width: 767px) {
  .p-mv {
    position: relative;
  }
}

@media screen and (min-width: 768px) {
  .p-mv-contents {
    position: relative;
  }
}
.p-mv-body {
  gap: var(--font-size-sp20);
}
@media screen and (min-width: 768px) {
  .p-mv-body {
    position: absolute;
    gap: var(--font-size-pc32);
    top: min(10.9375vw, 8.75rem);
    left: 0;
    z-index: 1;
  }
}
.p-mv-body ul {
  margin-block: 1rem 0.625rem;
  display: flex;
  gap: 0.5rem;
}
@media screen and (min-width: 768px) {
  .p-mv-body ul {
    gap: 1.5rem;
  }
}
.p-mv-body ul li {
  padding: 0.25rem 0.5rem;
  background-color: var(--c-white);
  border: solid 2px var(--c-main);
  color: var(--c-main);
  font-size: clamp(0.9375rem, 2.4vw, var(--font-size-pc24));
  font-weight: var(--font-bold);
  line-height: 1.35;
  letter-spacing: var(--tracking-wide);
}

.p-mv-title span {
  display: inline-block;
  padding: 0.5rem 0.625rem;
  color: var(--c-white);
  font-size: var(--font-size-sp20);
  font-weight: var(--font-bold);
  line-height: var(--lh-m);
  background: var(--c-main);
  letter-spacing: var(--tracking-wide);
}
@media screen and (min-width: 768px) {
  .p-mv-title span {
    font-size: var(--font-size-pc40);
  }
}

.p-mv-body-text {
  line-height: 1.35;
  letter-spacing: var(--tracking-wide);
}

@media screen and (min-width: 768px) {
  .p-mv-image {
    margin-inline: auto 0;
    max-width: 64.5%;
  }
}
.p-mv-image figure:nth-child(2) {
  display: flex;
}

.p-mv-text {
  margin-top: 1.5rem;
  letter-spacing: var(--tracking-wide);
  line-height: var(--lh-xl);
}
@media screen and (min-width: 768px) {
  .p-mv-text {
    margin-right: 2rem;
  }
}

.p-top-loop-text {
  padding-top: 0.625rem;
  overflow: hidden;
  display: flex;
  width: 100vw;
  margin-inline: calc(50% - 50vw);
  margin-top: -4rem;
}
@media screen and (min-width: 768px) {
  .p-top-loop-text {
    margin-top: -5rem;
  }
}
.p-top-loop-text span {
  flex-shrink: 0;
  white-space: nowrap;
  font-family: var(--font-en);
  font-weight: var(--font-bold);
  font-size: clamp(50px, 10vw, 6rem);
  line-height: 1.2;
  background: linear-gradient(90deg, #eeff99 -0.42%, #BAF0B1 74.14%);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}
.p-top-loop-text span:nth-child(odd) {
  -webkit-animation: MoveLeft var(--tick-duration, 24s) var(--tick-delay, -12s) infinite linear;
          animation: MoveLeft var(--tick-duration, 24s) var(--tick-delay, -12s) infinite linear;
}
.p-top-loop-text span:nth-child(even) {
  -webkit-animation: MoveLeft2 var(--tick-duration, 24s) infinite linear;
          animation: MoveLeft2 var(--tick-duration, 24s) infinite linear;
}

@-webkit-keyframes MoveLeft {
  from {
    transform: translateX(100%);
  }
  to {
    transform: translateX(-100%);
  }
}

@keyframes MoveLeft {
  from {
    transform: translateX(100%);
  }
  to {
    transform: translateX(-100%);
  }
}
@-webkit-keyframes MoveLeft2 {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-200%);
  }
}
@keyframes MoveLeft2 {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-200%);
  }
}
/*** concept
--------------------***/
.p-concept-container {
  max-width: -webkit-fit-content;
  max-width: -moz-fit-content;
  max-width: fit-content;
  margin-inline: auto;
  display: flex;
  gap: 0.5rem;
}
@media screen and (min-width: 768px) {
  .p-concept-container {
    gap: 1rem;
  }
}

.p-concept-title {
  color: var(--c-main);
  text-transform: uppercase;
  writing-mode: vertical-rl;
  font-size: clamp(2rem, 4vw, var(--font-size-pc48));
  font-family: var(--font-en);
  letter-spacing: 0.03em;
}

.p-concept-body .c-title {
  margin-top: 0.25rem;
}
@media screen and (min-width: 768px) {
  .p-concept-body .c-title {
    margin-top: 1rem;
  }
}

.p-top-concept-text {
  margin-top: 1rem;
  font-size: var(--font-size-sp16);
}
@media screen and (min-width: 768px) {
  .p-top-concept-text {
    margin-top: 1.5rem;
    font-size: var(--font-size-pc18);
  }
}

@media screen and (max-width: 767px) {
  .p-mv-contents {
    display: grid;
    grid-template-areas: "img" "loop" "body";
    gap: 1.5rem;
  }
  .p-mv-contents .p-mv-image {
    grid-area: img;
  }
  .p-mv-contents .p-top-loop-text {
    grid-area: loop;
  }
  .p-mv-contents .p-mv-body {
    grid-area: body;
  }
}
@media screen and (min-width: 768px) {
  .p-mv-contents {
    display: grid;
    align-items: center;
  }
}

/*** service
--------------------***/
.p-top-service {
  overflow: hidden;
  background-color: var(--c-white);
}
.p-top-service .l-container {
  position: relative;
}
.p-top-service .l-container::before {
  position: absolute;
  left: min(6.25vw, -5rem);
  top: -5rem;
  content: "SERVICE";
  font-family: var(--font-en);
  font-weight: var(--font-bold);
  text-transform: uppercase;
  writing-mode: vertical-rl;
  color: #E8F7EA;
  font-size: clamp(56px, 12vw, 9.25rem);
  line-height: var(--lh-ss);
}
@media screen and (min-width: 768px) and (max-width: 1200px) {
  .p-top-service .l-container::before {
    left: -1.25rem;
  }
}

.p-top-service-lists {
  margin-top: 2rem;
  display: grid;
  grid-template-columns: repeat(1, 1fr);
  gap: 2rem;
}
@media screen and (min-width: 768px) {
  .p-top-service-lists {
    grid-template-columns: repeat(3, 1fr);
    margin-top: 3.5rem;
    gap: 1.125rem;
  }
}

.p-top-service-list {
  display: flex;
  flex-direction: column-reverse;
  justify-content: flex-end;
}
.p-top-service-list .c-card-body {
  padding-block: 1rem;
  display: grid;
  gap: 1rem;
}

.p-top-service-title {
  text-align: center;
}

/*** 採用情報
--------------------***/
.p-recruit {
  overflow: hidden;
  position: relative;
}
.p-recruit::before {
  position: absolute;
  right: min(3vw, -2.5rem);
  top: 50%;
  transform: translateY(-50%);
  content: "RECRUIT";
  font-family: var(--font-en);
  font-weight: var(--font-bold);
  text-transform: uppercase;
  writing-mode: vertical-rl;
  color: #E8F7EA;
  font-size: clamp(56px, 12vw, 9.25rem);
  line-height: var(--lh-ss);
}
@media screen and (min-width: 768px) and (max-width: 1200px) {
  .p-recruit::before {
    right: -1.25rem;
  }
}

.p-recruit-inner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 2rem;
}
@media screen and (max-width: 767px) {
  .p-recruit-inner {
    flex-direction: column;
  }
}

.p-recruit-body {
  display: grid;
  gap: 2.5rem;
}

.p-recruit-image {
  flex: 0 0 48.8888%;
}

.p-recruit-card {
  max-width: -webkit-fit-content;
  max-width: -moz-fit-content;
  max-width: fit-content;
  margin-inline: auto;
  background-color: var(--c-white);
  margin-top: 3rem;
  padding: 2.5rem 1.5rem;
  border-radius: 1rem;
}
@media screen and (min-width: 768px) {
  .p-recruit-card {
    padding-inline: min(7.4vw, 5rem);
  }
}

.recruit-table {
  margin-top: 2rem;
  width: 100%;
  border-collapse: collapse;
}
.recruit-table th,
.recruit-table td {
  padding-block: 1rem;
  padding-inline: 0.5rem;
  border-bottom: 1px solid #efefef;
}
@media screen and (max-width: 767px) {
  .recruit-table th,
.recruit-table td {
    width: auto;
    display: block;
    border-top: none;
  }
}
.recruit-table th {
  border-bottom: 2px solid var(--c-main);
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  text-align: left;
}
@media screen and (max-width: 767px) {
  .recruit-table th {
    padding-block: 1rem 0.25rem;
    padding-inline: 0;
  }
}
.recruit-table td {
  padding-left: 1.5rem;
}
@media screen and (max-width: 767px) {
  .recruit-table td {
    padding: 1rem;
  }
}
.recruit-table td span {
  display: block;
}

.p-recruit-button {
  margin-top: 2rem;
}

.p-recruit-item:nth-child(n+2) {
  margin-top: clamp(4.375rem, 10vw, 9.375rem);
}

.p-recruit-item .c-title-m {
  padding-left: 0.875rem;
  border-left: 0.3em solid var(--c-main);
}

/*** よくあるご質問
--------------------***/
.p-faq {
  background-color: var(--c-white);
}

.p-faq-lists {
  margin-top: 2rem;
  font-size: var(--font-size-regular-sp);
  border-bottom: 1px solid #E2E2E2;
}
.p-faq-lists span {
  position: absolute;
  left: 1rem;
  margin-right: 0.25rem;
  color: var(--c-main);
  font-family: var(--font-en);
  font-weight: var(--font-semi-bold);
}
@media screen and (min-width: 768px) {
  .p-faq-lists span {
    left: 2rem;
  }
}
@media screen and (min-width: 768px) {
  .p-faq-lists {
    margin-top: 2.5rem;
    font-size: var(--font-size-regular-pc);
  }
}

.p-faq details {
  position: relative;
  padding-block: 1rem;
  padding-left: 2.5rem;
  pointer-events: none;
  line-height: 1.6;
  font-weight: var(--font-medium);
  border-top: 1px solid #E2E2E2;
}
@media screen and (min-width: 768px) {
  .p-faq details {
    padding-block: 1.25rem;
    padding-left: 4rem;
  }
}

.p-faq summary {
  color: var(--c-main);
  display: block;
  margin-bottom: 0.5rem;
  cursor: default;
  list-style: none;
}
@media screen and (min-width: 768px) {
  .p-faq summary {
    margin-bottom: 1rem;
  }
}

details summary {
  list-style: none;
}

details summary::-webkit-details-marker {
  display: none;
}

.p-faq details:first-of-type {
  border-top: none;
}

/*** 会社概要
--------------------***/
.p-about {
  background-color: var(--c-white);
}

.p-about-image {
  margin-top: 2.5rem;
}