@charset "UTF-8";
/*------------------------------------------------------------------------
// Base
  ├ reset
  └ base
------------------------------------------------------------------------*/
/*----------------------------------------
	reset
----------------------------------------*/
*,
::before,
::after {
  box-sizing: border-box;
}

* {
  font-size: inherit;
  line-height: inherit;
}

::before,
::after {
  text-decoration: inherit;
  vertical-align: inherit;
}

html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre,
abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp,
small, strong, sub, sup, var, b, i, dl, dt, dd, ol, ul, li,
fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, dialog, figure, footer, header, main, menu, nav, section,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  vertical-align: baseline;
}

header, footer, article, section, aside, main, nav, menu, figure, figcaption {
  display: block;
}

span, small, strong, em, b, i {
  color: inherit;
}

html {
  -webkit-text-size-adjust: 100%;
  -moz-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

ul,
ol {
  list-style: none;
}

img {
  border: 0;
  vertical-align: top;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

caption, th {
  text-align: left;
}

input, select {
  vertical-align: middle;
}

input, textarea {
  margin: 0;
  padding: 0;
}

address {
  font-style: normal;
}

q::before,
q::after {
  display: none;
}

/*----------------------------------------
	base
----------------------------------------*/
html {
  scroll-behavior: smooth;
  font-size: 0.9765625vw;
}
@media (max-width: 640px) {
  html {
    font-size: 1.5625vw;
  }
}
@media (min-width: 1024px) {
  html {
    font-size: 62.5%;
  }
}

body {
  font-family: "Hiragino Sans", "ヒラギノ角ゴシック", YuGothic, "Yu Gothic", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
  line-height: 1.2;
  color: #1a1a1a;
}

a {
  color: inherit;
  text-decoration: underline;
  transition: all 0.3s;
}
@media (any-hover: hover) {
  a:hover {
    opacity: 0.7;
  }
}

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

button {
  -webkit-appearance: none;
  -moz-appearance: none;
       appearance: none;
  display: block;
  width: 100%;
  border: 0;
  font-family: inherit;
  font-weight: inherit;
}

/*------------------------------------------------------------------------
// Layout
  ├ wrapper
  ├ footer
  └ container
------------------------------------------------------------------------*/
/* wrapper
------------------------------------------------------ */
.wrapper {
  overflow-x: hidden;
  overflow-y: auto;
}

/* main-contents
------------------------------------------------------ */
.main-contents {
  max-width: 102.4rem;
  margin-inline: auto;
}
.main-contents > * {
  margin-inline: calc(50% - 50vw);
  padding-left: calc(50vw - 50%) !important;
  padding-right: calc(50vw - 50%) !important;
}

/* footer
------------------------------------------------------ */
.footer {
  padding-top: 4rem;
  padding-bottom: 4rem;
  background: #f3f3f3;
}

.footer__link {
  display: flex;
  justify-content: center;
  align-items: center;
  width: -moz-fit-content;
  width: fit-content;
  margin-inline: auto;
  text-decoration: none;
}
.footer__link-text {
  font-size: 1.7rem;
}
.footer__link-icon {
  width: 1.8rem;
  height: 1.8rem;
  margin-left: 1rem;
}

.footer__copyright {
  margin-top: 2rem;
  font-size: 1.4rem;
  text-align: center;
}

/* container
------------------------------------------------------ */
.container {
  max-width: 72.4rem;
  margin-inline: auto;
}
@media (max-width: 640px) {
  .container {
    max-width: 60rem;
  }
}

/*------------------------------------------------------------------------
// Component
  ├ button
  ├ cta-block
  └ cta-tel
------------------------------------------------------------------------*/
/* button
------------------------------------------------------ */
.btn {
  position: relative;
  display: inline-block;
  width: 100%;
  border-radius: 1.2rem;
  font-weight: 600;
  text-align: center;
  text-decoration: none;
  text-shadow: 0.2rem 0.2rem 0 rgba(0, 0, 0, 0.3);
  color: #fff;
  box-shadow: 0 0.5rem 3px rgba(186, 190, 197, 0.5);
}
.btn span {
  color: #ff0;
}
.btn + .btn {
  margin-top: 2rem;
}

.btn--contact {
  padding: 3rem 2.3rem;
  font-size: 3.2rem;
  letter-spacing: 0.04em;
  line-height: 1;
  background: linear-gradient(to bottom, #27ae35 50%, #039e11 50%);
  border: 0.4rem solid;
}
@media (max-width: 640px) {
  .btn--contact {
    padding: 2.8rem 1.6rem;
    font-size: 4.8rem;
    line-height: 1.2083333333;
    letter-spacing: 0.06em;
  }
}

.btn--support {
  padding: 2.1rem 2.4rem;
  font-size: 2.7rem;
  font-feature-settings: "palt";
  letter-spacing: 0.04em;
  line-height: 1;
  background: #1fa0b1;
  border: 0.3rem solid;
}
@media (max-width: 640px) {
  .btn--support {
    padding: 1.6rem 1.7rem;
    font-size: 3.6rem;
    line-height: 1.2777777778;
  }
}

/* cta-block
------------------------------------------------------ */
.cta-block {
  padding-top: 4.5rem;
  padding-bottom: 6.3rem;
  background: #fcf5e5;
}
@media (max-width: 640px) {
  .cta-block {
    padding-top: 5.8rem;
    padding-bottom: 7rem;
  }
}

/* cta-tel
------------------------------------------------------ */
.cta-tel {
  margin-top: 6rem;
  display: block;
  border-radius: 1.8rem;
  text-decoration: none;
  background: #fff;
  border: 0.6em solid #e69c00;
  pointer-events: none;
}
@media (max-width: 640px) {
  .cta-tel {
    margin-top: 5rem;
    pointer-events: all;
  }
}

.cta-tel-head {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 7.8rem;
  color: #fff;
  background: #e69c00;
}

.cta-tel__title {
  font-size: 4.6rem;
  font-weight: 600;
  font-feature-settings: "palt";
}

.cta-tel-body {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  height: 18rem;
}
@media (max-width: 640px) {
  .cta-tel-body {
    height: 15.4rem;
  }
}

.cta-tel__num {
  width: 62.3rem;
  height: 7.3rem;
}
@media (max-width: 640px) {
  .cta-tel__num {
    width: 55.1rem;
    height: 6.4rem;
  }
}

.cta-tel__caption {
  margin-top: 1em;
  font-size: 2.2rem;
  font-feature-settings: "palt";
}
@media (max-width: 640px) {
  .cta-tel__caption {
    font-size: 1.9rem;
  }
}

/*------------------------------------------------------------------------
// Contents
  ├ fv
  ├ recommend
  ├ offer
  ├ media
  ├ shop
  ├ award
  ├ oimo
  ├ menu
  ├ magazine
  ├ merit
  ├ support
  ├ flow
  ├ revenue
  ├ message
  └ company
------------------------------------------------------------------------*/
/* fv
------------------------------------------------------ */
.fv {
  position: relative;
  z-index: 0;
  height: 85.4rem;
  background: #ffeeb5;
}
@media (max-width: 640px) {
  .fv {
    height: 145.4rem;
  }
}
.fv::before {
  position: absolute;
  z-index: -99;
  top: 0;
  left: 0;
  content: "";
  width: 100%;
  height: 9.5rem;
  background: #e69c00;
  -webkit-clip-path: polygon(0 0, 100% 0, 100% calc(100% - 3.6rem), 0% 100%);
          clip-path: polygon(0 0, 100% 0, 100% calc(100% - 3.6rem), 0% 100%);
}
@media (max-width: 640px) {
  .fv::before {
    height: 12.2rem;
  }
}

.fv-inner {
  position: relative;
  z-index: 0;
  height: 100%;
}
.fv-inner::before {
  position: absolute;
  z-index: -1;
  top: 14.9rem;
  left: 0.3rem;
  content: "";
  width: 9.9rem;
  height: 5rem;
  background: url("../img/fv-bg-parts.png");
}
@media (max-width: 640px) {
  .fv-inner::before {
    top: 16.5rem;
    left: -2.1rem;
  }
}

.fv__text-1 {
  position: absolute;
  top: 1.5rem;
  left: 3.2rem;
  width: 50.8rem;
  height: 6.1rem;
}
@media (max-width: 640px) {
  .fv__text-1 {
    top: 2rem;
    left: 1.5rem;
    width: 60.7rem;
    height: 7.3rem;
  }
}

.fv__text-2 {
  position: absolute;
  top: 10.3rem;
  left: 3.2rem;
  width: 50rem;
  height: 6.5rem;
}
@media (max-width: 640px) {
  .fv__text-2 {
    top: 13rem;
    left: 3.4rem;
    width: 56.2rem;
    height: 7.3rem;
  }
}

.fv__title {
  position: absolute;
  top: 18rem;
  left: 2.7rem;
  width: 58.2rem;
  height: 21.1rem;
}
@media (max-width: 640px) {
  .fv__title {
    top: 21.9rem;
    left: 1.3rem;
    width: 60.5rem;
    height: 22.3rem;
  }
}

.fv__award {
  position: absolute;
  top: -0.2rem;
  left: 53.5rem;
  width: 18.2rem;
  height: 20.1rem;
}
@media (max-width: 640px) {
  .fv__award {
    top: 43.6rem;
    left: 40.4rem;
    width: 22.8rem;
    height: 25.5rem;
  }
}

.fv__list {
  position: absolute;
  top: 40rem;
  left: 3.2rem;
  display: flex;
  gap: 1.2rem;
}
@media (max-width: 640px) {
  .fv__list {
    top: 83.1rem;
    left: 1.8rem;
    gap: 1.4rem;
  }
}

.fv__item {
  width: 15.9rem;
  height: 17.6rem;
}
@media (max-width: 640px) {
  .fv__item {
    width: 19.2rem;
    height: 21.1rem;
  }
}

.fv__img-1 {
  position: absolute;
  z-index: -2;
  top: -1.8rem;
  left: 61.9rem;
  width: 45.6rem;
  height: 42.1rem;
}
@media (max-width: 640px) {
  .fv__img-1 {
    top: 38.6rem;
    left: -4.9rem;
    width: 50.4rem;
    height: 46.5rem;
  }
}

.fv__img-2 {
  position: absolute;
  z-index: -3;
  top: 31rem;
  left: 53.6rem;
  width: 28.4rem;
  height: 27.1rem;
}
@media (max-width: 640px) {
  .fv__img-2 {
    z-index: -1;
    top: 64.2rem;
    left: 39.1rem;
    width: 29.6rem;
    height: 24.7rem;
  }
}

.fv__img-3 {
  position: absolute;
  z-index: -1;
  top: 39.9rem;
  left: 80.2rem;
  width: 21.8rem;
  height: 18.7rem;
}
@media (max-width: 640px) {
  .fv__img-3 {
    display: none;
  }
}

.fv__cta {
  position: absolute;
  top: 61.6rem;
  left: calc(50% - 36.2rem);
  max-width: 72.4rem;
  width: 100%;
}
@media (max-width: 640px) {
  .fv__cta {
    top: 108.4rem;
    left: calc(50% - 30rem);
    max-width: 60rem;
  }
}

/* recommend
------------------------------------------------------ */
.recommend {
  position: relative;
  z-index: 0;
  padding-top: 3rem;
  padding-bottom: 8.2rem;
  background: #ffeeb5;
}
@media (max-width: 640px) {
  .recommend {
    padding-top: 5.7rem;
    padding-bottom: 7.6rem;
  }
}
.recommend::before {
  position: absolute;
  z-index: -1;
  inset: 0;
  content: "";
  width: 100%;
  height: 100%;
  background: #e69c00;
  -webkit-clip-path: polygon(0 0, 100% 0, 100% calc(100% - 6.9rem), 50% 100%, 0 calc(100% - 6.9rem));
          clip-path: polygon(0 0, 100% 0, 100% calc(100% - 6.9rem), 50% 100%, 0 calc(100% - 6.9rem));
}
@media (max-width: 640px) {
  .recommend::before {
    -webkit-clip-path: polygon(0 0, 100% 0, 100% calc(100% - 4.5rem), 50% 100%, 0 calc(100% - 4.5rem));
            clip-path: polygon(0 0, 100% 0, 100% calc(100% - 4.5rem), 50% 100%, 0 calc(100% - 4.5rem));
  }
}

.recommend__title {
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 3.3rem;
  font-weight: 600;
  text-align: center;
  color: #fff;
}
@media (max-width: 640px) {
  .recommend__title {
    font-size: 4.3rem;
  }
}
.recommend__title::before, .recommend__title::after {
  content: "";
  width: 0.4rem;
  height: 4rem;
  background: #fff;
  border-radius: 100vmax;
}
@media (max-width: 640px) {
  .recommend__title::before, .recommend__title::after {
    height: 5rem;
  }
}
.recommend__title::before {
  rotate: -32deg;
  margin-right: 2rem;
}
.recommend__title::after {
  rotate: 32deg;
  margin-left: 2rem;
}

.recommend-box {
  margin-top: 2rem;
  padding: 2.5rem;
  border-radius: 1.8rem;
  background: #fff;
  border: 0.4rem solid #ffeeb5;
}
@media (max-width: 640px) {
  .recommend-box {
    margin-top: 3rem;
    padding: 2.8rem 8rem;
  }
}

.recommend__list {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 1.8rem;
  padding: 0 1.4rem;
}
@media (max-width: 640px) {
  .recommend__list {
    display: block;
    padding: 0;
  }
}

.recommend__item {
  position: relative;
  padding-left: 3rem;
  font-size: 2.4rem;
  font-weight: 600;
}
@media (max-width: 640px) {
  .recommend__item {
    padding-left: 4rem;
    font-size: 3.2rem;
  }
  .recommend__item:not(:first-child) {
    margin-top: 2.3rem;
  }
}
.recommend__item::before {
  position: absolute;
  top: 0;
  left: 0;
  content: "";
  width: 2.2rem;
  height: 2.4rem;
  background: url("../img/recommend-list-check.png") center/contain no-repeat;
}
@media (max-width: 640px) {
  .recommend__item::before {
    width: 3rem;
    height: 3.2rem;
  }
}
.recommend__item:nth-of-type(1) {
  grid-column: 1/3;
  grid-row: 1/2;
}

/* offer
------------------------------------------------------ */
.offer {
  background: #ffeeb5;
}

.offer-inner {
  position: relative;
  padding-top: 6.9rem;
  padding-bottom: 3.3rem;
}
@media (max-width: 640px) {
  .offer-inner {
    padding-top: 11.7rem;
    padding-bottom: 34.5rem;
  }
}

.offer__title {
  width: 14.3rem;
  height: 9.9rem;
  margin-inline: auto;
}
@media (max-width: 640px) {
  .offer__title {
    width: 16.4rem;
    height: 11.5rem;
  }
}

.offer__text-1 {
  margin-top: 4rem;
  display: block;
  font-size: 3rem;
  font-feature-settings: "palt";
  font-weight: 600;
  line-height: 1.2666666667;
  text-align: center;
}
@media (max-width: 640px) {
  .offer__text-1 {
    margin-top: 3rem;
    font-size: 4.1rem;
    line-height: 1.2926829268;
  }
}

.offer__text-2 {
  margin-top: 1.7rem;
  display: block;
  font-size: 3.2rem;
  font-weight: 600;
  font-feature-settings: "palt";
  text-align: center;
}
@media (max-width: 640px) {
  .offer__text-2 {
    font-size: 4.4rem;
  }
}
.offer__text-2 span {
  position: relative;
  font-size: 4.2rem;
  font-weight: inherit;
  color: #a61342;
}
@media (max-width: 640px) {
  .offer__text-2 span {
    font-size: 5.9rem;
    line-height: 1.3898305085;
  }
}
.offer__text-2 span b {
  position: relative;
  font-weight: inherit;
}
.offer__text-2 span b::after {
  position: absolute;
  bottom: -0.8rem;
  left: 0;
  content: "";
  width: 100%;
  height: 0;
  border-bottom: 0.4rem dotted;
}
@media (max-width: 640px) {
  .offer__text-2 span b::after {
    bottom: -1.2rem;
  }
}

.offer__text-3 {
  margin-top: 1.3rem;
  display: block;
  font-size: 3.6rem;
  font-weight: 600;
  font-feature-settings: "palt";
  letter-spacing: 0.04em;
  text-align: center;
}
@media (max-width: 640px) {
  .offer__text-3 {
    font-size: 5rem;
  }
}

.offer__img-1 {
  position: absolute;
  top: 14.9rem;
  left: 0.3rem;
  width: 15.4rem;
  height: 13.4rem;
}
@media (max-width: 640px) {
  .offer__img-1 {
    top: 8.4rem;
    left: -0.2rem;
    width: 21.1rem;
    height: 18.3rem;
  }
}

.offer__img-2 {
  position: absolute;
  top: 2.5rem;
  left: 10rem;
  width: 17.9rem;
  height: 15.5rem;
}
@media (max-width: 640px) {
  .offer__img-2 {
    top: -0.2rem;
    left: 36.6rem;
    width: 24.5rem;
    height: 21.3rem;
  }
}

.offer__img-3 {
  position: absolute;
  top: 2.53rem;
  left: 43.8rem;
  width: 15.4rem;
  height: 13.4rem;
}
@media (max-width: 640px) {
  .offer__img-3 {
    top: 63.4rem;
    left: 36.3rem;
    width: 21.1rem;
    height: 18.3rem;
  }
}

.offer__img-4 {
  position: absolute;
  top: 11.9rem;
  left: 55rem;
  width: 17.9rem;
  height: 15.5rem;
}
@media (max-width: 640px) {
  .offer__img-4 {
    top: 67.1rem;
    left: -0.2rem;
    width: 30.4rem;
    height: 26.2rem;
  }
}

/* media
------------------------------------------------------ */
.media {
  padding-top: 3.3rem;
  padding-bottom: 6.2rem;
  background: #ffeeb5;
}
@media (max-width: 640px) {
  .media {
    padding-bottom: 4.8rem;
  }
}

.media__title-block {
  position: relative;
}

.media__title-1 {
  display: block;
  font-size: 3.3rem;
  font-weight: 600;
  font-feature-settings: "palt";
  text-align: center;
}
@media (max-width: 640px) {
  .media__title-1 {
    font-size: 4.2rem;
  }
}
.media__title-1 b {
  font-size: 3.9rem;
  font-weight: inherit;
}
@media (max-width: 640px) {
  .media__title-1 b {
    font-size: 5rem;
  }
}

.media__title-2 {
  position: absolute;
  bottom: 0;
  left: 0;
  padding: 0.55em 0.5em 0.35em;
  border-radius: 0.8rem;
  font-size: 3.1rem;
  font-weight: 600;
  line-height: 1;
  color: #fff;
  background: #a61342;
  rotate: -3deg;
}
@media (max-width: 640px) {
  .media__title-2 {
    position: static;
    display: block;
    width: -moz-fit-content;
    width: fit-content;
    margin-top: 1.7rem;
    margin-inline: auto;
    margin-bottom: 1rem;
  }
}
.media__title-2 b {
  font-size: 3.9rem;
  font-weight: inherit;
}

.media__title-3 {
  margin-top: 0.8rem;
  display: block;
  padding-left: 4em;
  font-size: 4.9rem;
  font-weight: 600;
  font-feature-settings: "palt";
  letter-spacing: 0.02em;
  text-align: center;
  white-space: nowrap;
  color: #a61342;
}
@media (max-width: 640px) {
  .media__title-3 {
    padding-left: 0;
    font-size: 5.5rem;
  }
}
.media__title-3 b {
  font-size: 5.5rem;
  font-weight: inherit;
}
@media (max-width: 640px) {
  .media__title-3 b {
    font-size: 6.2rem;
  }
}

.media-box {
  overflow: hidden;
  margin-top: 1.8rem;
  border-radius: 1.8rem;
  background: #fff;
  border: 0.3rem solid;
  box-shadow: 0.5rem 0.5rem 0 rgba(230, 156, 0, 0.5);
}
.media-box + .media-box {
  margin-top: 2.7rem;
}

.media-box-head {
  height: 8rem;
  display: flex;
  justify-content: center;
  align-items: center;
  color: #fff;
  background: #e69c00;
}
@media (max-width: 640px) {
  .media-box-head {
    height: 10.8rem;
  }
}

.media-box-head__icon-1 {
  display: block;
  width: 5.7rem;
  height: 4.7rem;
  margin-right: 1.3rem;
  margin-top: -0.5rem;
}
@media (max-width: 640px) {
  .media-box-head__icon-1 {
    width: 6.6rem;
    height: 5.4rem;
    margin-top: -1rem;
  }
}

.media-box-head__title-1 {
  font-size: 3.7rem;
  font-weight: 600;
  font-feature-settings: "palt";
  letter-spacing: 0.02em;
  text-align: center;
}
@media (max-width: 640px) {
  .media-box-head__title-1 {
    font-size: 4.3rem;
  }
}
.media-box-head__title-1 b {
  font-size: 4.3rem;
  font-weight: inherit;
}
@media (max-width: 640px) {
  .media-box-head__title-1 b {
    font-size: 5rem;
  }
}

.media-box-body {
  padding: 2.4rem;
}
@media (max-width: 640px) {
  .media-box-body {
    padding: 2.8rem 1.7rem;
  }
}

.media__list-1 {
  display: flex;
  justify-content: center;
  gap: 1.6rem;
}

.media__img-1,
.media__img-2,
.media__img-3 {
  height: 10.7rem;
}
@media (max-width: 640px) {
  .media__img-1,
  .media__img-2,
  .media__img-3 {
    height: 11.4rem;
  }
}
.media__img-1 img,
.media__img-2 img,
.media__img-3 img {
  width: auto;
  height: inherit;
}

.media__list-2 {
  margin-top: 1.2rem;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  row-gap: 1.2rem;
}
@media (max-width: 640px) {
  .media__list-2 {
    margin-top: 2.3rem;
    row-gap: 2.1rem;
  }
}

.media__img-4,
.media__img-5,
.media__img-6,
.media__img-7,
.media__img-8,
.media__img-9 {
  width: 21.7rem;
  height: 12.3rem;
}
@media (max-width: 640px) {
  .media__img-4,
  .media__img-5,
  .media__img-6,
  .media__img-7,
  .media__img-8,
  .media__img-9 {
    width: 27.2rem;
    height: 15.4rem;
  }
}

.media__img-text {
  margin-top: 0.5rem;
  padding: 0.4rem 0;
  font-size: 1.3rem;
  line-height: 1;
  text-align: center;
  background: #ffeeb5;
}
@media (max-width: 640px) {
  .media__img-text {
    padding: 0.5rem 0;
    font-size: 1.7rem;
  }
}

.media__list-3 {
  margin-top: 1.2rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-inline: -1.2rem;
}
@media (max-width: 640px) {
  .media__list-3 {
    margin-top: 3.3rem;
    margin-inline: -0.4rem;
  }
}

.media__img-10 {
  width: 15.6rem;
  height: 4rem;
}
@media (max-width: 640px) {
  .media__img-10 {
    width: 12.6rem;
    height: 3.2rem;
  }
}

.media__img-11 {
  width: 9.6rem;
  height: 3.1rem;
}
@media (max-width: 640px) {
  .media__img-11 {
    width: 7.6rem;
    height: 2.5rem;
  }
}

.media__img-12 {
  width: 7.3rem;
  height: 5.9rem;
}
@media (max-width: 640px) {
  .media__img-12 {
    width: 5.8rem;
    height: 4.7rem;
  }
}

.media__img-13 {
  width: 7.1rem;
  height: 5rem;
}
@media (max-width: 640px) {
  .media__img-13 {
    width: 5.6rem;
    height: 3.9rem;
  }
}

.media__img-14 {
  width: 8.7rem;
  height: 4.3rem;
}
@media (max-width: 640px) {
  .media__img-14 {
    width: 6.9rem;
    height: 3.4rem;
  }
}

.media__img-15 {
  width: 9.8rem;
  height: 5rem;
}
@media (max-width: 640px) {
  .media__img-15 {
    width: 6.8rem;
    height: 3.5rem;
  }
}

.media__img-16 {
  width: 8.2rem;
  height: 6rem;
}
@media (max-width: 640px) {
  .media__img-16 {
    width: 6.6rem;
    height: 4.8rem;
  }
}

.media-box-head__icon-2 {
  display: block;
  width: 5.3rem;
  height: 5.5rem;
  margin-right: 1.3rem;
  margin-top: -0.5rem;
}
@media (max-width: 640px) {
  .media-box-head__icon-2 {
    width: 5.7rem;
    height: 5.9rem;
    margin-top: -1rem;
  }
}

.media-box-head__title-2 {
  font-size: 3.7rem;
  font-weight: 600;
  font-feature-settings: "palt";
  letter-spacing: 0.02em;
  text-align: center;
}
@media (max-width: 640px) {
  .media-box-head__title-2 {
    font-size: 3.9rem;
  }
}
.media-box-head__title-2 b {
  font-size: 4.3rem;
  font-weight: inherit;
}
@media (max-width: 640px) {
  .media-box-head__title-2 b {
    font-size: 4.6rem;
  }
}

.event {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
}
@media (max-width: 640px) {
  .event {
    display: block;
  }
}

.event__img-block {
  display: flex;
  gap: 0.8rem;
}
@media (max-width: 640px) {
  .event__img-block {
    justify-content: space-between;
    gap: 0;
  }
}

.event__img {
  width: 18.2rem;
  height: 20.3rem;
}
@media (max-width: 640px) {
  .event__img {
    width: 27.5rem;
    height: 30.7rem;
  }
}

.event__list-block {
  position: relative;
  flex-grow: 1;
  padding-bottom: 2.16rem;
}
@media (max-width: 640px) {
  .event__list-block {
    margin-top: 1.8rem;
    padding-bottom: 0;
  }
}

.event__title {
  padding: 0.55rem 0;
  font-size: 1.6rem;
  font-weight: normal;
  text-align: center;
  line-height: 1;
  background: #ffeeb5;
}
@media (max-width: 640px) {
  .event__title {
    padding: 1.1rem 0;
    font-size: 3rem;
  }
}

.event__list {
  padding-left: 1.8rem;
}
@media (max-width: 640px) {
  .event__list {
    margin-top: 1.5rem;
    padding-left: 3.2rem;
  }
}
.event__list li {
  margin-top: 1.3rem;
  position: relative;
  padding-left: 1em;
  font-size: 1.8rem;
  font-feature-settings: "palt";
}
@media (max-width: 640px) {
  .event__list li {
    margin-top: 0.7rem;
    font-size: 3.2rem;
  }
}
.event__list li::before {
  position: absolute;
  top: 0.3em;
  left: 0.3em;
  content: "";
  width: 0.3em;
  height: 0.3em;
  background: #a61342;
  border-radius: 50%;
}

.event__list-text {
  position: absolute;
  bottom: 0;
  right: 3.6rem;
  font-size: 1.8rem;
}
@media (max-width: 640px) {
  .event__list-text {
    right: 7.2rem;
    font-size: 3.2rem;
  }
}

/* shop
------------------------------------------------------ */
.shop-inner {
  position: relative;
  z-index: 0;
  padding-top: 7.1rem;
  padding-bottom: 15.4rem;
}
@media (max-width: 640px) {
  .shop-inner {
    padding-top: 5.3rem;
    padding-bottom: 15rem;
  }
}
.shop-inner::before, .shop-inner::after {
  position: absolute;
  z-index: -1;
  content: "";
  width: 15.9rem;
  height: 8rem;
  background: url("../img/shop-bg-parts.png") center/contain no-repeat;
}
.shop-inner::before {
  top: 2.6rem;
  right: -12.7rem;
}
@media (max-width: 640px) {
  .shop-inner::before {
    top: 41.8rem;
    right: -2.2rem;
  }
}
.shop-inner::after {
  bottom: 6.1rem;
  left: -13.1rem;
  scale: -1;
}
@media (max-width: 640px) {
  .shop-inner::after {
    bottom: 8.6rem;
    left: -1.1rem;
  }
}

.shop__title-1 {
  display: block;
  font-size: 3.4rem;
  font-weight: 600;
  text-align: center;
}
@media (max-width: 640px) {
  .shop__title-1 {
    font-size: 4rem;
  }
}

.shop__title-2 {
  margin-top: 1rem;
  display: block;
  font-size: 4.3rem;
  text-align: center;
  white-space: nowrap;
  color: #a61342;
}
@media (max-width: 640px) {
  .shop__title-2 {
    margin-top: 1.7rem;
    font-size: 6rem;
    line-height: 1.4666666667;
  }
}
.shop__title-2 b {
  position: relative;
  font-weight: inherit;
}
.shop__title-2 b::after {
  position: absolute;
  bottom: -0.8rem;
  left: 0;
  content: "";
  width: 100%;
  height: 0;
  border-bottom: 0.4rem dotted;
}
@media (max-width: 640px) {
  .shop__title-2 b::after {
    left: calc(50% - 28rem);
    bottom: -1.2rem;
    width: 56rem;
  }
}

.shop__text {
  margin-top: 2rem;
  font-size: 2.4rem;
  font-weight: 600;
  text-align: center;
}
@media (max-width: 640px) {
  .shop__text {
    margin-top: 1.7rem;
    font-size: 3.2rem;
  }
}

.shop-box-wrap {
  margin-top: 9.4rem;
  display: flex;
  justify-content: space-between;
}
@media (max-width: 640px) {
  .shop-box-wrap {
    margin-top: 12.4rem;
    display: block;
  }
}

.shop-box {
  position: relative;
  width: 35.5rem;
  height: 39.3rem;
}
@media (max-width: 640px) {
  .shop-box {
    width: 56rem;
    height: 61.8rem;
    margin-inline: auto;
  }
  .shop-box + .shop-box {
    margin-top: 15.2rem;
  }
}
.shop-box-1 {
  background: url("../img/shop-box-1_pc.png") center/contain no-repeat;
}
@media (max-width: 640px) {
  .shop-box-1 {
    background-image: url("../img/shop-box-1_sp.png");
  }
}
.shop-box-2 {
  background: url("../img/shop-box-2_pc.png") center/contain no-repeat;
}
@media (max-width: 640px) {
  .shop-box-2 {
    background-image: url("../img/shop-box-2_sp.png");
  }
}

.shop-box__title {
  position: absolute;
  top: -5.2rem;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  justify-content: center;
  align-items: center;
  width: 22rem;
  height: 7rem;
  border: 0.4rem solid;
  font-weight: 600;
  font-feature-settings: "palt";
  text-align: center;
  background: #fff;
}
@media (max-width: 640px) {
  .shop-box__title {
    top: -8.3rem;
    width: 34.7rem;
    height: 11rem;
    border-width: 0.6rem;
  }
}
.shop-box__title-1 {
  font-size: 2.6rem;
  color: #e69c00;
}
@media (max-width: 640px) {
  .shop-box__title-1 {
    font-size: 4.1rem;
  }
}
.shop-box__title-2 {
  font-size: 2.1rem;
  color: #a61342;
}
@media (max-width: 640px) {
  .shop-box__title-2 {
    font-size: 3.3rem;
  }
}

.shop-box-head {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 11.5rem;
}
@media (max-width: 640px) {
  .shop-box-head {
    height: 18.2rem;
  }
}

.shop-box__text {
  padding-top: 1rem;
  font-size: 2.5rem;
  font-weight: 600;
  font-feature-settings: "palt";
  line-height: 1.28;
  text-align: center;
  color: #fff;
}
@media (max-width: 640px) {
  .shop-box__text {
    font-size: 3.9rem;
    line-height: 1.2820512821;
  }
}

.shop-box-body {
  padding: 1.8rem 2.75rem;
}
@media (max-width: 640px) {
  .shop-box-body {
    padding: 2.8rem 4.3rem;
  }
}

.shop-box__img {
  width: 30rem;
  height: 21rem;
  margin-inline: auto;
}
@media (max-width: 640px) {
  .shop-box__img {
    width: 47.4rem;
    height: 33.2rem;
  }
}

.shop-box__img-text {
  margin-top: 1rem;
  font-size: 1.8rem;
  font-feature-settings: "palt";
  text-align: center;
}
@media (max-width: 640px) {
  .shop-box__img-text {
    margin-top: 1.5rem;
    font-size: 2.8rem;
  }
}

/* award
------------------------------------------------------ */
.award {
  padding-bottom: 14.9rem;
  background: #fbf3f6;
}
@media (max-width: 640px) {
  .award {
    padding-bottom: 10.8rem;
  }
}

.award__title-block {
  position: relative;
  z-index: 0;
  transform: translateY(-7.5rem);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  height: 15rem;
  border-radius: 100vmax;
  margin-bottom: -7.5rem;
  color: #ff0;
  background: #a61342;
}
@media (max-width: 640px) {
  .award__title-block {
    transform: translateY(-6.2rem);
    height: 12.4rem;
    margin-bottom: -6.2rem;
  }
}
.award__title-block::before {
  position: absolute;
  z-index: -1;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  content: "";
  width: 65.6rem;
  height: 6.5rem;
  background: url("../img/award-title-parts.png") center/contain no-repeat;
}
@media (max-width: 640px) {
  .award__title-block::before {
    width: 54.4rem;
    height: 5.4rem;
  }
}

.award__title-1 {
  display: block;
  font-size: 2.9rem;
  font-weight: 600;
  font-feature-settings: "palt";
}
@media (max-width: 640px) {
  .award__title-1 {
    font-size: 2.4rem;
  }
}

.award__title-wrap {
  display: flex;
  margin-top: 0.5rem;
}
@media (max-width: 640px) {
  .award__title-wrap {
    margin-top: 1rem;
  }
}

.award__title-2 {
  display: block;
  font-size: 5.9rem;
  font-weight: 600;
  font-feature-settings: "palt";
}
@media (max-width: 640px) {
  .award__title-2 {
    font-size: 4.9rem;
  }
}

.award__title-3 {
  display: block;
  margin-top: 0.1em;
  margin-left: 0.25em;
  font-size: 2.5rem;
  font-weight: 600;
  font-feature-settings: "palt";
}
@media (max-width: 640px) {
  .award__title-3 {
    margin-top: 0.25em;
    font-size: 2rem;
  }
}

/* oimo
------------------------------------------------------ */
.oimo {
  padding-top: 4.8rem;
  padding-bottom: 4rem;
}
@media (max-width: 640px) {
  .oimo {
    padding-top: 2.5rem;
    padding-bottom: 5.2rem;
  }
}

.oimo__title-1, .menu__title-1 {
  display: block;
  font-size: 2.8rem;
  font-weight: 600;
  text-align: center;
}

.oimo__title-2, .menu__title-2 {
  margin-top: 0.6rem;
  display: block;
  font-size: 5.2rem;
  font-weight: 600;
  text-align: center;
  color: #a61342;
}
@media (max-width: 640px) {
  .oimo__title-2, .menu__title-2 {
    margin-top: 1.2rem;
  }
}

.oimo__col-block {
  margin-top: 3rem;
  display: flex;
  align-items: center;
  gap: 2rem;
}
@media (max-width: 640px) {
  .oimo__col-block {
    margin-top: 2rem;
    display: block;
  }
}

.oimo__img {
  width: 35rem;
  height: 44rem;
}
@media (max-width: 640px) {
  .oimo__img {
    width: 56rem;
    height: 70.4rem;
    margin-inline: auto;
  }
}

@media (max-width: 640px) {
  .oimo__list {
    width: -moz-fit-content;
    width: fit-content;
    margin-top: 3.6rem;
    margin-inline: auto;
  }
}

.oimo__item {
  display: flex;
  align-items: center;
  gap: 1.4rem;
}
.oimo__item:not(:first-child) {
  margin-top: 4rem;
  gap: 2.1rem;
}

.oimo__icon {
  width: 11.3rem;
  height: 11.3rem;
}
@media (max-width: 640px) {
  .oimo__icon {
    width: 17.1rem;
    height: 17.1rem;
  }
}

.oimo__item-text {
  font-size: 2.7rem;
  font-weight: 600;
  line-height: 1.3333333333;
}
@media (max-width: 640px) {
  .oimo__item-text {
    font-size: 3.8rem;
    line-height: 1.4736842105;
  }
}

.oimo__text, .menu__text {
  margin-top: 2rem;
  font-size: 1.8rem;
  line-height: 1.6666666667;
}
@media (max-width: 640px) {
  .oimo__text, .menu__text {
    margin-top: 3.6rem;
    padding: 0 2rem;
    font-size: 2.8rem;
    line-height: 1.6071428571;
  }
}

/* menu
------------------------------------------------------ */
.menu {
  padding-top: 4.8rem;
  padding-bottom: 6rem;
}
@media (max-width: 640px) {
  .menu {
    padding-top: 9.6rem;
    padding-bottom: 6rem;
  }
}

.menu__list {
  margin-top: 2rem;
  display: flex;
  flex-wrap: wrap;
  gap: calc((100% - 70.5rem) / 2);
}
@media (max-width: 640px) {
  .menu__list {
    margin-top: 3.4rem;
    justify-content: center;
    gap: 1.2rem;
  }
}

.menu__img {
  width: 23.5rem;
  height: 15rem;
}
@media (max-width: 640px) {
  .menu__img {
    width: 27.4rem;
    height: 17.5rem;
  }
}

.menu__text {
  margin-top: 2.5rem;
}

/* magazine
------------------------------------------------------ */
.magazine {
  position: relative;
  margin-top: 8.4rem;
  height: 53.3rem;
  background: url("../img/magazine-bg_pc.png") center/contain no-repeat;
  filter: drop-shadow(0.5rem 0.5rem 0 rgba(230, 156, 0, 0.5));
}
@media (max-width: 640px) {
  .magazine {
    height: 122.3rem;
    background-image: url("../img/magazine-bg_sp.png");
  }
}

.magazine__title {
  position: absolute;
  top: 4.3rem;
  left: 2.7rem;
  font-size: 4.1rem;
  font-weight: 600;
  font-feature-settings: "palt";
  color: #fff;
}
@media (max-width: 640px) {
  .magazine__title {
    top: 2.8rem;
    left: 2.1rem;
    font-size: 5.6rem;
  }
}

.magazine__item-1 {
  position: absolute;
  top: 13.3rem;
  left: 2.7rem;
}
@media (max-width: 640px) {
  .magazine__item-1 {
    top: 21.3rem;
    left: 2.1rem;
  }
}

.magazine__img-1 {
  width: 20.3rem;
  height: 28.7rem;
}
@media (max-width: 640px) {
  .magazine__img-1 {
    width: 25.8rem;
    height: 36.4rem;
  }
}

.magazine__item-2 {
  position: absolute;
  top: 13.3rem;
  left: 24.5rem;
}
@media (max-width: 640px) {
  .magazine__item-2 {
    top: 21.3rem;
    left: 31.3rem;
  }
}

.magazine__img-2 {
  width: 21.1rem;
  height: 28.7rem;
}
@media (max-width: 640px) {
  .magazine__img-2 {
    width: 26.8rem;
    height: 36.4rem;
  }
}

.magazine__text-1,
.magazine__text-2 {
  margin-top: 2rem;
  font-size: 2.1rem;
  font-feature-settings: "palt";
  text-align: center;
}
@media (max-width: 640px) {
  .magazine__text-1,
  .magazine__text-2 {
    font-size: 2.7rem;
  }
}
.magazine__text-1 b,
.magazine__text-2 b {
  font-size: 2.6rem;
  font-weight: normal;
}
@media (max-width: 640px) {
  .magazine__text-1 b,
  .magazine__text-2 b {
    font-size: 3.3rem;
  }
}

.magazine__item-3 {
  position: absolute;
  top: 15.5rem;
  left: 48.6rem;
  rotate: 5deg;
}
@media (max-width: 640px) {
  .magazine__item-3 {
    top: 69.5rem;
    left: 16.7rem;
  }
}

.magazine__text-3 {
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 1.9rem;
  font-feature-settings: "palt";
  text-align: center;
  color: #a61342;
}
@media (max-width: 640px) {
  .magazine__text-3 {
    font-size: 2.7rem;
    line-height: 1.2592592593;
  }
}
.magazine__text-3::before, .magazine__text-3::after {
  content: "";
  width: 0.4rem;
  height: 4.4rem;
  background-image: linear-gradient(to bottom, #a61342, #a61342 0.4rem, transparent 0.4rem, transparent 0.8rem);
  background-size: 0.4rem 0.8rem;
  background-position: left bottom;
  background-repeat: repeat-y;
}
@media (max-width: 640px) {
  .magazine__text-3::before, .magazine__text-3::after {
    height: 6rem;
  }
}
.magazine__text-3::before {
  rotate: -20deg;
  margin-right: 1.4rem;
}
.magazine__text-3::after {
  rotate: 20deg;
  margin-left: 1.4rem;
}

.magazine__img-3 {
  margin-top: 0.6rem;
  width: 21rem;
  height: 28.1rem;
}
@media (max-width: 640px) {
  .magazine__img-3 {
    margin-top: 0.9rem;
    width: 29.3rem;
    height: 39.2rem;
  }
}

/* merit
------------------------------------------------------ */
.merit {
  padding-bottom: 12rem;
  background: #ffeeb5;
}
@media (max-width: 640px) {
  .merit {
    padding-bottom: 6.2rem;
  }
}

.merit__title-block {
  position: relative;
  z-index: 0;
  transform: translateY(-7rem);
  margin-bottom: -7rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  height: 14rem;
  color: #fff;
}
@media (max-width: 640px) {
  .merit__title-block {
    transform: translateY(-6.5rem);
    margin-bottom: -6.5rem;
    height: 13rem;
  }
}
.merit__title-block::before {
  position: absolute;
  z-index: -1;
  inset: 0;
  content: "";
  width: 100%;
  height: 100%;
  background: #e69c00;
  -webkit-clip-path: polygon(3rem 0%, calc(100% - 3rem) 0%, 100% 50%, calc(100% - 3rem) 100%, 3rem 100%, 0% 50%);
          clip-path: polygon(3rem 0%, calc(100% - 3rem) 0%, 100% 50%, calc(100% - 3rem) 100%, 3rem 100%, 0% 50%);
}
.merit__title-block::after {
  position: absolute;
  z-index: -1;
  top: calc(50% - 0.75rem);
  left: calc(50% - 50vw);
  content: "";
  width: 100vw;
  height: 1.5rem;
  background: #e69c00;
}
@media (max-width: 640px) {
  .merit__title-block::after {
    top: calc(50% - 0.6rem);
    height: 1.2rem;
  }
}

.merit__title-1 {
  font-size: 3.5rem;
  font-weight: 600;
  text-align: center;
}
@media (max-width: 640px) {
  .merit__title-1 {
    font-size: 4.2rem;
  }
}

.merit__title-2 {
  margin-top: 0.5rem;
  font-size: 5.2rem;
  font-weight: 600;
}

.merit__list {
  margin-top: 6.8rem;
  display: flex;
  flex-wrap: wrap;
  gap: 4rem calc(100% - 70rem);
}
@media (max-width: 640px) {
  .merit__list {
    margin-top: 6.4rem;
    display: block;
  }
}

.merit-box {
  position: relative;
  display: flex;
  flex-direction: column;
  width: 35rem;
  padding: 2rem 1.8rem 1.4rem;
  border-radius: 1.2rem;
  background: #fff;
  border: 0.2rem solid;
}
@media (max-width: 640px) {
  .merit-box {
    width: 100%;
    padding: 2.8rem;
    border-radius: 1.8rem;
  }
  .merit-box + .merit-box {
    margin-top: 5.8rem;
  }
}

.merit-box__label {
  position: absolute;
  top: -1.1rem;
  left: 0.7rem;
  width: 6.5rem;
  height: 8.3rem;
}
@media (max-width: 640px) {
  .merit-box__label {
    top: -1.8rem;
    left: 1.2rem;
    width: 11.1rem;
    height: 14.3rem;
  }
}

.merit-box__title {
  margin-top: 2rem;
  padding-bottom: 1rem;
  font-size: 2.8rem;
  font-weight: 600;
  line-height: 1.1785714286;
  text-align: center;
  color: #a61342;
  border-bottom: 0.3rem dotted;
}
@media (max-width: 640px) {
  .merit-box__title {
    margin-top: 3rem;
    padding-bottom: 2.4rem;
    font-size: 4.8rem;
    line-height: 1.1666666667;
    border-width: 0.5rem;
  }
}
.merit-box__title span {
  font-size: 2.4rem;
  line-height: 1.375;
  white-space: nowrap;
}
@media (max-width: 640px) {
  .merit-box__title span {
    font-size: 4.1rem;
    line-height: 1.3658536585;
  }
}

.merit-box__text {
  margin-top: 1rem;
  font-size: 1.8rem;
  line-height: 1.6666666667;
  text-align: justify;
}
@media (max-width: 640px) {
  .merit-box__text {
    margin-top: 2.4rem;
    font-size: 2.8rem;
    line-height: 1.6071428571;
  }
}

.merit-box__img {
  order: -1;
  width: 31rem;
  height: 20rem;
}
@media (max-width: 640px) {
  .merit-box__img {
    width: 54rem;
    height: 34.8rem;
  }
}

/* support
------------------------------------------------------ */
.support {
  overflow: hidden;
  position: relative;
  z-index: 0;
  padding-top: 8.8rem;
  padding-bottom: 15.4rem;
  background: #ffeeb5;
}
@media (max-width: 640px) {
  .support {
    padding-top: 7.7rem;
    padding-bottom: 15.2rem;
  }
}
.support::before {
  position: absolute;
  z-index: -1;
  inset: 0;
  content: "";
  width: 100%;
  height: 100%;
  margin-left: -50vw;
  margin-right: -50vw;
  padding-left: 50vw;
  padding-right: 50vw;
  border-top-left-radius: 50% 50vw;
  border-top-right-radius: 50% 50vw;
  background: #fcf5e5;
  box-sizing: content-box;
}

.support__title-1 {
  display: block;
  width: 23.4rem;
  height: 3.5rem;
  margin-inline: auto;
}
@media (max-width: 640px) {
  .support__title-1 {
    width: 28.6rem;
    height: 4.2rem;
  }
}

.support__title-2, .revenue__title-2, .flow__title-2 {
  margin-top: 1.2rem;
  font-size: 5.2rem;
  font-weight: 600;
  text-align: center;
  color: #a61342;
}
@media (max-width: 640px) {
  .support__title-2, .revenue__title-2, .flow__title-2 {
    margin-top: 3.5rem;
    font-size: 6rem;
    font-feature-settings: "palt";
  }
}

.support-box {
  position: relative;
  margin-top: 4rem;
  height: 49.5rem;
  padding: 9.6rem 2.7rem 3rem;
  background: url("../img/support-box-bg_pc.png") center/contain no-repeat;
  filter: drop-shadow(0.5rem 0.5rem 0 rgba(230, 156, 0, 0.5));
}
@media (max-width: 640px) {
  .support-box {
    padding: 11.6rem 3rem 3rem;
  }
  .support-box-1 {
    height: 88.7rem;
    background-image: url("../img/support-box-bg-1_sp.png");
  }
  .support-box-2 {
    height: 104.1rem;
    background-image: url("../img/support-box-bg-2_sp.png");
  }
  .support-box-3 {
    height: 99.4rem;
    background-image: url("../img/support-box-bg-3_sp.png");
  }
  .support-box-4 {
    height: 93.5rem;
    background-image: url("../img/support-box-bg-4_sp.png");
  }
}
.support-box + .support-box {
  margin-top: 2.8rem;
}
@media (max-width: 640px) {
  .support-box + .support-box {
    margin-top: 4rem;
  }
}

.support-box__num {
  position: absolute;
  top: 1.4rem;
  left: calc(50% - 3.5rem);
  width: 7rem;
  height: 7rem;
}
@media (max-width: 640px) {
  .support-box__num {
    left: calc(50% - 4.5rem);
    width: 9rem;
    height: 9rem;
  }
}

.support-box__title {
  font-size: 4.2rem;
  font-weight: 600;
  text-align: center;
  color: #a61342;
}
@media (max-width: 640px) {
  .support-box__title {
    font-size: 4.8rem;
    line-height: 1.2916666667;
  }
}

.support-box-body {
  margin-top: 2.8rem;
  display: flex;
  align-items: flex-start;
  gap: 2rem;
}
@media (max-width: 640px) {
  .support-box-body {
    display: block;
  }
}

.support-box__img-1,
.support-box__img-2,
.support-box__img-4 {
  flex-shrink: 0;
  width: 35rem;
  height: 29.2rem;
}
@media (max-width: 640px) {
  .support-box__img-1,
  .support-box__img-2,
  .support-box__img-4 {
    width: 54rem;
    height: 45rem;
  }
}

.support-box__img-3 {
  flex-shrink: 0;
  width: 35rem;
  height: 29.2rem;
  text-align: center;
}
@media (max-width: 640px) {
  .support-box__img-3 {
    width: 54rem;
    height: 45rem;
  }
}
.support-box__img-3 img {
  width: 21.3rem;
}
@media (max-width: 640px) {
  .support-box__img-3 img {
    width: 33rem;
  }
}

.support-box__text {
  font-size: 1.8rem;
  line-height: 1.6666666667;
  text-align: justify;
}
@media (max-width: 640px) {
  .support-box__text {
    margin-top: 2rem;
    font-size: 2.8rem;
    line-height: 1.6071428571;
  }
}

/* flow
------------------------------------------------------ */
.flow {
  overflow: hidden;
  position: relative;
  z-index: 0;
  padding-top: 10.6rem;
  padding-bottom: 9.8rem;
  background: linear-gradient(to bottom, #fcf5e5 50%, #fbf3f6 50%);
}
@media (max-width: 640px) {
  .flow {
    padding-top: 7.2rem;
  }
}
.flow::before {
  position: absolute;
  z-index: -1;
  inset: 0;
  content: "";
  width: 100%;
  height: 100%;
  margin-left: -50vw;
  margin-right: -50vw;
  padding-left: 50vw;
  padding-right: 50vw;
  border-top-left-radius: 50% 50vw;
  border-top-right-radius: 50% 50vw;
  border-bottom-left-radius: 50% 50vw;
  border-bottom-right-radius: 50% 50vw;
  background: #fff;
  box-sizing: content-box;
}

.flow__title-1 {
  display: block;
  width: 13.6rem;
  height: 3.5rem;
  margin-inline: auto;
}
@media (max-width: 640px) {
  .flow__title-1 {
    width: 16.4rem;
    height: 4.2rem;
  }
}

.flow__list-wrap {
  position: relative;
}

.flow__list {
  margin-top: 2.5rem;
}
@media (max-width: 640px) {
  .flow__list {
    margin-top: 6rem;
  }
}

.flow__item {
  display: flex;
  align-items: flex-start;
  gap: 2.5rem;
}
@media (max-width: 640px) {
  .flow__item {
    gap: 1.2rem;
  }
}
.flow__item:not(:first-child) {
  margin-top: 2rem;
}
@media (max-width: 640px) {
  .flow__item:not(:first-child) {
    margin-top: 5rem;
  }
}
.flow__item:not(:last-child) {
  position: relative;
}
.flow__item:not(:last-child)::before {
  position: absolute;
  left: 3.8rem;
  bottom: -2.5rem;
  content: "";
  width: 0.3rem;
  height: calc(100% - 9.6rem);
  background-image: linear-gradient(to bottom, #1a1a1a, #1a1a1a 0.3rem, transparent 0.3rem, transparent 0.6rem);
  background-size: 0.3rem 0.6rem;
  background-position: left bottom;
  background-repeat: repeat-y;
}
@media (max-width: 640px) {
  .flow__item:not(:last-child)::before {
    left: 5.8rem;
    width: 0.4rem;
    height: calc(100% - 14.7rem);
    background-image: linear-gradient(to bottom, #1a1a1a, #1a1a1a 0.4rem, transparent 0.4rem, transparent 0.8rem);
    background-size: 0.4rem 0.8rem;
  }
}

.flow__icon {
  width: 7.9rem;
  height: 9.6rem;
  margin-top: 1.5rem;
}
@media (max-width: 640px) {
  .flow__icon {
    width: 12rem;
    height: 14.7rem;
    margin-top: 0;
  }
}

.flow-box {
  width: 55rem;
  padding: 2rem;
  border-radius: 1.8rem;
  background: #fffaea;
  box-shadow: 0.3rem 0.3rem 0 rgba(230, 156, 0, 0.5);
}
@media (max-width: 640px) {
  .flow-box {
    width: 42.2rem;
    padding: 3rem;
  }
}

.flow-box__title {
  padding: 0 1rem;
  padding-bottom: 0.4rem;
  border-bottom: 0.2rem dotted #e69c00;
  font-size: 2.4rem;
  font-weight: 600;
  font-feature-settings: "palt";
}
@media (max-width: 640px) {
  .flow-box__title {
    padding: 0;
    padding-bottom: 1rem;
    border-width: 0.4rem;
    font-size: 3.6rem;
    line-height: 1.3055555556;
  }
}

.flow-box__text {
  margin-top: 1.2rem;
  padding: 0 1rem;
  font-size: 1.8rem;
  font-feature-settings: "palt";
  line-height: 1.6666666667;
}
@media (max-width: 640px) {
  .flow-box__text {
    font-size: 2.4rem;
    line-height: 1.5833333333;
    text-align: justify;
  }
}

.flow__arrow {
  position: absolute;
  bottom: 0;
  right: -0.4rem;
  width: 7rem;
  height: 42.3rem;
}
@media (max-width: 640px) {
  .flow__arrow {
    right: 0;
    width: 3rem;
    height: 71.8rem;
  }
}

/* invest */
.invest {
  margin-top: 6rem;
  padding: 0.4rem;
  border-radius: 1.8rem;
  border: 1px solid #a61342;
}
@media (max-width: 640px) {
  .invest {
    margin-top: 4rem;
  }
}
.invest + * {
  margin-top: 4.5rem;
}
@media (max-width: 640px) {
  .invest + * {
    margin-top: 3.5rem;
  }
}

.invest-inner {
  border-radius: 1.3rem;
  border: 0.3rem solid #a61342;
}

.invest-head {
  height: 9.8rem;
  display: flex;
  justify-content: center;
  align-items: center;
  background: #a61342;
}
@media (max-width: 640px) {
  .invest-head {
    height: 18rem;
  }
}

.invest__text {
  font-size: 5rem;
  font-weight: 600;
  text-align: center;
  color: #ff0;
}
@media (max-width: 640px) {
  .invest__text {
    font-size: 5.6rem;
    line-height: 1;
  }
}
.invest__text span {
  font-size: 3.9rem;
}
@media (max-width: 640px) {
  .invest__text span {
    font-size: 4.4rem;
  }
}
.invest__text b {
  font-size: 7.2rem;
  font-weight: inherit;
  font-feature-settings: "palt";
  letter-spacing: -0.02em;
}
@media (max-width: 640px) {
  .invest__text b {
    font-size: 8.2rem;
  }
}

.invest-body {
  position: relative;
  padding: 2.2rem 1.7rem 3.6rem;
}
@media (max-width: 640px) {
  .invest-body {
    padding-bottom: 4.5rem;
  }
}

.invest__list {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
.invest__list li {
  display: inline-block;
  font-size: 3.3rem;
  font-weight: 600;
  font-feature-settings: "palt";
}
@media (max-width: 640px) {
  .invest__list li {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    font-size: 3.8rem;
  }
}
.invest__list li b {
  font-size: 4.3rem;
  font-weight: inherit;
}
@media (max-width: 640px) {
  .invest__list li b {
    font-size: 5.1rem;
  }
}
.invest__list li span {
  font-size: 2.6rem;
}
@media (max-width: 640px) {
  .invest__list li span {
    font-size: 3rem;
  }
}

.invest__list-title {
  display: inline;
}

.invest__list-data {
  display: inline;
}
@media (max-width: 640px) {
  .invest__list-data {
    min-width: 6em;
  }
}

.invest__caption {
  position: absolute;
  bottom: 1rem;
  right: 2.7rem;
  font-size: 1.4rem;
  font-feature-settings: "palt";
}
@media (max-width: 640px) {
  .invest__caption {
    bottom: 1.5rem;
  }
}

/* revenue
------------------------------------------------------ */
.revenue {
  padding-top: 8.3rem;
  padding-bottom: 9.7rem;
  background: #fbf3f6;
}
@media (max-width: 640px) {
  .revenue {
    padding-top: 4.7rem;
    padding-bottom: 5rem;
  }
}

.revenue__title-1 {
  display: block;
  width: 23.5rem;
  height: 3.5rem;
  margin-inline: auto;
}

@media (max-width: 640px) {
  .revenue__title-2 {
    margin-top: 2rem;
    font-size: 5.2rem;
  }
}

.revenue__table {
  margin-top: 3.5rem;
  table-layout: auto;
  width: 100%;
  border: 1px solid;
}
@media (max-width: 640px) {
  .revenue__table {
    margin-top: 2rem;
  }
}
.revenue__table tr {
  height: 4rem;
}
@media (max-width: 640px) {
  .revenue__table tr {
    height: 5rem;
  }
}
.revenue__table th {
  padding: 0.5em;
  font-size: 1.8rem;
  font-feature-settings: "palt";
  font-weight: 500;
  text-align: center;
  vertical-align: middle;
  background: #fff;
  border: 1px solid;
}
@media (max-width: 640px) {
  .revenue__table th {
    padding: 0.6em;
    font-size: 1.9rem;
  }
}
.revenue__table td {
  padding: 0.5em;
  font-size: 1.8rem;
  font-feature-settings: "palt";
  background: #fff;
  border: 1px solid;
}
@media (max-width: 640px) {
  .revenue__table td {
    padding: 0.6em;
    font-size: 2rem;
  }
}
.revenue__table td span {
  font-size: 1.5rem;
}
@media (max-width: 640px) {
  .revenue__table td span {
    font-size: 1.6rem;
  }
}
.revenue__table td:last-child {
  text-align: right;
}
.revenue__table thead th {
  padding: 0.75em;
  background: #edd0d9;
}
@media (max-width: 640px) {
  .revenue__table thead th {
    padding: 0.6em;
  }
}

.revenue__arrow {
  width: 46.3rem;
  height: 3.8rem;
  margin-top: 1rem;
  margin-inline: auto;
  background: linear-gradient(to bottom, rgba(216, 59, 9, 0), #d83b09);
  -webkit-clip-path: polygon(0 0, 100% 0, 50% 100%);
          clip-path: polygon(0 0, 100% 0, 50% 100%);
}
@media (max-width: 640px) {
  .revenue__arrow {
    margin-top: 1.4rem;
  }
}

.revenue-box {
  margin-top: 1.2rem;
  position: relative;
  z-index: 0;
  height: 17.8rem;
  border-radius: 1.8rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  color: #fff;
  background: #d83b09;
}
@media (max-width: 640px) {
  .revenue-box {
    margin-top: 2rem;
    height: 31.1rem;
  }
}
.revenue-box::before {
  position: absolute;
  z-index: -1;
  top: 0.6rem;
  left: 0.6rem;
  content: "";
  width: calc(100% - 1.2rem);
  height: calc(100% - 1.2rem);
  border-radius: 1.2rem;
  border: 0.2rem solid #fff;
  pointer-events: none;
}

.revenue-box__title-1 {
  margin-top: -1rem;
  font-size: 4.5rem;
  font-weight: 600;
  font-feature-settings: "palt";
  text-align: center;
  color: #ff0;
}
@media (max-width: 640px) {
  .revenue-box__title-1 {
    margin-top: 0;
    font-size: 5.4rem;
  }
}
.revenue-box__title-1 span {
  font-size: 6.4rem;
}
@media (max-width: 640px) {
  .revenue-box__title-1 span {
    font-size: 9rem;
  }
}

.revenue-box__title-2 {
  font-size: 4.5rem;
  font-weight: 600;
  font-feature-settings: "palt";
  text-align: center;
}
@media (max-width: 640px) {
  .revenue-box__title-2 {
    font-size: 5.3rem;
  }
}
.revenue-box__title-2 span {
  font-size: 5.3rem;
}
@media (max-width: 640px) {
  .revenue-box__title-2 span {
    font-size: 6.3rem;
  }
}

.revenue__caption {
  margin-top: 1rem;
  font-size: 1.8rem;
  font-feature-settings: "palt";
  line-height: 1.6666666667;
  text-align: center;
}
@media (max-width: 640px) {
  .revenue__caption {
    font-size: 2.1rem;
    line-height: 1.4285714286;
    text-align: right;
  }
}

/* message
------------------------------------------------------ */
.message {
  overflow: hidden;
  position: relative;
  z-index: 0;
  padding-top: 7.8rem;
  padding-bottom: 13.7rem;
  background: linear-gradient(to bottom, #fbf3f6 50%, #fcf5e5 50%);
}
@media (max-width: 640px) {
  .message {
    padding-top: 8.7rem;
    padding-bottom: 9rem;
  }
}
.message::before {
  position: absolute;
  z-index: -1;
  inset: 0;
  content: "";
  width: 100%;
  height: 100%;
  margin-left: -50vw;
  margin-right: -50vw;
  padding-left: 50vw;
  padding-right: 50vw;
  border-top-left-radius: 50% 50vw;
  border-top-right-radius: 50% 50vw;
  background: url("../img/message-bg_pc.jpg") center/cover;
  box-sizing: content-box;
  -webkit-clip-path: polygon(0 0, 100% 0, 100% calc(100% - 14.4rem), 50% 100%, 0 calc(100% - 14.4rem));
          clip-path: polygon(0 0, 100% 0, 100% calc(100% - 14.4rem), 50% 100%, 0 calc(100% - 14.4rem));
}
@media (max-width: 640px) {
  .message::before {
    background-image: url("../img/message-bg_sp.jpg");
    -webkit-clip-path: polygon(0 0, 100% 0, 100% calc(100% - 9rem), 50% 100%, 0 calc(100% - 9rem));
            clip-path: polygon(0 0, 100% 0, 100% calc(100% - 9rem), 50% 100%, 0 calc(100% - 9rem));
  }
}

.message__title {
  font-size: 4.5rem;
  font-weight: 600;
  font-feature-settings: "palt";
  text-align: center;
  color: #a61342;
}
@media (max-width: 640px) {
  .message__title {
    font-size: 5.2rem;
  }
}

.message-box {
  margin-top: 4.5rem;
  padding: 3.7rem 2.7rem 3rem;
  border-radius: 1.8rem;
  background: rgba(255, 255, 255, 0.8);
}
@media (max-width: 640px) {
  .message-box {
    padding: 5.3rem 3rem 3.4rem;
  }
}

.message__img {
  width: 42.3rem;
  height: 33.2rem;
  margin-inline: auto;
}
@media (max-width: 640px) {
  .message__img {
    width: 54rem;
    height: 42.2rem;
  }
}

.message__name {
  margin-top: 1.2rem;
  font-size: 2.2rem;
  font-feature-settings: "palt";
  text-align: center;
  line-height: 1.4090909091;
}
@media (max-width: 640px) {
  .message__name {
    font-size: 2.8rem;
    line-height: 1.4285714286;
  }
}

.message__text {
  margin-top: 2.6rem;
}
@media (max-width: 640px) {
  .message__text {
    margin-top: 5rem;
  }
}
.message__text p {
  margin-top: 3rem;
  font-size: 1.8rem;
  line-height: 1.6666666667;
  text-align: justify;
}
@media (max-width: 640px) {
  .message__text p {
    margin-top: 4.5rem;
    font-size: 2.8rem;
    line-height: 1.6071428571;
  }
}

.message__illust {
  float: right;
  width: 19.9rem;
  height: 23.1rem;
  margin-left: 1.8rem;
  margin-right: -5.6rem;
}

/* company
------------------------------------------------------ */
.company {
  padding-top: 4rem;
  padding-bottom: 2rem;
  background: #f3f3f3;
}

.company__title {
  font-size: 3.2rem;
  font-weight: 600;
  font-feature-settings: "palt";
  text-align: center;
  color: #a61342;
}
@media (max-width: 640px) {
  .company__title {
    font-size: 3.6rem;
  }
}

.company__col-block {
  margin-top: 3.7rem;
  display: flex;
  justify-content: center;
  gap: 5rem;
}
@media (max-width: 640px) {
  .company__col-block {
    gap: 2rem;
  }
}

.company__logo {
  width: 21rem;
  height: 21rem;
}

.company__info {
  font-size: 1.6rem;
  line-height: 2.125;
}

.company__sns {
  margin-top: 1rem;
  display: flex;
  align-items: center;
  width: -moz-fit-content;
  width: fit-content;
  text-decoration: none;
}
.company__sns-icon {
  width: 2.3rem;
  height: 2.3rem;
  margin-right: 1rem;
}
.company__sns-text {
  font-size: 1.7rem;
}

/*------------------------------------------------------------------------
// Other
  └ utilities 
------------------------------------------------------------------------*/
/* 表示切り替え */
.pc-hidden {
  display: none;
}
@media (max-width: 640px) {
  .pc-hidden {
    display: initial;
  }
}

.sp-hidden {
  display: initial;
}
@media (max-width: 640px) {
  .sp-hidden {
    display: none;
  }
}/*# sourceMappingURL=style.css.map */