/* スマホ　767px以下 */
@media only screen and (max-width: 767px) {
    img {
        width: 100%;
        height: auto;
    }
}
/* pc　768px以上 */
@media only screen and (min-width: 768px), print {
    img {
        width: auto;
        height: auto;
    }
}

/* タイムラインのカスタム */
@media (max-width: 768px) {
    .timeline-lg-item .timeline-custom .timeline-item-left {
        display: block;
        margin-right: 85px;
    }

    .timeline-lg-item .timeline-custom .timeline-item-right {
        display: block;
        margin-left: 85px;
    }

    .timeline .timeline-desk .timeline-custom {
        display: block;
    }
}

@media (min-width: 992px) {
    .timeline:before {
        left: 50%;
        /* margin-left: -1px; */
    }

    .timeline-step {
        left: 50%;
    }

    .timeline-content {
        width: 45%;
    }

    .timeline-block:nth-child(even) .timeline-content {
        float: right;
    }

    .timeline-item-right {
        margin-left: 53%;
    }
}
/* divタグ全体のリンク */
.DivLink {
    position: relative;
    /* width:280px;
  height:96px; */
}

    .DivLink .Link {
        display: block;
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
    }
/* テーブル見出し固定 */
table.st-tbl1 {
    text-align: left;
    position: relative;
    border-collapse: collapse;
}

    table.st-tbl1 th,
    table.st-tbl1 td {
        padding: 1rem;
        border: solid 1px #ddd;
    }

    table.st-tbl1 th {
        background: white;
        position: sticky;
        top: 0;
    }

/* ページ内スクロール */
.table-scroll {
    width: 100%;
    height: 750px;
    overflow: scroll;
    border: 5px;
}


.mdi {
    font-family: 'Material Icons';
    font-weight: normal;
    font-style: normal;
    font-size: 16px; /* Preferred icon size */
    display: inline-block;
    line-height: 1;
    text-transform: none;
    letter-spacing: normal;
    word-wrap: normal;
    white-space: nowrap;
    direction: ltr;
    color: #000000;
    /* Support for all WebKit browsers. */
    -webkit-font-smoothing: antialiased;
    /* Support for Safari and Chrome. */
    text-rendering: optimizeLegibility;
    /* Support for Firefox. */
    -moz-osx-font-smoothing: grayscale;
    /* Support for IE. */
    font-feature-settings: 'liga';
}

.hoverAction:hover {
    background: rgba(0, 0, 0, 0.05);
}

/*div要素全体にリンクをつけるために必要な要素*/
.linkbox {
    position: relative;
}

    .linkbox a {
        position: absolute;
        top: 0;
        left: 0;
        height: 100%;
        width: 100%;
    }

    .linkbox :hover {
        color: #67748e;
        background: rgba(0, 0, 0, 0.075);
    }

.media-clickable:hover {
    background-color: #eeeeee;
    border-color: #ebf7f7;
    text-decoration: none;
    transition: color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-box-shadow .15s ease-in-out;
}

/* クリックできるエリアのマウスカーソル */
.clickable {
    cursor: pointer;
}

    .clickable.card:hover {
        color: #6c757d;
        background-color: #eeeeee;
    }

.data-href {
    cursor: pointer;
}

@keyframes animation-steps-current {
    from {
        -webkit-transform: translate(-50%,-50%) scale(0);
        transform: translate(-50%,-50%) scale(0);
        opacity: 1
    }

    to {
        -webkit-transform: translate(-50%,-50%) scale(1);
        transform: translate(-50%,-50%) scale(1);
        opacity: 0
    }
}

