.mx-auto {
  margin-left: auto;
  margin-right: auto;
}

.mb-0 {
  margin-bottom: 0px;
}

.mt-\[30px\] {
  margin-top: 30px;
}

.hidden {
  display: none;
}

.break-keep {
  word-break: keep-all;
}

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

.font-medium {
  font-weight: 500;
}

.font-bold {
  font-weight: 700;
}

.leading-loose {
  line-height: 2;
}

.fz17 {
  font-size: calc(17rem / 16);
}

.fz24 {
  font-size: calc(24rem / 16);
}

.fz28 {
  font-size: calc(28rem / 16);
}

.mt10 {
  margin-top: 10px;
}

.mt20 {
  margin-top: 20px;
}

.mt25 {
  margin-top: 25px;
}

.mt30 {
  margin-top: 30px;
}

.mt35 {
  margin-top: 35px;
}

.mt40 {
  margin-top: 40px;
}

.mt50 {
  margin-top: 50px;
}

.mt60 {
  margin-top: 60px;
}

.grid-cols-auto {
  --max-cols: 1fr;
  grid-template-columns: repeat(
    auto-fit,
    minmax(min(100%, var(--min-cols)), var(--max-cols))
  );
}

.visually_hidden {
  position: absolute;
  white-space: nowrap;
  width: 1px;
  height: 1px;
  overflow: hidden;
  border: 0;
  padding: 0;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  margin: -1px;
}

/* mt-section */

.mt-section-xs {
  margin-top: clamp(4.375rem, 3.523rem + 4.26vw, 6.25rem);
  /* val：70px-100px | view：320px-1024px */
}

.mt-section-s {
  margin-top: clamp(4.375rem, 2.955rem + 7.1vw, 7.5rem);
  /* val：70px-120px | view：320px-1024px */
}

.mt-section-m {
  margin-top: clamp(5rem, 3.011rem + 9.94vw, 9.375rem);
  /* val：80px-150px | view：320px-1024px */
}

.mt-section-l {
  margin-top: clamp(6.25rem, 1.989rem + 21.31vw, 15.625rem);
  /* val：100px-250px | view：320px-1024px */
}

/* padding */

.pt-section-s {
  padding-top: clamp(4.375rem, 2.813rem + 7.81vw, 7.813rem);
  /* val：70px-125px | view：320px-1024px */
}

.pt-section-m {
  padding-top: clamp(5rem, 2.727rem + 11.36vw, 10rem);
  /* val：80px-160px | view：320px-1024px */
}

.pb-section-m {
  padding-bottom: clamp(5rem, 2.727rem + 11.36vw, 10rem);
  /* val：80px-160px | view：320px-1024px */
}

/* vertical */

.vertical {
  display: flex;
  flex-flow: row-reverse;
  align-items: start;
}

.vertical span {
  white-space: pre;
  writing-mode: vertical-rl;
  display: inline-block;
}

@media (min-width: 48em) {
  .md\:vertical {
    display: flex;
    flex-flow: row-reverse;
    align-items: start;
  }

  .md\:vertical span {
    white-space: pre;
    writing-mode: vertical-rl;
    display: inline-block;
  }
}

@media not all and (min-width: 48em) {
  .max-md\:hidden {
    display: none;
  }
}

@media (min-width: 40em) {
  .sm\:fz28 {
    font-size: calc(28rem / 16);
  }
}
