:root {
  --space-body: 100px;
  --space-4xs: 16px;
  --space-3xs: 24px;
  --space-2xs: 36px;
  --space-xs: 44px;
  --space-sm: 56px;
  --space-md: 70px;
  --space-lg: 82px;
  --space-xl: 92px;
  --space-2xl: 132px;
  --space-3xl: 176px;
  --grid-gutter: 46px;
  --color-yellow: #ffe501;
  --color-lightgray: #f7f7f7;
  --color-cyan: #7cd0e3;
  --text-md: 16px;
  --text-lg: 18px;
  --text-xl: 20px;
  --text-2xl: 24px;
  --text-3xl: 32px;
  --text-4xl: 44px;
  --text-5xl: 56px;
}

@media (width <= 1500px) {
  :root {
    --text-5xl: 48px;
  }
}
@media (width <= 1280px) {
  :root {
    --space-body: 40px;
    --space-4xs: 12px;
    --space-3xs: 20px;
    --space-2xs: 24px;
    --space-xs: 32px;
    --space-sm: 36px;
    --space-md: 40px;
    --space-lg: 54px;
    --space-xl: 58px;
    --space-2xl: 64px;
    --space-3xl: 122px;
    --grid-gutter: 24px;
    --text-md: 15px;
    --text-lg: 17px;
    --text-xl: 19px;
    --text-2xl: 22px;
    --text-3xl: 28px;
    --text-4xl: 32px;
    --text-5xl: 40px;
  }
}
@media (width <= 640px) {
  :root {
    --space-body: 20px;
    --space-4xs: 12px;
    --space-3xs: 14px;
    --space-2xs: 20px;
    --space-xs: 24px;
    --space-sm: 28px;
    --space-md: 32px;
    --space-lg: 42px;
    --space-xl: 48px;
    --space-2xl: 54px;
    --space-3xl: 64px;
    --grid-gutter: 20px;
    --text-md: 14px;
    --text-lg: 16px;
    --text-xl: 18px;
    --text-2xl: 20px;
    --text-3xl: 24px;
    --text-4xl: 24px;
    --text-5xl: 24px;
  }
}
.page {
  font-family: "Zen Maru Gothic", serif;
  font-weight: 700;
  font-style: normal;
  font-size: 18px;
  line-height: 1.6;
  letter-spacing: 0;
}
.page * {
  box-sizing: border-box;
}
.page img {
  max-width: 100%;
  height: auto;
}

.container {
  padding-inline: var(--space-body);
}

.wrapper {
  max-width: 1266px;
  margin-inline: auto;
  width: 100%;
}
.wrapper.-width_full {
  max-width: 100%;
}
.wrapper.-width_2xl {
  max-width: 1720px;
}
.wrapper.-width_default {
  max-width: 1266px;
}
.wrapper.-width_sm {
  max-width: 904px;
}

