@charset "utf-8";

#theme {
    background:url("../img/theme_catalog.gif") no-repeat right center;
    background-color: #897abf;
    color: #fff;
}
#theme .contents {}
#theme p {}

#theme .bottom-right {
    text-align: right;       /* 文字を右寄せ(right align)にする */
    margin-top: 50px;        /* 上の文章との間の隙間（下側へ押し出す） */
    margin-bottom: 0px;        /* 下側の余計な隙間をゼロにする */
    font-size: 0.8rem;       /*文字を80%控えめにする */
    color: #fff;
    /* opacity: 0.9;            透明度を出して馴染ませる */
    text-shadow: 3px 3px 6px #6a5acd; /* 少し濃いめの紫（スレートブルー） */
}


/*枠*/
.search {
    display: flex;
    flex-wrap: wrap;
}
.search .filter {
    width: 300px;
    margin-right: 40px;
}
.search .results {
    flex: 1;
}

/*-------------------------*/
/*検索項目*/
/*-------------------------*/
.filter {}

/*見出し*/
.filter .title {
    margin-bottom: 30px;
}

/*検索項目*/
.filter dl {
    margin: 0;
}
.filter dl~dl {
    margin-top: 15px;
}
.filter dt {
    background:url("../img/icon_filter.png") no-repeat left center;
    background-size: 18px;    
    font-weight: bold;
    margin-bottom: 20px;
    padding-left: 30px;
    border-bottom: 1px #000 solid;
}
.filter dd {
    margin: 0 0 0 20px;
}
.filter dd label~label {
    margin-top: 0px;
}


/*部品*/
.filter label {
    display: block;
    line-height: 100%;
    padding: 2px 5px;letter-spacing: -0.05em; /*文字同士の隙間を少し詰める */
    border-radius: 6px;
    cursor: pointer;
    transition: background-color 0.3s;
}
.filter input:checked {
  accent-color: #33aa55;
}
.filter input:checked {
  background-color: transparent;
}
.filter label:has(input:checked) {
  background-color: #d2f1d2;
}

/*チェックボックスのサイズ*/
.filter input[type=checkbox] {
    width: 15px;
    height: 15px;
    -moz-transform:	scale(1.5);
    -webkit-transform: scale(1.5);
    transform: scale(1.5);
    margin-right: 8px;    
}

/*非表示*/
#filter-source {
    display: none;
}

/*-------------------------*/
/*カタログ一覧*/
/*-------------------------*/
.catalogs {
    display: flex;
    flex-wrap: wrap;
}
.catalogs .item {
    width: calc((100% / 3) - 10px);
    margin: 0 5px 10px;
    display: flex;
    flex-wrap: wrap;
    background-color: #f9f9f9;
    padding: 10px;
    line-height: 100%;
}

.catalogs .graph {
    width: 100%;
    max-height: 320px;
    min-height: 320px;
    border: 1px #ddd solid;
    padding: 10px;
    background-color: #fff;
}
.catalogs .summary {
    flex: 1;
    margin-bottom: 10px;
}
.catalogs a {
    text-decoration: none;
    height: 100%;
}
.catalogs a:hover {
    text-decoration: underline;
    color: #000;
}
.catalogs img {
    display: block;
    /* object-fit: cover; */
    object-fit: contain;
    height: 100%;
    margin: 0 auto;
}

.catalogs dl {
    margin: 0;
}
.catalogs dt {
    margin-top: 20px;
    margin-bottom: 15px;
    font-weight: bold;
    line-height: 120%;
    /*16-20*/
    font-size: clamp(1rem, 0.95rem + 0.25vw, 1.25rem);
}
.catalogs dd {
    margin: 0;
    /*12-14*/
    font-size: clamp(0.75rem, 0.725rem + 0.13vw, 0.875rem);
    line-height: 140%;
}
.catalogs dd~dd {
    margin-top: 10px;
}
.catalogs .status p {
    margin: 0;
}
.catalogs .status p span {
    display: inline-block;
    margin-right: 5px;
    min-width: 70px;
    text-align:justify;
    text-align-last:justify;
}



/*表示*/
.item.hiding {
  opacity: 0;
  transform: scale(0.98);
  transition: opacity 0.4s ease, transform 0.4s ease;
}
.item.hidden {
  display: none;
}


