@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 (Tailwind CSS)
======================================== */

.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;
}



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

/* ### Hover flash
---------------------------------------- */

@media (hover: hover) {
  .hover-flash:hover {
    animation: hover-flash 0.3s ease 1;
  }
}
@keyframes hover-flash {
  from {opacity: 1;}
  50% {opacity: 0.7;}
  to {opacity: 1;}
}

@media (hover: hover) {
  .hoverFlash:hover {
    animation: hoverFlash 0.45s;
  }
}
@keyframes hoverFlash {
  from { opacity: 1; }
  30% { opacity: 0.7; }
  to { opacity: 1; }
}


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

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


/* ### Copy guard
---------------------------------------- */

.copy-guard {
  pointer-events: none;
  -ms-user-select: none;
  -webkit-user-select: none;
  user-select: none;
}

.copyGuard {
  pointer-events: none;
  -webkit-user-select: none;
  user-select: none;
}


/* ### 縦書き
---------------------------------------- */

.verticalWriting {
  writing-mode: vertical-rl;
}


/* ### ２行目以降文字下げ
---------------------------------------- */

.text-indent-1 {
  padding-left: 1em;
  text-indent: -1em;
}
.text-indent-2 {
  padding-left: 2em;
  text-indent: -2em;
}

.textIndent1 {
  padding-left: 1em;
  text-indent: -1em;
}
.textIndent2 {
  padding-left: 2em;
  text-indent: -2em;
}
.textIndent3 {
  padding-left: 3em;
  text-indent: -3em;
}


/* ### ラッパー不要の中央揃え
---------------------------------------- */

.inlineCenter {
  max-inline-size: max-content;
  margin-inline: auto;
}


/* ### 「position: fixed;」で上下左右の中央
---------------------------------------- */

.positionFixedCenter {
  position: fixed;
  inset: 0;
  margin: auto;
}



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

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

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

.text-primary {
  color: var(--primary) !important;
}
.text-secondary {
  color: var(--secondary) !important;
}
.text-body {
  color: var(--body) !important;
}
.text-caution {
  color: #ed7385 !important;
}
.text-white {
  color: var(--white) !important;
}
.text-pink {
  color: #eb5683 !important;
}
.text-rose {
  color: #ed7385 !important;
}
.text-poppy {
  color: #fb9918 !important;
}
.text-aquamarine {
  color: #46b9b3 !important;
}
.text-purple {
  color: #9175ae !important;
}
.text-violet {
  color: #a960a2 !important;
}
.text-ruby {
  color: #d33685 !important;
}
.text-strawberry {
  color: #e9496f !important;
}
.text-violet2022 {
  color: #a06c94 !important;
}
.text-brown2022 {
  color: #cb794b !important;
}
.text-garnet2022 {
  color: #af4758 !important;
}

.text-pink2025 {
  color: var(--pink2025) !important;
}
.text-amber2025 {
  color: var(--amber2025) !important;
}
.text-yellow2025 {
  color: var(--yellow2025) !important;
}
.text-skyblue2025 {
  color: var(--skyblue2025) !important;
}
.text-blue2025 {
  color: var(--blue2025) !important;
}
.text-orange2025 {
  color: var(--orange2025) !important;
}
.text-green2025 {
  color: var(--green2025) !important;
}



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

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

.bg-primary {
  background-color: var(--primary) !important;
}
.bg-lightprimary {
  background-color: var(--lightprimary) !important;
}
.bg-secondary {
  background-color: var(--secondary) !important;
}
.bg-heading {
  background-color: var(--heading) !important;
}
.bg-lightgray {
  background-color: #e9e9e9 !important;
}
.bg-whitesmoke {
  background-color: var(--whitesmoke) !important;
}
.bg-white {
  background-color: var(--white) !important;
}
.bg-transparent {
  background-color: transparent;
}

.bg-beige {
  background-color: #f4f1e7 !important;
}
.bg-lightbeige {
  background-color: #fafaf4 !important;
}
.bg-lightaquamarine {
  background-color: #e6f4f4 !important;
}
.bg-lightblue {
  background-color: #dbf1f5 !important;
}
.bg-pink {
  background-color: #eb5683 !important;
}
.bg-lightpink {
  background-color: #fdedf2 !important;
}
.bg-rose {
  background-color: #ed7385 !important;
}
.bg-lightrose {
  background-color: #fce9e8 !important;
}
.bg-softochre {
  background-color: #faefe0 !important;
}
.bg-lightpurple {
  background-color: #eae5f0 !important;
}
.bg-primary2022 {/*webguide関連のフッターのみ*/
  background-color: #9f0c3e !important;
  color: var(--white);
}

.bg-yellow2025 {
  background-color: var(--yellow2025) !important;
}
.bg-pink2025 {
  background-color: var(--pink2025) !important;
}
.bg-pink2025_lt {
  background-color: var(--pink2025_lt) !important;
}
.bg-pink2025_p {
  background-color: var(--pink2025_p) !important;
}
.bg-amber2025 {
  background-color: var(--amber2025) !important;
}
.bg-amber2025_lt {
  background-color: var(--amber2025_lt) !important;
}
.bg-amber2025_p {
  background-color: var(--amber2025_p) !important;
}



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