.grid {
  display: grid;
  gap: var(--grid-gutter);
}
.grid.-grid_3 {
  grid-template-columns: repeat(3, 1fr);
}
@media (width <= 800px) {
  .grid.-grid_3 {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (width <= 480px) {
  .grid.-grid_3 {
    grid-template-columns: repeat(1, 1fr);
  }
}
.grid.-grid_3l {
  grid-template-columns: repeat(3, 1fr);
}
.grid.-grid_2 {
  grid-template-columns: repeat(2, 1fr);
}
@media (width <= 640px) {
  .grid.-grid_2 {
    grid-template-columns: repeat(1, 1fr);
  }
}

.grid_img {
  width: 100%;
}

.section_heading01 {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1em;
  font-size: var(--text-3xl);
  line-height: 1.4;
}

.section_heading01_img {
  width: 7.65625em;
}

.section_heading01_label {
  text-align: center;
}

.section_heading02 {
  margin-top: var(--space-md);
  font-size: var(--text-4xl);
  line-height: 1.4;
  text-align: center;
}
.section_heading02::before {
  content: url(../images/section_heading02_img.svg);
  display: block;
  width: 3.9615384615em;
  height: auto;
  margin-inline: auto;
}

.section_heading02_label {
  display: inline;
  background: linear-gradient(transparent 60%, #fff 60%);
  padding-inline: 0.5em;
}

.section-heading03 {
  display: flex;
  flex-direction: column;
  gap: 0.5em;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin-inline: auto;
  font-size: var(--text-3xl);
  line-height: 1.4;
}
.section-heading03::after {
  background: url(../images/section_heading03_img.svg) center center/contain repeat-x;
  content: "";
  display: block;
  width: 100%;
  height: 11px;
}

.box {
  border-radius: 15px;
}
.box.-size_md {
  padding: 50px 40px;
}
@media (width <= 1280px) {
  .box.-size_md {
    padding: 40px 36px;
  }
}
@media (width <= 640px) {
  .box.-size_md {
    padding: 36px 30px;
  }
}
.box.grid_item {
  min-height: 100%;
}

.-mt_0 {
  margin-top: 0;
}

.-p_4xs {
  padding: var(--space-4xs);
}

.-px_4xs {
  padding-inline: var(--space-4xs);
}

.-py_4xs {
  padding-block: var(--space-4xs);
}

.-pt_4xs {
  padding-top: var(--space-4xs);
}

.-pb_4xs {
  padding-bottom: var(--space-4xs);
}

.-mt_4xs {
  margin-top: var(--space-4xs);
}

.-mb_4xs {
  margin-bottom: var(--space-4xs);
}

.-p_3xs {
  padding: var(--space-3xs);
}

.-px_3xs {
  padding-inline: var(--space-3xs);
}

.-py_3xs {
  padding-block: var(--space-3xs);
}

.-pt_3xs {
  padding-top: var(--space-3xs);
}

.-pb_3xs {
  padding-bottom: var(--space-3xs);
}

.-mt_3xs {
  margin-top: var(--space-3xs);
}

.-mb_3xs {
  margin-bottom: var(--space-3xs);
}

.-p_2xs {
  padding: var(--space-2xs);
}

.-px_2xs {
  padding-inline: var(--space-2xs);
}

.-py_2xs {
  padding-block: var(--space-2xs);
}

.-pt_2xs {
  padding-top: var(--space-2xs);
}

.-pb_2xs {
  padding-bottom: var(--space-2xs);
}

.-mt_2xs {
  margin-top: var(--space-2xs);
}

.-mb_2xs {
  margin-bottom: var(--space-2xs);
}

.-p_xs {
  padding: var(--space-xs);
}

.-px_xs {
  padding-inline: var(--space-xs);
}

.-py_xs {
  padding-block: var(--space-xs);
}

.-pt_xs {
  padding-top: var(--space-xs);
}

.-pb_xs {
  padding-bottom: var(--space-xs);
}

.-mt_xs {
  margin-top: var(--space-xs);
}

.-mb_xs {
  margin-bottom: var(--space-xs);
}

.-p_sm {
  padding: var(--space-sm);
}

.-px_sm {
  padding-inline: var(--space-sm);
}

.-py_sm {
  padding-block: var(--space-sm);
}

.-pt_sm {
  padding-top: var(--space-sm);
}

.-pb_sm {
  padding-bottom: var(--space-sm);
}

.-mt_sm {
  margin-top: var(--space-sm);
}

.-mb_sm {
  margin-bottom: var(--space-sm);
}

.-p_md {
  padding: var(--space-md);
}

.-px_md {
  padding-inline: var(--space-md);
}

.-py_md {
  padding-block: var(--space-md);
}

.-pt_md {
  padding-top: var(--space-md);
}

.-pb_md {
  padding-bottom: var(--space-md);
}

.-mt_md {
  margin-top: var(--space-md);
}

.-mb_md {
  margin-bottom: var(--space-md);
}

.-p_lg {
  padding: var(--space-lg);
}

.-px_lg {
  padding-inline: var(--space-lg);
}

.-py_lg {
  padding-block: var(--space-lg);
}

.-pt_lg {
  padding-top: var(--space-lg);
}

.-pb_lg {
  padding-bottom: var(--space-lg);
}

.-mt_lg {
  margin-top: var(--space-lg);
}

.-mb_lg {
  margin-bottom: var(--space-lg);
}

.-p_xl {
  padding: var(--space-xl);
}

.-px_xl {
  padding-inline: var(--space-xl);
}

.-py_xl {
  padding-block: var(--space-xl);
}

.-pt_xl {
  padding-top: var(--space-xl);
}

.-pb_xl {
  padding-bottom: var(--space-xl);
}

.-mt_xl {
  margin-top: var(--space-xl);
}

.-mb_xl {
  margin-bottom: var(--space-xl);
}

.-p_2xl {
  padding: var(--space-2xl);
}

.-px_2xl {
  padding-inline: var(--space-2xl);
}

.-py_2xl {
  padding-block: var(--space-2xl);
}

.-pt_2xl {
  padding-top: var(--space-2xl);
}

.-pb_2xl {
  padding-bottom: var(--space-2xl);
}

.-mt_2xl {
  margin-top: var(--space-2xl);
}

.-mb_2xl {
  margin-bottom: var(--space-2xl);
}

.-p_3xl {
  padding: var(--space-3xl);
}

.-px_3xl {
  padding-inline: var(--space-3xl);
}

.-py_3xl {
  padding-block: var(--space-3xl);
}

.-pt_3xl {
  padding-top: var(--space-3xl);
}

.-pb_3xl {
  padding-bottom: var(--space-3xl);
}

.-mt_3xl {
  margin-top: var(--space-3xl);
}

.-mb_3xl {
  margin-bottom: var(--space-3xl);
}

.-bg_white {
  background-color: #fff;
}

.-bg_yellow {
  background-color: var(--color-yellow);
}

.-bg_lightgray {
  background-color: var(--color-lightgray);
}

.-bg_t_wave_yellow {
  background: var(--color-yellow) url(../images/separator_t_wave_yellow.svg) 50% -1px/101% auto no-repeat;
}

.-bg_b_arrow_yellow {
  background: var(--color-yellow) url(../images/separator_b_arrow_yellow.svg) 50% calc(100% + 1px)/101% auto no-repeat;
}

.-bg_b_wave_lightgray {
  background: var(--color-lightgray) url(../images/separator_b_wave_lightgray.svg) 50% calc(100% + 1px)/101% auto no-repeat;
}

.-text_xs {
  font-size: var(--text-xs);
}

.-text_sm {
  font-size: var(--text-sm);
}

.-text_md {
  font-size: var(--text-md);
}

.-text_lg {
  font-size: var(--text-lg);
}

.-text_xl {
  font-size: var(--text-xl);
}

.-text_2xl {
  font-size: var(--text-2xl);
}

.-text_3xl {
  font-size: var(--text-3xl);
}

.-text_4xl {
  font-size: var(--text-4xl);
}

.-text_5xl {
  font-size: var(--text-5xl);
}

.-center {
  text-align: center;
}

.page_header {
  background: url(../images/main.webp) center center/cover no-repeat;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100vh;
}
@media (orientation: landscape) {
  .page_header {
    min-height: 900px;
  }
}
@media (orientation: portrait) {
  .page_header {
    background-image: url(../images/main_sp.webp);
  }
}

.welcome_about {
  position: relative;
  padding: 36px 72px 58px;
}
@media (width <= 1280px) {
  .welcome_about {
    padding: 30px 60px 40px;
  }
}
@media (width <= 640px) {
  .welcome_about {
    padding: 24px 40px 32px;
  }
}
@media (width <= 480px) {
  .welcome_about {
    padding: 20px 30px 28px;
  }
}
.welcome_about::before, .welcome_about::after {
  position: absolute;
  content: "";
  display: block;
  width: 92px;
  height: 92px;
  border: 0 solid;
}
@media (width <= 1280px) {
  .welcome_about::before, .welcome_about::after {
    width: 72px;
    height: 72px;
  }
}
@media (width <= 640px) {
  .welcome_about::before, .welcome_about::after {
    width: 56px;
    height: 56px;
  }
}
@media (width <= 480px) {
  .welcome_about::before, .welcome_about::after {
    width: 40px;
    height: 40px;
  }
}
.welcome_about::before {
  left: 0;
  top: 0;
  border-top: 1px solid;
  border-left: 1px solid;
}
.welcome_about::after {
  right: 0;
  bottom: 0;
  border-right: 1px solid;
  border-bottom: 1px solid;
}
.welcome_about .welcome_about_heading {
  font-size: var(--text-3xl);
  line-height: 1.4;
  text-align: center;
}
.welcome_about .welcome_about_text {
  margin-top: 1.25em;
  font-size: var(--text-lg);
  line-height: 1.8;
}

.why .container {
  background: url(../images/why_bg.svg) 0% 0%/auto 100% no-repeat;
}

.link_btn_wrapper {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  gap: 20px 50px;
}

.link_btn {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1em;
  background-color: var(--color-cyan);
  width: 100%;
  min-height: 90px;
  padding: 1.1666666667em 3em;
  border-radius: 9999px;
  text-align: center;
}
@media (width <= 1280px) {
  .link_btn {
    min-height: 80px;
  }
}
@media (width <= 640px) {
  .link_btn {
    min-height: 70px;
    padding: 1.1666666667em 3.8333333333em;
  }
}
.link_btn::after {
  content: "";
  display: block;
  width: 8px;
  height: 16px;
  background: url(../images/link_btn_arrow.svg) center center/contain no-repeat;
  position: absolute;
  right: 36px;
  top: 50%;
  transform: translateY(-50%);
}
.link_btn.-size-md {
  max-width: 420px;
  font-size: var(--text-lg);
}
.link_btn.-size-lg {
  max-width: 572px;
  font-size: var(--text-2xl);
}

.surpport_heading {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.surpport_heading_label {
  font-size: var(--text-2xl);
}

.outline-gallery {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
}
@media (width <= 640px) {
  .outline-gallery {
    grid-template-columns: repeat(2, 1fr);
  }
}
.outline-gallery img {
  width: 100%;
}

.check_list {
  display: flex;
  flex-direction: column;
  gap: 0.4em;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin-inline: auto;
  font-size: 36px;
  line-height: 1.4;
}
@media (width <= 1280px) {
  .check_list {
    font-size: 24px;
  }
}
@media (width <= 640px) {
  .check_list {
    font-size: 20px;
  }
}
.check_list.-size_sm {
  font-size: 28px;
}
@media (width <= 1280px) {
  .check_list.-size_sm {
    font-size: 22px;
  }
}
@media (width <= 640px) {
  .check_list.-size_sm {
    font-size: 18px;
  }
}
.check_list li {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.5em;
}
.check_list li::before {
  background: 0 0.4em/contain no-repeat;
  content: "";
  display: block;
  width: 1em;
}
.check_list.-white li::before {
  background-image: url(../images/check_list_white.svg);
}
.check_list.-yellow li::before {
  background-image: url(../images/check_list_yellow.svg);
}
.check_list.-black li::before {
  background-image: url(../images/check_list_black.svg);
}

.about_map {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}
@media (width <= 1280px) {
  .about_map {
    grid-template-columns: 1.25fr 1fr;
  }
}
@media (width <= 640px) {
  .about_map {
    grid-template-columns: 1fr;
    gap: 0;
  }
}

.about_map_img {
  width: 100%;
}

.about_map_body {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

@media (width <= 640px) {
  .about_map_heading {
    max-width: 400px;
  }
}

.case01,
.case02 {
  display: grid;
  gap: 50px;
}
@media (width <= 1280px) {
  .case01,
.case02 {
    gap: 40px;
  }
}
@media (width <= 1024px) {
  .case01,
.case02 {
    grid-template-columns: 1fr !important;
  }
}

.case01 {
  grid-template-columns: 629fr 583fr;
}

.case02 {
  grid-template-columns: 583fr 629fr;
}
@media (width >= 1024px) {
  .case02 .case_body {
    order: 2;
  }
}

.case_heading {
  display: flex;
  flex-direction: column;
  gap: 20px;
}
@media (width <= 1024px) {
  .case_heading {
    align-items: center;
    text-align: center;
  }
}

.case_heading_label {
  display: flex;
  flex-direction: column;
  gap: 0.5em;
  font-size: var(--text-3xl);
  line-height: 1.4;
}
.case_heading_label::after {
  background: url(../images/section_heading03_img.svg) center center/contain repeat-x;
  content: "";
  display: block;
  width: 100%;
  height: 11px;
}

.case_img img {
  width: 100%;
}

.description {
  font-size: var(--text-lg);
  line-height: 1.8;
  font-weight: 600;
}

.splide img {
  width: 100%;
}

.splide__pagination {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 30px;
  margin-top: 40px !important;
  mix-blend-mode: multiply;
}
@media (width <= 1280px) {
  .splide__pagination {
    gap: 20px;
    margin-top: 30px !important;
  }
}
@media (width <= 640px) {
  .splide__pagination {
    gap: 10px;
    margin-top: 20px !important;
  }
}

.splide__pagination__page {
  background-color: #d6d6d6;
  display: block;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  border: 0;
  cursor: pointer;
}
@media (width <= 1280px) {
  .splide__pagination__page {
    width: 16px;
    height: 16px;
  }
}
@media (width <= 640px) {
  .splide__pagination__page {
    width: 12px;
    height: 12px;
  }
}
.splide__pagination__page.is-active {
  background-color: #8c8c8c;
}
/*# sourceMappingURL=local.css.map */