@charset "utf-8";

/*!
 * Some styles based on Bootstrap (https://getbootstrap.com)
 * Copyright (c) Twitter, Inc. and The Bootstrap Authors
 * Licensed under the MIT License
 */
/*!
 * Some utility classes inspired by Tailwind CSS (https://tailwindcss.com)
 * Copyright (c) Tailwind Labs Inc.
 * Licensed under the MIT License
 */


/* ============================================================
# Helper
============================================================ */

/* ## Clearfix
======================================== */

.clearfix::after {
  clear: both;
  content: "";
  display: block;
}


/* ## Ratio(iframe)
======================================== */

/* .ratio > * { */
.ratio > iframe {
  aspect-ratio: var(--aspect-ratio);
  height: auto;
  max-width: 100%;
  /* width: 100%; */
}
.ratio-1x1 {
  --aspect-ratio: 1;
}
.ratio-4x3 {
  --aspect-ratio: 4 / 3;
}
.ratio-16x9 {
  --aspect-ratio: 16 / 9;
}
.ratio-21x9 {
  --aspect-ratio: 21 / 9;
}


/* ## Aspect ratio
======================================== */

.aspect-ratio-1x1 {
  aspect-ratio: 1;
}
.aspect-ratio-4x3 {
  aspect-ratio: 4 / 3;
}
.aspect-ratio-16x9 {
  aspect-ratio: 16 / 9;
}
.aspect-ratio-21x9 {
  aspect-ratio: 21 / 9;
}


/* ## ScreenReaders
======================================== */

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border-width: 0;
}


/* ## Visually hidden content
======================================== */