/* 申請ステータス */
.flow {
    display: flex;
    position: relative;
    justify-content: space-between;
}

    .flow:before {
        content: "";
        display: block;
        position: absolute;
        top: 1.5em;
        width: 100%;
        height: 0.2em;
        background-color: #eef2f7;
    }

    .flow .flow-step {
        text-align: center;
        position: relative;
        display: flex;
        justify-content: center;
    }

        .flow .flow-step .flow-step-icon {
            position: relative;
            margin: auto;
            height: 48px;
            width: 48px;
        }

        .flow .flow-step.current .flow-step-icon:before {
            content: "";
            display: block;
            position: absolute;
            top: 50%;
            left: 50%;
            width: 48px;
            height: 48px;
            padding: 1em;
            background-color: #ffffff;
            border-radius: 50%;
            opacity: 0;
            -webkit-animation-name: animation-steps-current;
            animation-name: animation-steps-current;
            -webkit-animation-duration: 2s;
            animation-duration: 2s;
            -webkit-animation-iteration-count: infinite;
            animation-iteration-count: infinite;
            -webkit-animation-timing-function: ease-out;
            animation-timing-function: ease-out;
        }

        .flow .flow-step .flow-step-icon i {
            border-radius: 50%;
            color: #fff;
            background-color: #a8abb1;
            display: flex;
            align-items: center;
            justify-content: center;
            height: 100%;
        }

        .flow .flow-step .flow-step-content {
            position: absolute;
            width: 100px;
            top: 56px;
        }

            .flow .flow-step .flow-step-content h6 {
                font-weight: 600;
                font-size: 0.75rem;
                line-height: 1.25;
                margin-bottom: 0;
            }

            .flow .flow-step .flow-step-content p {
                font-size: 0.65rem;
            }

    .flow .process-line {
        display: block;
        position: absolute;
        top: 1.5em;
        width: 50%;
        height: 0.2em;
        background-color: #787878;
    }


/* FIX ダイアログが低い */
.swal2-container {
    z-index: 20000 !important;
}

.text-black {
    color: #122434 !important;
}

.card.card-background.card-background-mask-light-pink:after {
    background-image: linear-gradient(310deg, #ffffff 0%, #fceeff 100%);
    opacity: .90;
}

/* フッターの固定 */
.main-content {
    min-height: 100vh;
}

    .main-content footer {
        position: sticky;
        top: 100%;
    }

/* グラデーション */
.bg-gradient-jahis {
    /* background-image: linear-gradient(135deg, #1e008cc9, #005ead 20%, #005fad82 60%);*/
    /* Created with https://www.css-gradient.com */

    background: linear-gradient(90deg, rgba(96, 17, 173, 0.52) 0%, rgba(0, 94, 173, 0.85) 0%, rgba(238, 130, 238, 0) 53%, rgba(238, 130, 238, 0) 53%, rgba(0, 94, 173, 0.8) 100%);
}

.bg-gradient-twilight {
    background-image: linear-gradient(0deg, rgba(0, 0, 0, 0), rgba(139, 0, 0, 0.6) 10%, rgba(17, 0, 50, 0.8) 50%, rgba(0, 0, 0, 1));
}
/* https://front-end-tools.com/generateGradient/ */

/* 薄い色 */
.bg-info-light {
    background-color: #17c2e82f !important;
}

.card-dismissible {
    padding-right: 3rem;
}

    .card-dismissible .btn-close {
        position: absolute;
        top: 0;
        right: 0;
        z-index: 2;
        padding: 0.6rem 1rem;
    }

.disable-overlay {
    position: relative;
}

    .disable-overlay .disable-overlay-filter {
        position: absolute;
        width: 100%;
        height: 100%;
        background: rgba(0, 0, 0, 0.3);
        text-align: center;
        border-radius: 1rem;
        z-index: 10;
    }
/* 担当者ページの開閉 */
.slideout {
    animation: slideout .3s ease-out;
}

.slidein {
    animation: slidein .4s ease-out;
}

@keyframes slideout {
    from {
        transform: translateY(50%)
    }

    to {
        transform: translateY(0)
    }
}

@keyframes slidein {
    from {
        transform: translateY(-30%);
        opacity: 0;
    }

    to {
        transform: translateY(0);
        opacity: 1;
    }
}

/* 予約状況 - 自分の予約 */
.border-cs-primary {
    border-color: #bbbbbb;
    border-width: 2px;
    border-style: solid;
}

/* 左メニュー - 選択時のアイコンカラー */
.navbar-vertical .navbar-nav > .nav-item .nav-link.active .icon {
    color: #fff;
}

/* データテーブル - ページャを右端へ移動 */
.dataTable-table {
    padding-bottom: 1em;
}

.dataTables_paginate.paging_simple_numbers {
    float: right;
}

/* form lable - オプショナル項目 */
.label-optional {
    color: #8697AA;
    font-weight: 400;
    font-size: 0.75rem;
    margin-left: 0.5rem;
}

/* トースト */
.toast {
    position: relative;
    z-index: 12;
}

    .toast .progress-bar {
        animation: fill 3s linear 1;
    }

    .toast .toast-header {
        background-color: rgba(255, 255, 255, 0.10);
    }

    .toast .toast-body {
        background-color: rgba(255, 255, 255, 0.65);
    }

@keyframes fill {
    0% {
        width: 100%;
    }

    100% {
        width: 0%;
    }
}

/* 読み込み中の表示 */
#loader {
    display: none;
}

    #loader.loading {
        display: flex;
        opacity: 0.9;
        transition: opacity 500ms;
        position: fixed;
        z-index: 15000;
        height: 100%;
        width: 100%;
        margin: 0;
        padding: 0;
        background: #333333;
    }
