/* =========================================================
   Utilities
   ユーティリティクラス（強制上書き・補助・例外対応）
   ========================================================= */


/* ---------------------------------------------------------
   Display utilities
   表示制御
   --------------------------------------------------------- */

.u-block { display: block !important; }
.u-inline { display: inline !important; }
.u-inline-block { display: inline-block !important; }
.u-hidden { display: none !important; }


/* ---------------------------------------------------------
   Flex utilities
   Flex補助
   --------------------------------------------------------- */

.u-flex { display: flex !important; }
.u-inline-flex { display: inline-flex !important; }

.u-flex-center {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}


/* ---------------------------------------------------------
   Text alignment
   テキスト配置
   --------------------------------------------------------- */

.u-text-left { text-align: left !important; }
.u-text-center { text-align: center !important; }
.u-text-right { text-align: right !important; }


/* ---------------------------------------------------------
   Margin utilities
   余白調整
   --------------------------------------------------------- */

.u-mt-0 { margin-top: 0 !important; }
.u-mb-0 { margin-bottom: 0 !important; }

.u-mt-auto { margin-top: auto !important; }
.u-mb-auto { margin-bottom: auto !important; }


/* ---------------------------------------------------------
   Width utilities
   幅制御
   --------------------------------------------------------- */

.u-w-full { width: 100% !important; }
.u-w-auto { width: auto !important; }


/* ---------------------------------------------------------
   Container utilities
   コンテナ幅補助
   --------------------------------------------------------- */

.u-container {
  max-width: var(--container);
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--gutter);
  padding-right: var(--gutter);
}

.u-content {
  max-width: var(--content);
  margin-left: auto;
  margin-right: auto;
}


/* ---------------------------------------------------------
   Overflow utilities
   オーバーフロー制御
   --------------------------------------------------------- */

.u-overflow-hidden { overflow: hidden !important; }
.u-overflow-auto { overflow: auto !important; }


/* ---------------------------------------------------------
   Position utilities
   位置制御
   --------------------------------------------------------- */

.u-relative { position: relative !important; }
.u-absolute { position: absolute !important; }
.u-fixed { position: fixed !important; }


/* ---------------------------------------------------------
   Z-index utilities
   重なり制御
   --------------------------------------------------------- */

.u-z-0 { z-index: 0 !important; }
.u-z-10 { z-index: 10 !important; }
.u-z-100 { z-index: 100 !important; }
.u-z-1000 { z-index: 1000 !important; }


html.is-locked,
html.is-locked body {
  overflow: hidden;
}
