@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Michroma&family=Noto+Sans+JP:wght@100..900&display=swap");
:root {
  --base: #000;
  --black1: #231815;
  --beige1: #DDDDC6;
  --green1: #B7BE21;
  --green2: #80A43F;
  --green3: #008045;
}

/*-- リセット --*/
h1,
h2,
h3,
h4,
h5,
p,
b,
dt,
dd,
li,
span,
a,
strong {
  margin: 0;
  padding: 0;
}

img {
  width: 100%;
  min-height: 0%;
  vertical-align: top;
}

figure {
  width: 100%;
  min-height: 0%;
  line-height: 0;
  margin: 0 auto;
  padding: 0;
}

ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

a {
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  -webkit-transition: 0.3s;
  transition: 0.3s;
}
a img {
  display: inline-block;
}

button {
  background: transparent;
  border: none;
  cursor: pointer;
  outline: none;
  padding: 0;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
}

html {
  font-size: 62.5%;
}
@media only screen and (max-width: 1600px) {
  html {
    font-size: 0.625vw;
  }
}
@media only screen and (max-width: 767px) {
  html {
    font-size: 2.6666666667vw;
  }
}

body {
  margin: 0;
  background: #FFF;
  position: relative;
  font-family: "Lato", "Noto Sans JP", sans-serif;
  text-align: center;
  color: var(--base);
}
body.top {
  width: 100vw;
  height: 100vh;
  overflow: hidden;
}
body.top .l-wrapper {
  width: 100vw;
  height: 100vh;
  display: block;
  overflow: hidden;
  overflow-y: auto;
  -ms-scroll-snap-type: y mandatory;
      scroll-snap-type: y mandatory;
  scroll-behavior: smooth;
  position: relative;
  z-index: 1;
}

input[type=text],
input[type=email],
input[type=tel],
textarea,
button,
select {
  -webkit-appearance: none;
  -moz-appearance: none;
       appearance: none;
  border: 0;
  border-radius: 0;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  font-family: "Noto Sans JP", sans-serif;
}

input[type=checkbox] {
  border: 0.05rem solid var(--gray5);
  border-radius: 0;
  -webkit-box-shadow: 0;
          box-shadow: 0;
}

select {
  width: 100%;
  padding: 0.8rem 3rem 0.8rem 1.5rem;
  border: 1px solid var(--gray2);
  border-radius: 0.6rem;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  line-height: 1.375;
  font-size: 1.6rem;
}
@media only screen and (max-width: 767px) {
  select {
    padding: 1.1rem 3rem 1.2rem 0.95rem;
  }
}

label {
  cursor: pointer;
}

img {
  vertical-align: middle;
}

.l-main {
  display: block;
}

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

.tab {
  display: none;
}
@media only screen and (max-width: 1600px) {
  .tab {
    display: block;
  }
}

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

.inline-pc {
  display: inline;
}
@media only screen and (max-width: 767px) {
  .inline-pc {
    display: none;
  }
}

.inline-sp {
  display: none;
}
@media only screen and (max-width: 767px) {
  .inline-sp {
    display: inline;
  }
}

.no-link {
  pointer-events: none;
}

.page-links {
  margin-top: -7.2rem;
  padding-top: 7.2rem;
  position: relative;
  z-index: -1;
}
@media only screen and (max-width: 767px) {
  .page-links {
    margin-top: -4.8rem;
    padding-top: 4.8rem;
  }
}

.l-header {
  width: 100%;
  padding: 4.6rem 0 0;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 10;
}
@media only screen and (max-width: 767px) {
  .l-header {
    padding-top: 0.8rem;
  }
}
.l-header__container {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  width: 100%;
  padding: 0 0 0 4.48rem;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}