.visually-hidden,
.visually-hidden-focusable:not(:focus):not(:focus-within) {
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
.visually-hidden:not(caption),
.visually-hidden-focusable:not(:focus):not(:focus-within):not(caption) {
  position: absolute !important;
}
.visually-hidden *,
.visually-hidden-focusable:not(:focus):not(:focus-within) * {
  overflow: hidden !important;
}



/* ## Grid
======================================== */

/* ### Multi-column Layout（カラム数を指定する）
---------------------------------------- */

.column-count-1 {
  column-count: 1;
}
.column-count-2 {
  column-count: 2;
}
.column-count-3 {
  column-count: 3;
}
.column-count-4 {
  column-count: 4;
}
.column-count-5 {
  column-count: 5;
}
@media (width >=576px) {
  .column-count-sm-1 {
    column-count: 1;
  }
  .column-count-sm-2 {
    column-count: 2;
  }
  .column-count-sm-3 {
    column-count: 3;
  }
  .column-count-sm-4 {
    column-count: 4;
  }
  .column-count-sm-5 {
    column-count: 5;
  }
}
@media (width >=768px) {
  .column-count-md-1 {
    column-count: 1;
  }
  .column-count-md-2 {
    column-count: 2;
  }
  .column-count-md-3 {
    column-count: 3;
  }
  .column-count-md-4 {
    column-count: 4;
  }
  .column-count-md-5 {
    column-count: 5;
  }
}
@media (width >=992px) {
  .column-count-lg-1 {
    column-count: 1;
  }
  .column-count-lg-2 {
    column-count: 2;
  }
  .column-count-lg-3 {
    column-count: 3;
  }
  .column-count-lg-4 {
    column-count: 4;
  }
  .column-count-lg-5 {
    column-count: 5;
  }
}
@media (width >=1200px) {
  .column-count-xl-1 {
    column-count: 1;
  }
  .column-count-xl-2 {
    column-count: 2;
  }
  .column-count-xl-3 {
    column-count: 3;
  }
  .column-count-xl-4 {
    column-count: 4;
  }
  .column-count-xl-5 {
    column-count: 5;
  }
}
@media (width >=1400px) {
  .column-count-2xl-1 {
    column-count: 1;
  }
  .column-count-2xl-2 {
    column-count: 2;
  }
  .column-count-2xl-3 {
    column-count: 3;
  }
  .column-count-2xl-4 {
    column-count: 4;
  }
  .column-count-2xl-5 {
    column-count: 5;
  }
}

/* カラム間の区切り線 */
.column-rule {
  column-rule: var(--border-width) var(--border-style) var(--border-color);
}
/* カラムをまたいで表示する */
.column-span-all {
  column-span: all;
}
/* 要素の中でカラム分割が起きないようにする */
.break-inside-avoid {
  break-inside: avoid;
}
/* この要素の前でカラムを切り替える */
.break-before {
  break-before: column;
}
/* この要素の後でカラムを切り替える */
.break-after {
  break-after: column;
}



/* ## Others
======================================== */

/* ### Hover bright
---------------------------------------- */

.hoverBright {
  transition: filter 0.15s;
}
@media (hover: hover) {
  .hoverBright:hover {
    filter: brightness(1.1);
  }
}




/* ============================================================
# Utilities
============================================================ */

/* ## Colors
======================================== */

/* ### Text color
---------------------------------------- */

.text-body {
  color: var(--body-color);
}
.text-black {
  color: var(--black);
}
.text-white {
  color: var(--white);
}
.text-gray {
  color: var(--gray);
}
.text-primary {
  color: var(--primary);
}
.text-reset {
  color: inherit;
}

.text-gray-50 {
  color: var(--gray-50);
}
.text-gray-100 {
  color: var(--gray-100);
}
.text-gray-200 {
  color: var(--gray-200);
}
.text-gray-300 {
  color: var(--gray-300);
}
.text-gray-400 {
  color: var(--gray-400);
}
.text-gray-500 {
  color: var(--gray-500);
}
.text-gray-600 {
  color: var(--gray-600);
}
.text-gray-700 {
  color: var(--gray-700);
}
.text-gray-800 {
  color: var(--gray-800);
}
.text-gray-900 {
  color: var(--gray-900);
}
.text-gray-950 {
  color: var(--gray-950);
}



/* ## Background
======================================== */

/* ### Background color
---------------------------------------- */

.bg-black {
  background-color: var(--black);
}
.bg-white {
  background-color: var(--white);
}
.bg-gray {
  background-color: var(--gray);
}
.bg-transparent {
  background-color: transparent;
}

.bg-gray-50 {
  background-color: var(--gray-50);
}
.bg-gray-100 {
  background-color: var(--gray-100);
}
.bg-gray-200 {
  background-color: var(--gray-200);
}
.bg-gray-300 {
  background-color: var(--gray-300);
}
.bg-gray-400 {
  background-color: var(--gray-400);
}
.bg-gray-500 {
  background-color: var(--gray-500);
}
.bg-gray-600 {
  background-color: var(--gray-600);
}
.bg-gray-700 {
  background-color: var(--gray-700);
}
.bg-gray-800 {
  background-color: var(--gray-800);
}
.bg-gray-900 {
  background-color: var(--gray-900);
}
.bg-gray-950 {
  background-color: var(--gray-950);
}

.bg-theme-1 {
  background-color: var(--theme-1);
}
.bg-theme-1-50 {
  background-color: var(--theme-1-50);
}
.bg-theme-1-100 {
  background-color: var(--theme-1-100);
}
.bg-theme-1-200 {
  background-color: var(--theme-1-200);
}
.bg-theme-1-400 {
  background-color: var(--theme-1-400);
}
.bg-theme-1-600 {
  background-color: var(--theme-1-600);
}
.bg-theme-2 {
  background-color: var(--theme-2);
}
.bg-theme-3 {
  background-color: var(--theme-3);
}
.bg-theme-4 {
  background-color: var(--theme-4);
}
.bg-theme-5 {
  background-color: var(--theme-5);
}

.bg-content01 {
  background-color: var(--content-bg01);
}
.bg-content02 {
  background-color: var(--content-bg02);
}



/* ## Borders
======================================== */

.border {
  border: var(--border-width) var(--border-style) var(--border-color);
}
.border-0 {
  border: 0;
}
.border-top {
  border-top: var(--border-width) var(--border-style) var(--border-color);
}
.border-top-0 {
  border-top: 0;
}
.border-right,
.border-end {
  border-right: var(--border-width) var(--border-style) var(--border-color);
}
.border-right-0,
.border-end-0 {
  border-right: 0;
}
.border-bottom {
  border-bottom: var(--border-width) var(--border-style) var(--border-color);
}
.border-bottom-0 {
  border-bottom: 0;
}
.border-left,
.border-start {
  border-left: var(--border-width) var(--border-style) var(--border-color);
}
.border-left-0,
.border-start-0 {
  border-left: 0;
}
.border-solid {
  --border-style: solid;
}
.border-dotted {
  --border-style: dotted;
}
.border-dashed {
  --border-style: dashed;
}
.border-double {
  --border-style: double;
}
.border-primary {
  --border-color: var(--primary);
}
.border-black {
  --border-color: var(--black);
}
.border-white {
  --border-color: var(--white);
}
.border-gray {
  --border-color: var(--gray);
}

.border-theme-1 {
  --border-color: var(--theme-1);
}
.border-theme-1-400 {
  --border-color: var(--theme-1-400);
}
.border-theme-2 {
  --border-color: var(--theme-2);
}
.border-theme-3 {
  --border-color: var(--theme-3);
}
.border-theme-4 {
  --border-color: var(--theme-4);
}
.border-theme-5 {
  --border-color: var(--theme-5);
}

.border-1 {
  border-width: 1px;
}
.border-2 {
  border-width: 2px;
}
.border-3 {
  border-width: 3px;
}
.border-4 {
  border-width: 4px;
}
.border-5 {
  border-width: 5px;
}
@media (width >= 576px) {
  .border-sm {
    border: var(--border-width) var(--border-style) var(--border-color);
  }
  .border-sm-0 {
    border: 0;
  }
  .border-sm-top {
    border-top: var(--border-width) var(--border-style) var(--border-color);
  }
  .border-sm-top-0 {
    border-top: 0;
  }
  .border-sm-right,
  .border-sm-end {
    border-right: var(--border-width) var(--border-style) var(--border-color);
  }
  .border-sm-right-0,
  .border-sm-end-0 {
    border-right: 0;
  }
  .border-sm-bottom {
    border-bottom: var(--border-width) var(--border-style) var(--border-color);
  }
  .border-sm-bottom-0 {
    border-bottom: 0;
  }
  .border-sm-left,
  .border-sm-start {
    border-left: var(--border-width) var(--border-style) var(--border-color);
  }
  .border-sm-left-0,
  .border-sm-start-0 {
    border-left: 0;
  }
}
@media (width >= 768px) {
  .border-md {
    border: var(--border-width) var(--border-style) var(--border-color);
  }
  .border-md-0 {
    border: 0;
  }
  .border-md-top {
    border-top: var(--border-width) var(--border-style) var(--border-color);
  }
  .border-md-top-0 {
    border-top: 0;
  }
  .border-md-right,
  .border-md-end {
    border-right: var(--border-width) var(--border-style) var(--border-color);
  }
  .border-md-right-0,
  .border-md-end-0 {
    border-right: 0;
  }
  .border-md-bottom {
    border-bottom: var(--border-width) var(--border-style) var(--border-color);
  }
  .border-md-bottom-0 {
    border-bottom: 0;
  }
  .border-md-left,
  .border-md-start {
    border-left: var(--border-width) var(--border-style) var(--border-color);
  }
  .border-md-left-0,
  .border-md-start-0 {
    border-left: 0;
  }
}
@media (width >= 992px) {
  .border-lg {
    border: var(--border-width) var(--border-style) var(--border-color);
  }
  .border-lg-0 {
    border: 0;
  }
  .border-lg-top {
    border-top: var(--border-width) var(--border-style) var(--border-color);
  }
  .border-lg-top-0 {
    border-top: 0;
  }
  .border-lg-right,
  .border-lg-end {
    border-right: var(--border-width) var(--border-style) var(--border-color);
  }
  .border-lg-right-0,
  .border-lg-end-0 {
    border-right: 0;
  }
  .border-lg-bottom {
    border-bottom: var(--border-width) var(--border-style) var(--border-color);
  }
  .border-lg-bottom-0 {
    border-bottom: 0;
  }
  .border-lg-left,
  .border-lg-start {
    border-left: var(--border-width) var(--border-style) var(--border-color);
  }
  .border-lg-left-0,
  .border-lg-start-0 {
    border-left: 0;
  }
}
@media (width >= 1200px) {
  .border-xl {
    border: var(--border-width) var(--border-style) var(--border-color);
  }
  .border-xl-0 {
    border: 0;
  }
  .border-xl-top {
    border-top: var(--border-width) var(--border-style) var(--border-color);
  }
  .border-xl-top-0 {
    border-top: 0;
  }
  .border-xl-right,
  .border-xl-end {
    border-right: var(--border-width) var(--border-style) var(--border-color);
  }
  .border-xl-right-0,
  .border-xl-end-0 {
    border-right: 0;
  }
  .border-xl-bottom {
    border-bottom: var(--border-width) var(--border-style) var(--border-color);
  }
  .border-xl-bottom-0 {
    border-bottom: 0;
  }
  .border-xl-left,
  .border-xl-start {
    border-left: var(--border-width) var(--border-style) var(--border-color);
  }
  .border-xl-left-0,
  .border-xl-start-0 {
    border-left: 0;
  }
}
@media (width >= 1400px) {
  .border-2xl {
    border: var(--border-width) var(--border-style) var(--border-color);
  }
  .border-2xl-0 {
    border: 0;
  }
  .border-2xl-top {
    border-top: var(--border-width) var(--border-style) var(--border-color);
  }
  .border-2xl-top-0 {
    border-top: 0;
  }
  .border-2xl-right,
  .border-2xl-end {
    border-right: var(--border-width) var(--border-style) var(--border-color);
  }
  .border-2xl-right-0,
  .border-2xl-end-0 {
    border-right: 0;
  }
  .border-2xl-bottom {
    border-bottom: var(--border-width) var(--border-style) var(--border-color);
  }
  .border-2xl-bottom-0 {
    border-bottom: 0;
  }
  .border-2xl-left,
  .border-2xl-start {
    border-left: var(--border-width) var(--border-style) var(--border-color);
  }
  .border-2xl-left-0,
  .border-2xl-start-0 {
    border-left: 0;
  }
}

.rounded-none,
.rounded-0 {
  border-radius: 0;
}
.rounded-sm {
  border-radius: 0.125rem;
}
.rounded {
  border-radius: 0.25rem;
}
.rounded-md {
  border-radius: 0.375rem;
}
.rounded-lg {
  border-radius: 0.5rem;
}
.rounded-xl {
  border-radius: 0.75rem;
}
.rounded-2xl {
  border-radius: 1rem;
}
.rounded-3xl {
  border-radius: 1.5rem;
}
.rounded-4xl {
  border-radius: 3rem;
}
.rounded-pill {
  border-radius: 50rem;
}
.rounded-circle {
  border-radius: 50%;
}



/* ## Display property
======================================== */

.d-inline {
  display: inline;
}
.d-inline-block {
  display: inline-block;
}
.d-block {
  display: block;
}
.d-grid {
  display: grid;
}
.d-inline-grid {
  display: inline-grid;
}
.d-table {
  display: table;
}
.d-table-row {
  display: table-row;
}
.d-table-cell {
  display: table-cell;
}
.d-flex {
  display: flex;
}
.d-inline-flex {
  display: inline-flex;
}
.d-none {
  display: none;
}


/* ## Display switch
======================================== */

@media (width >= 576px) {
  .d-lt-sm {
    display: none;
  }
}
@media (width >= 768px) {
  .d-lt-md {
    display: none;
  }
}
@media (width >= 992px) {
  .d-lt-lg {
    display: none;
  }
}
@media (width >= 1200px) {
  .d-lt-xl {
    display: none;
  }
}
@media (width >= 1400px) {
  .d-lt-2xl {
    display: none;
  }
}

@media (width < 576px) {
  .d-gt-sm {
    display: none;
  }
}
@media (width < 768px) {
  .d-gt-md {
    display: none;
  }
}
@media (width < 992px) {
  .d-gt-lg {
    display: none;
  }
}
@media (width < 1200px) {
  .d-gt-xl {
    display: none;
  }
}
@media (width < 1400px) {
  .d-gt-2xl {
    display: none;
  }
}




/* ## Flexbox & Grid (Bootstrap & Tailwind CSS)
======================================== */

/* ### Flex
---------------------------------------- */

.flex-1 {
  flex: 1 1 0%;
}
.flex-fill {
  flex: 1 1 auto;
}
.flex-row {
  flex-direction: row;
}
.flex-column {
  flex-direction: column;
}
.flex-row-reverse {
  flex-direction: row-reverse;
}
.flex-column-reverse {
  flex-direction: column-reverse;
}
.flex-grow-0 {
  flex-grow: 0;
}
.flex-grow-1 {
  flex-grow: 1;
}
.flex-shrink-0 {
  flex-shrink: 0;
}
.flex-shrink-1 {
  flex-shrink: 1;
}
.flex-wrap {
  flex-wrap: wrap;
}
.flex-nowrap {
  flex-wrap: nowrap;
}
.flex-wrap-reverse {
  flex-wrap: wrap-reverse;
}
@media (width >= 576px) {
  .flex-sm-1 {
    flex: 1 1 0%;
  }
  .flex-sm-fill {
    flex: 1 1 auto;
  }
  .flex-sm-row {
    flex-direction: row;
  }
  .flex-sm-column {
    flex-direction: column;
  }
  .flex-sm-row-reverse {
    flex-direction: row-reverse;
  }
  .flex-sm-column-reverse {
    flex-direction: column-reverse;
  }
  .flex-sm-wrap {
    flex-wrap: wrap;
  }
  .flex-sm-nowrap {
    flex-wrap: nowrap;
  }
}
@media (width >= 768px) {
  .flex-md-1 {
    flex: 1 1 0%;
  }
  .flex-md-fill {
    flex: 1 1 auto;
  }
  .flex-md-row {
    flex-direction: row;
  }
  .flex-md-column {
    flex-direction: column;
  }
  .flex-md-row-reverse {
    flex-direction: row-reverse;
  }
  .flex-md-column-reverse {
    flex-direction: column-reverse;
  }
  .flex-md-wrap {
    flex-wrap: wrap;
  }
  .flex-md-nowrap {
    flex-wrap: nowrap;
  }
}
@media (width >= 992px) {
  .flex-lg-1 {
    flex: 1 1 0%;
  }
  .flex-lg-fill {
    flex: 1 1 auto;
  }
  .flex-lg-row {
    flex-direction: row;
  }
  .flex-lg-column {
    flex-direction: column;
  }
  .flex-lg-row-reverse {
    flex-direction: row-reverse;
  }
  .flex-lg-column-reverse {
    flex-direction: column-reverse;
  }
  .flex-lg-wrap {
    flex-wrap: wrap;
  }
  .flex-lg-nowrap {
    flex-wrap: nowrap;
  }
}
@media (width >= 1200px) {
  .flex-xl-1 {
    flex: 1 1 0%;
  }
  .flex-xl-fill {
    flex: 1 1 auto;
  }
  .flex-xl-row {
    flex-direction: row;
  }
  .flex-xl-column {
    flex-direction: column;
  }
  .flex-xl-row-reverse {
    flex-direction: row-reverse;
  }
  .flex-xl-column-reverse {
    flex-direction: column-reverse;
  }
  .flex-xl-wrap {
    flex-wrap: wrap;
  }
  .flex-xl-nowrap {
    flex-wrap: nowrap;
  }
}
@media (width >= 1400px) {
  .flex-2xl-1 {
    flex: 1 1 0%;
  }
  .flex-2xl-fill {
    flex: 1 1 auto;
  }
  .flex-2xl-row {
    flex-direction: row;
  }
  .flex-2xl-column {
    flex-direction: column;
  }
  .flex-2xl-row-reverse {
    flex-direction: row-reverse;
  }
  .flex-2xl-column-reverse {
    flex-direction: column-reverse;
  }
  .flex-2xl-shrink-0 {
    flex-shrink: 0;
  }
  .flex-2xl-shrink-1 {
    flex-shrink: 1;
  }
  .flex-2xl-wrap {
    flex-wrap: wrap;
  }
  .flex-2xl-nowrap {
    flex-wrap: nowrap;
  }
}


/* ### Order
---------------------------------------- */

.order-first {
  order: -1;
}
.order-0 {
  order: 0;
}
.order-1 {
  order: 1;
}
.order-2 {
  order: 2;
}
.order-3 {
  order: 3;
}
.order-4 {
  order: 4;
}
.order-5 {
  order: 5;
}
@media (width >= 576px) {
  .order-sm-first {
    order: -1;
  }
}
@media (width >= 768px) {
  .order-md-first {
    order: -1;
  }
}
@media (width >= 992px) {
  .order-lg-first {
    order: -1;
  }
}
@media (width >= 1200px) {
  .order-xl-first {
    order: -1;
  }
}
@media (width >= 1400px) {
  .order-2xl-first {
    order: -1;
  }
}


/* ### Grid Template Columns
---------------------------------------- */

.grid-cols-1 {
  grid-template-columns: repeat(1, minmax(0, 1fr));
}
.grid-cols-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.grid-cols-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.grid-cols-4 {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.grid-cols-5 {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}
.grid-cols-6 {
  grid-template-columns: repeat(6, minmax(0, 1fr));
}
.grid-cols-none {
  grid-template-columns: none;
}
.grid-cols-subgrid {
  grid-template-columns: subgrid;
}
@media (width >= 576px) {
  .grid-cols-sm-1 {
    grid-template-columns: repeat(1, minmax(0, 1fr));
  }
  .grid-cols-sm-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .grid-cols-sm-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .grid-cols-sm-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .grid-cols-sm-5 {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }
  .grid-cols-sm-6 {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }
  .grid-cols-sm-none {
    grid-template-columns: none;
  }
  .grid-cols-sm-subgrid {
    grid-template-columns: subgrid;
  }
}
@media (width >= 768px) {
  .grid-cols-md-1 {
    grid-template-columns: repeat(1, minmax(0, 1fr));
  }
  .grid-cols-md-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .grid-cols-md-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .grid-cols-md-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .grid-cols-md-5 {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }
  .grid-cols-md-6 {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }
  .grid-cols-md-none {
    grid-template-columns: none;
  }
  .grid-cols-md-subgrid {
    grid-template-columns: subgrid;
  }
}
@media (width >= 992px) {
  .grid-cols-lg-1 {
    grid-template-columns: repeat(1, minmax(0, 1fr));
  }
  .grid-cols-lg-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .grid-cols-lg-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .grid-cols-lg-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .grid-cols-lg-5 {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }
  .grid-cols-lg-6 {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }
  .grid-cols-lg-none {
    grid-template-columns: none;
  }
  .grid-cols-lg-subgrid {
    grid-template-columns: subgrid;
  }
}
@media (width >= 1200px) {
  .grid-cols-xl-1 {
    grid-template-columns: repeat(1, minmax(0, 1fr));
  }
  .grid-cols-xl-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .grid-cols-xl-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .grid-cols-xl-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .grid-cols-xl-5 {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }
  .grid-cols-xl-6 {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }
  .grid-cols-xl-none {
    grid-template-columns: none;
  }
  .grid-cols-xl-subgrid {
    grid-template-columns: subgrid;
  }
}
@media (width >= 1400px) {
  .grid-cols-2xl-1 {
    grid-template-columns: repeat(1, minmax(0, 1fr));
  }
  .grid-cols-2xl-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .grid-cols-2xl-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .grid-cols-2xl-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .grid-cols-2xl-5 {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }
  .grid-cols-2xl-6 {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }
  .grid-cols-2xl-none {
    grid-template-columns: none;
  }
  .grid-cols-2xl-subgrid {
    grid-template-columns: subgrid;
  }
}


/* ### Grid Column Start / End
---------------------------------------- */

.col-span-1 {
  grid-column: span 1;
}
.col-span-2 {
  grid-column: span 2;
}
.col-span-3 {
  grid-column: span 3;
}
.col-span-4 {
  grid-column: span 4;
}
.col-span-5 {
  grid-column: span 5;
}
.col-span-6 {
  grid-column: span 6;
}
.col-span-full {
  grid-column: 1 / -1;
}
.col-start-1 {
  grid-column-start: 1;
}
.col-start-2 {
  grid-column-start: 2;
}
.col-start-3 {
  grid-column-start: 3;
}
.col-start-4 {
  grid-column-start: 4;
}
.col-start-5 {
  grid-column-start: 5;
}
.col-start-6 {
  grid-column-start: 6;
}
.col-start-m1 {
  grid-column-start: -1;
}
.col-end-1 {
  grid-column-end: 1;
}
.col-end-2 {
  grid-column-end: 2;
}
.col-end-3 {
  grid-column-end: 3;
}
.col-end-4 {
  grid-column-end: 4;
}
.col-end-5 {
  grid-column-end: 5;
}
.col-end-6 {
  grid-column-end: 6;
}
.col-end-m1 {
  grid-column-end: -1;
}
.col-auto {
  grid-column: auto;
}


/* ### Grid Template Rows
---------------------------------------- */

.grid-rows-1 {
  grid-template-rows: repeat(1, minmax(0, 1fr));
}
.grid-rows-2 {
  grid-template-rows: repeat(2, minmax(0, 1fr));
}
.grid-rows-3 {
  grid-template-rows: repeat(3, minmax(0, 1fr));
}
.grid-rows-4 {
  grid-template-rows: repeat(4, minmax(0, 1fr));
}
.grid-rows-5 {
  grid-template-rows: repeat(5, minmax(0, 1fr));
}
.grid-rows-6 {
  grid-template-rows: repeat(6, minmax(0, 1fr));
}
.grid-rows-none {
  grid-template-rows: none;
}
.grid-rows-subgrid {
  grid-template-rows: subgrid;
}


/* ### Grid Row Start / End
---------------------------------------- */

.row-span-1 {
  grid-row: span 1;
}
.row-span-2 {
  grid-row: span 2;
}
.row-span-3 {
  grid-row: span 3;
}
.row-span-4 {
  grid-row: span 4;
}
.row-span-5 {
  grid-row: span 5;
}
.row-span-6 {
  grid-row: span 6;
}
.row-span-full {
  grid-row: 1 / -1;
}
.row-start-1 {
  grid-row-start: 1;
}
.row-start-2 {
  grid-row-start: 2;
}
.row-start-3 {
  grid-row-start: 3;
}
.row-start-4 {
  grid-row-start: 4;
}
.row-start-5 {
  grid-row-start: 5;
}
.row-start-6 {
  grid-row-start: 6;
}
.row-start-m1 {
  grid-row-start: -1;
}
.row-end-1 {
  grid-row-end: 1;
}
.row-end-2 {
  grid-row-end: 2;
}
.row-end-3 {
  grid-row-end: 3;
}
.row-end-4 {
  grid-row-end: 4;
}
.row-end-5 {
  grid-row-end: 5;
}
.row-end-6 {
  grid-row-end: 6;
}
.row-end-m1 {
  grid-row-end: -1;
}
.row-auto {
  grid-row: auto;
}


/* ### Grid Auto Flow
---------------------------------------- */

.grid-flow-row {
  grid-auto-flow: row;
}
.grid-flow-col {
  grid-auto-flow: column;
}
.grid-flow-dense {
  grid-auto-flow: dense;
}
.grid-flow-row-dense {
  grid-auto-flow: row dense;
}
.grid-flow-col-dense {
  grid-auto-flow: column dense;
}


/* ### Grid Auto Columns
---------------------------------------- */

.auto-cols-auto {
  grid-auto-columns: auto;
}
.auto-cols-min {
  grid-auto-columns: min-content;
}
.auto-cols-max {
  grid-auto-columns: max-content;
}
.auto-cols-fr {
  grid-auto-columns: minmax(0, 1fr);
}


/* ### Grid Auto Rows
---------------------------------------- */

.auto-rows-auto {
  grid-auto-rows: auto;
}
.auto-rows-min {
  grid-auto-rows: min-content;
}
.auto-rows-max {
  grid-auto-rows: max-content;
}
.auto-rows-fr {
  grid-auto-rows: minmax(0, 1fr);
}


/* ### Gap
---------------------------------------- */

.gap-0 {
  gap: 0;
}
.gap-1 {
  gap: 0.25rem;
}
.gap-2 {
  gap: 0.5rem;
}
.gap-3 {
  gap: var(--space-g-3);
}
.gap-4 {
  gap: var(--space-g-4);
}
.gap-5 {
  gap: var(--space-g-5);
}
.gap-6 {
  gap: var(--space-g-6);
}
.gap-x-0 {
  column-gap: 0;
}
.gap-x-1 {
  column-gap: 0.25rem;
}
.gap-x-2 {
  column-gap: 0.5rem;
}
.gap-x-3 {
  column-gap: var(--space-g-3);
}
.gap-x-4 {
  column-gap: var(--space-g-4);
}
.gap-x-5 {
  column-gap: var(--space-g-5);
}
.gap-x-6 {
  column-gap: var(--space-g-6);
}
.gap-y-0 {
  row-gap: 0;
}
.gap-y-1 {
  row-gap: 0.25rem;
}
.gap-y-2 {
  row-gap: 0.5rem;
}
.gap-y-3 {
  row-gap: var(--space-g-3);
}
.gap-y-4 {
  row-gap: var(--space-g-4);
}
.gap-y-5 {
  row-gap: var(--space-g-5);
}
.gap-y-6 {
  row-gap: var(--space-g-6);
}


/* ### Justify content
---------------------------------------- */

.justify-content-start {
  justify-content: flex-start;
}
.justify-content-end {
  justify-content: flex-end;
}
.justify-content-center {
  justify-content: center;
}
.justify-content-between {
  justify-content: space-between;
}
.justify-content-around {
  justify-content: space-around;
}
.justify-content-evenly {
  justify-content: space-evenly;
}
@media (width >= 576px) {
  .justify-content-sm-start {
    justify-content: flex-start;
  }
  .justify-content-sm-end {
    justify-content: flex-end;
  }
  .justify-content-sm-center {
    justify-content: center;
  }
  .justify-content-sm-between {
    justify-content: space-between;
  }
  .justify-content-sm-around {
    justify-content: space-around;
  }
  .justify-content-sm-evenly {
    justify-content: space-evenly;
  }
}
@media (width >= 768px) {
  .justify-content-md-start {
    justify-content: flex-start;
  }
  .justify-content-md-end {
    justify-content: flex-end;
  }
  .justify-content-md-center {
    justify-content: center;
  }
  .justify-content-md-between {
    justify-content: space-between;
  }
  .justify-content-md-around {
    justify-content: space-around;
  }
  .justify-content-md-evenly {
    justify-content: space-evenly;
  }
}
@media (width >= 992px) {
  .justify-content-lg-start {
    justify-content: flex-start;
  }
  .justify-content-lg-end {
    justify-content: flex-end;
  }
  .justify-content-lg-center {
    justify-content: center;
  }
  .justify-content-lg-between {
    justify-content: space-between;
  }
  .justify-content-lg-around {
    justify-content: space-around;
  }
  .justify-content-lg-evenly {
    justify-content: space-evenly;
  }
}
@media (width >= 1200px) {
  .justify-content-xl-start {
    justify-content: flex-start;
  }
  .justify-content-xl-end {
    justify-content: flex-end;
  }
  .justify-content-xl-center {
    justify-content: center;
  }
  .justify-content-xl-between {
    justify-content: space-between;
  }
  .justify-content-xl-around {
    justify-content: space-around;
  }
  .justify-content-xl-evenly {
    justify-content: space-evenly;
  }
}
@media (width >= 1400px) {
  .justify-content-2xl-start {
    justify-content: flex-start;
  }
  .justify-content-2xl-end {
    justify-content: flex-end;
  }
  .justify-content-2xl-center {
    justify-content: center;
  }
  .justify-content-2xl-between {
    justify-content: space-between;
  }
  .justify-content-2xl-around {
    justify-content: space-around;
  }
  .justify-content-2xl-evenly {
    justify-content: space-evenly;
  }
}


/* ### Justify items
---------------------------------------- */

.justify-items-start {
  justify-items: start;
}
.justify-items-end {
  justify-items: end;
}
.justify-items-center {
  justify-items: center;
}
.justify-items-stretch {
  justify-items: stretch;
}


/* ### Justify self
---------------------------------------- */

.justify-self-auto {
  justify-self: auto;
}
.justify-self-start {
  justify-self: start;
}
.justify-self-end {
  justify-self: end;
}
.justify-self-center {
  justify-self: center;
}
.justify-self-stretch {
  justify-self: stretch;
}


/* ### Align content
---------------------------------------- */

.align-content-start {
  align-content: flex-start;
}
.align-content-end {
  align-content: flex-end;
}
.align-content-center {
  align-content: center;
}
.align-content-between {
  align-content: space-between;
}
.align-content-around {
  align-content: space-around;
}
.align-content-stretch {
  align-content: stretch;
}
@media (width >= 576px) {
  .align-content-sm-start {
    align-content: flex-start;
  }
  .align-content-sm-end {
    align-content: flex-end;
  }
  .align-content-sm-center {
    align-content: center;
  }
  .align-content-sm-between {
    align-content: space-between;
  }
  .align-content-sm-around {
    align-content: space-around;
  }
  .align-content-sm-stretch {
    align-content: stretch;
  }
}
@media (width >= 768px) {
  .align-content-md-start {
    align-content: flex-start;
  }
  .align-content-md-end {
    align-content: flex-end;
  }
  .align-content-md-center {
    align-content: center;
  }
  .align-content-md-between {
    align-content: space-between;
  }
  .align-content-md-around {
    align-content: space-around;
  }
  .align-content-md-stretch {
    align-content: stretch;
  }
}
@media (width >= 992px) {
  .align-content-lg-start {
    align-content: flex-start;
  }
  .align-content-lg-end {
    align-content: flex-end;
  }
  .align-content-lg-center {
    align-content: center;
  }
  .align-content-lg-between {
    align-content: space-between;
  }
  .align-content-lg-around {
    align-content: space-around;
  }
  .align-content-lg-stretch {
    align-content: stretch;
  }
}
@media (width >= 1200px) {
  .align-content-xl-start {
    align-content: flex-start;
  }
  .align-content-xl-end {
    align-content: flex-end;
  }
  .align-content-xl-center {
    align-content: center;
  }
  .align-content-xl-between {
    align-content: space-between;
  }
  .align-content-xl-around {
    align-content: space-around;
  }
  .align-content-xl-stretch {
    align-content: stretch;
  }
}
@media (width >= 1400px) {
  .align-content-2xl-start {
    align-content: flex-start;
  }
  .align-content-2xl-end {
    align-content: flex-end;
  }
  .align-content-2xl-center {
    align-content: center;
  }
  .align-content-2xl-between {
    align-content: space-between;
  }
  .align-content-2xl-around {
    align-content: space-around;
  }
  .align-content-2xl-stretch {
    align-content: stretch;
  }
}


/* ### Align items
---------------------------------------- */

.align-items-start {
  align-items: flex-start;
}
.align-items-end {
  align-items: flex-end;
}
.align-items-center {
  align-items: center;
}
.align-items-baseline {
  align-items: baseline;
}
.align-items-stretch {
  align-items: stretch;
}
@media (width >= 576px) {
  .align-items-sm-start {
    align-items: flex-start;
  }
  .align-items-sm-end {
    align-items: flex-end;
  }
  .align-items-sm-center {
    align-items: center;
  }
  .align-items-sm-baseline {
    align-items: baseline;
  }
  .align-items-sm-stretch {
    align-items: stretch;
  }
}
@media (width >= 768px) {
  .align-items-md-start {
    align-items: flex-start;
  }
  .align-items-md-end {
    align-items: flex-end;
  }
  .align-items-md-center {
    align-items: center;
  }
  .align-items-md-baseline {
    align-items: baseline;
  }
  .align-items-md-stretch {
    align-items: stretch;
  }
}
@media (width >= 992px) {
  .align-items-lg-start {
    align-items: flex-start;
  }
  .align-items-lg-end {
    align-items: flex-end;
  }
  .align-items-lg-center {
    align-items: center;
  }
  .align-items-lg-baseline {
    align-items: baseline;
  }
  .align-items-lg-stretch {
    align-items: stretch;
  }
}
@media (width >= 1200px) {
  .align-items-xl-start {
    align-items: flex-start;
  }
  .align-items-xl-end {
    align-items: flex-end;
  }
  .align-items-xl-center {
    align-items: center;
  }
  .align-items-xl-baseline {
    align-items: baseline;
  }
  .align-items-xl-stretch {
    align-items: stretch;
  }
}
@media (width >= 1400px) {
  .align-items-2xl-start {
    align-items: flex-start;
  }
  .align-items-2xl-end {
    align-items: flex-end;
  }
  .align-items-2xl-center {
    align-items: center;
  }
  .align-items-2xl-baseline {
    align-items: baseline;
  }
  .align-items-2xl-stretch {
    align-items: stretch;
  }
}


/* ### Align self
---------------------------------------- */

.align-self-auto {
  align-self: auto;
}
.align-self-start {
  align-self: flex-start;
}
.align-self-end {
  align-self: flex-end;
}
.align-self-center {
  align-self: center;
}
.align-self-baseline {
  align-self: baseline;
}
.align-self-stretch {
  align-self: stretch;
}
@media (width >= 576px) {
  .align-self-sm-auto {
    align-self: auto;
  }
  .align-self-sm-start {
    align-self: flex-start;
  }
  .align-self-sm-end {
    align-self: flex-end;
  }
  .align-self-sm-center {
    align-self: center;
  }
  .align-self-sm-baseline {
    align-self: baseline;
  }
  .align-self-sm-stretch {
    align-self: stretch;
  }
}
@media (width >= 768px) {
  .align-self-md-auto {
    align-self: auto;
  }
  .align-self-md-start {
    align-self: flex-start;
  }
  .align-self-md-end {
    align-self: flex-end;
  }
  .align-self-md-center {
    align-self: center;
  }
  .align-self-md-baseline {
    align-self: baseline;
  }
  .align-self-md-stretch {
    align-self: stretch;
  }
}
@media (width >= 992px) {
  .align-self-lg-auto {
    align-self: auto;
  }
  .align-self-lg-start {
    align-self: flex-start;
  }
  .align-self-lg-end {
    align-self: flex-end;
  }
  .align-self-lg-center {
    align-self: center;
  }
  .align-self-lg-baseline {
    align-self: baseline;
  }
  .align-self-lg-stretch {
    align-self: stretch;
  }
}
@media (width >= 1200px) {
  .align-self-xl-auto {
    align-self: auto;
  }
  .align-self-xl-start {
    align-self: flex-start;
  }
  .align-self-xl-end {
    align-self: flex-end;
  }
  .align-self-xl-center {
    align-self: center;
  }
  .align-self-xl-baseline {
    align-self: baseline;
  }
  .align-self-xl-stretch {
    align-self: stretch;
  }
}
@media (width >= 1400px) {
  .align-self-2xl-auto {
    align-self: auto;
  }
  .align-self-2xl-start {
    align-self: flex-start;
  }
  .align-self-2xl-end {
    align-self: flex-end;
  }
  .align-self-2xl-center {
    align-self: center;
  }
  .align-self-2xl-baseline {
    align-self: baseline;
  }
  .align-self-2xl-stretch {
    align-self: stretch;
  }
}


/* ### Place content / items / self
---------------------------------------- */

.place-content-center {
  place-content: center;
}
.place-items-center {
  place-items: center;
}
.place-self-center {
  place-self: center;
}


/* ## Interactions
======================================== */

.user-select-all {
  -webkit-user-select: all;
  user-select: all;
}
.user-select-auto {
  -webkit-user-select: auto;
  user-select: auto;
}
.user-select-none {
  -webkit-user-select: none;
  user-select: none;
}

.pe-none {
  pointer-events: none;
}
.pe-auto {
  pointer-events: auto;
}



/* ## Link
======================================== */

/* ### Link opacity
---------------------------------------- */

/* ### Link underlines
---------------------------------------- */
/* Underline color */

/* Underline offset */
.link-offset-1 {
  text-underline-offset: 0.125em;
}
.link-offset-1-hover:hover {
  text-underline-offset: 0.125em;
}
.link-offset-2 {
  text-underline-offset: 0.25em;
}
.link-offset-2-hover:hover {
  text-underline-offset: 0.25em;
}
.link-offset-3 {
  text-underline-offset: 0.375em;
}
.link-offset-3-hover:hover {
  text-underline-offset: 0.375em;
}
.link-offset-4 {
  text-underline-offset: 0.5em;
}
.link-offset-4-hover:hover {
  text-underline-offset: 0.5em;
}


/* ### Colored links
---------------------------------------- */

.link-body-color,
.link-body-color:focus {
  color: var(--body-color);
}
@media (hover: hover) {
  .link-body-color:hover {
    color: var(--body-color);
  }
}



/* ## Object fit
======================================== */

.object-fit-contain {
  object-fit: contain;
}
.object-fit-cover {
  object-fit: cover;
}
.object-fit-fill {
  object-fit: fill;
}
.object-fit-scale {
  object-fit: scale-down;
}
.object-fit-none {
  object-fit: none;
}

.object-fit-bottom {
  object-position: bottom;
}
.object-fit-center {
  object-position: center;
}
.object-fit-left {
  object-position: left;
}
.object-fit-left-bottom {
  object-position: left bottom;
}
.object-fit-left-top {
  object-position: left top;
}
.object-fit-right {
  object-position: right;
}
.object-fit-right-bottom {
  object-position: right bottom;
}
.object-fit-right-top {
  object-position: right top;
}
.object-fit-top {
  object-position: top;
}



/* ## Opacity
======================================== */

.opacity-0 {
  opacity: 0;
}
.opacity-25 {
  opacity: 0.25;
}
.opacity-50 {
  opacity: 0.5;
}
.opacity-75 {
  opacity: 0.75;
}
.opacity-100 {
  opacity: 1;
}



/* ## Overflow
======================================== */

.overflow-auto {
  overflow: auto;
}
.overflow-hidden {
  overflow: hidden;
}
.overflow-visible {
  overflow: visible;
}
.overflow-scroll {
  overflow: scroll;
}
.overflow-x-auto {
  overflow-x: auto;
}
.overflow-x-hidden {
  overflow-x: hidden;
}
.overflow-x-visible {
  overflow-x: visible;
}
.overflow-x-scroll {
  overflow-x: scroll;
}
.overflow-y-auto {
  overflow-y: auto;
}
.overflow-y-hidden {
  overflow-y: hidden;
}
.overflow-y-visible {
  overflow-y: visible;
}
.overflow-y-scroll {
  overflow-y: scroll;
}



/* ## Position
======================================== */

.position-static {
  position: static;
}
.position-relative {
  position: relative;
}
.position-absolute {
  position: absolute;
}
.position-fixed {
  position: fixed;
}
.position-sticky {
  position: -webkit-sticky;
  position: sticky;
}

.inset-0 {
  inset: 0;
}

.top-0 {
  top: 0;
}
.top-50 {
  top: 50%;
}
.top-100 {
  top: 100%;
}
.bottom-0 {
  bottom: 0;
}
.bottom-50 {
  bottom: 50%;
}
.bottom-100 {
  bottom: 100%;
}
.start-0 {
  left: 0;
}
.start-50 {
  left: 50%;
}
.start-100 {
  left: 100%;
}
.end-0 {
  right: 0;
}
.end-50 {
  right: 50%;
}
.end-100 {
  right: 100%;
}
.translate-middle {
  transform: translate(-50%, -50%);
}
.translate-middle-x {
  transform: translateX(-50%);
}
.translate-middle-y {
  transform: translateY(-50%);
}

.fixed-top {
  position: fixed;
  top: 0;
  right: 0;
  left: 0;
  z-index: 1030;
}
.fixed-bottom {
  position: fixed;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1030;
}
.sticky-top {
  position: -webkit-sticky;
  position: sticky;
  top: 0;
  z-index: 1020;
}
.sticky-bottom {
  position: -webkit-sticky;
  position: sticky;
  bottom: 0;
  z-index: 1020;
}



/* ## Box shadow
======================================== */

.shadow-none {
  box-shadow: none;
}
.shadow-sm {
  box-shadow: 0 0.125rem 0.25rem rgb(0 0 0 / 0.25);
}
.shadow-md {
  box-shadow: 0 0.25rem 0.5rem rgb(0 0 0 / 0.2);
}
.shadow-lg {
  box-shadow: 0 0.5rem 1rem rgb(0 0 0 / 0.15);
}


/* ## Text shadow (Tailwind CSS)
======================================== */

.text-shadow-none {
  text-shadow: none;
}
.text-shadow-sm {
  text-shadow:
    0px 1px 0px rgb(0 0 0 / 0.075),
    0px 1px 1px rgb(0 0 0 / 0.075),
    0px 2px 2px rgb(0 0 0 / 0.075);
}
.text-shadow-md {
  text-shadow:
    0px 1px 1px rgb(0 0 0 / 0.1),
    0px 1px 2px rgb(0 0 0 / 0.1),
    0px 2px 4px rgb(0 0 0 / 0.1);
}
.text-shadow-lg {
  text-shadow:
    0px 1px 2px rgb(0 0 0 / 0.1),
    0px 3px 2px rgb(0 0 0 / 0.1),
    0px 4px 8px rgb(0 0 0 / 0.1);
}


/* ## Sizing
======================================== */

.w-25 {
  width: 25%;
}
.w-50 {
  width: 50%;
}
.w-75 {
  width: 75%;
}
.w-100 {
  width: 100%;
}
.w-auto {
  width: auto;
}
.mw-100 {
  max-width: 100%;
}
.vw-100 {
  width: 100vw;
}
.min-vw-100 {
  min-width: 100vw;
}
.h-25 {
  height: 25%;
}
.h-50 {
  height: 50%;
}
.h-75 {
  height: 75%;
}
.h-100 {
  height: 100%;
}
.h-auto {
  height: auto;
}
.mh-100 {
  max-height: 100%;
}
.vh-100 {
  height: 100vh;
}
.min-vh-100 {
  min-height: 100vh;
}
.w-min {
  width: min-content;
}
.w-max {
  width: max-content;
}
.w-fit {
  width: fit-content;
}
@media (width >= 576px) {
  .w-sm-100 {
    width: 100%;
  }
  .w-sm-auto {
    width: auto;
  }
  .mw-sm-100 {
    max-width: 100%;
  }
  .vw-sm-100 {
    width: 100vw;
  }
  .min-vw-sm-100 {
    min-width: 100vw;
  }
  .w-sm-min {
    width: min-content;
  }
  .w-sm-max {
    width: max-content;
  }
  .w-sm-fit {
    width: fit-content;
  }
}
@media (width >= 768px) {
  .w-md-100 {
    width: 100%;
  }
  .w-md-auto {
    width: auto;
  }
  .mw-md-100 {
    max-width: 100%;
  }
  .vw-md-100 {
    width: 100vw;
  }
  .min-vw-md-100 {
    min-width: 100vw;
  }
  .w-md-min {
    width: min-content;
  }
  .w-md-max {
    width: max-content;
  }
  .w-md-fit {
    width: fit-content;
  }
}
@media (width >= 992px) {
  .w-lg-100 {
    width: 100%;
  }
  .w-lg-auto {
    width: auto;
  }
  .mw-lg-100 {
    max-width: 100%;
  }
  .vw-lg-100 {
    width: 100vw;
  }
  .min-vw-lg-100 {
    min-width: 100vw;
  }
  .w-lg-min {
    width: min-content;
  }
  .w-lg-max {
    width: max-content;
  }
  .w-lg-fit {
    width: fit-content;
  }
}
@media (width >= 1200px) {
  .w-xl-100 {
    width: 100%;
  }
  .w-xl-auto {
    width: auto;
  }
  .mw-xl-100 {
    max-width: 100%;
  }
  .vw-xl-100 {
    width: 100vw;
  }
  .min-vw-xl-100 {
    min-width: 100vw;
  }
  .w-xl-min {
    width: min-content;
  }
  .w-xl-max {
    width: max-content;
  }
  .w-xl-fit {
    width: fit-content;
  }
}
@media (width >= 1400px) {
  .w-2xl-100 {
    width: 100%;
  }
  .w-2xl-auto {
    width: auto;
  }
  .mw-2xl-100 {
    max-width: 100%;
  }
  .vw-2xl-100 {
    width: 100vw;
  }
  .min-vw-2xl-100 {
    min-width: 100vw;
  }
  .w-2xl-min {
    width: min-content;
  }
  .w-2xl-max {
    width: max-content;
  }
  .w-2xl-fit {
    width: fit-content;
  }
}


/* ### 特殊クラスなど
---------------------------------------- */

.w-10em {
  width: 10em;
}
.w-15em {
  width: 15em;
}
.mw-4em {
  max-width: 4em;
}
.mw-6em {
  max-width: 6em;
}
.mw-10em {
  max-width: 10em;
}
.mw-15em {
  max-width: 15em;
}



/* ## Spacing
======================================== */

.m-0 {
  margin: 0;
}
.mt-0, .my-0 {
  margin-top: 0;
}
.mr-0, .mx-0 {
  margin-right: 0;
}
.mb-0, .my-0 {
  margin-bottom: 0;
}
.ml-0, .mx-0 {
  margin-left: 0;
}
.m-1 {
  margin: 0.25rem;
}
.mt-1, .my-1 {
  margin-top: 0.25rem;
}
.mr-1, .mx-1 {
  margin-right: 0.25rem;
}
.mb-1, .my-1 {
  margin-bottom: 0.25rem;
}
.ml-1, .mx-1 {
  margin-left: 0.25rem;
}
.m-2 {
  margin: 0.5rem;
}
.mt-2, .my-2 {
  margin-top: 0.5rem;
}
.mr-2, .mx-2 {
  margin-right: 0.5rem;
}
.mb-2, .my-2 {
  margin-bottom: 0.5rem;
}
.ml-2, .mx-2 {
  margin-left: 0.5rem;
}
.m-3 {
  margin: var(--space-m-3);
}
.mt-3, .my-3 {
  margin-top: var(--space-m-3);
}
.mr-3, .mx-3 {
  margin-right: var(--space-m-3);
}
.mb-3, .my-3 {
  margin-bottom: var(--space-m-3);
}
.ml-3, .mx-3 {
  margin-left: var(--space-m-3);
}
.m-4 {
  margin: var(--space-m-4);
}
.mt-4, .my-4 {
  margin-top: var(--space-m-4);
}
.mr-4, .mx-4 {
  margin-right: var(--space-m-4);
}
.mb-4, .my-4 {
  margin-bottom: var(--space-m-4);
}
.ml-4, .mx-4 {
  margin-left: var(--space-m-4);
}
.m-5 {
  margin: var(--space-m-5);
}
.mt-5, .my-5 {
  margin-top: var(--space-m-5);
}
.mr-5, .mx-5 {
  margin-right: var(--space-m-5);
}
.mb-5, .my-5 {
  margin-bottom: var(--space-m-5);
}
.ml-5, .mx-5 {
  margin-left: var(--space-m-5);
}
.m-6 {
  margin: var(--space-m-6);
}
.mt-6, .my-6 {
  margin-top: var(--space-m-6);
}
.mr-6, .mx-6 {
  margin-right: var(--space-m-6);
}
.mb-6, .my-6 {
  margin-bottom: var(--space-m-6);
}
.ml-6, .mx-6 {
  margin-left: var(--space-m-6);
}
.m-7 {
  margin: var(--space-m-7);
}
.mt-7, .my-7 {
  margin-top: var(--space-m-7);
}
.mr-7, .mx-7 {
  margin-right: var(--space-m-7);
}
.mb-7, .my-7 {
  margin-bottom: var(--space-m-7);
}
.ml-7, .mx-7 {
  margin-left: var(--space-m-7);
}
.m-8 {
  margin: var(--space-m-8);
}
.mt-8, .my-8 {
  margin-top: var(--space-m-8);
}
.mr-8, .mx-8 {
  margin-right: var(--space-m-8);
}
.mb-8, .my-8 {
  margin-bottom: var(--space-m-8);
}
.ml-8, .mx-8 {
  margin-left: var(--space-m-8);
}
.m-auto {
  margin: auto;
}
.mt-auto, .my-auto {
  margin-top: auto;
}
.mr-auto, .mx-auto {
  margin-right: auto;
}
.mb-auto, .my-auto {
  margin-bottom: auto;
}
.ml-auto, .mx-auto {
  margin-left: auto;
}
.p-0 {
  padding: 0;
}
.pt-0, .py-0 {
  padding-top: 0;
}
.pr-0, .px-0 {
  padding-right: 0;
}
.pb-0, .py-0 {
  padding-bottom: 0;
}
.pl-0, .px-0 {
  padding-left: 0;
}
.p-1 {
  padding: 0.25rem;
}
.pt-1, .py-1 {
  padding-top: 0.25rem;
}
.pr-1, .px-1 {
  padding-right: 0.25rem;
}
.pb-1, .py-1 {
  padding-bottom: 0.25rem;
}
.pl-1, .px-1 {
  padding-left: 0.25rem;
}
.p-2 {
  padding: 0.5rem;
}
.pt-2, .py-2 {
  padding-top: 0.5rem;
}
.pr-2, .px-2 {
  padding-right: 0.5rem;
}
.pb-2, .py-2 {
  padding-bottom: 0.5rem;
}
.pl-2, .px-2 {
  padding-left: 0.5rem;
}
.p-3 {
  padding: var(--space-p-3);
}
.pt-3, .py-3 {
  padding-top: var(--space-p-3);
}
.pr-3, .px-3 {
  padding-right: var(--space-p-3);
}
.pb-3, .py-3 {
  padding-bottom: var(--space-p-3);
}
.pl-3, .px-3 {
  padding-left: var(--space-p-3);
}
.p-4 {
  padding: var(--space-p-4);
}
.pt-4, .py-4 {
  padding-top: var(--space-p-4);
}
.pr-4, .px-4 {
  padding-right: var(--space-p-4);
}
.pb-4, .py-4 {
  padding-bottom: var(--space-p-4);
}
.pl-4, .px-4 {
  padding-left: var(--space-p-4);
}
.p-5 {
  padding: var(--space-p-5);
}
.pt-5, .py-5 {
  padding-top: var(--space-p-5);
}
.pr-5, .px-5 {
  padding-right: var(--space-p-5);
}
.pb-5, .py-5 {
  padding-bottom: var(--space-p-5);
}
.pl-5, .px-5 {
  padding-left: var(--space-p-5);
}
.p-6 {
  padding: var(--space-p-6);
}
.pt-6, .py-6 {
  padding-top: var(--space-p-6);
}
.pr-6, .px-6 {
  padding-right: var(--space-p-6);
}
.pb-6, .py-6 {
  padding-bottom: var(--space-p-6);
}
.pl-6, .px-6 {
  padding-left: var(--space-p-6);
}
.p-7 {
  padding: var(--space-p-7);
}
.pt-7, .py-7 {
  padding-top: var(--space-p-7);
}
.pr-7, .px-7 {
  padding-right: var(--space-p-7);
}
.pb-7, .py-7 {
  padding-bottom: var(--space-p-7);
}
.pl-7, .px-7 {
  padding-left: var(--space-p-7);
}
.p-8 {
  padding: var(--space-p-8);
}
.pt-8, .py-8 {
  padding-top: var(--space-p-8);
}
.pr-8, .px-8 {
  padding-right: var(--space-p-8);
}
.pb-8, .py-8 {
  padding-bottom: var(--space-p-8);
}
.pl-8, .px-8 {
  padding-left: var(--space-p-8);
}
@media (width >= 576px) {
  .m-sm-0 {
    margin: 0;
  }
  .mt-sm-0, .my-sm-0 {
    margin-top: 0;
  }
  .mr-sm-0, .mx-sm-0 {
    margin-right: 0;
  }
  .mb-sm-0, .my-sm-0 {
    margin-bottom: 0;
  }
  .ml-sm-0, .mx-sm-0 {
    margin-left: 0;
  }
  .m-sm-1 {
    margin: 0.25rem;
  }
  .mt-sm-1, .my-sm-1 {
    margin-top: 0.25rem;
  }
  .mr-sm-1, .mx-sm-1 {
    margin-right: 0.25rem;
  }
  .mb-sm-1, .my-sm-1 {
    margin-bottom: 0.25rem;
  }
  .ml-sm-1, .mx-sm-1 {
    margin-left: 0.25rem;
  }
  .m-sm-2 {
    margin: 0.5rem;
  }
  .mt-sm-2, .my-sm-2 {
    margin-top: 0.5rem;
  }
  .mr-sm-2, .mx-sm-2 {
    margin-right: 0.5rem;
  }
  .mb-sm-2, .my-sm-2 {
    margin-bottom: 0.5rem;
  }
  .ml-sm-2, .mx-sm-2 {
    margin-left: 0.5rem;
  }
  .m-sm-3 {
    margin: var(--space-m-3);
  }
  .mt-sm-3, .my-sm-3 {
    margin-top: var(--space-m-3);
  }
  .mr-sm-3, .mx-sm-3 {
    margin-right: var(--space-m-3);
  }
  .mb-sm-3, .my-sm-3 {
    margin-bottom: var(--space-m-3);
  }
  .ml-sm-3, .mx-sm-3 {
    margin-left: var(--space-m-3);
  }
  .m-sm-4 {
    margin: var(--space-m-4);
  }
  .mt-sm-4, .my-sm-4 {
    margin-top: var(--space-m-4);
  }
  .mr-sm-4, .mx-sm-4 {
    margin-right: var(--space-m-4);
  }
  .mb-sm-4, .my-sm-4 {
    margin-bottom: var(--space-m-4);
  }
  .ml-sm-4, .mx-sm-4 {
    margin-left: var(--space-m-4);
  }
  .m-sm-5 {
    margin: var(--space-m-5);
  }
  .mt-sm-5, .my-sm-5 {
    margin-top: var(--space-m-5);
  }
  .mr-sm-5, .mx-sm-5 {
    margin-right: var(--space-m-5);
  }
  .mb-sm-5, .my-sm-5 {
    margin-bottom: var(--space-m-5);
  }
  .ml-sm-5, .mx-sm-5 {
    margin-left: var(--space-m-5);
  }
  .m-sm-6 {
    margin: var(--space-m-6);
  }
  .mt-sm-6, .my-sm-6 {
    margin-top: var(--space-m-6);
  }
  .mr-sm-6, .mx-sm-6 {
    margin-right: var(--space-m-6);
  }
  .mb-sm-6, .my-sm-6 {
    margin-bottom: var(--space-m-6);
  }
  .ml-sm-6, .mx-sm-6 {
    margin-left: var(--space-m-6);
  }
  .m-sm-7 {
    margin: var(--space-m-7);
  }
  .mt-sm-7, .my-sm-7 {
    margin-top: var(--space-m-7);
  }
  .mr-sm-7, .mx-sm-7 {
    margin-right: var(--space-m-7);
  }
  .mb-sm-7, .my-sm-7 {
    margin-bottom: var(--space-m-7);
  }
  .ml-sm-7, .mx-sm-7 {
    margin-left: var(--space-m-7);
  }
  .m-sm-8 {
    margin: var(--space-m-8);
  }
  .mt-sm-8, .my-sm-8 {
    margin-top: var(--space-m-8);
  }
  .mr-sm-8, .mx-sm-8 {
    margin-right: var(--space-m-8);
  }
  .mb-sm-8, .my-sm-8 {
    margin-bottom: var(--space-m-8);
  }
  .ml-sm-8, .mx-sm-8 {
    margin-left: var(--space-m-8);
  }
  .m-sm-auto {
    margin: auto;
  }
  .mt-sm-auto, .my-sm-auto {
    margin-top: auto;
  }
  .mr-sm-auto, .mx-sm-auto {
    margin-right: auto;
  }
  .mb-sm-auto, .my-sm-auto {
    margin-bottom: auto;
  }
  .ml-sm-auto, .mx-sm-auto {
    margin-left: auto;
  }
  .p-sm-0 {
    padding: 0;
  }
  .pt-sm-0, .py-sm-0 {
    padding-top: 0;
  }
  .pr-sm-0, .px-sm-0 {
    padding-right: 0;
  }
  .pb-sm-0, .py-sm-0 {
    padding-bottom: 0;
  }
  .pl-sm-0, .px-sm-0 {
    padding-left: 0;
  }
  .p-sm-1 {
    padding: 0.25rem;
  }
  .pt-sm-1, .py-sm-1 {
    padding-top: 0.25rem;
  }
  .pr-sm-1, .px-sm-1 {
    padding-right: 0.25rem;
  }
  .pb-sm-1, .py-sm-1 {
    padding-bottom: 0.25rem;
  }
  .pl-sm-1, .px-sm-1 {
    padding-left: 0.25rem;
  }
  .p-sm-2 {
    padding: 0.5rem;
  }
  .pt-sm-2, .py-sm-2 {
    padding-top: 0.5rem;
  }
  .pr-sm-2, .px-sm-2 {
    padding-right: 0.5rem;
  }
  .pb-sm-2, .py-sm-2 {
    padding-bottom: 0.5rem;
  }
  .pl-sm-2, .px-sm-2 {
    padding-left: 0.5rem;
  }
  .p-sm-3 {
    padding: var(--space-p-3);
  }
  .pt-sm-3, .py-sm-3 {
    padding-top: var(--space-p-3);
  }
  .pr-sm-3, .px-sm-3 {
    padding-right: var(--space-p-3);
  }
  .pb-sm-3, .py-sm-3 {
    padding-bottom: var(--space-p-3);
  }
  .pl-sm-3, .px-sm-3 {
    padding-left: var(--space-p-3);
  }
  .p-sm-4 {
    padding: var(--space-p-4);
  }
  .pt-sm-4, .py-sm-4 {
    padding-top: var(--space-p-4);
  }
  .pr-sm-4, .px-sm-4 {
    padding-right: var(--space-p-4);
  }
  .pb-sm-4, .py-sm-4 {
    padding-bottom: var(--space-p-4);
  }
  .pl-sm-4, .px-sm-4 {
    padding-left: var(--space-p-4);
  }
  .p-sm-5 {
    padding: var(--space-p-5);
  }
  .pt-sm-5, .py-sm-5 {
    padding-top: var(--space-p-5);
  }
  .pr-sm-5, .px-sm-5 {
    padding-right: var(--space-p-5);
  }
  .pb-sm-5, .py-sm-5 {
    padding-bottom: var(--space-p-5);
  }
  .pl-sm-5, .px-sm-5 {
    padding-left: var(--space-p-5);
  }
  .p-sm-6 {
    padding: var(--space-p-6);
  }
  .pt-sm-6, .py-sm-6 {
    padding-top: var(--space-p-6);
  }
  .pr-sm-6, .px-sm-6 {
    padding-right: var(--space-p-6);
  }
  .pb-sm-6, .py-sm-6 {
    padding-bottom: var(--space-p-6);
  }
  .pl-sm-6, .px-sm-6 {
    padding-left: var(--space-p-6);
  }
  .p-sm-7 {
    padding: var(--space-p-7);
  }
  .pt-sm-7, .py-sm-7 {
    padding-top: var(--space-p-7);
  }
  .pr-sm-7, .px-sm-7 {
    padding-right: var(--space-p-7);
  }
  .pb-sm-7, .py-sm-7 {
    padding-bottom: var(--space-p-7);
  }
  .pl-sm-7, .px-sm-7 {
    padding-left: var(--space-p-7);
  }
}
@media (width >= 768px) {
  .m-md-0 {
    margin: 0;
  }
  .mt-md-0, .my-md-0 {
    margin-top: 0;
  }
  .mr-md-0, .mx-md-0 {
    margin-right: 0;
  }
  .mb-md-0, .my-md-0 {
    margin-bottom: 0;
  }
  .ml-md-0, .mx-md-0 {
    margin-left: 0;
  }
  .m-md-1 {
    margin: 0.25rem;
  }
  .mt-md-1, .my-md-1 {
    margin-top: 0.25rem;
  }
  .mr-md-1, .mx-md-1 {
    margin-right: 0.25rem;
  }
  .mb-md-1, .my-md-1 {
    margin-bottom: 0.25rem;
  }
  .ml-md-1, .mx-md-1 {
    margin-left: 0.25rem;
  }
  .m-md-2 {
    margin: 0.5rem;
  }
  .mt-md-2, .my-md-2 {
    margin-top: 0.5rem;
  }
  .mr-md-2, .mx-md-2 {
    margin-right: 0.5rem;
  }
  .mb-md-2, .my-md-2 {
    margin-bottom: 0.5rem;
  }
  .ml-md-2, .mx-md-2 {
    margin-left: 0.5rem;
  }
  .m-md-3 {
    margin: var(--space-m-3);
  }
  .mt-md-3, .my-md-3 {
    margin-top: var(--space-m-3);
  }
  .mr-md-3, .mx-md-3 {
    margin-right: var(--space-m-3);
  }
  .mb-md-3, .my-md-3 {
    margin-bottom: var(--space-m-3);
  }
  .ml-md-3, .mx-md-3 {
    margin-left: var(--space-m-3);
  }
  .m-md-4 {
    margin: var(--space-m-4);
  }
  .mt-md-4, .my-md-4 {
    margin-top: var(--space-m-4);
  }
  .mr-md-4, .mx-md-4 {
    margin-right: var(--space-m-4);
  }
  .mb-md-4, .my-md-4 {
    margin-bottom: var(--space-m-4);
  }
  .ml-md-4, .mx-md-4 {
    margin-left: var(--space-m-4);
  }
  .m-md-5 {
    margin: var(--space-m-5);
  }
  .mt-md-5, .my-md-5 {
    margin-top: var(--space-m-5);
  }
  .mr-md-5, .mx-md-5 {
    margin-right: var(--space-m-5);
  }
  .mb-md-5, .my-md-5 {
    margin-bottom: var(--space-m-5);
  }
  .ml-md-5, .mx-md-5 {
    margin-left: var(--space-m-5);
  }
  .m-md-6 {
    margin: var(--space-m-6);
  }
  .mt-md-6, .my-md-6 {
    margin-top: var(--space-m-6);
  }
  .mr-md-6, .mx-md-6 {
    margin-right: var(--space-m-6);
  }
  .mb-md-6, .my-md-6 {
    margin-bottom: var(--space-m-6);
  }
  .ml-md-6, .mx-md-6 {
    margin-left: var(--space-m-6);
  }
  .m-md-7 {
    margin: var(--space-m-7);
  }
  .mt-md-7, .my-md-7 {
    margin-top: var(--space-m-7);
  }
  .mr-md-7, .mx-md-7 {
    margin-right: var(--space-m-7);
  }
  .mb-md-7, .my-md-7 {
    margin-bottom: var(--space-m-7);
  }
  .ml-md-7, .mx-md-7 {
    margin-left: var(--space-m-7);
  }
  .m-md-8 {
    margin: var(--space-m-8);
  }
  .mt-md-8, .my-md-8 {
    margin-top: var(--space-m-8);
  }
  .mr-md-8, .mx-md-8 {
    margin-right: var(--space-m-8);
  }
  .mb-md-8, .my-md-8 {
    margin-bottom: var(--space-m-8);
  }
  .ml-md-8, .mx-md-8 {
    margin-left: var(--space-m-8);
  }
  .m-md-auto {
    margin: auto;
  }
  .mt-md-auto, .my-md-auto {
    margin-top: auto;
  }
  .mr-md-auto, .mx-md-auto {
    margin-right: auto;
  }
  .mb-md-auto, .my-md-auto {
    margin-bottom: auto;
  }
  .ml-md-auto, .mx-md-auto {
    margin-left: auto;
  }
  .p-md-0 {
    padding: 0;
  }
  .pt-md-0, .py-md-0 {
    padding-top: 0;
  }
  .pr-md-0, .px-md-0 {
    padding-right: 0;
  }
  .pb-md-0, .py-md-0 {
    padding-bottom: 0;
  }
  .pl-md-0, .px-md-0 {
    padding-left: 0;
  }
  .p-md-1 {
    padding: 0.25rem;
  }
  .pt-md-1, .py-md-1 {
    padding-top: 0.25rem;
  }
  .pr-md-1, .px-md-1 {
    padding-right: 0.25rem;
  }
  .pb-md-1, .py-md-1 {
    padding-bottom: 0.25rem;
  }
  .pl-md-1, .px-md-1 {
    padding-left: 0.25rem;
  }
  .p-md-2 {
    padding: 0.5rem;
  }
  .pt-md-2, .py-md-2 {
    padding-top: 0.5rem;
  }
  .pr-md-2, .px-md-2 {
    padding-right: 0.5rem;
  }
  .pb-md-2, .py-md-2 {
    padding-bottom: 0.5rem;
  }
  .pl-md-2, .px-md-2 {
    padding-left: 0.5rem;
  }
  .p-md-3 {
    padding: var(--space-p-3);
  }
  .pt-md-3, .py-md-3 {
    padding-top: var(--space-p-3);
  }
  .pr-md-3, .px-md-3 {
    padding-right: var(--space-p-3);
  }
  .pb-md-3, .py-md-3 {
    padding-bottom: var(--space-p-3);
  }
  .pl-md-3, .px-md-3 {
    padding-left: var(--space-p-3);
  }
  .p-md-4 {
    padding: var(--space-p-4);
  }
  .pt-md-4, .py-md-4 {
    padding-top: var(--space-p-4);
  }
  .pr-md-4, .px-md-4 {
    padding-right: var(--space-p-4);
  }
  .pb-md-4, .py-md-4 {
    padding-bottom: var(--space-p-4);
  }
  .pl-md-4, .px-md-4 {
    padding-left: var(--space-p-4);
  }
  .p-md-5 {
    padding: var(--space-p-5);
  }
  .pt-md-5, .py-md-5 {
    padding-top: var(--space-p-5);
  }
  .pr-md-5, .px-md-5 {
    padding-right: var(--space-p-5);
  }
  .pb-md-5, .py-md-5 {
    padding-bottom: var(--space-p-5);
  }
  .pl-md-5, .px-md-5 {
    padding-left: var(--space-p-5);
  }
  .p-md-6 {
    padding: var(--space-p-6);
  }
  .pt-md-6, .py-md-6 {
    padding-top: var(--space-p-6);
  }
  .pr-md-6, .px-md-6 {
    padding-right: var(--space-p-6);
  }
  .pb-md-6, .py-md-6 {
    padding-bottom: var(--space-p-6);
  }
  .pl-md-6, .px-md-6 {
    padding-left: var(--space-p-6);
  }
  .p-md-7 {
    padding: var(--space-p-7);
  }
  .pt-md-7, .py-md-7 {
    padding-top: var(--space-p-7);
  }
  .pr-md-7, .px-md-7 {
    padding-right: var(--space-p-7);
  }
  .pb-md-7, .py-md-7 {
    padding-bottom: var(--space-p-7);
  }
  .pl-md-7, .px-md-7 {
    padding-left: var(--space-p-7);
  }
}
@media (width >= 992px) {
  .m-lg-0 {
    margin: 0;
  }
  .mt-lg-0, .my-lg-0 {
    margin-top: 0;
  }
  .mr-lg-0, .mx-lg-0 {
    margin-right: 0;
  }
  .mb-lg-0, .my-lg-0 {
    margin-bottom: 0;
  }
  .ml-lg-0, .mx-lg-0 {
    margin-left: 0;
  }
  .m-lg-1 {
    margin: 0.25rem;
  }
  .mt-lg-1, .my-lg-1 {
    margin-top: 0.25rem;
  }
  .mr-lg-1, .mx-lg-1 {
    margin-right: 0.25rem;
  }
  .mb-lg-1, .my-lg-1 {
    margin-bottom: 0.25rem;
  }
  .ml-lg-1, .mx-lg-1 {
    margin-left: 0.25rem;
  }
  .m-lg-2 {
    margin: 0.5rem;
  }
  .mt-lg-2, .my-lg-2 {
    margin-top: 0.5rem;
  }
  .mr-lg-2, .mx-lg-2 {
    margin-right: 0.5rem;
  }
  .mb-lg-2, .my-lg-2 {
    margin-bottom: 0.5rem;
  }
  .ml-lg-2, .mx-lg-2 {
    margin-left: 0.5rem;
  }
  .m-lg-3 {
    margin: var(--space-m-3);
  }
  .mt-lg-3, .my-lg-3 {
    margin-top: var(--space-m-3);
  }
  .mr-lg-3, .mx-lg-3 {
    margin-right: var(--space-m-3);
  }
  .mb-lg-3, .my-lg-3 {
    margin-bottom: var(--space-m-3);
  }
  .ml-lg-3, .mx-lg-3 {
    margin-left: var(--space-m-3);
  }
  .m-lg-4 {
    margin: var(--space-m-4);
  }
  .mt-lg-4, .my-lg-4 {
    margin-top: var(--space-m-4);
  }
  .mr-lg-4, .mx-lg-4 {
    margin-right: var(--space-m-4);
  }
  .mb-lg-4, .my-lg-4 {
    margin-bottom: var(--space-m-4);
  }
  .ml-lg-4, .mx-lg-4 {
    margin-left: var(--space-m-4);
  }
  .m-lg-5 {
    margin: var(--space-m-5);
  }
  .mt-lg-5, .my-lg-5 {
    margin-top: var(--space-m-5);
  }
  .mr-lg-5, .mx-lg-5 {
    margin-right: var(--space-m-5);
  }
  .mb-lg-5, .my-lg-5 {
    margin-bottom: var(--space-m-5);
  }
  .ml-lg-5, .mx-lg-5 {
    margin-left: var(--space-m-5);
  }
  .m-lg-6 {
    margin: var(--space-m-6);
  }
  .mt-lg-6, .my-lg-6 {
    margin-top: var(--space-m-6);
  }
  .mr-lg-6, .mx-lg-6 {
    margin-right: var(--space-m-6);
  }
  .mb-lg-6, .my-lg-6 {
    margin-bottom: var(--space-m-6);
  }
  .ml-lg-6, .mx-lg-6 {
    margin-left: var(--space-m-6);
  }
  .m-lg-7 {
    margin: var(--space-m-7);
  }
  .mt-lg-7, .my-lg-7 {
    margin-top: var(--space-m-7);
  }
  .mr-lg-7, .mx-lg-7 {
    margin-right: var(--space-m-7);
  }
  .mb-lg-7, .my-lg-7 {
    margin-bottom: var(--space-m-7);
  }
  .ml-lg-7, .mx-lg-7 {
    margin-left: var(--space-m-7);
  }
  .m-lg-8 {
    margin: var(--space-m-8);
  }
  .mt-lg-8, .my-lg-8 {
    margin-top: var(--space-m-8);
  }
  .mr-lg-8, .mx-lg-8 {
    margin-right: var(--space-m-8);
  }
  .mb-lg-8, .my-lg-8 {
    margin-bottom: var(--space-m-8);
  }
  .ml-lg-8, .mx-lg-8 {
    margin-left: var(--space-m-8);
  }
  .m-lg-auto {
    margin: auto;
  }
  .mt-lg-auto, .my-lg-auto {
    margin-top: auto;
  }
  .mr-lg-auto, .mx-lg-auto {
    margin-right: auto;
  }
  .mb-lg-auto, .my-lg-auto {
    margin-bottom: auto;
  }
  .ml-lg-auto, .mx-lg-auto {
    margin-left: auto;
  }
  .p-lg-0 {
    padding: 0;
  }
  .pt-lg-0, .py-lg-0 {
    padding-top: 0;
  }
  .pr-lg-0, .px-lg-0 {
    padding-right: 0;
  }
  .pb-lg-0, .py-lg-0 {
    padding-bottom: 0;
  }
  .pl-lg-0, .px-lg-0 {
    padding-left: 0;
  }
  .p-lg-1 {
    padding: 0.25rem;
  }
  .pt-lg-1, .py-lg-1 {
    padding-top: 0.25rem;
  }
  .pr-lg-1, .px-lg-1 {
    padding-right: 0.25rem;
  }
  .pb-lg-1, .py-lg-1 {
    padding-bottom: 0.25rem;
  }
  .pl-lg-1, .px-lg-1 {
    padding-left: 0.25rem;
  }
  .p-lg-2 {
    padding: 0.5rem;
  }
  .pt-lg-2, .py-lg-2 {
    padding-top: 0.5rem;
  }
  .pr-lg-2, .px-lg-2 {
    padding-right: 0.5rem;
  }
  .pb-lg-2, .py-lg-2 {
    padding-bottom: 0.5rem;
  }
  .pl-lg-2, .px-lg-2 {
    padding-left: 0.5rem;
  }
  .p-lg-3 {
    padding: var(--space-p-3);
  }
  .pt-lg-3, .py-lg-3 {
    padding-top: var(--space-p-3);
  }
  .pr-lg-3, .px-lg-3 {
    padding-right: var(--space-p-3);
  }
  .pb-lg-3, .py-lg-3 {
    padding-bottom: var(--space-p-3);
  }
  .pl-lg-3, .px-lg-3 {
    padding-left: var(--space-p-3);
  }
  .p-lg-4 {
    padding: var(--space-p-4);
  }
  .pt-lg-4, .py-lg-4 {
    padding-top: var(--space-p-4);
  }
  .pr-lg-4, .px-lg-4 {
    padding-right: var(--space-p-4);
  }
  .pb-lg-4, .py-lg-4 {
    padding-bottom: var(--space-p-4);
  }
  .pl-lg-4, .px-lg-4 {
    padding-left: var(--space-p-4);
  }
  .p-lg-5 {
    padding: var(--space-p-5);
  }
  .pt-lg-5, .py-lg-5 {
    padding-top: var(--space-p-5);
  }
  .pr-lg-5, .px-lg-5 {
    padding-right: var(--space-p-5);
  }
  .pb-lg-5, .py-lg-5 {
    padding-bottom: var(--space-p-5);
  }
  .pl-lg-5, .px-lg-5 {
    padding-left: var(--space-p-5);
  }
  .p-lg-6 {
    padding: var(--space-p-6);
  }
  .pt-lg-6, .py-lg-6 {
    padding-top: var(--space-p-6);
  }
  .pr-lg-6, .px-lg-6 {
    padding-right: var(--space-p-6);
  }
  .pb-lg-6, .py-lg-6 {
    padding-bottom: var(--space-p-6);
  }
  .pl-lg-6, .px-lg-6 {
    padding-left: var(--space-p-6);
  }
  .p-lg-7 {
    padding: var(--space-p-7);
  }
  .pt-lg-7, .py-lg-7 {
    padding-top: var(--space-p-7);
  }
  .pr-lg-7, .px-lg-7 {
    padding-right: var(--space-p-7);
  }
  .pb-lg-7, .py-lg-7 {
    padding-bottom: var(--space-p-7);
  }
  .pl-lg-7, .px-lg-7 {
    padding-left: var(--space-p-7);
  }
}
@media (width >= 1200px) {
  .m-xl-0 {
    margin: 0;
  }
  .mt-xl-0, .my-xl-0 {
    margin-top: 0;
  }
  .mr-xl-0, .mx-xl-0 {
    margin-right: 0;
  }
  .mb-xl-0, .my-xl-0 {
    margin-bottom: 0;
  }
  .ml-xl-0, .mx-xl-0 {
    margin-left: 0;
  }
  .m-xl-1 {
    margin: 0.25rem;
  }
  .mt-xl-1, .my-xl-1 {
    margin-top: 0.25rem;
  }
  .mr-xl-1, .mx-xl-1 {
    margin-right: 0.25rem;
  }
  .mb-xl-1, .my-xl-1 {
    margin-bottom: 0.25rem;
  }
  .ml-xl-1, .mx-xl-1 {
    margin-left: 0.25rem;
  }
  .m-xl-2 {
    margin: 0.5rem;
  }
  .mt-xl-2, .my-xl-2 {
    margin-top: 0.5rem;
  }
  .mr-xl-2, .mx-xl-2 {
    margin-right: 0.5rem;
  }
  .mb-xl-2, .my-xl-2 {
    margin-bottom: 0.5rem;
  }
  .ml-xl-2, .mx-xl-2 {
    margin-left: 0.5rem;
  }
  .m-xl-3 {
    margin: var(--space-m-3);
  }
  .mt-xl-3, .my-xl-3 {
    margin-top: var(--space-m-3);
  }
  .mr-xl-3, .mx-xl-3 {
    margin-right: var(--space-m-3);
  }
  .mb-xl-3, .my-xl-3 {
    margin-bottom: var(--space-m-3);
  }
  .ml-xl-3, .mx-xl-3 {
    margin-left: var(--space-m-3);
  }
  .m-xl-4 {
    margin: var(--space-m-4);
  }
  .mt-xl-4, .my-xl-4 {
    margin-top: var(--space-m-4);
  }
  .mr-xl-4, .mx-xl-4 {
    margin-right: var(--space-m-4);
  }
  .mb-xl-4, .my-xl-4 {
    margin-bottom: var(--space-m-4);
  }
  .ml-xl-4, .mx-xl-4 {
    margin-left: var(--space-m-4);
  }
  .m-xl-5 {
    margin: var(--space-m-5);
  }
  .mt-xl-5, .my-xl-5 {
    margin-top: var(--space-m-5);
  }
  .mr-xl-5, .mx-xl-5 {
    margin-right: var(--space-m-5);
  }
  .mb-xl-5, .my-xl-5 {
    margin-bottom: var(--space-m-5);
  }
  .ml-xl-5, .mx-xl-5 {
    margin-left: var(--space-m-5);
  }
  .m-xl-6 {
    margin: var(--space-m-6);
  }
  .mt-xl-6, .my-xl-6 {
    margin-top: var(--space-m-6);
  }
  .mr-xl-6, .mx-xl-6 {
    margin-right: var(--space-m-6);
  }
  .mb-xl-6, .my-xl-6 {
    margin-bottom: var(--space-m-6);
  }
  .ml-xl-6, .mx-xl-6 {
    margin-left: var(--space-m-6);
  }
  .m-xl-7 {
    margin: var(--space-m-7);
  }
  .mt-xl-7, .my-xl-7 {
    margin-top: var(--space-m-7);
  }
  .mr-xl-7, .mx-xl-7 {
    margin-right: var(--space-m-7);
  }
  .mb-xl-7, .my-xl-7 {
    margin-bottom: var(--space-m-7);
  }
  .ml-xl-7, .mx-xl-7 {
    margin-left: var(--space-m-7);
  }
  .m-xl-8 {
    margin: var(--space-m-8);
  }
  .mt-xl-8, .my-xl-8 {
    margin-top: var(--space-m-8);
  }
  .mr-xl-8, .mx-xl-8 {
    margin-right: var(--space-m-8);
  }
  .mb-xl-8, .my-xl-8 {
    margin-bottom: var(--space-m-8);
  }
  .ml-xl-8, .mx-xl-8 {
    margin-left: var(--space-m-8);
  }
  .m-xl-auto {
    margin: auto;
  }
  .mt-xl-auto, .my-xl-auto {
    margin-top: auto;
  }
  .mr-xl-auto, .mx-xl-auto {
    margin-right: auto;
  }
  .mb-xl-auto, .my-xl-auto {
    margin-bottom: auto;
  }
  .ml-xl-auto, .mx-xl-auto {
    margin-left: auto;
  }
  .p-xl-0 {
    padding: 0;
  }
  .pt-xl-0, .py-xl-0 {
    padding-top: 0;
  }
  .pr-xl-0, .px-xl-0 {
    padding-right: 0;
  }
  .pb-xl-0, .py-xl-0 {
    padding-bottom: 0;
  }
  .pl-xl-0, .px-xl-0 {
    padding-left: 0;
  }
  .p-xl-1 {
    padding: 0.25rem;
  }
  .pt-xl-1, .py-xl-1 {
    padding-top: 0.25rem;
  }
  .pr-xl-1, .px-xl-1 {
    padding-right: 0.25rem;
  }
  .pb-xl-1, .py-xl-1 {
    padding-bottom: 0.25rem;
  }
  .pl-xl-1, .px-xl-1 {
    padding-left: 0.25rem;
  }
  .p-xl-2 {
    padding: 0.5rem;
  }
  .pt-xl-2, .py-xl-2 {
    padding-top: 0.5rem;
  }
  .pr-xl-2, .px-xl-2 {
    padding-right: 0.5rem;
  }
  .pb-xl-2, .py-xl-2 {
    padding-bottom: 0.5rem;
  }
  .pl-xl-2, .px-xl-2 {
    padding-left: 0.5rem;
  }
  .p-xl-3 {
    padding: var(--space-p-3);
  }
  .pt-xl-3, .py-xl-3 {
    padding-top: var(--space-p-3);
  }
  .pr-xl-3, .px-xl-3 {
    padding-right: var(--space-p-3);
  }
  .pb-xl-3, .py-xl-3 {
    padding-bottom: var(--space-p-3);
  }
  .pl-xl-3, .px-xl-3 {
    padding-left: var(--space-p-3);
  }
  .p-xl-4 {
    padding: var(--space-p-4);
  }
  .pt-xl-4, .py-xl-4 {
    padding-top: var(--space-p-4);
  }
  .pr-xl-4, .px-xl-4 {
    padding-right: var(--space-p-4);
  }
  .pb-xl-4, .py-xl-4 {
    padding-bottom: var(--space-p-4);
  }
  .pl-xl-4, .px-xl-4 {
    padding-left: var(--space-p-4);
  }
  .p-xl-5 {
    padding: var(--space-p-5);
  }
  .pt-xl-5, .py-xl-5 {
    padding-top: var(--space-p-5);
  }
  .pr-xl-5, .px-xl-5 {
    padding-right: var(--space-p-5);
  }
  .pb-xl-5, .py-xl-5 {
    padding-bottom: var(--space-p-5);
  }
  .pl-xl-5, .px-xl-5 {
    padding-left: var(--space-p-5);
  }
  .p-xl-6 {
    padding: var(--space-p-6);
  }
  .pt-xl-6, .py-xl-6 {
    padding-top: var(--space-p-6);
  }
  .pr-xl-6, .px-xl-6 {
    padding-right: var(--space-p-6);
  }
  .pb-xl-6, .py-xl-6 {
    padding-bottom: var(--space-p-6);
  }
  .pl-xl-6, .px-xl-6 {
    padding-left: var(--space-p-6);
  }
  .p-xl-7 {
    padding: var(--space-p-7);
  }
  .pt-xl-7, .py-xl-7 {
    padding-top: var(--space-p-7);
  }
  .pr-xl-7, .px-xl-7 {
    padding-right: var(--space-p-7);
  }
  .pb-xl-7, .py-xl-7 {
    padding-bottom: var(--space-p-7);
  }
  .pl-xl-7, .px-xl-7 {
    padding-left: var(--space-p-7);
  }
}
@media (width >= 1400px) {
  .m-2xl-0 {
    margin: 0;
  }
  .mt-2xl-0, .my-2xl-0 {
    margin-top: 0;
  }
  .mr-2xl-0, .mx-2xl-0 {
    margin-right: 0;
  }
  .mb-2xl-0, .my-2xl-0 {
    margin-bottom: 0;
  }
  .ml-2xl-0, .mx-2xl-0 {
    margin-left: 0;
  }
  .m-2xl-1 {
    margin: 0.25rem;
  }
  .mt-2xl-1, .my-2xl-1 {
    margin-top: 0.25rem;
  }
  .mr-2xl-1, .mx-2xl-1 {
    margin-right: 0.25rem;
  }
  .mb-2xl-1, .my-2xl-1 {
    margin-bottom: 0.25rem;
  }
  .ml-2xl-1, .mx-2xl-1 {
    margin-left: 0.25rem;
  }
  .m-2xl-2 {
    margin: 0.5rem;
  }
  .mt-2xl-2, .my-2xl-2 {
    margin-top: 0.5rem;
  }
  .mr-2xl-2, .mx-2xl-2 {
    margin-right: 0.5rem;
  }
  .mb-2xl-2, .my-2xl-2 {
    margin-bottom: 0.5rem;
  }
  .ml-2xl-2, .mx-2xl-2 {
    margin-left: 0.5rem;
  }
  .m-2xl-3 {
    margin: var(--space-m-3);
  }
  .mt-2xl-3, .my-2xl-3 {
    margin-top: var(--space-m-3);
  }
  .mr-2xl-3, .mx-2xl-3 {
    margin-right: var(--space-m-3);
  }
  .mb-2xl-3, .my-2xl-3 {
    margin-bottom: var(--space-m-3);
  }
  .ml-2xl-3, .mx-2xl-3 {
    margin-left: var(--space-m-3);
  }
  .m-2xl-4 {
    margin: var(--space-m-4);
  }
  .mt-2xl-4, .my-2xl-4 {
    margin-top: var(--space-m-4);
  }
  .mr-2xl-4, .mx-2xl-4 {
    margin-right: var(--space-m-4);
  }
  .mb-2xl-4, .my-2xl-4 {
    margin-bottom: var(--space-m-4);
  }
  .ml-2xl-4, .mx-2xl-4 {
    margin-left: var(--space-m-4);
  }
  .m-2xl-5 {
    margin: var(--space-m-5);
  }
  .mt-2xl-5, .my-2xl-5 {
    margin-top: var(--space-m-5);
  }
  .mr-2xl-5, .mx-2xl-5 {
    margin-right: var(--space-m-5);
  }
  .mb-2xl-5, .my-2xl-5 {
    margin-bottom: var(--space-m-5);
  }
  .ml-2xl-5, .mx-2xl-5 {
    margin-left: var(--space-m-5);
  }
  .m-2xl-6 {
    margin: var(--space-m-6);
  }
  .mt-2xl-6, .my-2xl-6 {
    margin-top: var(--space-m-6);
  }
  .mr-2xl-6, .mx-2xl-6 {
    margin-right: var(--space-m-6);
  }
  .mb-2xl-6, .my-2xl-6 {
    margin-bottom: var(--space-m-6);
  }
  .ml-2xl-6, .mx-2xl-6 {
    margin-left: var(--space-m-6);
  }
  .m-2xl-7 {
    margin: var(--space-m-7);
  }
  .mt-2xl-7, .my-2xl-7 {
    margin-top: var(--space-m-7);
  }
  .mr-2xl-7, .mx-2xl-7 {
    margin-right: var(--space-m-7);
  }
  .mb-2xl-7, .my-2xl-7 {
    margin-bottom: var(--space-m-7);
  }
  .ml-2xl-7, .mx-2xl-7 {
    margin-left: var(--space-m-7);
  }
  .m-2xl-8 {
    margin: var(--space-m-8);
  }
  .mt-2xl-8, .my-2xl-8 {
    margin-top: var(--space-m-8);
  }
  .mr-2xl-8, .mx-2xl-8 {
    margin-right: var(--space-m-8);
  }
  .mb-2xl-8, .my-2xl-8 {
    margin-bottom: var(--space-m-8);
  }
  .ml-2xl-8, .mx-2xl-8 {
    margin-left: var(--space-m-8);
  }
  .m-2xl-auto {
    margin: auto;
  }
  .mt-2xl-auto, .my-2xl-auto {
    margin-top: auto;
  }
  .mr-2xl-auto, .mx-2xl-auto {
    margin-right: auto;
  }
  .mb-2xl-auto, .my-2xl-auto {
    margin-bottom: auto;
  }
  .ml-2xl-auto, .mx-2xl-auto {
    margin-left: auto;
  }
  .p-2xl-0 {
    padding: 0;
  }
  .pt-2xl-0, .py-2xl-0 {
    padding-top: 0;
  }
  .pr-2xl-0, .px-2xl-0 {
    padding-right: 0;
  }
  .pb-2xl-0, .py-2xl-0 {
    padding-bottom: 0;
  }
  .pl-2xl-0, .px-2xl-0 {
    padding-left: 0;
  }
  .p-2xl-1 {
    padding: 0.25rem;
  }
  .pt-2xl-1, .py-2xl-1 {
    padding-top: 0.25rem;
  }
  .pr-2xl-1, .px-2xl-1 {
    padding-right: 0.25rem;
  }
  .pb-2xl-1, .py-2xl-1 {
    padding-bottom: 0.25rem;
  }
  .pl-2xl-1, .px-2xl-1 {
    padding-left: 0.25rem;
  }
  .p-2xl-2 {
    padding: 0.5rem;
  }
  .pt-2xl-2, .py-2xl-2 {
    padding-top: 0.5rem;
  }
  .pr-2xl-2, .px-2xl-2 {
    padding-right: 0.5rem;
  }
  .pb-2xl-2, .py-2xl-2 {
    padding-bottom: 0.5rem;
  }
  .pl-2xl-2, .px-2xl-2 {
    padding-left: 0.5rem;
  }
  .p-2xl-3 {
    padding: var(--space-p-3);
  }
  .pt-2xl-3, .py-2xl-3 {
    padding-top: var(--space-p-3);
  }
  .pr-2xl-3, .px-2xl-3 {
    padding-right: var(--space-p-3);
  }
  .pb-2xl-3, .py-2xl-3 {
    padding-bottom: var(--space-p-3);
  }
  .pl-2xl-3, .px-2xl-3 {
    padding-left: var(--space-p-3);
  }
  .p-2xl-4 {
    padding: var(--space-p-4);
  }
  .pt-2xl-4, .py-2xl-4 {
    padding-top: var(--space-p-4);
  }
  .pr-2xl-4, .px-2xl-4 {
    padding-right: var(--space-p-4);
  }
  .pb-2xl-4, .py-2xl-4 {
    padding-bottom: var(--space-p-4);
  }
  .pl-2xl-4, .px-2xl-4 {
    padding-left: var(--space-p-4);
  }
  .p-2xl-5 {
    padding: var(--space-p-5);
  }
  .pt-2xl-5, .py-2xl-5 {
    padding-top: var(--space-p-5);
  }
  .pr-2xl-5, .px-2xl-5 {
    padding-right: var(--space-p-5);
  }
  .pb-2xl-5, .py-2xl-5 {
    padding-bottom: var(--space-p-5);
  }
  .pl-2xl-5, .px-2xl-5 {
    padding-left: var(--space-p-5);
  }
  .p-2xl-6 {
    padding: var(--space-p-6);
  }
  .pt-2xl-6, .py-2xl-6 {
    padding-top: var(--space-p-6);
  }
  .pr-2xl-6, .px-2xl-6 {
    padding-right: var(--space-p-6);
  }
  .pb-2xl-6, .py-2xl-6 {
    padding-bottom: var(--space-p-6);
  }
  .pl-2xl-6, .px-2xl-6 {
    padding-left: var(--space-p-6);
  }
  .p-2xl-7 {
    padding: var(--space-p-7);
  }
  .pt-2xl-7, .py-2xl-7 {
    padding-top: var(--space-p-7);
  }
  .pr-2xl-7, .px-2xl-7 {
    padding-right: var(--space-p-7);
  }
  .pb-2xl-7, .py-2xl-7 {
    padding-bottom: var(--space-p-7);
  }
  .pl-2xl-7, .px-2xl-7 {
    padding-left: var(--space-p-7);
  }
}



/* ## Text
======================================== */

/* ### Text alignment
---------------------------------------- */

.text-start,
.text-left {
  text-align: left;
}
.text-end,
.text-right {
  text-align: right;
}
.text-center {
  text-align: center;
}
@media (width >= 576px) {
  .text-sm-start,
  .text-sm-left {
    text-align: left;
  }
  .text-sm-end,
  .text-sm-right {
    text-align: right;
  }
  .text-sm-center {
    text-align: center;
  }
}
@media (width >= 768px) {
  .text-md-start,
  .text-md-left {
    text-align: left;
  }
  .text-md-end,
  .text-md-right {
    text-align: right;
  }
  .text-md-center {
    text-align: center;
  }
}
@media (width >= 992px) {
  .text-lg-start,
  .text-lg-left {
    text-align: left;
  }
  .text-lg-end,
  .text-lg-right {
    text-align: right;
  }
  .text-lg-center {
    text-align: center;
  }
}
@media (width >= 1200px) {
  .text-xl-start,
  .text-xl-left {
    text-align: left;
  }
  .text-xl-end,
  .text-xl-right {
    text-align: right;
  }
  .text-xl-center {
    text-align: center;
  }
}
@media (width >= 1400px) {
  .text-2xl-start,
  .text-2xl-left {
    text-align: left;
  }
  .text-2xl-end,
  .text-2xl-right {
    text-align: right;
  }
  .text-2xl-center {
    text-align: center;
  }
}


/* ### Text wrapping and overflow, Word break
---------------------------------------- */

.text-wrap {
  white-space: normal;
}
.text-nowrap {
  white-space: nowrap;
}
.text-truncate {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  /* 併せて幅を指定した方がいい */
  /* max-width: 60vw; */
}

.text-break {
  overflow-wrap: break-word;
  word-break: break-word; /* 非推奨 */
  /* 折り返すために幅が必要、max-width:100%なども併せて設定 */
  /* white-space: normal;も念のため入れるとよい */
}

/* URLのはみ出し対策に */
.url-break {
  overflow-wrap: break-word;
  word-break: break-word;
  max-width: 100%;
  white-space: normal;
}


/* ### Text Wrap (Tailwind CSS)
---------------------------------------- */

.text-balance {/*見出し向き*/
  text-wrap: balance;
}
.text-pretty {/*本文向き*/
  text-wrap: pretty;
}


/* ### Whitespace (Tailwind CSS)
---------------------------------------- */

.whitespace-normal {
  white-space: normal;
}
.whitespace-nowrap {
  white-space: nowrap;
}
.whitespace-pre {
  white-space: pre;
}
.whitespace-pre-line {
  white-space: pre-line;
}
.whitespace-pre-wrap {
  white-space: pre-wrap;
}
.whitespace-break-spaces {
  white-space: break-spaces;
}


/* ### Text transform (Tailwind CSS)
---------------------------------------- */

.uppercase {
  text-transform: uppercase;
}
.lowercase {
  text-transform: lowercase;
}
.capitalize {
  text-transform: capitalize;
}
.normal-case {
  text-transform: none;
}


/* ### Font size
---------------------------------------- */

.fs-2xs {
  font-size: clamp(0.75rem, 0.72rem + 0.1vw, 0.8125rem);
}
.fs-xs {
  font-size: clamp(0.8125rem, 0.78rem + 0.12vw, 0.875rem);
}
.fs-sm {
  font-size: clamp(0.875rem, 0.84rem + 0.15vw, 0.9375rem);
}
.fs-md {
  font-size: clamp(0.9375rem, 0.87rem + 0.28vw, 1.0625rem);
}
.fs-lg {
  font-size: clamp(1rem, 0.93rem + 0.28vw, 1.125rem);
}
.fs-xl {
  font-size: clamp(1.125rem, 1.05rem + 0.32vw, 1.25rem);
}
.fs-2xl {
  font-size: clamp(1.375rem, 1.25rem + 0.35vw, 1.5rem);
}
.fs-3xl {
  font-size: clamp(1.625rem, 1.4rem + 0.65vw, 1.875rem);
}
.fs-4xl {
  font-size: clamp(1.875rem, 1.7rem + 0.75vw, 2.25rem);
}
.fs-5xl {
  font-size: clamp(2.375rem, 2rem + 1.35vw, 3rem);
}
.fs-6xl {
  font-size: clamp(3rem, 2.6rem + 1.9vw, 4rem);
}
.fs-7xl {
  font-size: clamp(3.25rem, 2.7rem + 2.4vw, 4.5rem);
}
.fs-8xl {
  font-size: clamp(3.5rem, 2.9rem + 2.8vw, 5rem);
}
.fs-9xl {
  font-size: clamp(3.75rem, 3rem + 4vw, 6rem);
}


/* ### Font style and weight
---------------------------------------- */

.fst-italic {
  font-style: italic;
}
.fst-normal {
  font-style: normal;
}
.fw-lighter {
  font-weight: lighter;
}
.fw-light {
  font-weight: 300;
}
.fw-normal {
  font-weight: 400;
}
.fw-medium {
  font-weight: 500;
}
.fw-semibold {
  font-weight: 600;
}
.fw-bold {
  font-weight: 700;
}
.fw-black {
  font-weight: 900;
}
.fw-bolder {
  font-weight: bolder;
}


/* ### Font family
---------------------------------------- */

.ff-sans {
  font-family: var(--font-family-sans);
}
.ff-serif {
  font-family: var(--font-family-serif);
}
.ff-mono {
  font-family: var(--font-monospace);
}


/* ### Line height
---------------------------------------- */

.lh-1 {
  line-height: 1;
}
.lh-xs {
  line-height: 1.2;
}
.lh-sm {
  line-height: 1.4;
}
.lh-base {
  line-height: 1.5;
}
.lh-md {
  line-height: 1.6;
}
.lh-lg {
  line-height: 1.8;
}
.lh-xl {
  line-height: 2;
}
.lh-2xl {
  line-height: 2.4;
}
@media (width >= 576px) {
  .lh-sm-1 {
    line-height: 1;
  }
  .lh-sm-xs {
    line-height: 1.2;
  }
  .lh-sm-sm {
    line-height: 1.4;
  }
  .lh-sm-base {
    line-height: 1.5;
  }
  .lh-sm-md {
    line-height: 1.6;
  }
  .lh-sm-lg {
    line-height: 1.8;
  }
  .lh-sm-xl {
    line-height: 2;
  }
  .lh-sm-2xl {
    line-height: 2.4;
  }
}
@media (width >= 768px) {
  .lh-md-1 {
    line-height: 1;
  }
  .lh-md-xs {
    line-height: 1.2;
  }
  .lh-md-sm {
    line-height: 1.4;
  }
  .lh-md-base {
    line-height: 1.5;
  }
  .lh-md-md {
    line-height: 1.6;
  }
  .lh-md-lg {
    line-height: 1.8;
  }
  .lh-md-xl {
    line-height: 2;
  }
  .lh-md-2xl {
    line-height: 2.4;
  }
}
@media (width >= 992px) {
  .lh-lg-1 {
    line-height: 1;
  }
  .lh-lg-xs {
    line-height: 1.2;
  }
  .lh-lg-sm {
    line-height: 1.4;
  }
  .lh-lg-base {
    line-height: 1.5;
  }
  .lh-lg-md {
    line-height: 1.6;
  }
  .lh-lg-lg {
    line-height: 1.8;
  }
  .lh-lg-xl {
    line-height: 2;
  }
  .lh-lg-2xl {
    line-height: 2.4;
  }
}
@media (width >= 1200px) {
  .lh-xl-1 {
    line-height: 1;
  }
  .lh-xl-xs {
    line-height: 1.2;
  }
  .lh-xl-sm {
    line-height: 1.4;
  }
  .lh-xl-base {
    line-height: 1.5;
  }
  .lh-xl-md {
    line-height: 1.6;
  }
  .lh-xl-lg {
    line-height: 1.8;
  }
  .lh-xl-xl {
    line-height: 2;
  }
  .lh-xl-2xl {
    line-height: 2.4;
  }
}
@media (width >= 1400px) {
  .lh-2xl-1 {
    line-height: 1;
  }
  .lh-2xl-xs {
    line-height: 1.2;
  }
  .lh-2xl-sm {
    line-height: 1.4;
  }
  .lh-2xl-base {
    line-height: 1.5;
  }
  .lh-2xl-md {
    line-height: 1.6;
  }
  .lh-2xl-lg {
    line-height: 1.8;
  }
  .lh-2xl-xl {
    line-height: 2;
  }
  .lh-2xl-2xl {
    line-height: 2.4;
  }
}


/* ### Letter spacing
---------------------------------------- */

.ls-0 {
  letter-spacing: 0;
}
.ls-1 {
  letter-spacing: 0.05em;
}
.ls-2 {
  letter-spacing: 0.1em;
}
.ls-3 {
  letter-spacing: 0.2em;
}
.ls-m1 {
  letter-spacing: -0.05em;
}
.ls-m2 {
  letter-spacing: -0.1em;
}


/* ### Text decoration
---------------------------------------- */
.text-decoration-none {
  text-decoration: none;
}
.text-decoration-underline {
  text-decoration: underline;
}



/* ## Vertical alignment
======================================== */

.align-baseline {
  vertical-align: baseline;
}
.align-top {
  vertical-align: top;
}
.align-middle {
  vertical-align: middle;
}
.align-bottom {
  vertical-align: bottom;
}
.align-text-bottom {
  vertical-align: text-bottom;
}
.align-text-top {
  vertical-align: text-top;
}



/* ## Visibility
======================================== */

.visible {
  visibility: visible;
}
.invisible {
  visibility: hidden;
}



/* ## Z-index
======================================== */

.z-n1 {
  z-index: -1;
}
.z-0 {
  z-index: 0;
}
.z-1 {
  z-index: 1;
}
.z-2 {
  z-index: 2;
}
.z-3 {
  z-index: 3;
}



/* ## Others
======================================== */

/* ### Mix Blend Mode (Tailwind CSS)
---------------------------------------- */

.mix-blend-normal {
  mix-blend-mode: normal;
}
.mix-blend-multiply {
  mix-blend-mode: multiply;
}
.mix-blend-screen {
  mix-blend-mode: screen;
}
.mix-blend-overlay {
  mix-blend-mode: overlay;
}
.mix-blend-darken {
  mix-blend-mode: darken;
}
.mix-blend-lighten {
  mix-blend-mode: lighten;
}
.mix-blend-color-dodge {
  mix-blend-mode: color-dodge;
}
.mix-blend-color-burn {
  mix-blend-mode: color-burn;
}
.mix-blend-hard-light {
  mix-blend-mode: hard-light;
}
.mix-blend-soft-light {
  mix-blend-mode: soft-light;
}
.mix-blend-difference {
  mix-blend-mode: difference;
}
.mix-blend-exclusion {
  mix-blend-mode: exclusion;
}
.mix-blend-hue {
  mix-blend-mode: hue;
}
.mix-blend-saturation {
  mix-blend-mode: saturation;
}
.mix-blend-color {
  mix-blend-mode: color;
}
.mix-blend-luminosity {
  mix-blend-mode: luminosity;
}


/* ### Drop Shadow (Tailwind CSS)
---------------------------------------- */

.drop-shadow-sm {
  filter: drop-shadow(0 1px 1px rgb(0 0 0 / 0.05));
}
.drop-shadow {
  filter: drop-shadow(0 1px 2px rgb(0 0 0 / 0.1)) drop-shadow(0 1px 1px rgb(0 0 0 / 0.06));
}
.drop-shadow-md {
  filter: drop-shadow(0 4px 3px rgb(0 0 0 / 0.07)) drop-shadow(0 2px 2px rgb(0 0 0 / 0.06));
}
.drop-shadow-lg {
  filter: drop-shadow(0 10px 8px rgb(0 0 0 / 0.04)) drop-shadow(0 4px 3px rgb(0 0 0 / 0.1));
}
.drop-shadow-xl {
  filter: drop-shadow(0 20px 13px rgb(0 0 0 / 0.03)) drop-shadow(0 8px 5px rgb(0 0 0 / 0.08));
}
.drop-shadow-2xl {
  filter: drop-shadow(0 25px 25px rgb(0 0 0 / 0.15));
}
.drop-shadow-none {
  filter: drop-shadow(0 0 #0000);
}