.border-bottom--white {
  border-bottom: 1px solid var(--white);
  padding-bottom: 0.5rem;
}

.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-secondary {
  --border-color: var(--secondary);
}
.border-black {
  --border-color: var(--black);
}
.border-white {
  --border-color: var(--white);
}
.border-gray {
  --border-color: #aaa;
}
.border-pink {
  --border-color: #eb5683;
}
.border-pink2025 {
  --border-color: var(--pink2025);
}
.border-amber2025 {
  --border-color: var(--amber2025);
}
.border-skyblue2025 {
  --border-color: var(--skyblue2025);
}
.border-orange2025 {
  --border-color: var(--orange2025);
}

.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 >= 1040px) {
  .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;
  }
}


.rounded-1 {
  border-radius: 0.75rem;
}

.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
======================================== */

.display-desktop-only {
  display: none;
}
@media (min-width: 768px) {
  .display-mobile-only {
    display: none;
  }
  .display-desktop-only {
    display: block;
  }
}

@media (width >= 576px) {
  .d-lt-sm {
    display: none;
  }
}
@media (width >= 768px) {
  .d-lt-md {
    display: none;
  }
}
@media (width >= 1040px) {
  .d-lt-lg {
    display: none;
  }
}

@media (width < 576px) {
  .d-gt-sm {
    display: none;
  }
}
@media (width < 768px) {
  .d-gt-md {
    display: none;
  }
}
@media (width < 1040px) {
  .d-gt-lg {
    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 >= 1040px) {
  .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;
  }
}


/* ### 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 >= 1040px) {
  .order-lg-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 >= 1040px) {
  .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;
  }
}


/* ### 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 >= 1040px) {
  .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;
  }
}


/* ### 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 >= 1040px) {
  .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;
  }
}


/* ### 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 >= 1040px) {
  .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;
  }
}


/* ### 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 >= 1040px) {
  .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;
  }
}


/* ### 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;
}



/* ## 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;
}

.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-40 {/*保育科トップ用に追加*/
  width: 40%;
}
.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-40 {/*保育科トップ用に追加*/
    width: 40%;
  }
  .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-40 {/*保育科トップ用に追加*/
    width: 40%;
  }
  .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 >= 1040px) {
  .w-lg-40 {/*保育科トップ用に追加*/
    width: 40%;
  }
  .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;
  }
}



/* ## 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 >= 1040px) {
  .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);
  }
}



/* ## 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 >= 1040px) {
  .text-lg-start,
  .text-lg-left {
    text-align: left;
  }
  .text-lg-end,
  .text-lg-right {
    text-align: right;
  }
  .text-lg-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 {
  /* word-wrap: break-word; */
  overflow-wrap: break-word;
  word-break: break-word;
}


/* ### Text Wrap (Tailwind CSS)
---------------------------------------- */
/* https://caniuse.com/?search=text-wrap */

/* .text-wrap {
  text-wrap: wrap;
} */
/* .text-nowrap {
  text-wrap: nowrap;
} */
.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
---------------------------------------- */

.font-size-2xs,
.font-size-xxsmall {
  font-size: 0.625rem;
}
.font-size-xs,
.font-size-xsmall {
  font-size: 0.75rem;
}
.font-size-sm,
.font-size-small {
  font-size: 0.875rem;
}
.font-size-md {
  font-size: 1rem;
}
.font-size-18 {/*苦肉の策*/
  font-size: 1.125rem;
}
.font-size-lg,
.font-size-large {
  font-size: 1.25rem;
}
.font-size-xl,
.font-size-xlarge {
  font-size: 1.5rem;
}
.font-size-2xl,
.font-size-xxlarge {
  font-size: 2rem;
}
.font-size-3xl,
.font-size-3xlarge {
  font-size: 2.5rem;
}

.fs-2xs {
  font-size: clamp(0.625rem, 0.625rem + 0.1vw, 0.688rem);
}
.fs-xs {
  font-size: clamp(0.75rem, 0.75rem + 0.1vw, 0.813rem);
}
.fs-sm {
  font-size: clamp(0.813rem, 0.8rem + 0.1vw, 0.875rem);
}
.fs-md {
  font-size: clamp(0.875rem, 0.825rem + 0.25vw, 1rem);
}
.fs-lg {
  font-size: clamp(1rem, 0.9rem + 0.3vw, 1.125rem);
}
.fs-xl {
  font-size: clamp(1.125rem, 1rem + 0.35vw, 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
---------------------------------------- */

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

.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
---------------------------------------- */

.font-family-mincho {
  font-family: serif;
}

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

/* 2025年度 */
.ff-courier {
  font-family: var(--font-family-courier);
  font-weight: 700;
  font-style: normal;
}


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

.line-height-lower {
  line-height: 1.4;
}

.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 >= 1040px) {
  .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;
  }
}


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

.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
---------------------------------------- */

.underline {
  text-decoration: underline;
}

.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);
}