@media only screen and (max-width: 767px) {
  .l-header__container {
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    padding: 0 1.5rem;
  }
}
.l-header__logo {
  width: 5.718rem;
  margin: 0;
}
@media only screen and (max-width: 767px) {
  .l-header__logo {
    width: 4.741rem;
  }
}
.l-header__logo_link {
  display: block;
}
.l-header-btn {
  display: none;
}
@media only screen and (max-width: 767px) {
  .l-header-btn {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: 0.5rem;
    margin: 0.9rem 0 0 auto;
  }
  .l-header-btn__line {
    display: block;
    width: 1.6rem;
    height: 1rem;
    position: relative;
  }
  .l-header-btn__line::before, .l-header-btn__line::after,
  .l-header-btn__line span {
    content: "";
    width: 100%;
    height: 0.2rem;
    border-radius: 50px;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    background: var(--base);
    position: absolute;
    left: 0;
  }
  .l-header-btn__line::before {
    top: 0;
  }
  .l-header-btn__line::after {
    bottom: 0;
  }
  .l-header-btn__line span {
    top: 50%;
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%);
  }
  .l-header-btn__caption {
    line-height: 1.2;
    letter-spacing: 0.075em;
    font-size: 0.8rem;
    font-weight: 700;
  }
}
.l-header__pagetop {
  display: none;
  position: fixed;
  right: 0;
  bottom: 10vh;
  z-index: 9;
  background: #fff;
  padding: 3.5rem 5rem 2.5rem;
  border-radius: 10px 0 0 10px;
  border: solid 1px var(--base);
  border-right: none;
  font-size: 1rem;
  font-weight: bold;
  color: var(--base);
  text-decoration: none;
}
.l-header__pagetop:before {
  content: "";
  display: block;
  position: absolute;
  width: 1px;
  height: 1rem;
  background: var(--base);
  left: 50%;
  top: 1.8rem;
  -webkit-transition: 0.3s ease;
  transition: 0.3s ease;
}
.l-header__pagetop:after {
  content: "";
  display: block;
  position: absolute;
  width: 0.4rem;
  height: 0.4rem;
  border-left: solid 1px var(--base);
  border-top: solid 1px var(--base);
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
  top: 1.7rem;
  left: calc(50% - 0.2rem);
  -webkit-transition: 0.3s ease;
  transition: 0.3s ease;
}
@media only screen and (min-width: 1400px) {
  .l-header__pagetop:hover {
    background: var(--base);
    color: #fff;
  }
  .l-header__pagetop:hover:before {
    background: #fff;
  }
  .l-header__pagetop:hover:after {
    border-color: #fff;
  }
}
@media only screen and (max-width: 767px) {
  .l-header__pagetop {
    bottom: 2vh;
    padding: 2.5rem 2rem 1.5rem;
  }
  .l-header__pagetop:before {
    top: 13px;
  }
  .l-header__pagetop:after {
    top: 12px;
  }
}

.l-global-nav {
  margin: 0 0 0 auto;
}
@media only screen and (max-width: 767px) {
  .l-global-nav {
    display: none;
    width: 14.5rem;
    padding: 4.6rem 0 4.8rem;
    border-radius: 1.5rem;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    background: #fff;
    border: solid 1px #000;
    position: fixed;
    top: 2.2rem;
    right: 2.2rem;
    z-index: 11;
  }
}
.l-global-nav__list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  line-height: 1.45;
  letter-spacing: 0.075em;
  font-size: 1.9rem;
  font-weight: 400;
  font-family: "Lato", sans-serif;
}
@media only screen and (max-width: 767px) {
  .l-global-nav__list {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 3.3rem;
    font-size: 1rem;
  }
}
.l-global-nav__list_item {
  width: 20.6rem;
  border-left: 1px solid var(--black1);
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}
@media only screen and (max-width: 767px) {
  .l-global-nav__list_item {
    width: auto;
    border-left: 0;
  }
}
.l-global-nav__list_link {
  text-decoration: none;
  color: var(--base);
}
.l-global-nav__close {
  display: none;
}
@media only screen and (max-width: 767px) {
  .l-global-nav__close {
    display: block;
    width: 1.6rem;
    aspect-ratio: 1/1;
    position: absolute;
    top: 1.8rem;
    right: 1.6rem;
  }
  .l-global-nav__close::before, .l-global-nav__close::after {
    content: "";
    width: 100%;
    height: 1px;
    background: var(--base);
    position: absolute;
    left: 0;
  }
  .l-global-nav__close::before {
    top: 50%;
    -webkit-transform: translateY(-50%) rotate(45deg);
            transform: translateY(-50%) rotate(45deg);
  }
  .l-global-nav__close::after {
    bottom: 50%;
    -webkit-transform: translateY(50%) rotate(-45deg);
            transform: translateY(50%) rotate(-45deg);
  }
}

.l-footer {
  padding: 3.9rem 0;
  scroll-snap-align: start;
}
@media only screen and (max-width: 767px) {
  .l-footer {
    padding: 2.92rem 0;
  }
}
.l-footer__container {
  max-width: 126.6rem;
  width: 100%;
  margin: 0 auto;
}
.l-footer__content {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  width: 100%;
  padding: 2.04rem 0 0;
  border-top: 1px solid var(--base);
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  position: relative;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
@media only screen and (max-width: 767px) {
  .l-footer__content {
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    padding: 0;
    border-top: 0;
  }
}
.l-footer__logo {
  width: 5.718rem;
  margin: 0;
  position: absolute;
  left: 0;
}
@media only screen and (max-width: 767px) {
  .l-footer__logo {
    display: none;
  }
}
.l-footer__nav {
  margin: 0 auto;
}
.l-footer__nav_list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  line-height: 1.45;
  letter-spacing: 0.075em;
  font-size: 1.6rem;
  font-weight: 400;
  border-right: 1px solid var(--base);
}
@media only screen and (max-width: 767px) {
  .l-footer__nav_list {
    font-size: 0.8rem;
  }
}
.l-footer__nav_item {
  padding: 0 5.5rem;
  border-left: 1px solid var(--base);
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}
@media only screen and (max-width: 767px) {
  .l-footer__nav_item {
    padding: 0 1.35rem;
  }
}
.l-footer__nav_link {
  text-decoration: none;
  color: var(--base);
}
.l-footer__copy {
  margin: 2.18rem 0 0 auto;
  text-align: center;
}
@media only screen and (max-width: 767px) {
  .l-footer__copy {
    margin: 2.68rem auto 0;
  }
}
.l-footer__copy_text {
  line-height: 1.75;
  letter-spacing: 0.075em;
  font-size: 1.6rem;
  font-weight: 400;
}
@media only screen and (max-width: 767px) {
  .l-footer__copy_text {
    font-size: 0.8rem;
  }
}

