@charset "UTF-8";
/* ==========================================
 Layout
============================================*/
/* inner */
.inner {
  max-width: 100%;
  padding-inline: var(--sz-30);
  margin-inline: auto;
}
@media screen and (min-width: 992px) {
  .inner {
    max-width: var(--sz-1200);
    padding-inline: var(--sz-25);
  }
}

@media screen and (min-width: 992px) {
  :root {
    --min_w1: 992;
    --max_w1: 1440;
    --container-width: 1920;
  }
}
/* ==========================================
 Parts
============================================*/
.indent-mark {
  position: relative;
  padding-left: 1em;
  display: inline-block;
}
.indent-mark::before {
  content: attr(data-mark);
  position: absolute;
  left: 0;
}

/* ==========================================
 Header
============================================*/
.header {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  padding-block: var(--sz-24);
}

.header__row {
  display: flex;
  justify-content: space-between;
}

.brand {
  width: var(--sz-228);
}

.header__cta {
  position: fixed;
  top: 0;
  right: 0;
  width: var(--sz-245);
  display: none;
}

@media screen and (min-width: 992px) {
  .header {
    padding-block: var(--sz-36);
  }
  .header .inner {
    max-width: 100%;
    padding-inline: var(--sz-97);
  }
  .brand {
    width: var(--sz-200);
  }
  .header__cta {
    display: block;
    z-index: 10;
  }
}
/* ==========================================
 FV
============================================*/
.fv {
  background-image: repeating-linear-gradient(-60deg, #22bfd1 0px var(--sz-4), #10b4b9 var(--sz-4) var(--sz-8));
  padding-block: var(--sz-94) var(--sz-28);
}

.fv__heading {
  margin-bottom: calc(-1 * var(--sz-10));
}
.fv__heading img {
  width: var(--sz-692);
}

.fv__model {
  margin-bottom: calc(-1 * var(--sz-100));
}
.fv__model img {
  width: var(--sz-488);
}

.fv__apeal {
  margin-bottom: var(--sz-15);
}
.fv__apeal img {
  width: var(--sz-694);
}

.cta img {
  width: var(--sz-714);
}

@media screen and (min-width: 992px) {
  .fv {
    padding-block: var(--sz-110) 0;
  }
  .fv__heading {
    margin-bottom: calc(-1 * var(--sz-150));
  }
  .fv__heading img {
    width: 93.74%;
    margin-left: 0;
  }
  .fv__model {
    margin-bottom: calc(-1 * var(--sz-150));
  }
  .fv__model img {
    width: 47.39%;
    margin-right: 0;
  }
  .fv__apeal {
    margin-bottom: 0;
  }
  .fv__apeal img {
    width: 97.91%;
    margin-right: 0;
  }
}
/** コンテンツ表示サイズ調整 **/
/* ==========================================
 CTA
============================================*/
@media screen and (min-width: 992px) {
  .cta {
    border: var(--sz-2) solid var(--color-default);
    padding: var(--sz-25);
    padding-bottom: var(--sz-15);
    background-color: #fff;
    width: var(--sz-960);
    margin-inline: auto;
    position: relative;
  }
  .cta__label {
    font-size: var(--sz-30);
    font-weight: bold;
    line-height: 1.75;
    text-align: center;
    margin-bottom: var(--sz-25);
  }
  .cta__label > span {
    color: var(--color-yellow);
    background-color: var(--color-default);
    font-size: var(--sz-24);
    font-weight: bold;
    line-height: 1.75;
    letter-spacing: 0.05em;
    padding: var(--sz-12) var(--sz-30) var(--sz-12) var(--sz-15);
    border-radius: 0 100vh 100vh 0;
    position: absolute;
    left: 0;
  }
  .cta img {
    width: var(--sz-740);
  }
}
/* ==========================================
 Listing
============================================*/
.listing {
  background: url(../images/bg-listing@2x.webp) no-repeat top center/cover;
  padding-block: var(--sz-78) var(--sz-70);
}

.listing__heading {
  margin-bottom: var(--sz-70);
}
.listing__heading img {
  width: var(--sz-602);
}

.listing__list {
  display: flex;
  max-width: var(--sz-546);
  width: 79%;
  margin-inline: auto;
  margin-bottom: var(--sz-30);
}

.listing__item {
  border: var(--sz-3) solid var(--color-primary);
  border-radius: var(--sz-15);
  overflow: hidden;
}

.listing__head {
  overflow: hidden;
}

.listing__image {
  transition: scale 1s;
}

.listing__image:hover {
  scale: 1.1;
}

.listing__body {
  font-size: var(--sz-30);
  font-weight: normal;
  line-height: 1.36;
  padding: var(--sz-25);
  background-color: #fff;
}

.listing__title {
  font-size: var(--sz-34);
  line-height: 1.6;
  letter-spacing: 0.05em;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  text-overflow: ellipsis;
  min-height: calc(var(--sz-34) * 1.6 * 2);
}

.listing__condition {
  margin-bottom: var(--sz-30);
}

.listing__salary {
  font-size: var(--sz-55);
  font-weight: bold;
  letter-spacing: 0.01em;
  text-align: right;
  line-height: 1.2;
}

.listing__arrow {
  margin-bottom: var(--sz-26);
}
.listing__arrow img {
  width: var(--sz-94);
}

.listing__desc {
  font-size: var(--sz-30);
  font-weight: normal;
  line-height: 1.6;
  letter-spacing: 0.05em;
  text-align: center;
}

.listing__desc p:first-child {
  color: var(--color-primary);
  font-feature-settings: "palt";
  font-size: var(--sz-36);
  font-weight: bold;
  line-height: 1.75;
  margin-bottom: var(--sz-39);
}

.listing__desc p:first-child > span {
  background-color: var(--color-yellow);
  font-size: 137%;
  padding: 0.1em 0.5em;
  transform: skewX(5deg);
  display: inline-block;
}

.listing__desc p:last-child {
  margin-bottom: 0;
}

/** slider **/
.slick-arrow {
  z-index: 1;
}

.slick-prev {
  left: calc(-1 * var(--sz-60));
}

.slick-next {
  right: calc(-1 * var(--sz-60));
}

.slick-arrow:before {
  content: "";
  display: block;
  width: var(--sz-40);
  height: var(--sz-40);
  background-color: var(--color-primary);
}

.slick-prev:before {
  -webkit-clip-path: polygon(0 50%, 100% 0, 100% 100%);
          clip-path: polygon(0 50%, 100% 0, 100% 100%);
}

.slick-next:before {
  -webkit-clip-path: polygon(0 0, 100% 50%, 0 100%);
          clip-path: polygon(0 0, 100% 50%, 0 100%);
}

/* 各スライドアイテムの高さを揃える */
.listing__list .slick-track {
  display: flex;
}

.listing__list .slick-slide {
  height: auto;
}

.listing__list .slick-slide > div {
  height: 100%;
}

.listing__item {
  display: flex !important;
  flex-direction: column;
  height: 100%;
}

.listing__body {
  display: flex;
  flex-direction: column;
  flex-grow: 1;
  gap: var(--sz-20);
}

.listing__title {
  margin-bottom: auto;
}

@media screen and (min-width: 992px) {
  .listing {
    background-image: url(../images/bg-listing.webp);
    padding-block: var(--sz-40) var(--sz-40);
  }
  .listing .inner {
    max-width: 100%;
  }
  .listing__heading {
    margin-bottom: var(--sz-60);
  }
  .listing__list {
    max-width: var(--sz-1575);
    width: 80.7%;
    margin-bottom: var(--sz-25);
  }
  .listing__body {
    font-size: clamp(12px, 1.2vw, 24px);
    padding: var(--sz-15);
    line-height: 1.5;
  }
  .listing__title {
    font-size: clamp(15px, 1.5vw, 30px);
    min-height: calc(var(--sz-30) * 1.6 * 2);
  }
  .listing__salary {
    font-size: clamp(24px, 2.4vw, 48px);
    letter-spacing: 0;
  }
  .listing__arrow {
    margin-bottom: var(--sz-20);
  }
  .listing__arrow img {
    width: var(--sz-78);
  }
  .listing__desc {
    font-size: var(--sz-24);
    line-height: 1.5;
    margin-bottom: var(--sz-40);
  }
  .listing__desc p:first-child {
    font-size: var(--sz-30);
  }
  /** slider **/
  .slick-slide {
    padding-inline: var(--sz-15);
  }
}
/* ==========================================
 Reason
============================================*/
.reason {
  background-color: #22bfd1;
  padding-block: var(--sz-78) var(--sz-58);
}

.reason__heading {
  margin-bottom: var(--sz-10);
}
.reason__heading img {
  width: var(--sz-689);
}

.reason__list {
  display: flex;
  flex-direction: column;
  gap: var(--sz-67);
}

.reason__item {
  display: flex;
  flex-direction: column;
  gap: var(--sz-67);
}

.reason__index {
  font-family: var(--font-Oswald);
  font-size: var(--sz-32);
  font-weight: bold;
  line-height: var(--sz-48);
  margin-bottom: var(--sz-5);
}
.reason__index > span {
  font-size: 203%;
  line-height: 1;
  margin-left: 0.1em;
  transform: skewX(-7deg);
  display: inline-block;
}

.reason__title {
  font-size: var(--sz-48);
  font-weight: bold;
  line-height: 1.75;
  letter-spacing: 0.05em;
  display: flex;
  flex-direction: column;
  gap: var(--sz-8);
  margin-bottom: var(--sz-53);
}
.reason__title > span {
  background-color: var(--color-default);
  width: -moz-fit-content;
  width: fit-content;
  color: #fff;
  padding: 0.1em 0.5em;
}

.reason__desc {
  font-size: var(--sz-32);
  font-weight: normal;
  line-height: 1.72;
  letter-spacing: 0.05em;
}
.reason__desc p:last-child {
  margin-bottom: 0;
}

.reason__image img {
  width: var(--sz-687);
}

@media screen and (min-width: 992px) {
  .reason {
    padding-block: var(--sz-74) var(--sz-77);
    overflow: hidden;
  }
  .reason__heading {
    margin-bottom: var(--sz-42);
  }
  .reason__heading img {
    width: var(--sz-640);
  }
  .reason__list {
    gap: var(--sz-55);
    margin-bottom: var(--sz-70);
  }
  .reason__item {
    flex-direction: row;
    gap: var(--sz-32);
  }
  .reason__item:nth-child(even) {
    flex-direction: row-reverse;
  }
  .reason__text {
    width: 50%;
  }
  .reason__index {
    font-size: var(--sz-24);
    line-height: 1.5;
    margin-bottom: 0;
  }
  .reason__title {
    font-size: var(--sz-36);
    margin-bottom: var(--sz-36);
    gap: var(--sz-6);
  }
  .reason__desc {
    font-feature-settings: "palt";
    font-size: var(--sz-24);
    line-height: 1.5;
  }
  .reason__image {
    width: 50%;
  }
  .reason__image img {
    width: 48vw;
    max-width: unset;
  }
  .reason__item:nth-child(even) .reason__image {
    translate: calc((var(--sz-1200) - 100vw) / 2);
  }
}
/* ==========================================
 Flow
============================================*/
.flow {
  background-color: #e7ebeb;
  padding-block: var(--sz-78) var(--sz-76);
}

.flow__heading {
  font-size: var(--sz-48);
  font-weight: bold;
  line-height: 1.75;
  letter-spacing: 0.05em;
  text-align: center;
  margin-bottom: var(--sz-68);
}

.flow__list {
  display: flex;
  flex-direction: column;
  gap: var(--sz-38);
}

.flow__item {
  display: grid;
  grid-template-columns: 23% 1fr;
}
.flow__item:not(:last-child) {
  padding-bottom: var(--sz-120);
  background: url(../images/pic-broken-arrow@2x.webp) no-repeat bottom left/var(--sz-450);
}

.flow__index {
  font-family: var(--font-Oswald);
  text-align: center;
  font-size: var(--sz-51);
  font-weight: normal;
  line-height: 1.2;
  width: -moz-fit-content;
  width: fit-content;
  margin-inline: auto;
}
.flow__index::before {
  content: "";
  display: block;
  width: 100%;
  aspect-ratio: 114/57;
  background-color: #22bfd1;
  -webkit-clip-path: polygon(0 0, 100% 0, 50% 100%);
          clip-path: polygon(0 0, 100% 0, 50% 100%);
}

.flow__text {
  border-left: var(--sz-2) solid var(--color-default);
  padding: var(--sz-40) var(--sz-20) var(--sz-15);
}

.flow__title {
  color: var(--color-primary);
  font-size: var(--sz-36);
  font-weight: bold;
  line-height: 1.75;
  letter-spacing: 0.05em;
  margin-bottom: var(--sz-18);
}

.flow__desc {
  font-size: var(--sz-30);
  font-weight: normal;
  line-height: 1.6;
  letter-spacing: 0.05em;
}
.flow__desc p:last-child {
  margin-bottom: 0;
}

@media screen and (min-width: 992px) {
  .flow {
    padding-block: var(--sz-70) var(--sz-80);
  }
  .flow__list {
    width: var(--sz-1115);
    margin-inline: auto;
    gap: var(--sz-48);
  }
  .flow__item {
    grid-template-columns: 15.8% 1fr;
  }
  .flow__item:not(:last-child) {
    padding-bottom: var(--sz-130);
    background-image: url(../images/pic-broken-arrow.webp);
  }
  .flow__index {
    font-size: var(--sz-58);
    line-height: 1;
    margin-left: 0;
  }
  .flow__text {
    border-left-width: 0;
    padding: 0 0 0 var(--sz-40);
    position: relative;
    min-height: var(--sz-210);
  }
  .flow__text::before {
    content: "";
    width: var(--sz-4);
    height: 100%;
    background-color: var(--color-default);
    display: block;
    position: absolute;
    top: var(--sz-15);
    left: 0;
  }
  .flow__title {
    line-height: 1;
  }
  .flow__desc {
    font-size: var(--sz-24);
    line-height: 1.5;
  }
}
/* ==========================================
 Support
============================================*/
.support {
  padding-block: var(--sz-73) 0;
}

.support__heading {
  margin-bottom: var(--sz-59);
}
.support__heading img {
  width: var(--sz-496);
}

.support__content {
  margin-inline: calc(-1 * var(--sz-30));
}

.support__desc {
  font-feature-settings: "palt";
  font-size: var(--sz-30);
  font-weight: normal;
  line-height: 1.56;
  letter-spacing: 0.05em;
  margin-bottom: 0;
  background: url(../images/pic-support-balloon@2x.webp) no-repeat top center/100%;
  aspect-ratio: 750/399;
  padding: var(--sz-90) var(--sz-150) var(--sz-140) var(--sz-30);
}

@media screen and (min-width: 992px) {
  .support {
    padding-block: var(--sz-40) 0;
  }
  .support__heading {
    margin-bottom: var(--sz-36);
  }
  .support__heading img {
    width: var(--sz-800);
  }
  .support__content {
    margin-inline: unset;
  }
  .support__desc {
    font-size: var(--sz-24);
    line-height: 1.5;
    background-image: url(../images/pic-support-balloon.webp);
    aspect-ratio: 860/306;
    padding: var(--sz-70) var(--sz-300) var(--sz-100) var(--sz-40);
    width: var(--sz-800);
    margin-inline: auto;
  }
}
/* ==========================================
 Caution
============================================*/
.caution {
  background: url(../images/bg-caution@2x.webp) no-repeat top center/100%;
  aspect-ratio: 750/1004;
  padding-block: var(--sz-72) var(--sz-128);
  position: relative;
}

.caution__heading {
  color: var(--color-primary);
  font-size: var(--sz-48);
  font-weight: bold;
  line-height: 1.2;
  letter-spacing: 0.05em;
  text-align: center;
  margin-bottom: var(--sz-64);
}

.caution__row {
  display: flex;
  flex-direction: column;
  gap: var(--sz-70);
}

.caution__label {
  color: var(--color-yellow);
  background-color: var(--color-default);
  width: -moz-fit-content;
  width: fit-content;
  margin-inline: auto;
  font-size: var(--sz-30);
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: 0.05em;
  padding: 1em;
  margin-bottom: var(--sz-25);
}

.caution__desc {
  font-size: var(--sz-30);
  font-weight: normal;
  line-height: 1.6;
  letter-spacing: 0.05em;
  text-align: center;
  margin-bottom: 0;
}

.caution__image {
  width: var(--sz-347);
}

@media screen and (min-width: 992px) {
  .caution {
    background-image: url(../images/bg-caution.webp);
    background-size: cover;
    aspect-ratio: 1920/624;
    padding-block: var(--sz-67) var(--sz-132);
  }
  .caution__heading {
    margin-bottom: var(--sz-6);
  }
  .caution__row {
    flex-direction: row;
    justify-content: center;
    align-items: center;
    gap: var(--sz-30);
    width: -moz-fit-content;
    width: fit-content;
    margin-inline: auto;
  }
  .caution__label {
    padding: 0.5em 1em;
    text-align: left;
  }
  .caution__desc {
    font-size: var(--sz-24);
    line-height: 1.5;
    text-align: left;
  }
}
/* ==========================================
 FAQ
============================================*/
.faq {
  background-image: url(../images/bg-faq@2x.webp), repeating-linear-gradient(-60deg, #22bfd1 0px var(--sz-4), #10b4b9 var(--sz-4) var(--sz-8));
  background-position: bottom center, center;
  background-repeat: no-repeat, repeat;
  background-size: 100%, auto;
  padding-block: var(--sz-200) var(--sz-126);
  margin-top: calc(-1 * var(--sz-55));
}

.faq__heading {
  color: #fff;
  font-size: var(--sz-48);
  font-weight: bold;
  line-height: 1.2;
  letter-spacing: 0.05em;
  text-align: center;
  margin-bottom: var(--sz-70);
  position: relative;
}

.faq__mark {
  width: var(--sz-224);
  position: absolute;
  bottom: calc(100% + var(--sz-25));
  left: 50%;
  translate: -50%;
}

.faq__list {
  display: flex;
  flex-direction: column;
  gap: var(--sz-24);
}

.faq__item {
  border-radius: var(--sz-15);
  overflow: hidden;
  background-color: #fff;
}

.faq__term {
  padding: var(--sz-123) var(--sz-60) var(--sz-32) var(--sz-30);
  color: var(--color-primary);
  font-size: var(--sz-36);
  font-weight: bold;
  line-height: 1.66;
  letter-spacing: 0.05em;
  position: relative;
}
.faq__term::before {
  content: "Q";
  font-size: var(--sz-48);
  font-weight: 500;
  line-height: 1.2;
  position: absolute;
  top: var(--sz-40);
  left: 50%;
  translate: -50%;
}
.faq__term::after {
  content: "\f078";
  font-family: "Font Awesome 6 Free";
  position: absolute;
  top: var(--sz-162);
  right: var(--sz-40);
  transition: 0.3s;
}

:where(.active) > .faq__term::after {
  scale: 1 -1;
}

.faq__desc {
  padding: var(--sz-30);
  padding-bottom: var(--sz-57);
  background-color: #f0f2ed;
  font-size: var(--sz-30);
  font-weight: normal;
  line-height: 1.6;
  letter-spacing: 0.05em;
  display: none;
}

@media screen and (min-width: 992px) {
  .faq {
    background-image: url(../images/bg-faq.webp), repeating-linear-gradient(-60deg, #22bfd1 0px var(--sz-4), #10b4b9 var(--sz-4) var(--sz-8));
    padding-block: var(--sz-125) var(--sz-178);
    margin-top: calc(-1 * var(--sz-70));
  }
  .faq__list {
    gap: var(--sz-20);
    width: var(--sz-1128);
    margin-inline: auto;
    margin-bottom: var(--sz-80);
  }
  .faq__term {
    font-size: var(--sz-30);
    line-height: 1.5;
    padding: var(--sz-18) var(--sz-100) var(--sz-18) var(--sz-140);
    min-height: var(--sz-121);
    display: flex;
    align-items: center;
  }
  .faq__term::before {
    top: 50%;
    left: 0;
    translate: 0 -50%;
    width: var(--sz-110);
    height: calc(100% - var(--sz-36));
    display: flex;
    justify-content: center;
    align-items: center;
    border-right: var(--sz-3) dotted var(--color-primary);
  }
  .faq__term::after {
    top: 50%;
    translate: 0 -50%;
  }
  .faq__desc {
    font-size: var(--sz-24);
    padding: var(--sz-20) var(--sz-40) var(--sz-20) var(--sz-140);
    line-height: 2;
  }
}
/* ==========================================
 Philosophy
============================================*/
.philosophy {
  padding-block: var(--sz-162) 0;
}

.philosophy .inner {
  padding-inline: var(--sz-50);
}

.philosophy__heading {
  border: var(--sz-5) solid var(--color-primary);
  border-radius: var(--sz-15);
  padding: var(--sz-42) var(--sz-53);
  display: flex;
  flex-direction: column;
  text-align: center;
  gap: var(--sz-12);
  margin-inline: auto;
  margin-bottom: var(--sz-68);
  top: calc(-1 * var(--sz-123));
  margin-top: calc(-1 * var(--sz-130));
}
.philosophy__heading .ja {
  font-size: var(--sz-30);
  font-weight: bold;
  line-height: 1.2;
  letter-spacing: 0.05em;
  text-align: center;
  color: var(--color-primary);
}
.philosophy__heading .en {
  font-family: var(--font-Oswald);
  font-size: var(--sz-48);
  font-weight: bold;
  line-height: 1.59;
}
.philosophy__heading .en--highlight:first-child {
  color: var(--color-primary);
}
.philosophy__heading .en--highlight:last-child {
  color: #10b5ba;
}

.philosophy__content {
  position: relative;
}
.philosophy__content::before {
  content: "";
  background-color: #f5faf7;
  border-radius: var(--sz-15);
  position: absolute;
  left: calc(-1 * var(--sz-50));
  width: var(--sz-609);
  height: calc(100% - var(--sz-40));
  z-index: -1;
}

.philosophy__row {
  display: flex;
  flex-direction: column;
  gap: var(--sz-60);
  position: relative;
}

.philosophy__label {
  color: var(--color-primary);
  font-size: var(--sz-30);
  font-weight: bold;
  line-height: 1.2;
  letter-spacing: 0.05em;
  width: -moz-fit-content;
  width: fit-content;
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted;
  text-underline-offset: var(--sz-16);
  margin-bottom: var(--sz-50);
}

.philosophy__desc {
  font-size: var(--sz-30);
  font-weight: normal;
  line-height: 1.66;
  letter-spacing: 0.05em;
  margin-bottom: 0;
}

@media screen and (min-width: 992px) {
  .philosophy {
    padding-block: var(--sz-180) 0;
    overflow: hidden;
  }
  .philosophy .inner {
    max-width: var(--sz-1178);
    padding-inline: var(--sz-25);
  }
  .philosophy__heading {
    padding: var(--sz-36) var(--sz-50);
    max-width: var(--sz-624);
    margin-bottom: var(--sz-76);
    white-space: nowrap;
  }
  .philosophy__content::before {
    left: calc((100% - 100vw) / 2);
    width: var(--sz-1383);
    height: var(--sz-556);
  }
  .philosophy__row {
    flex-direction: row;
    min-height: calc(var(--sz-575) + var(--sz-160));
  }
  .philosophy__text {
    width: 50%;
  }
  .philosophy__desc {
    font-size: var(--sz-24);
  }
  .philosophy__image {
    width: var(--sz-860);
    position: absolute;
    top: var(--sz-160);
    left: var(--sz-663);
  }
}
/* ==========================================
 Vision
============================================*/
.vision {
  padding-block: var(--sz-208) var(--sz-72);
}

.vision .inner {
  padding-inline: var(--sz-50);
}

.vision__heading {
  border: var(--sz-5) solid var(--color-primary);
  border-radius: var(--sz-15);
  padding: var(--sz-42) var(--sz-53);
  display: flex;
  flex-direction: column;
  text-align: center;
  max-width: var(--sz-526);
  margin-top: calc(-1 * var(--sz-125));
  margin-inline: auto;
  margin-bottom: var(--sz-68);
}
.vision__heading .ja {
  font-size: var(--sz-30);
  font-weight: bold;
  line-height: 1.2;
  letter-spacing: 0.05em;
  text-align: center;
  color: var(--color-primary);
}
.vision__heading .en {
  font-family: var(--font-Oswald);
  font-size: var(--sz-48);
  font-weight: bold;
  line-height: 1.59;
}
.vision__heading .en--highlight:first-child {
  color: var(--color-primary);
}
.vision__heading .en--highlight:last-child {
  color: #10b5ba;
}

.vision__content {
  position: relative;
}
.vision__content::before {
  content: "";
  background-color: #f5faf7;
  border-radius: var(--sz-15);
  position: absolute;
  right: calc(-1 * var(--sz-50));
  width: var(--sz-609);
  height: calc(100% + var(--sz-72));
  z-index: -1;
}

.vision__row {
  display: flex;
  flex-direction: column;
  gap: var(--sz-75);
  position: relative;
}

.vision__desc {
  font-size: var(--sz-30);
  font-weight: normal;
  line-height: 1.66;
  letter-spacing: 0.05em;
  margin-bottom: 0;
}

@media screen and (min-width: 992px) {
  .vision {
    padding-block: var(--sz-208) 0;
  }
  .vision .inner {
    max-width: var(--sz-1178);
    padding-inline: var(--sz-25);
  }
  .vision__content::before {
    right: calc((100% - 100vw) / 2);
    width: var(--sz-1383);
    height: var(--sz-556);
  }
  .vision__row {
    flex-direction: row-reverse;
    min-height: var(--sz-575);
  }
  .vision__heading {
    padding: var(--sz-36) var(--sz-50);
    max-width: var(--sz-526);
    margin-bottom: var(--sz-76);
    margin-left: 0;
    white-space: nowrap;
  }
  .vision__text {
    width: 50%;
  }
  .vision__desc {
    font-size: var(--sz-24);
  }
  .vision__image {
    width: var(--sz-860);
    position: absolute;
    top: calc(-1 * var(--sz-120));
    right: var(--sz-663);
  }
}
/* ==========================================
 Store Info
============================================*/
.store-info {
  padding-block: var(--sz-148) var(--sz-80);
  position: relative;
  overflow: hidden;
}
.store-info::before {
  content: "";
  background-color: #f5faf7;
  position: absolute;
  top: var(--sz-150);
  left: 0;
  width: 100%;
  height: 100%;
  z-index: -1;
}

.store-info .inner {
  padding-inline: var(--sz-50);
}

.store-info__heading {
  border: var(--sz-5) solid var(--color-primary);
  border-radius: var(--sz-15);
  padding: var(--sz-42) var(--sz-53);
  display: flex;
  flex-direction: column;
  text-align: center;
  max-width: var(--sz-526);
  margin-top: calc(-1 * var(--sz-60));
  margin-inline: auto;
  margin-bottom: var(--sz-65);
}
.store-info__heading .ja {
  font-size: var(--sz-30);
  font-weight: bold;
  line-height: 1.2;
  letter-spacing: 0.05em;
  text-align: center;
  color: var(--color-primary);
}

.store-info__row {
  display: flex;
  flex-direction: column;
  gap: var(--sz-80);
  position: relative;
}

.store-info__table {
  --bs-table-bg: transparent;
  --bs-table-color: var(--color-primary);
  font-size: var(--sz-27);
  font-weight: normal;
  line-height: 1.5;
  letter-spacing: 0.05em;
  margin-bottom: var(--sz-70);
}
.store-info__table th {
  font-weight: 500;
}

.store-info__map {
  border: var(--sz-2) solid var(--color-primary);
  border-radius: var(--sz-15);
  overflow: hidden;
}

.store-info__image {
  margin-inline: calc(-1 * var(--sz-50));
}

@media screen and (min-width: 992px) {
  .store-info {
    padding-block: var(--sz-144) var(--sz-74);
  }
  .store-info .inner {
    max-width: var(--sz-1178);
    padding-inline: var(--sz-25);
  }
  .store-info__heading {
    padding: var(--sz-36) var(--sz-50);
    max-width: var(--sz-526);
    margin-bottom: var(--sz-76);
  }
  .store-info__row {
    flex-direction: row-reverse;
    min-height: var(--sz-575);
  }
  .store-info__text {
    width: 50%;
  }
  .store-info__image {
    width: var(--sz-860);
    position: absolute;
    top: 0;
    right: var(--sz-710);
  }
  .store-info__table {
    font-size: var(--sz-24);
    margin-bottom: var(--sz-62);
  }
  .store-info__table th {
    padding-right: 1em;
  }
}
/* ==========================================
 Company
============================================*/
.company {
  background-color: #f4f5f4;
  padding-block: var(--sz-80) var(--sz-40);
}

.company__heading {
  border: var(--sz-5) solid var(--color-primary);
  border-radius: var(--sz-15);
  padding: var(--sz-42) var(--sz-53);
  display: flex;
  flex-direction: column;
  text-align: center;
  max-width: var(--sz-526);
  margin-inline: auto;
  margin-bottom: var(--sz-15);
}
.company__heading .ja {
  font-size: var(--sz-30);
  font-weight: bold;
  line-height: 1.2;
  letter-spacing: 0.05em;
  text-align: center;
  color: var(--color-primary);
}

.company__table {
  --bs-table-bg: transparent;
  --bs-table-color: var(--color-primary);
  font-size: var(--sz-30);
  font-weight: normal;
  line-height: 1.5;
  letter-spacing: 0.05em;
}
.company__table tr {
  display: block;
  padding-block: 1.33em;
}
.company__table tr:not(:last-child) {
  border-bottom: 1px dotted var(--color-primary);
}
.company__table :is(th, td) {
  display: block;
}
.company__table th {
  font-weight: 500;
}

@media screen and (min-width: 992px) {
  .company {
    padding-block: var(--sz-80) var(--sz-80);
  }
  .company__heading {
    padding: var(--sz-36) var(--sz-50);
    max-width: var(--sz-526);
    margin-bottom: var(--sz-60);
  }
  .company__table {
    font-size: var(--sz-24);
    width: -moz-fit-content;
    width: fit-content;
    margin-inline: auto;
  }
  .company__table tr {
    display: table-row;
  }
  .company__table tr:not(:last-child) {
    border-bottom: none;
  }
  .company__table :is(th, td) {
    display: table-cell;
    padding-block: 0.5em;
  }
  .company__table th {
    padding-right: 1em;
  }
}
/* ==========================================
 Contact
============================================*/
@media screen and (min-width: 992px) {
  .contact {
    padding-block: var(--sz-76) var(--sz-76);
  }
}
/* ==========================================
 Footer
============================================*/
.footer {
  background: repeating-linear-gradient(-60deg, #22bfd1 0px var(--sz-4), #10b4b9 var(--sz-4) var(--sz-8));
  padding-block: var(--sz-80) var(--sz-80);
  padding-inline: 0;
  font-size: var(--sz-30);
  font-weight: 500;
  color: #fff;
}

.footer__logo {
  width: var(--sz-228);
  margin-bottom: var(--sz-55);
}

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

.footer__menu a {
  padding: 0.5em 0;
  text-decoration: underline;
  text-underline-offset: 0.5em;
}

@media screen and (min-width: 992px) {
  .footer {
    font-size: var(--sz-24);
    padding-block: var(--sz-70) var(--sz-70);
    position: relative;
  }
  .footer .inner {
    max-width: 100%;
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
  }
  .footer .inner::after {
    content: "";
    grid-column: 3;
    width: var(--sz-228);
  }
  .footer__logo {
    grid-column: 1;
    margin-bottom: 0;
  }
  .footer__menu {
    grid-column: 2;
    flex-direction: row;
    gap: var(--sz-144);
  }
}