@charset "UTF-8";
/*
    Template: swell
    Theme Name: SWELL CHILD
    Theme URI: https://swell-theme.com/
    Description: SWELLの子テーマ
    Version: 1.0.0
    Author: LOOS WEB STUDIO
    Author URI: https://loos-web-studio.com/

    License: GNU General Public License
    License URI: http://www.gnu.org/licenses/gpl.html
*/

/* ユーティリティクラス */

/* stylelint-disable */
/* マージンユーティリティクラス - 自動整形対象外 */
.m-auto { margin: auto; }
.m5 { margin: 5px; }
.m10 { margin: 10px; }
.m20 { margin: 20px; }
.m30 { margin: 30px; }
.m40 { margin: 40px; }
.m50 { margin: 50px; }
.m100 { margin: 100px; }
.m150 { margin: 150px; }
.m200 { margin: 200px; }

.m5-t { margin-top: 5px; }
.m10-t { margin-top: 10px; }
.m20-t { margin-top: 20px; }
.m30-t { margin-top: 30px; }
.m40-t { margin-top: 40px; }
.m50-t { margin-top: 50px; }
.m100-t { margin-top: 100px; }
.m150-t { margin-top: 150px; }
.m200-t { margin-top: 200px; }

.m5-r { margin-right: 5px; }
.m10-r { margin-right: 10px; }
.m20-r { margin-right: 20px; }
.m30-r { margin-right: 30px; }
.m40-r { margin-right: 40px; }
.m50-r { margin-right: 50px; }
.m100-r { margin-right: 100px; }
.m150-r { margin-right: 150px; }
.m200-r { margin-right: 200px; }

.m5-b { margin-bottom: 5px; }
.m10-b { margin-bottom: 10px; }
.m20-b { margin-bottom: 20px; }
.m30-b { margin-bottom: 30px; }
.m40-b { margin-bottom: 40px; }
.m50-b { margin-bottom: 50px; }
.m100-b { margin-bottom: 100px; }
.m150-b { margin-bottom: 150px; }
.m200-b { margin-bottom: 200px; }

.m5-l { margin-left: 5px; }
.m10-l { margin-left: 10px; }
.m20-l { margin-left: 20px; }
.m30-l { margin-left: 30px; }
.m40-l { margin-left: 40px; }
.m50-l { margin-left: 50px; }
.m100-l { margin-left: 100px; }
.m150-l { margin-left: 150px; }
.m200-l { margin-left: 200px; }

/* パッディングユーティリティクラス - 1,2,4,8,12,16 */
/* 単一方向 */
.p1 { padding: 1px; }
.p2 { padding: 2px; }
.p4 { padding: 4px; }
.p8 { padding: 8px; }
.p12 { padding: 12px; }
.p16 { padding: 16px; }

.p1-t { padding-top: 1px; }
.p2-t { padding-top: 2px; }
.p4-t { padding-top: 4px; }
.p8-t { padding-top: 8px; }
.p12-t { padding-top: 12px; }
.p16-t { padding-top: 16px; }

.p1-r { padding-right: 1px; }
.p2-r { padding-right: 2px; }
.p4-r { padding-right: 4px; }
.p8-r { padding-right: 8px; }
.p12-r { padding-right: 12px; }
.p16-r { padding-right: 16px; }

.p1-b { padding-bottom: 1px; }
.p2-b { padding-bottom: 2px; }
.p4-b { padding-bottom: 4px; }
.p8-b { padding-bottom: 8px; }
.p12-b { padding-bottom: 12px; }
.p16-b { padding-bottom: 16px; }

.p1-l { padding-left: 1px; }
.p2-l { padding-left: 2px; }
.p4-l { padding-left: 4px; }
.p8-l { padding-left: 8px; }
.p12-l { padding-left: 12px; }
.p16-l { padding-left: 16px; }

/* 左右（padding-left & padding-right） */
.p1-x { padding-right: 1px; padding-left: 1px; }
.p2-x { padding-right: 2px; padding-left: 2px; }
.p4-x { padding-right: 4px; padding-left: 4px; }
.p8-x { padding-right: 8px; padding-left: 8px; }
.p12-x { padding-right: 12px; padding-left: 12px; }
.p16-x { padding-right: 16px; padding-left: 16px; }

/* 上下（padding-top & padding-bottom） */
.p1-y { padding-top: 1px; padding-bottom: 1px; }
.p2-y { padding-top: 2px; padding-bottom: 2px; }
.p4-y { padding-top: 4px; padding-bottom: 4px; }
.p8-y { padding-top: 8px; padding-bottom: 8px; }
.p12-y { padding-top: 12px; padding-bottom: 12px; }
.p16-y { padding-top: 16px; padding-bottom: 16px; }

/* 横位置 */
.al-c { text-align: center; }
.al-l { text-align: left; }
.al-r { text-align: right; }

/* 縦位置 */
.vl-t { vertical-align: top; }
.vl-m { vertical-align: middle; }
.vl-b { vertical-align: bottom; }