.l-section-block {
  min-height: 80rem;
  height: 100vh;
  scroll-snap-align: start;
  scroll-snap-stop: always;
}
@media only screen and (max-width: 767px) {
  .l-section-block {
    min-height: auto;
    height: 100svh;
    padding: 3rem 0;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
  }
}

.l-wave-block {
  position: relative;
}
.l-wave-block::before, .l-wave-block::after {
  content: "";
  width: 150%;
  height: 0;
  border-radius: 100%;
  position: absolute;
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  -webkit-transition: 0.3s linear;
  transition: 0.3s linear;
}
.l-wave-block::before {
  top: 0;
  -webkit-transform-origin: bottom;
          transform-origin: bottom;
}
.l-wave-block::after {
  bottom: 0;
  -webkit-transform-origin: top;
          transform-origin: top;
}
.l-wave-block.down::before {
  height: 40rem;
  -webkit-transform: translate(-50%, -20rem);
          transform: translate(-50%, -20rem);
  -webkit-transition: 0.3s ease-in 0.2s;
  transition: 0.3s ease-in 0.2s;
}
.l-wave-block.up::after {
  height: 40rem;
  -webkit-transform: translate(-50%, 20rem);
          transform: translate(-50%, 20rem);
  -webkit-transition: 0.3s ease-in 0.2s;
  transition: 0.3s ease-in 0.2s;
}

.l-bg-block {
  position: relative;
}
.l-bg-block:before, .l-bg-block:after {
  content: "";
  display: block;
  position: fixed;
  left: 0;
  right: 0;
}
.l-bg-block:before {
  border-radius: 200% 200% 0 0;
  bottom: 0;
  z-index: -1;
}
@media only screen and (max-width: 767px) {
  .l-bg-block:before {
    border-radius: 100% 100% 0 0;
  }
}
.l-bg-block:after {
  border-radius: 0 0 200% 200%;
  top: 0;
}
@media only screen and (max-width: 767px) {
  .l-bg-block:after {
    border-radius: 0 0 100% 100%;
  }
}
.l-bg-block--wh:before {
  background: #5DB572;
}
.l-bg-block--wh:after {
  background: #fff;
}
.l-bg-block--gr:before {
  background: #5DB572;
}
.l-bg-block--gr:after {
  background: #EAEAD9;
}
.l-bg-block--be:before {
  background: #EAEAD9;
}
.l-bg-block--be:after {
  background: #5DB572;
}
.l-bg-block.show:before {
  -webkit-animation: bg01 forwards 0.6s ease;
          animation: bg01 forwards 0.6s ease;
}
.l-bg-block.hide:after {
  -webkit-animation: bg02 forwards 0.6s ease;
          animation: bg02 forwards 0.6s ease;
}

@-webkit-keyframes bg01 {
  0% {
    padding-top: 0;
  }
  100% {
    padding-top: 100vh;
    border-radius: 0;
  }
}

@keyframes bg01 {
  0% {
    padding-top: 0;
  }
  100% {
    padding-top: 100vh;
    border-radius: 0;
  }
}
@-webkit-keyframes bg02 {
  0% {
    padding-top: 0;
  }
  100% {
    padding-top: 100vh;
    border-radius: 0;
  }
}
@keyframes bg02 {
  0% {
    padding-top: 0;
  }
  100% {
    padding-top: 100vh;
    border-radius: 0;
  }
}
.c-title--ptn1 {
  line-height: 1.75;
  letter-spacing: 0.075em;
  font-size: 3rem;
  font-weight: 300;
  font-style: italic;
  font-family: "Lato", sans-serif;
}
@media only screen and (max-width: 767px) {
  .c-title--ptn1 {
    white-space: nowrap;
    font-size: 1.5rem;
  }
}

