@charset "UTF-8";

html {
    font-size: 15px;
}
@media (max-width: 991px) {
    body {
        font-size: 14px;
    }
}
@media (max-width: 767px) {
    body {
        font-size: 13px;
    }
}

/**
 * Bootstrap調整 (Sassでできることは、Sassでやる)
 */
.btn-primary,
.btn-outline-primary:hover,
.btn-outline-primary:active {
    color: #FFF;
}
.btn {white-space: nowrap;}

:invalid {
    background: linear-gradient(transparent 80%, #FEE 80%);
}
form:invalid {
    background: none;
}

/**
 * 独自汎用クラス
 */
.w-5 {
    width: 5% !important;
}
.w-10 {
    width: 10% !important;
}
.w-15 {
    width: 15% !important;
}
.w-20 {
    width: 20% !important;
}
@media (min-width: 768px) {
    .w-md-50 {
        width: 50% !important;
    }
}
.container-slim {
    width: 100%;
    max-width: 640px;
    padding-left: 0.5rem;
    padding-right: 0.5rem;
    margin-left: auto;
    margin-right: auto;
}
.form-readonly {
    min-height: 2.3rem;
    padding: 0.375rem 0.75rem;
    border-bottom: 1px solid #ced4da;
}
.figure-square {
    width: 100%;
    height: auto;
    margin-bottom: 0;
    aspect-ratio: 1;
}
.figure-wide {
    width: 100%;
    height: auto;
    margin-bottom: 0;
    aspect-ratio: 16/9;
}
.figure-square img,
.figure-wide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.nowrap {
    white-space: nowrap;
}

/**
 * SELECT 2調整
 */
 .select2-container .select2-selection {height: 30px; line-height: 30px;}
 .select2-container {width: 100% !important;}
 .select2-container--default .select2-selection--single {border: 1px solid #ced4da !important;}
 .select2-selection {height: 38px !important;}
 .select2-selection__rendered {line-height: 36px !important;}
 .select2-selection__arrow {height: 36px !important;}

/**
 * 共通レイアウト
 */
.page-title {
    margin-bottom: 1rem;
    padding: 1rem 1.5rem;
    background: #FFF;
    border-radius: 0.5rem;
    box-shadow: 0 0 1px rgba(0, 0, 0, 0.1);
}
.page-title > *:last-child {
    margin-bottom: 0 !important;
}
.section {
    margin-bottom: 1rem;
    padding: 1rem 1.5rem;
    background: #FFF;
    border-radius: 0.5rem;
    box-shadow: 0 0 1px rgba(0, 0, 0, 0.1);
}
.section > *:last-child {
    margin-bottom: 0 !important;
}

/**
 * ファイルアップローダー
 */
.form-uploader-preview {
    position: relative;
    display: none;
}
.has-image .form-uploader-preview {
    display: block;
}
.form-uploader-remove {
    position: absolute;
    right: -10px;
    top: -10px;
    width: 30px;
    height: 30px;
    padding: 0;
    text-align: center;
    line-height: 30px;
    border: 1px solid #EEE;
    background: #E8E8E8;
    border-radius: 15px;
}
.form-uploader-input {
    display: flex;
    width: 100%;
    height: auto;
    aspect-ratio: 16/5;
    background: #E8E8E8;
    border: 1px solid #EEEEEE;
    align-items: center;
    justify-content: center;
    color: #888;
}
.has-image .form-uploader-input {
    display: none;
}
.form-uploader-input input {
    display: none;
}