/* カレンダー用のテーブル */
.holidays-row {
    background: #d9dee3 !important;
}

.todays-row {
    background: #cceefb;
}

.table-fixed-header th {
    background: white;
    position: sticky;
    top: 0;
}
/* カレンダーのフェード */
.calendar-body {
    transition: all 1s;
}

.calendar-anime-up {
    transition: all 0.5s ease-in;
    margin-top: 60vw;
    opacity: 0;
}

.calendar-anime-down {
    transition: all 0.5s ease-in;
    margin-top: -60vw;
    opacity: 0;
}

.calendar-anime-right {
    transition: all 0.5s ease-in;
    margin-left: 60vw;
    opacity: 0;
}
/* 長い文章は省略 */
.ellipsis {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ellipsis-200 {
    max-width: 200px; /* 省略せずに表示するサイズを指定 */
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ellipsis-300 {
    max-width: 300px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
/* モーダルの閉じるボタンの調整 */
.modal .btn-close {
    font-size: 2.5em;
    font-weight: bold;
    line-height: 0px;
    padding: 0;
    margin-right: 0;
}
/* 参加委員会の選択ページのセレクトボックスの調整 */
.form-check-committee-table {
    display: block;
    min-height: 1.5rem;
    margin-bottom: 0.125rem;
}
/* 長い文章を3行だけ表示 */
.line-clamp {
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
/* 画像を高さ固定でトリミング */
.img-fit-240 {
    width: 100%;
    height: 240px;
    object-fit: cover;
}
/* フッター固定のボタン領域 */
.footer-buttons {
    position: sticky;
    bottom: 10px;
    background: rgba(255, 255, 255, 0.7);
    padding: 10px;
}
/* テーブルのヘッダーで並び替えアイコンのデザイン */
.dataTable th.sorting {
    cursor: pointer
}

    .dataTable th.sorting.sorting_asc:before {
        content: "\f0d8"; /* キャレットアップ */
        font-family: "FontAwesome";
        padding-right: 5px;
        color: #8097bf;
    }

    .dataTable th.sorting.sorting_desc:before {
        content: "\f0d7"; /* キャレットダウン */
        font-family: "FontAwesome";
        padding-right: 5px;
        color: #8097bf;
    }
/* 委員会選択ページでの行グループの開閉 */
.js-division .collapse-btn::before {
    content: "\2b"; /* プラス */
    font-family: "FontAwesome";
    padding-right: 5px;
    cursor: pointer;
    font-size: medium;
    color: #8097bf;
}

.js-division .collapse-btn:hover:before {
    color: #6c757d !important;
    font-weight: bolder;
}

.js-division.show .collapse-btn::before {
    content: "\f068"; /* マイナス */
    font-family: "FontAwesome";
}
/* 改行コードを含む文章 */
.line-break {
    white-space: pre-line;
}
/* 長い文章を表示する行数の制限 */
.max-lines {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
}

    .max-lines.max-lines-6 {
        -webkit-line-clamp: 6;
    }
/* 委員会選択の選択できない行 */
.disable-row {
    background: #f3f3f3;
}
/* 中止された行 */
.cancel-row {
    background: #f3f3f3;
}
/* 書き込みを制限 */
textarea:read-only {
    box-shadow: none;
}

/*ヘッダーメニュータブとコンテンツのタブの重なりを調整 */
.tab-nav-bar {
    backdrop-filter: saturate(200%) blur(30px);
}

/* 7色の部会 */
.rainbow-1-1 {
    background: linear-gradient(310deg, rgba(49, 13, 14, 1.0) 0%, rgba(0, 94, 173, 1.0) 100%);
}

.rainbow-1-2 {
    background: linear-gradient(310deg, rgba(49, 13, 14, 0.8) 0%, rgba(0, 94, 173, 0.8) 100%);
}

.rainbow-1-3 {
    background: linear-gradient(310deg, rgba(49, 13, 14, 0.6) 0%, rgba(0, 94, 173, 0.6) 100%);
}

.rainbow-1-4 {
    background: linear-gradient(310deg, rgba(49, 13, 14, 0.4) 0%, rgba(0, 94, 173, 0.4) 100%);
}

.rainbow-2-1 {
    background: linear-gradient(310deg, rgba(98, 117, 148, 1.0) 0%, rgba(168, 184, 216, 1.0) 100%);
}

.rainbow-2-2 {
    background: linear-gradient(310deg, rgba(98, 117, 148, 0.8) 0%, rgba(168, 184, 216, 0.8) 100%);
}

.rainbow-2-3 {
    background: linear-gradient(310deg, rgba(98, 117, 148, 0.6) 0%, rgba(168, 184, 216, 0.6) 100%);
}

.rainbow-2-4 {
    background: linear-gradient(310deg, rgba(98, 117, 148, 0.4) 0%, rgba(168, 184, 216, 0.4) 100%);
}

.rainbow-3-1 {
    background: linear-gradient(310deg, rgba(98, 161, 64, 1.0) 0%, rgba(145, 237, 95, 1.0) 100%);
}

.rainbow-3-2 {
    background: linear-gradient(310deg, rgba(98, 161, 64, 0.8) 0%, rgba(145, 237, 95, 0.8) 100%);
}

.rainbow-3-3 {
    background: linear-gradient(310deg, rgba(98, 161, 64, 0.6) 0%, rgba(145, 237, 95, 0.6) 100%);
}

.rainbow-3-4 {
    background: linear-gradient(310deg, rgba(98, 161, 64, 0.4) 0%, rgba(145, 237, 95, 0.4) 100%);
}

.rainbow-4-1 {
    background: linear-gradient(310deg, rgba(11, 111, 224, 1.0) 0%, rgba(11, 224, 224, 1.0) 100%);
}

.rainbow-4-2 {
    background: linear-gradient(310deg, rgba(11, 111, 224, 0.8) 0%, rgba(11, 224, 224, 0.8) 100%);
}

.rainbow-4-3 {
    background: linear-gradient(310deg, rgba(11, 111, 224, 0.6) 0%, rgba(11, 224, 224, 0.6) 100%);
}

.rainbow-4-4 {
    background: linear-gradient(310deg, rgba(11, 111, 224, 0.4) 0%, rgba(11, 224, 224, 0.4) 100%);
}

.rainbow-5-1 {
    background: linear-gradient(310deg, rgba(232, 125, 14, 1.0) 0%, rgba(255, 215, 15, 1.0) 100%);
}

.rainbow-5-2 {
    background: linear-gradient(310deg, rgba(232, 125, 14, 0.8) 0%, rgba(255, 215, 15, 0.8) 100%);
}

.rainbow-5-3 {
    background: linear-gradient(310deg, rgba(232, 125, 14, 0.6) 0%, rgba(255, 215, 15, 0.6) 100%);
}

.rainbow-5-4 {
    background: linear-gradient(310deg, rgba(232, 125, 14, 0.4) 0%, rgba(255, 215, 15, 0.4) 100%);
}

.rainbow-6-1 {
    background: linear-gradient(310deg, rgba(135, 26, 84, 1.0) 0%, rgba(245, 103, 47, 1.0) 100%);
}

.rainbow-6-2 {
    background: linear-gradient(310deg, rgba(135, 26, 84, 0.8) 0%, rgba(245, 103, 47, 0.8) 100%);
}

.rainbow-6-3 {
    background: linear-gradient(310deg, rgba(135, 26, 84, 0.6) 0%, rgba(245, 103, 47, 0.6) 100%);
}

.rainbow-6-4 {
    background: linear-gradient(310deg, rgba(135, 26, 84, 0.4) 0%, rgba(245, 103, 47, 0.4) 100%);
}

.rainbow-7-1 {
    background: linear-gradient(310deg, rgba(188, 186, 207, 1.0) 0%, rgba(235, 239, 244, 1.0) 100%);
}

.rainbow-7-2 {
    background: linear-gradient(310deg, rgba(188, 186, 207, 0.8) 0%, rgba(235, 239, 244, 0.8) 100%);
}

.rainbow-7-3 {
    background: linear-gradient(310deg, rgba(188, 186, 207, 0.6) 0%, rgba(235, 239, 244, 0.6) 100%);
}

.rainbow-7-4 {
    background: linear-gradient(310deg, rgba(188, 186, 207, 0.4) 0%, rgba(235, 239, 244, 0.4) 100%);
}

.rainbow-8-1 {
    background: linear-gradient(310deg, rgba(20, 23, 39, 1.0) 0%, rgba(124, 100, 181, 1.0) 100%);
}

.rainbow-8-2 {
    background: linear-gradient(310deg, rgba(20, 23, 39, 0.8) 0%, rgba(124, 100, 181, 0.8) 100%);
}

.rainbow-8-3 {
    background: linear-gradient(310deg, rgba(20, 23, 39, 0.6) 0%, rgba(124, 100, 181, 0.6) 100%);
}

.rainbow-8-4 {
    background: linear-gradient(310deg, rgba(20, 23, 39, 0.4) 0%, rgba(124, 100, 181, 0.4) 100%);
}

.rainbow-border {
    border-radius: 9px;
    padding: 3px;
}

    .rainbow-border .rainbow-inner {
        border-radius: 7px;
    }

/* 委員会のアイコン画像 */
.committee-icon {
    width: 32px;
    height: 32px;
    border-radius: inherit;
}

/*
    部会レインボーの編集用メモ　Thema ColorのGradientから透過を付け足すためrgbaに変換しています
    数字は始めが部会ID、2つ目は委員会レベルID
.rainbow-1-1 { background: linear-gradient(310deg, rgba(49, 13, 14, 1.0) 0%, rgba(0, 94, 173, 1.0) 100%); }
.rainbow-1-2 { background: linear-gradient(310deg, rgba(49, 13, 14, 0.8) 0%, rgba(0, 94, 173, 0.8) 100%); }
.rainbow-1-3 { background: linear-gradient(310deg, rgba(49, 13, 14, 0.6) 0%, rgba(0, 94, 173, 0.6) 100%); }
.rainbow-1-4 { background: linear-gradient(310deg, rgba(49, 13, 14, 0.4) 0%, rgba(0, 94, 173, 0.4) 100%); }

.rainbow-2-1 { background: linear-gradient(310deg, rgba(98, 117, 148, 1.0) 0%, rgba(168, 184, 216, 1.0) 100%); }
.rainbow-2-2 { background: linear-gradient(310deg, rgba(98, 117, 148, 0.8) 0%, rgba(168, 184, 216, 0.8) 100%); }
.rainbow-2-3 { background: linear-gradient(310deg, rgba(98, 117, 148, 0.6) 0%, rgba(168, 184, 216, 0.6) 100%); }
.rainbow-2-4 { background: linear-gradient(310deg, rgba(98, 117, 148, 0.4) 0%, rgba(168, 184, 216, 0.4) 100%); }

.rainbow-3-1 { background: linear-gradient(310deg, rgba(98, 161, 64, 1.0) 0%, rgba(145, 237, 95, 1.0) 100%); }
.rainbow-3-2 { background: linear-gradient(310deg, rgba(98, 161, 64, 0.8) 0%, rgba(145, 237, 95, 0.8) 100%); }
.rainbow-3-3 { background: linear-gradient(310deg, rgba(98, 161, 64, 0.6) 0%, rgba(145, 237, 95, 0.6) 100%); }
.rainbow-3-4 { background: linear-gradient(310deg, rgba(98, 161, 64, 0.4) 0%, rgba(145, 237, 95, 0.4) 100%); }

.rainbow-4-1 { background: linear-gradient(310deg, rgba(11, 111, 224, 1.0) 0%, rgba(11, 224, 224, 1.0) 100%); }
.rainbow-4-2 { background: linear-gradient(310deg, rgba(11, 111, 224, 0.8) 0%, rgba(11, 224, 224, 0.8) 100%); }
.rainbow-4-3 { background: linear-gradient(310deg, rgba(11, 111, 224, 0.6) 0%, rgba(11, 224, 224, 0.6) 100%); }
.rainbow-4-4 { background: linear-gradient(310deg, rgba(11, 111, 224, 0.4) 0%, rgba(11, 224, 224, 0.4) 100%); }

.rainbow-5-1 { background: linear-gradient(310deg, rgba(232, 125, 14, 1.0) 0%, rgba(255, 215, 15, 1.0) 100%); }
.rainbow-5-2 { background: linear-gradient(310deg, rgba(232, 125, 14, 0.8) 0%, rgba(255, 215, 15, 0.8) 100%); }
.rainbow-5-3 { background: linear-gradient(310deg, rgba(232, 125, 14, 0.6) 0%, rgba(255, 215, 15, 0.6) 100%); }
.rainbow-5-4 { background: linear-gradient(310deg, rgba(232, 125, 14, 0.4) 0%, rgba(255, 215, 15, 0.4) 100%); }

.rainbow-6-1 { background: linear-gradient(310deg, rgba(135, 26, 84, 1.0) 0%, rgba(245, 103, 47, 1.0) 100%); }
.rainbow-6-2 { background: linear-gradient(310deg, rgba(135, 26, 84, 0.8) 0%, rgba(245, 103, 47, 0.8) 100%); }
.rainbow-6-3 { background: linear-gradient(310deg, rgba(135, 26, 84, 0.6) 0%, rgba(245, 103, 47, 0.6) 100%); }
.rainbow-6-4 { background: linear-gradient(310deg, rgba(135, 26, 84, 0.4) 0%, rgba(245, 103, 47, 0.4) 100%); }

.rainbow-7-1 { background: linear-gradient(310deg, rgba(188, 186, 207, 1.0) 0%, rgba(235, 239, 244, 1.0) 100%); }
.rainbow-7-2 { background: linear-gradient(310deg, rgba(188, 186, 207, 0.8) 0%, rgba(235, 239, 244, 0.8) 100%); }
.rainbow-7-3 { background: linear-gradient(310deg, rgba(188, 186, 207, 0.6) 0%, rgba(235, 239, 244, 0.6) 100%); }
.rainbow-7-4 { background: linear-gradient(310deg, rgba(188, 186, 207, 0.4) 0%, rgba(235, 239, 244, 0.4) 100%); }

.rainbow-8-1 { background: linear-gradient(310deg, rgba(20, 23, 39, 1.0) 0%, rgba(124, 100, 181, 1.0) 100%); }
.rainbow-8-2 { background: linear-gradient(310deg, rgba(20, 23, 39, 0.8) 0%, rgba(124, 100, 181, 0.8) 100%); }
.rainbow-8-3 { background: linear-gradient(310deg, rgba(20, 23, 39, 0.6) 0%, rgba(124, 100, 181, 0.6) 100%); }
.rainbow-8-4 { background: linear-gradient(310deg, rgba(20, 23, 39, 0.4) 0%, rgba(124, 100, 181, 0.4) 100%); }
*/

.ribbon-box {
    position: relative;
    /* Ribbon two */
}

    .ribbon-box .ribbon {
        position: relative;
        clear: both;
        padding: 5px 12px;
        margin-bottom: 15px;
        -webkit-box-shadow: 2px 5px 10px rgba(49, 58, 70, 0.15);
        box-shadow: 2px 5px 10px rgba(49, 58, 70, 0.15);
        color: #fff;
        font-size: 13px;
        font-weight: 600;
    }

        .ribbon-box .ribbon:before {
            content: " ";
            border-style: solid;
            border-width: 10px;
            display: block;
            position: absolute;
            bottom: -10px;
            left: 0;
            margin-bottom: -10px;
            z-index: -1;
        }

        .ribbon-box .ribbon.float-left {
            margin-left: -30px;
            border-radius: 0 3px 3px 0;
        }

        .ribbon-box .ribbon.float-right {
            margin-right: -30px;
            border-radius: 3px 0 0 3px;
        }

            .ribbon-box .ribbon.float-right:before {
                right: 0;
            }

        .ribbon-box .ribbon.float-center span {
            margin: 0 auto 20px auto;
        }

    .ribbon-box .ribbon-content {
        clear: both;
    }

    .ribbon-box .ribbon-success {
        background: #0acf97;
    }

        .ribbon-box .ribbon-success:before {
            border-color: #09b785 transparent transparent;
        }

    .ribbon-box .ribbon-two {
        position: absolute;
        left: -5px;
        top: -5px;
        z-index: 1;
        overflow: hidden;
        width: 110px;
        height: 110px;
        text-align: right;
    }

        .ribbon-box .ribbon-two span {
            font-size: 13px;
            color: #fff;
            text-align: center;
            line-height: 20px;
            height: 20px;
            -webkit-transform: rotate(-45deg);
            transform: rotate(-45deg);
            width: 140px;
            display: block;
            -webkit-box-shadow: 0 0 8px 0 rgba(49, 58, 70, 0.08), 0 1px 0 0 rgba(49, 58, 70, 0.03);
            box-shadow: 0 0 8px 0 rgba(49, 58, 70, 0.08), 0 1px 0 0 rgba(49, 58, 70, 0.03);
            position: absolute;
            top: 34px;
            left: -27px;
            font-weight: 600;
        }

            .ribbon-box .ribbon-two span:before {
                content: "";
                position: absolute;
                left: 0;
                top: 100%;
                z-index: -1;
                border-right: 3px solid transparent;
                border-bottom: 3px solid transparent;
            }

            .ribbon-box .ribbon-two span:after {
                content: "";
                position: absolute;
                right: 0;
                top: 100%;
                z-index: -1;
                border-left: 3px solid transparent;
                border-bottom: 3px solid transparent;
            }

    .ribbon-box .ribbon-two-success span {
        background: #0acf97;
    }

        .ribbon-box .ribbon-two-success span:before {
            border-left: 3px solid #09b785;
            border-top: 3px solid #09b785;
        }

        .ribbon-box .ribbon-two-success span:after {
            border-right: 3px solid #09b785;
            border-top: 3px solid #09b785;
        }

/* フッター固定のボタン領域 */
.footer-buttons {
    background: rgba(248, 249, 250, 0.7);
    text-align: right;
    position: sticky;
    bottom: 10px;
    padding: 10px;
    margin-top: 1.5rem;
}

    .footer-buttons .btn {
        margin-bottom: 0;
    }

/* 長い文章は省略 */
.ellipsis {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ellipsis-200 {
    max-width: 200px; /* 省略せずに表示するサイズを指定 */
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ellipsis-300 {
    max-width: 300px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ellipsis-td {
    max-width: 0; /* HACK: Tableでは通常ellipsisが効かない */
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.w8p {
    width: 8%;
}

.w40p {
    width: 40%;
}

/* NOTE: soft-ui-dashboard.css への上書き. fullcalendar の"●"を非表示にする. */
.fc-daygrid-event-dot {
    display: none;
}

/* NOTE: soft-ui-dashboard.css への上書き リッチテキストエディタの画像サイズをサイズに合わせて自動調整 */
.ql-snow .ql-editor img {
    max-width: 100%;
    display: block;
    height: auto;
}

/* NOTE: 居郁セミナーのスライダーは不要な時はナビを消す. */
.swiper-button-disabled {
    display: none !important;
}

.l-inner {
    position: relative;
    -webkit-box-sizing: content-box;
    box-sizing: content-box;
    max-width: 1600px !important;
    margin: 0 auto;
    padding: 0 10rem;
}

/* FAQのデザイン */
.guide-article {
    height: 100%;
    position: relative;
}

    .guide-article .card {
        position: fixed !important;
        right: -720px;
        top: 0;
        height: 100%;
        left: auto !important;
        transform: unset !important;
        width: 720px;
        border-radius: 0;
        padding: 0 10px;
        transition: 0.2s ease;
        z-index: 10000; /* WARN: 左サイドメニューとのかぶりを考慮 */
    }

        .guide-article .card.show {
            right: 360px;
        }

    .guide-article img {
        max-width: 100%;
        width: auto;
        height: auto;
    }

.fixed-plugin .card {
    z-index: 10001; /* WARN: 再表示で右サイドメニューの下をくぐるように高さを上書き */
}

.fixed-plugin .navbar-nav .nav-item {
    width: 100%;
}

.fixed-plugin .navbar-nav .nav-link {
    padding-right: 1rem;
    font-weight: 500;
    color: #67748e;
}

.fixed-plugin .navbar-nav .nav-item .nav-link-text {
    font-weight: 600;
}

.fixed-plugin .navbar-nav .nav-item .collapse .nav .nav-item .nav-link:before, .fixed-plugin .navbar-nav .nav-item .collapsing .nav .nav-item .nav-link:before {
    content: "";
    position: absolute;
    left: -18px;
    top: 50%;
    transform: translate(0, -50%);
    height: 5px;
    width: 5px;
    border-radius: 1.5rem;
    background: rgba(124, 100, 181, 0.5);
}

.fixed-plugin .navbar-nav .nav-item .collapse .nav .nav-item, .fixed-plugin .navbar-nav .nav-item .collapsing .nav .nav-item {
    position: relative;
}
.fixed-plugin .edit-link {
    position: absolute;
    padding-right: 0;
    padding-left: 0;
    top: 8px;
    right: 0;
}

.fixed-plugin .navbar-nav .nav-item .collapse .nav .nav-item .nav-link, .fixed-plugin .navbar-nav .nav-item .collapsing .nav .nav-item .nav-link {
    position: relative;
    background-color: transparent;
    box-shadow: none;
    margin-left: 1.35rem;
}

.fixed-plugin .navbar-nav .nav-link[data-bs-toggle=collapse]:after {
    display: inline-block;
    font-style: normal;
    font-variant: normal;
    text-rendering: auto;
    -webkit-font-smoothing: antialiased;
    font-family: "Font Awesome 5 Free";
    font-weight: 700;
    content: "\f107";
    margin-left: auto;
    color: rgba(124, 100, 181, 0.5);
    transition: all 0.2s ease-in-out;
}

.fixed-plugin .navbar-nav .nav-link[data-bs-toggle=collapse]:after {
    transition: none;
}

.fixed-plugin .navbar-nav .nav-link[data-bs-toggle=collapse][aria-expanded=true]:after {
    color: #7C64B5;
    transform: rotate(180deg);
}

.fixed-plugin .navbar-nav .nav-item .collapse .nav,
.fixed-plugin .navbar-nav .nav-item .collapsing .nav {
    transition: all 0.2s ease-in-out;
}

/* サイドメニューのフォントを読みやすく（Disabledとの差をつけたい） */
.navbar-vertical .navbar-nav .nav-item .collapse .nav .nav-item .nav-link, .navbar-vertical .navbar-nav .nav-item .collapsing .nav .nav-item .nav-link {
    color: #5957b1;
}
.navbar-vertical .navbar-nav .nav-item .collapse .nav .nav-item.active .nav-link, .navbar-vertical .navbar-nav .nav-item .collapsing .nav .nav-item.active .nav-link {
    color: #344767;
}

/* カレンダーデザインの調整（当日と選択日のデザインに差をつける） */
.flatpickr-calendar .flatpickr-day.today {
    background: none !important;
    color: #393939;
    border: 1px, solid, #405FC1;
}
.flatpickr-calendar .flatpickr-day.selected, .flatpickr-calendar .flatpickr-day.startRange, .flatpickr-calendar .flatpickr-day.endRange {
    background: #405FC1 !important;
    color: #fff;
    border: none;
}
.flatpickr-calendar .flatpickr-day.today:hover {
    background: rgba(94, 114, 228, 0.28) !important;
    border: 1px, solid, #405FC1;
}

/* メールプレビューで宛先などの開閉 */
.js-line-fullopen {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.js-line-fullopen .collapse-btn::before {
    content: "\2b"; /* プラス */
    font-family: "FontAwesome";
    padding-right: 5px;
    cursor: pointer;
    font-size: medium;
    color: #8097bf;
}

.js-line-fullopen .collapse-btn:hover:before {
    color: #6c757d !important;
    font-weight: bolder;
}

.js-line-fullopen.show {
    overflow: initial;
    text-overflow: initial;
    white-space: initial;
}

.js-line-fullopen.show .collapse-btn::before {
    content: "\f068"; /* マイナス */
    font-family: "FontAwesome";
}

/* リッチテキストエディタ */
.js-quill-editor {
    resize: vertical;
    overflow: auto;
}

/* 事務局専用メーリングリストの一覧で行グループ開閉 */
.js-accordion-table .collapse-btn::before {
    content: "\f0d7"; /* ▼ */
    font-family: "FontAwesome";
    padding-right: 5px;
    cursor: pointer;
    font-size: large;
    color: #8097bf;
}

.js-accordion-table .collapse-btn:hover:before {
    color: #344767 !important;
    padding-right: 4px;
    padding-left: 1px;
}

.js-accordion-table.show .collapse-btn::before {
    content: "\f0d8"; /* ▲ */
}

.text-transform-none {
    text-transform: none !important;
}