.p-mv {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  width: 100vw;
  position: relative;
}
@media only screen and (max-width: 767px) {
  .p-mv {
    padding: 0;
  }
}
.p-mv__container {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  max-width: 108rem;
  width: 100%;
  margin: 0 auto;
  position: relative;
  z-index: 1;
}
@media only screen and (max-width: 767px) {
  .p-mv__container {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
}
.p-mv__content {
  position: relative;
  text-align: left;
}
@media only screen and (max-width: 767px) {
  .p-mv__content {
    text-align: center;
  }
}
.p-mv__title {
  width: 32.523rem;
  margin-bottom: 3.98rem;
}
@media only screen and (max-width: 767px) {
  .p-mv__title {
    width: 10.391rem;
    margin: 0 auto 3.28rem;
  }
}
.p-mv__title_copy {
  display: block;
  margin: 0 0 4rem;
  line-height: 1.6196428571;
  letter-spacing: 0.075em;
  font-size: 2.8rem;
  font-weight: 700;
}
@media only screen and (max-width: 767px) {
  .p-mv__title_copy {
    margin: 0 auto 0.08rem;
    font-size: 1.4rem;
    line-height: 1.6196428571;
  }
}
.p-mv__lead {
  line-height: 1.771875;
  letter-spacing: 0.075em;
  font-size: 1.6rem;
  font-weight: 700;
}
@media only screen and (max-width: 767px) {
  .p-mv__lead {
    font-size: 0.8rem;
    line-height: 1.771875;
  }
}
.p-mv__image {
  width: 66.451rem;
  position: absolute;
  top: 50%;
  left: calc(100% + 7.19rem);
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  text-align: center;
}
.p-mv__image-image {
  opacity: 0;
}
.p-mv__image-image--1 {
  -webkit-animation: fadein 0.6s 0.3s ease-in forwards, swing 3s 1.5s infinite ease-in-out;
          animation: fadein 0.6s 0.3s ease-in forwards, swing 3s 1.5s infinite ease-in-out;
}
.p-mv__image-image--2 {
  position: absolute;
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  bottom: 0;
  -webkit-animation: fadein 0.6s 0.7s ease-in forwards;
          animation: fadein 0.6s 0.7s ease-in forwards;
}
@media only screen and (max-width: 767px) {
  .p-mv__image {
    width: 27.692rem;
    margin: 0 auto 1.8rem;
    position: static;
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}

@-webkit-keyframes loop_wave_01 {
  0% {
    -webkit-transform: translatex(100%);
            transform: translatex(100%);
  }
  100% {
    -webkit-transform: translateX(-100%);
            transform: translateX(-100%);
  }
}

@keyframes loop_wave_01 {
  0% {
    -webkit-transform: translatex(100%);
            transform: translatex(100%);
  }
  100% {
    -webkit-transform: translateX(-100%);
            transform: translateX(-100%);
  }
}
@-webkit-keyframes loop_wave_02 {
  0% {
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
  100% {
    -webkit-transform: translateX(-200%);
            transform: translateX(-200%);
  }
}
@keyframes loop_wave_02 {
  0% {
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
  100% {
    -webkit-transform: translateX(-200%);
            transform: translateX(-200%);
  }
}
@-webkit-keyframes fadein {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
@keyframes fadein {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
@-webkit-keyframes swing {
  0% {
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
  50% {
    -webkit-transform: translateY(-2rem);
            transform: translateY(-2rem);
  }
  100% {
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}
@keyframes swing {
  0% {
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
  50% {
    -webkit-transform: translateY(-2rem);
            transform: translateY(-2rem);
  }
  100% {
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}
.p-philosophy-head {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 100vw;
  position: relative;
}
@media only screen and (max-width: 767px) {
  .p-philosophy-head {
    padding: 0 2.15rem;
  }
}
.p-philosophy-head__title {
  position: absolute;
  top: 14.33rem;
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
}
@media only screen and (max-width: 767px) {
  .p-philosophy-head__title {
    top: 9.13rem;
  }
}
.p-philosophy-head__lead {
  line-height: 1.20475;
  letter-spacing: 0.075em;
  font-size: 4rem;
  font-weight: 700;
  font-family: "Zen Kaku Gothic New", sans-serif;
}
@media only screen and (max-width: 767px) {
  .p-philosophy-head__lead {
    font-size: 3rem;
    line-height: 1.5;
  }
}
.p-philosophy-body {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 100vw;
  position: relative;
  z-index: 1;
}
@media only screen and (max-width: 767px) {
  .p-philosophy-body {
    padding: 0 1.35rem;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
  }
}
.p-philosophy-body__image {
  width: 99.976rem;
  margin: 0 auto 5.85rem;
  position: relative;
  z-index: 1;
}
@media only screen and (max-width: 767px) {
  .p-philosophy-body__image {
    width: 100%;
    margin-bottom: 3.83rem;
  }
}
.p-philosophy-body__circle {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  width: 113.6rem;
  max-width: 100%;
  margin: 0 auto 5.85rem;
}
.p-philosophy-body__circle-circle {
  background: var(--beige1);
  border-radius: 50%;
  width: 32.8rem;
  height: 32.8rem;
  border: solid 1px #000;
  padding-top: 10rem;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  margin: 0 auto;
}
.p-philosophy-body__circle-ttl {
  font-size: 3.5rem;
  font-weight: bold;
  letter-spacing: 0.075em;
}
.p-philosophy-body__circle-txt {
  margin-top: 2.6rem;
  font-size: 2rem;
  font-weight: 500;
  letter-spacing: 0.075em;
  line-height: 1.5;
}
@media only screen and (max-width: 767px) {
  .p-philosophy-body__circle {
    margin-bottom: 2.5rem;
    display: -ms-grid;
    display: grid;
    -ms-grid-rows: 1fr 1fr;
    grid-template-rows: 1fr 1fr;
    -ms-grid-columns: 1fr 1fr;
    grid-template-columns: 1fr 1fr;
  }
  .p-philosophy-body__circle > *:nth-child(1) {
    -ms-grid-row: 1;
    -ms-grid-column: 1;
  }
  .p-philosophy-body__circle > *:nth-child(2) {
    -ms-grid-row: 1;
    -ms-grid-column: 2;
  }
  .p-philosophy-body__circle > *:nth-child(3) {
    -ms-grid-row: 2;
    -ms-grid-column: 1;
  }
  .p-philosophy-body__circle > *:nth-child(4) {
    -ms-grid-row: 2;
    -ms-grid-column: 2;
  }
  .p-philosophy-body__circle-box:nth-of-type(3) {
    -ms-grid-column: 1;
        grid-column-start: 1;
    -ms-grid-column-span: 2;
    grid-column-end: 3;
    margin-top: -1rem;
  }
  .p-philosophy-body__circle-circle {
    width: 16.4rem;
    height: 16.4rem;
    padding-top: 5rem;
  }
  .p-philosophy-body__circle-ttl {
    font-size: 1.75rem;
  }
  .p-philosophy-body__circle-txt {
    margin-top: 1.3rem;
    font-size: 1rem;
  }
}
.p-philosophy-body__caption {
  line-height: 2.12625;
  letter-spacing: 0.075em;
  font-size: 1.6rem;
  font-weight: 500;
  position: relative;
  z-index: 1;
}
@media only screen and (max-width: 767px) {
  .p-philosophy-body__caption {
    font-size: 0.8rem;
    line-height: 1.94875;
    letter-spacing: 0;
    -webkit-font-feature-settings: "palt";
            font-feature-settings: "palt";
  }
}

.p-business-head {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 100vw;
  position: relative;
}
.p-business-head__title {
  position: absolute;
  top: 14.33rem;
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
}
@media only screen and (max-width: 767px) {
  .p-business-head__title {
    top: 9.13rem;
  }
}
.p-business-body {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 100vw;
  position: relative;
  z-index: 1;
}
@media only screen and (max-width: 767px) {
  .p-business-body {
    padding: 0 1.35rem;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
  }
}
.p-business-body__image {
  width: 99.976rem;
  margin: 0 auto 5.85rem;
  position: relative;
  z-index: 1;
}
@media only screen and (max-width: 767px) {
  .p-business-body__image {
    width: 100%;
    margin-bottom: 3.83rem;
  }
}
.p-business-body__circle {
  width: 113.6rem;
  max-width: 100%;
  margin: 0 auto;
  display: -ms-grid;
  display: grid;
  display: grid;
  -ms-grid-rows: 1fr -webkit-max-content;
  -ms-grid-rows: 1fr max-content;
  grid-template-rows: 1fr -webkit-max-content;
  grid-template-rows: 1fr max-content;
  -ms-grid-columns: 1fr 1fr 1fr;
  grid-template-columns: 1fr 1fr 1fr;
}
.p-business-body__circle > *:nth-child(1) {
  -ms-grid-row: 1;
  -ms-grid-column: 1;
}
.p-business-body__circle > *:nth-child(2) {
  -ms-grid-row: 1;
  -ms-grid-column: 2;
}
.p-business-body__circle > *:nth-child(3) {
  -ms-grid-row: 1;
  -ms-grid-column: 3;
}
.p-business-body__circle > *:nth-child(4) {
  -ms-grid-row: 2;
  -ms-grid-column: 1;
}
.p-business-body__circle > *:nth-child(5) {
  -ms-grid-row: 2;
  -ms-grid-column: 2;
}
.p-business-body__circle > *:nth-child(6) {
  -ms-grid-row: 2;
  -ms-grid-column: 3;
}
.p-business-body__circle-box--1, .p-business-body__circle-box--2, .p-business-body__circle-box--3 {
  padding-bottom: 4.3rem;
}
.p-business-body__circle-box--2 {
  position: relative;
}
.p-business-body__circle-box--2:before {
  content: "";
  display: block;
  position: absolute;
  left: 0;
  bottom: 0;
  top: 50%;
  z-index: -1;
  width: 1px;
  background: #000;
}
.p-business-body__circle-box--2:after {
  content: "";
  display: block;
  position: absolute;
  right: 50%;
  top: 50%;
  z-index: -1;
  width: 100%;
  height: 1px;
  background: #000;
}
.p-business-body__circle-box--3 {
  position: relative;
}
.p-business-body__circle-box--3:before {
  content: "";
  display: block;
  position: absolute;
  left: 50%;
  bottom: 0;
  top: 50%;
  z-index: -1;
  width: 1px;
  background: #000;
}
.p-business-body__circle-box--4 {
  -ms-grid-column: 1;
      grid-column-start: 1;
  -ms-grid-column-span: 2;
  grid-column-end: 3;
}
.p-business-body__circle-circle {
  background: #5DB572;
  border-radius: 50%;
  width: 32.8rem;
  height: 32.8rem;
  border: solid 1px #000;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  margin: 0 auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.p-business-body__circle-ttl {
  font-size: 3.5rem;
  font-weight: bold;
  letter-spacing: 0.075em;
}
.p-business-body__circle-caption-ttl {
  font-size: 2.8rem;
  font-weight: bold;
  letter-spacing: 0.075em;
}
.p-business-body__circle-caption-txt {
  margin-top: 2rem;
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 1.5;
  -webkit-font-feature-settings: "palt";
          font-feature-settings: "palt";
}
@media only screen and (max-width: 767px) {
  .p-business-body__circle {
    display: -ms-grid;
    display: grid;
    -ms-grid-rows: 1fr 1fr -webkit-max-content -webkit-max-content;
    -ms-grid-rows: 1fr 1fr max-content max-content;
    grid-template-rows: 1fr 1fr -webkit-max-content -webkit-max-content;
    grid-template-rows: 1fr 1fr max-content max-content;
    -ms-grid-columns: 1fr 1fr;
    grid-template-columns: 1fr 1fr;
  }
  .p-business-body__circle > *:nth-child(1) {
    -ms-grid-row: 1;
    -ms-grid-column: 1;
  }
  .p-business-body__circle > *:nth-child(2) {
    -ms-grid-row: 1;
    -ms-grid-column: 2;
  }
  .p-business-body__circle > *:nth-child(3) {
    -ms-grid-row: 2;
    -ms-grid-column: 1;
  }
  .p-business-body__circle > *:nth-child(4) {
    -ms-grid-row: 2;
    -ms-grid-column: 2;
  }
  .p-business-body__circle > *:nth-child(5) {
    -ms-grid-row: 3;
    -ms-grid-column: 1;
  }
  .p-business-body__circle > *:nth-child(6) {
    -ms-grid-row: 3;
    -ms-grid-column: 2;
  }
  .p-business-body__circle > *:nth-child(7) {
    -ms-grid-row: 4;
    -ms-grid-column: 1;
  }
  .p-business-body__circle > *:nth-child(8) {
    -ms-grid-row: 4;
    -ms-grid-column: 2;
  }
  .p-business-body__circle-box--1, .p-business-body__circle-box--2 {
    padding: 1.5rem 0 0;
  }
  .p-business-body__circle-box--2:before {
    top: 0;
    bottom: calc(50% - 1.5rem);
  }
  .p-business-body__circle-box--2:after {
    top: unset;
    bottom: calc(50% - 1.5rem);
  }
  .p-business-body__circle-box--3 {
    padding-bottom: 1.5rem;
    margin-top: -1rem;
  }
  .p-business-body__circle-box--4 {
    -ms-grid-row: 1;
        grid-row-start: 1;
    -ms-grid-row-span: 2;
    grid-row-end: 3;
    -ms-grid-column: 1;
        grid-column-start: 1;
    -ms-grid-column-span: 2;
    grid-column-end: 3;
  }
  .p-business-body__circle-box--3, .p-business-body__circle-box--5 {
    -ms-grid-column: 1;
        grid-column-start: 1;
    -ms-grid-column-span: 2;
    grid-column-end: 3;
  }
  .p-business-body__circle-box--5 {
    margin-top: 10px;
  }
  .p-business-body__circle-circle {
    width: 16.4rem;
    height: 16.4rem;
  }
  .p-business-body__circle-ttl {
    font-size: 1.5rem;
    line-height: 1.6333333333;
  }
  .p-business-body__circle-caption-ttl {
    font-size: 1.4rem;
  }
  .p-business-body__circle-caption-txt {
    margin-top: 1rem;
    font-size: 0.9rem;
    line-height: 1.7322222222;
  }
}

.p-solution {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 100vw;
}
.p-solution__container {
  position: relative;
  z-index: 1;
}
.p-solution__title {
  margin: 0 auto;
}
.p-solution__lead {
  line-height: 1.20475;
  letter-spacing: 0.075em;
  font-size: 4rem;
  font-weight: 700;
  font-family: "Zen Kaku Gothic New", sans-serif;
}
@media only screen and (max-width: 767px) {
  .p-solution__lead {
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1;
    font-size: 3rem;
  }
}
.p-solution__lead strong {
  font-size: 5rem;
}
@media only screen and (max-width: 767px) {
  .p-solution__lead strong {
    font-size: 3.5rem;
  }
}
.p-solution__slider {
  max-width: 136.6rem;
  width: 100%;
  height: 46.1rem;
  margin: 0 auto;
  position: relative;
  z-index: 1;
}
@media only screen and (max-width: 767px) {
  .p-solution__slider {
    max-width: initial;
    padding: 0 3rem;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
  }
}
.p-solution__slider .slick-track {
  display: -webkit-box !important;
  display: -ms-flexbox !important;
  display: flex !important;
}
.p-solution__slider .slick-dots {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 2rem;
  position: absolute;
  left: 50%;
  top: 100%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
}
.p-solution__slider .slick-dots li {
  width: 1rem;
  aspect-ratio: 1/1;
  border-radius: 100%;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  overflow: hidden;
  background: var(--base);
}
.p-solution__slider .slick-dots li button {
  width: 100%;
  height: 100%;
  overflow: hidden;
  text-indent: -9999px;
}
.p-solution__slider_item {
  display: -webkit-box !important;
  display: -ms-flexbox !important;
  display: flex !important;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  height: 46.1rem;
  position: relative;
}
.p-solution__block {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
@media only screen and (max-width: 767px) {
  .p-solution__block {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
  }
  .p-solution__block .p-solution__lead {
    font-size: 4rem;
  }
}
.p-solution__block-find .p-solution__block_image {
  width: 27.207rem;
  left: 13.58rem;
}
@media only screen and (max-width: 767px) {
  .p-solution__block-find .p-solution__block_image {
    margin: 10rem auto;
    width: 13.6035rem;
  }
}
.p-solution__block-growup .p-solution__block_image {
  width: 15.73rem;
  left: 21.61rem;
}
@media only screen and (max-width: 767px) {
  .p-solution__block-growup .p-solution__block_image {
    width: 7.865rem;
    margin: 6rem auto 3.5rem;
  }
}
.p-solution__block-fun .p-solution__block_image {
  width: 30.766rem;
  left: 11.57rem;
}
@media only screen and (max-width: 767px) {
  .p-solution__block-fun .p-solution__block_image {
    width: 20.152rem;
    margin: 3.7rem auto 2.5rem;
  }
}
.p-solution__block_image {
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}
@media only screen and (max-width: 767px) {
  .p-solution__block_image {
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2;
    position: static;
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}
.p-solution__box {
  width: 36rem;
  position: absolute;
  top: 14.5rem;
  right: 5.3rem;
  text-align: left;
}
@media only screen and (max-width: 767px) {
  .p-solution__box {
    -webkit-box-ordinal-group: 4;
        -ms-flex-order: 3;
            order: 3;
    width: 100%;
    position: static;
  }
}
.p-solution__box_title {
  margin: 0 0 2.33rem;
  line-height: 1.75;
  font-size: 3rem;
  font-weight: 700;
}
@media only screen and (max-width: 767px) {
  .p-solution__box_title {
    margin-bottom: 1.5rem;
    text-align: center;
    font-size: 1.5rem;
    line-height: 1.3733333333;
  }
}
.p-solution__box_caption {
  line-height: 1.7322222222;
  letter-spacing: 0.075em;
  font-size: 1.8rem;
  font-weight: 500;
}
@media only screen and (max-width: 767px) {
  .p-solution__box_caption {
    text-align: justify;
    font-size: 0.9rem;
    line-height: 1.7322222222;
    width: 22.5rem;
    margin: 0 auto;
  }
}

.p-news {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 100vw;
}
.p-news__container {
  max-width: 116rem;
  width: 100%;
  margin: 0 auto;
  position: relative;
  z-index: 1;
}
@media only screen and (max-width: 767px) {
  .p-news__container {
    padding: 0 2.5rem;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
  }
}
.p-news__title {
  margin: 0 auto 7.05rem;
}
@media only screen and (max-width: 767px) {
  .p-news__title {
    margin-bottom: 7.81rem;
  }
}
.p-news__slider {
  position: relative;
}
.p-news__slider_item {
  text-align: left;
}
.p-news__slider_image, .p-news__slider_title {
  display: block;
}
.p-news__slider_title {
  margin: 0.98rem 0 0;
  padding: 0 1rem;
  line-height: 1.575;
  letter-spacing: 0.075em;
  font-size: 1.8rem;
  font-weight: 500;
}
@media only screen and (max-width: 767px) {
  .p-news__slider_title {
    font-size: 0.9rem;
  }
}
.p-news__slider .slick-track {
  display: -webkit-box !important;
  display: -ms-flexbox !important;
  display: flex !important;
  gap: 5rem;
}
@media only screen and (max-width: 767px) {
  .p-news__slider .slick-track {
    gap: 2.5rem;
  }
}
.p-news__slider .slick-arrow {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 3rem;
  aspect-ratio: 1/1;
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}
.p-news__slider .slick-arrow::before {
  content: "";
  width: 100%;
  height: 0.1rem;
  background: var(--base);
}
.p-news__slider .slick-arrow:after {
  content: "";
  display: block;
  position: absolute;
  width: 1rem;
  height: 1rem;
  border-top: solid 1px var(--base);
  border-right: solid 1px var(--base);
}
.p-news__slider .slick-arrow.prev {
  right: calc(100% + 5rem);
}
.p-news__slider .slick-arrow.prev:after {
  -webkit-transform: rotate(-135deg);
          transform: rotate(-135deg);
  left: 0;
}
.p-news__slider .slick-arrow.next {
  left: calc(100% + 5rem);
}
.p-news__slider .slick-arrow.next:after {
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
  right: 0;
}
.p-news__slider .slick-dots {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 2rem;
  position: absolute;
  top: calc(100% + 5.64rem);
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
}
.p-news__slider .slick-dots li {
  width: 1rem;
  aspect-ratio: 1/1;
  border-radius: 100%;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  overflow: hidden;
  background: var(--base);
}
.p-news__slider .slick-dots li button {
  width: 100%;
  height: 100%;
  overflow: hidden;
  text-indent: -9999px;
}

.p-contact-head {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
.p-contact-head__image {
  width: 121.874rem;
  margin: 0 auto;
  mix-blend-mode: multiply;
}
@media only screen and (max-width: 767px) {
  .p-contact-head__image {
    width: 100%;
  }
}
.p-contact-body {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  position: relative;
  z-index: 1;
}
@media only screen and (max-width: 767px) {
  .p-contact-body {
    padding: 0 3rem;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
  }
}
.p-contact-body__title {
  margin: 0 auto 11.3rem;
}
@media only screen and (max-width: 767px) {
  .p-contact-body__title {
    margin-bottom: 9.82rem;
  }
}
.p-contact-body__image {
  width: 28.8rem;
  margin: 0 auto;
}
@media only screen and (max-width: 767px) {
  .p-contact-body__image {
    width: 14.4rem;
  }
}
.p-contact-body__email {
  display: block;
  margin: 10.71rem auto 0;
  line-height: 1.7953333333;
  letter-spacing: 0.075em;
  text-decoration: none;
  font-size: 3rem;
  font-weight: 400;
  color: var(--base);
}
@media only screen and (max-width: 767px) {
  .p-contact-body__email {
    margin-top: 2.5rem;
  }
  .p-contact-body__email img {
    width: 17.2rem;
  }
}

.p-company {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
@media only screen and (max-width: 767px) {
  .p-company {
    padding: 0 3rem;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
  }
}
.p-company__container {
  width: 56.4rem;
  max-width: 100%;
  margin: 0 auto;
}
@media only screen and (max-width: 767px) {
  .p-company__container {
    width: 28.5rem;
  }
}
.p-company__dl {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  text-align: left;
  margin: 0;
}
.p-company__dt {
  width: 14.5rem;
}
.p-company__dt-txt {
  font-size: 1.6rem;
  font-weight: 500;
  letter-spacing: 0.075em;
  line-height: 1.771875;
}
@media only screen and (max-width: 767px) {
  .p-company__dt {
    width: 7.25rem;
  }
  .p-company__dt-txt {
    font-size: 0.8rem;
  }
}
.p-company__dd {
  width: calc(100% - 14.5rem);
}
.p-company__dd-txt {
  font-size: 1.6rem;
  font-weight: 500;
  -webkit-font-feature-settings: "palt";
          font-feature-settings: "palt";
  line-height: 1.771875;
}
@media only screen and (max-width: 767px) {
  .p-company__dd {
    width: calc(100% - 7.25rem);
  }
  .p-company__dd-txt {
    font-size: 0.8rem;
  }
}

.p-privacy {
  padding: 21.56rem 0 25.19rem;
}
@media only screen and (max-width: 767px) {
  .p-privacy {
    padding: 12.36rem 0 6.09rem;
  }
}
.p-privacy__container {
  max-width: 96rem;
  width: 100%;
  margin: 0 auto;
  padding: 0 3rem;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  line-height: 2.12625;
  letter-spacing: 0.055em;
  text-align: left;
  font-size: 1.6rem;
  font-weight: 400;
}
@media only screen and (max-width: 767px) {
  .p-privacy__container {
    line-height: 2.1428571429;
    font-size: 1.4rem;
  }
}
.p-privacy__title {
  margin: 0 0 2em;
  font-size: inherit;
  font-weight: 400;
}
.p-privacy__block {
  margin-top: 2em;
}
.p-privacy__block_title {
  font-size: inherit;
  font-weight: 400;
}
.p-privacy__block p + p {
  margin-top: 2em;
}