.card-title {
    font-size: 1.05rem;
}
.heart {
    position: relative;
    width: 20px;
    height: 20px;
    cursor: pointer;
    display: inline-block;
    background-color: grey;
    transform: rotate(-45deg);
    margin: 10px;
}

.heart::before,
.heart::after {
    content: "";
    position: absolute;
    width: 20px;
    height: 20px;
    background-color: grey;
    border-radius: 50%;
}

.heart::before {
    top: -10px;
    left: 0;
}

.heart::after {
    left: 10px;
    top: 0;
}

.heart.favorited {
    background-color: red;
}

.heart.favorited::before,
.heart.favorited::after {
    background-color: red;
}

/*虫眼鏡*/
.material-symbols-outlined {
    font-variation-settings: "FILL" 1, "wght" 300, "GRAD" 0, "opsz" 12;
    padding: 0;
}

.custom-select,
.custom-input {
    border: none;
    box-shadow: none;
    border-radius: 0;
    outline: none;
    width: 90%;
}

.sort-select {
    width: 50%;
}
@media (max-width: 576px) {
    .custom-input {
        width: 120px;
    }

    .search-item-bottom .custom-input {
        width: calc(100% - 40px) !important;
    }
}

@media (min-width: 577px) and (max-width: 768px) {
    .custom-input {
        width: 140px;
    }

    .search-item-bottom .custom-input {
        width: calc(100% - 40px) !important;
    }
}

/* 検索条件 */
.search-container {
    position: fixed;
    top: 0px;
    right: 20px;
    z-index: 1000;
    padding: 10px;
}

@media (max-width: 658px) {
    .search-container {
        top: 60px; /* ヘッダーメニューの高さに合わせて調整 */
        right: 10px;
        width: 90%; /* 幅を画面に収まるように調整 */
        left: 5%; /* 中央に配置 */
    }
}

/* 検索項目全体を1つに繋げる */
.search-item,
.search-item-top,
.search-item-bottom {
    border: none;
    padding: 5px;
    background-color: transparent;
}

/* 検索フォーム内の要素の高さ調整 */
.search-item-top .form-group,
.search-item-bottom .form-group {
    margin: 0 !important;
    height: 40px;
    display: flex;
    align-items: center;
}

.search-item-top .form-group > div {
    margin: 0 !important;
    height: 40px;
    display: flex;
    align-items: center;
}

.search-item-top select,
.search-item-bottom input {
    height: 30px !important;
    line-height: 30px;
    font-size: 14px !important;
}

.sort-label {
    height: 30px !important;
    line-height: 30px;
    font-size: 14px !important;
    width: 90px !important;
    white-space: nowrap;
    display: flex;
    align-items: center;
    padding: 0 8px !important;
}

/* 検索条件上段のスクロールバー対策 */
.search-item-top {
    height: 40px !important;
    box-sizing: border-box;
}

.search-item-top .form-group {
    box-sizing: border-box;
}

/* 検索テキスト2段 */
.search-item-top {
    display: flex !important;
    flex-wrap: nowrap;
    overflow-x: auto;
    overflow-y: hidden;
}

.search-item-bottom {
    display: flex !important;
    width: 100% !important;
}

.search-item-top .form-group {
    flex: 1;
    min-width: 0;
}

.search-item-bottom .form-group {
    width: 100%;
}

/* 並び替えラベルのサイズ調整 */
.sort-label {
    width: 70px !important;
    font-size: 12px !important;
    padding: 0 4px !important;
    white-space: nowrap;
    display: flex !important;
    align-items: center !important;
}

/* セレクトボックスのサイズ調整 */
.search-item-top select {
    font-size: 12px !important;
    padding: 0 4px !important;
    min-width: 80px;
}

.search-item-top .form-group:first-child {
    min-width: 140px;
}

.search-item-top .form-group:nth-child(2),
.search-item-top .form-group:nth-child(3) {
    min-width: 90px;
}

/* より小さいスマホサイズ向けの追加調整 */
@media (max-width: 480px) {
    .sort-label {
        width: 65px !important;
        font-size: 10px !important;
        padding: 0 2px !important;
        white-space: nowrap;
        display: flex !important;
        align-items: center !important;
    }

    .search-item-top select {
        font-size: 11px !important;
        padding: 0 2px !important;
        min-width: 70px;
    }

    .search-item-top .form-group:first-child {
        min-width: 120px;
    }

    .search-item-top .form-group:nth-child(2),
    .search-item-top .form-group:nth-child(3) {
        min-width: 80px;
    }
}

/* 項目間の縦線 */
.vertical-line {
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    height: 70%;
    width: 1px;
    background-color: #ccc;
}

.vertical-line.order-outline {
    position: absolute;
    right: 0;
    top: 35%;
    transform: translateY(-50%);
    height: 50%;
    width: 1px;
    background-color: #ccc;
}

.search-item .search-input .vertical-line {
    display: none;
}

/* 管理者用コンテナのマージン設定 */
.container {
    margin-top: 140px !important;
}

@media (max-width: 576px) {
    .container {
        margin-top: 190px !important;
    }
}

@media (min-width: 577px) and (max-width: 768px) {
    .container {
        margin-top: 160px !important;
    }
}