/* パーセント幅 */
.w10, .w10per { width: 10%; }
.w20, .w20per { width: 20%; }
.w30, .w30per { width: 30%; }
.w40, .w40per { width: 40%; }
.w50, .w50per { width: 50%; }
.w60, .w60per { width: 60%; }
.w70, .w70per { width: 70%; }
.w80, .w80per { width: 80%; }
.w90, .w90per { width: 90%; }
.w100, .w100per { width: 100%; }

/* パーセント高 */
.h10, .h10per { height: 10%; }
.h20, .h20per { height: 20%; }
.h30, .h30per { height: 30%; }
.h40, .h40per { height: 40%; }
.h50, .h50per { height: 50%; }
.h60, .h60per { height: 60%; }
.h70, .h70per { height: 70%; }
.h80, .h80per { height: 80%; }
.h90, .h90per { height: 90%; }
.h100, .h100per { height: 100%; }

/* swell高さを引用した100%高さ */
.full-height {
  height: calc(var(--swl-mv-height, 100vh) - var(--swl-headerH, 0px) - var(--swl-adminbarH, 0px));
}

/* 固定幅 - ピクセル単位 */
.w50px { width: 50px; }
.w100px { width: 100px; }
.w200px { width: 200px; }
.w300px { width: 300px; }
.w400px { width: 400px; }
.w500px { width: 500px; }

/* 最大/最小幅 */
.max-w100per { max-width: 100%; }
.max-w300px { max-width: 300px; }
.max-w500px { max-width: 500px; }
.max-w700px { max-width: 700px; }
.max-w1000px { max-width: 1000px; }
.min-w100per { min-width: 100%; }
.min-w100px { min-width: 100px; }
.min-w200px { min-width: 200px; }
.min-w300px { min-width: 300px; }

/* ビューポート幅 */
.w25vw { width: 25vw; }
.w50vw { width: 50vw; }
.w75vw { width: 75vw; }
.w100vw { width: 100vw; }

/* 特殊幅 */
.w-auto { width: auto; }
.w-fit { width: fit-content; }
.w-max { width: max-content; }
.w-min { width: min-content; }

/* オパシティ */
.opacity-0 { opacity: 0; }
.opacity-10 { opacity: 0.1; }
.opacity-20 { opacity: 0.2; }
.opacity-30 { opacity: 0.3; }
.opacity-40 { opacity: 0.4; }
.opacity-50 { opacity: 0.5; }
.opacity-60 { opacity: 0.6; }
.opacity-70 { opacity: 0.7; }
.opacity-80 { opacity: 0.8; }
.opacity-90 { opacity: 0.9; }
.opacity-100 { opacity: 1; }

/* 行間 */
.lh10 { line-height: 1; }
.lh11 { line-height: 1.1; }
.lh12 { line-height: 1.2; }
.lh13 { line-height: 1.3; }
.lh14 { line-height: 1.4; }
.lh15 { line-height: 1.5; }
.lh16 { line-height: 1.6; }
.lh17 { line-height: 1.7; }

/* ブロックスタイル */
.d-block { display: block; }
.d-inline { display: inline; }
.d-inline-block { display: inline-block; }
.d-flex { display: flex; }
.d-grid { display: grid; }
.d-none { display: none; }

/* 角丸ユーティリティ */
.r2 { border-radius: 2px; }
.r4 { border-radius: 4px; }
.r8 { border-radius: 8px; }
.r12 { border-radius: 12px; }
.r16 { border-radius: 16px; }
.r24 { border-radius: 24px; }
.r50p { border-radius: 50%; } /* 円形用 */


/* 全ての装飾を削除 */
.no-deco{
  /* ボーダー装飾を強制的に削除 */
  border: none !important;
  /* before, afterの装飾も強制的に削除 */
  &::before,
  &::after {
    display: none !important;
    border: none !important;
    background: none !important;
    box-shadow: none !important;
    content: none !important;
  }
}
/* 改行禁止 */
.no-wrap {
  white-space: nowrap;
}

/* カラーフィルター */
/* セピアにするクラス */
.color-sepia {
    filter: sepia(1) !important;
  }
  
  /* モノクロにするクラス */
  .color-grayscale {
    filter: grayscale(1) !important;
  }
  
  /* 反転するクラス */
  .color-invert {
    filter: invert(1) !important;
  }

  .hover-up:hover {
    transition: transform 0.2s ease;
    transform: translate(-1px, -1px);
  }

  /* 最大サイズ指定画像 */
  .img-h100,
  .img-h100>img{
    height: 100%;
  }
  .img-w100,
  .img-w100>img{
    width: 100%;
  }

  /* 最大サイズ指定グループ */
  .group-h100,
  .group-h100>*{
    height: 100%;
  }
  .group-w100,
  .group-w100>*{
    width: 100%;
  }

  /* メディアとテキスト高さ最大化 */
  .mt-h100,
  .mt-h100>figure,
  .mt-h100>figure>img{
    height: 100%;
    object-fit: cover;
  }

  .order1{
    order: 1;
  }
  .order2{
    order: 2;
  }
  .order3{
    order: 3;
  }

  .fl-r{
    float: right;
  }
  .fl-l{
    float: left;
  }
  .fl-c{
    float: clear;
  }

  .relative{
    position: relative;
  }
/* stylelint-enable */