/****************************/
/*レスポンシブ*/
/****************************/
@media screen and (max-width: 1279px) {
    .catalogs .item {
        width: calc((100% / 2) - 10px);
    }
    .catalogs .graph {
        max-height: 300px;
        min-height: 300px;
    }
    .catalogs img {
        object-fit: contain;
    }
}
@media screen and (max-width: 979px) {
    .search {
        flex-direction: column;
    }
    .search .filter {
        width: 100%;
        margin-right: 0;
        margin-bottom: 30px;
        border: 1px #ddd solid;
        padding: 20px 10px 40px;
    }

    .filter .title {
        margin-bottom: 20px;
    }
    .filter dd {
        display: flex;
        flex-wrap: wrap;
        margin: 0;
        line-height: 120%;
    }
    .filter dd label~label {
        margin-top: 0;
        margin-right: 10px;
    }
    .filter input[type=checkbox] {
        margin-right: 10px;    
    }
    .filter label {
        display: flex;
        align-items: center;
    }
}

@media screen and (max-width: 779px) {
    .catalogs .graph {
        max-height: 260px;
        min-height: 260px;
    }
}

@media screen and (max-width: 579px) {
    .catalogs {
        flex-direction: column;
    }
    .catalogs .item {
        width: 100%;
        max-width: 400px;
        margin: 0 auto 20px;
    }

    .catalogs dt {
        margin-top: 7px;
        margin-bottom: 7px;
    }
    .catalogs .graph {
        max-height: 300px;
        min-height: 300px;
        margin-bottom: 10px;
    }
    .filter dl~dl {
        margin-top: 10px;
    }
    .filter dd label {
        width: calc((100% / 2) - 20px);
        margin: 0 10px 5px;
    }
    .filter dd label~label {
        margin-right: auto;
    }
}
@media screen and (max-width: 379px) {
    .search .filter {
        margin-bottom: 30px;
        padding: 20px 20px 20px;
    }
    .filter dd {
        flex-direction: column;
    }
    .filter dd label {
        width: 100%;
        margin: 0 0 5px;
    }
    .catalogs dt {
        margin: 0 auto 10px;
    }
}
/* ==========================================
   子項目の不要な隙間（ブランク）を消す設定
========================================== */
.filter dd dl {
    margin-top: 0 !important; /* 内側の dl には隙間を作らないよう命令 */
}

/* ==========================================
   画面が小さい時の「大項目」のレイアウト調整
========================================== */
@media screen and (max-width: 979px) {
    /* 1. 大項目を囲んでいる枠の横並び設定を解除する */
    .filter > dl > dd {
        display: block;
    }

    /* 2. 大項目（親カテゴリー）を横幅100%にして改行＆デザイン調整 */
    .filter > dl > dd > label {
        width: 100% !important;     /* 確実に改行させる */
        margin-top: 25px !important; /* 上の項目との間に広めの隙間を作る */
        padding-bottom: 5px;        /* 下線との間の隙間 */
        border-bottom: 2px solid #e0e0e0; /* 下線を追加して区切りを明確に */
        font-weight: bold;          /* 文字を太字にする */
    }

    /* 3. 一番最初の大項目だけは上の隙間をなくす */
    .filter > dl > dd > label:first-child {
        margin-top: 0 !important;
    }

    /* 4. 小項目の集まり字下げして階層を分かりやすくする */
    .filter > dl > dd > dl {
        margin-top: 10px;
        padding-left: 15px; 
    }
    
    /* 5. 小項目自体は横並びをキープする */
    .filter > dl > dd > dl > dd {
        display: flex;
        flex-wrap: wrap;
    }
}

/* ==========================================
   区分の見出しと仕切り線
========================================== */
.type-heading {
    margin-top: 60px; /* 上の区分との間隔をしっかり取る */
    margin-bottom: 20px; /* 下のカタログ（カード）との隙間 */
    padding-bottom: 2px; /* 線と文字の隙間 */
    border-bottom: 3px solid #897abf; /* テーマカラー（紫）の太めの仕切り線 */
    font-size: 1.5rem; /* 文字を少し大きく */
    font-weight: bold;
    color: #333;
}

/* 一番最初の区分だけは、上の間隔を無くす */
.results .type-heading:first-child {
    margin-top: 0;
}