/* =========================================================
   プラサガ専用トップデザイン v0.8.1
   「情報ポータル」ではなく「推しを探すコレクションDB」寄り
   ========================================================= */

body.plasaga-home-page{
    background:#fffaf8;
}
body.plasaga-home-page #sidebar,
body.plasaga-home-page .sidebar,
body.plasaga-home-page aside.sidebar{
    display:none !important;
}
body.plasaga-home-page #main-contents,
body.plasaga-home-page .main-contents,
body.plasaga-home-page .main-content,
body.plasaga-home-page #main-content{
    width:100% !important;
    max-width:none !important;
}

/* JIN標準の濃紺ヘッダー感を消してプラサガ専用に */
body.plasaga-home-page header,
body.plasaga-home-page #header,
body.plasaga-home-page .header-box{
    background:#ffffff !important;
    box-shadow:none !important;
}
body.plasaga-home-page header a,
body.plasaga-home-page #header a,
body.plasaga-home-page .header-box a{
    color:#2f2a2d !important;
}
body.plasaga-home-page header{
    border-bottom:1px solid #f0e7e3 !important;
}

.plasaga-home{
    background:
        radial-gradient(circle at 10% 0%, rgba(255,225,214,.58), transparent 32%),
        radial-gradient(circle at 90% 8%, rgba(232,226,255,.62), transparent 30%),
        #fffaf8;
    min-height:100vh;
    color:#2d2930;
}
.plasaga-home-inner{
    width:min(1180px,calc(100% - 30px));
    margin:0 auto;
}

.plasaga-hero{
    padding:72px 0 58px;
    background:transparent;
    border-bottom:0;
}
.plasaga-hero-copy{
    text-align:center;
}
.plasaga-home-brand{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    margin-bottom:14px;
    padding:7px 12px;
    border:1px solid #f0d9d0;
    border-radius:999px;
    background:rgba(255,255,255,.76);
    color:#b85f67;
    font-size:13px;
    font-weight:900;
    letter-spacing:.08em;
}
.plasaga-hero h1{
    margin:0;
    color:#2b2630;
    font-size:clamp(34px,5.6vw,62px);
    line-height:1.12;
    letter-spacing:-.025em;
}
.plasaga-hero-copy p{
    width:min(720px,100%);
    margin:18px auto 0;
    color:#6f6670;
    font-size:16px;
    line-height:1.8;
}

/* 検索ボックスをトップの主役に */
.plasaga-search-shell{
    position:relative;
    width:min(850px,100%);
    margin:34px auto 0;
    padding:22px;
    background:rgba(255,255,255,.94);
    border:1px solid #efe4df;
    border-radius:26px;
    box-shadow:0 18px 50px rgba(112,73,85,.12);
}
.plasaga-search-label{
    display:block;
    margin-bottom:10px;
    color:#3f3740;
    font-weight:900;
    font-size:15px;
}
.plasaga-search-row{
    display:grid;
    grid-template-columns:1fr auto;
    gap:10px;
}
.plasaga-search-row input{
    width:100%;
    min-height:58px;
    padding:0 18px;
    border:1.5px solid #e7d8d2;
    border-radius:16px;
    background:#fffdfa;
    color:#302a31;
    font-size:16px;
    outline:none;
}
.plasaga-search-row input::placeholder{
    color:#b2a4aa;
}
.plasaga-search-row input:focus{
    border-color:#d9949c;
    box-shadow:0 0 0 4px rgba(217,148,156,.13);
}
.plasaga-search-row button{
    min-width:104px;
    min-height:58px;
    padding:0 22px;
    border:0;
    border-radius:16px;
    background:linear-gradient(135deg,#d97986,#9b84d6);
    color:#fff;
    font-weight:900;
    cursor:pointer;
    box-shadow:0 8px 18px rgba(175,105,131,.18);
}
.plasaga-search-help{
    margin-top:9px;
    color:#8a7d84;
    font-size:12px;
}
.plasaga-search-results{
    position:absolute;
    z-index:30;
    top:calc(100% - 8px);
    left:22px;
    right:22px;
    overflow:hidden;
    background:#fff;
    border:1px solid #eadfda;
    border-radius:16px;
    box-shadow:0 18px 42px rgba(86,58,69,.16);
}
.plasaga-search-item{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    padding:14px 16px;
    border-bottom:1px solid #f5ece8;
    color:#332d33;
    text-decoration:none !important;
}
.plasaga-search-item:last-child{border-bottom:0}
.plasaga-search-item:hover{background:#fff8f5}
.plasaga-search-item-main{min-width:0}
.plasaga-search-name{
    display:block;
    font-weight:900;
}
.plasaga-search-sub{
    display:block;
    margin-top:3px;
    color:#8a7c83;
    font-size:12px;
}
.plasaga-search-type{
    flex:0 0 auto;
    padding:5px 9px;
    border-radius:999px;
    background:#f7eef1;
    color:#a05463;
    font-size:11px;
    font-weight:900;
}

/* 各セクション */
.plasaga-home-content{
    padding:10px 0 64px;
}
.plasaga-home-section{
    margin-top:48px;
}
.plasaga-home-section:first-child{
    margin-top:0;
}
.plasaga-section-head{
    display:flex;
    align-items:end;
    justify-content:space-between;
    gap:16px;
    margin-bottom:16px;
}
.plasaga-section-head h2{
    margin:0;
    color:#322c33;
    font-size:27px;
    letter-spacing:-.01em;
}
.plasaga-section-head > a{
    color:#a05969;
    text-decoration:none;
    font-size:13px;
    font-weight:900;
}
.plasaga-section-kicker{
    margin-bottom:5px;
    color:#bd6d79;
    font-size:11px;
    font-weight:900;
    letter-spacing:.12em;
}

/* コレクションカード感を強める */
.plasaga-home-card-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:18px;
}
.plasaga-home .plasaga-card{
    overflow:hidden;
    background:#fff;
    border:1px solid #f0e6e2;
    border-radius:22px;
    box-shadow:0 5px 18px rgba(88,61,70,.05);
    transition:.18s ease;
}
.plasaga-home .plasaga-card:hover{
    transform:translateY(-3px);
    box-shadow:0 14px 28px rgba(88,61,70,.10);
}
.plasaga-home .plasaga-card-image-link{
    display:block;
    aspect-ratio:1/1.06;
    background:linear-gradient(145deg,#f8f1ee,#f0edf8);
    overflow:hidden;
}
.plasaga-home .plasaga-card-img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
}
.plasaga-home .plasaga-card-placeholder{
    width:100%;
    height:100%;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:12px;
    color:#9a8f96;
    text-align:center;
    font-size:13px;
    font-weight:800;
}
.plasaga-home .plasaga-card-body{
    padding:14px 14px 16px;
}
.plasaga-home .plasaga-card-release{
    display:inline-flex;
    margin-bottom:8px;
    padding:4px 7px;
    border-radius:999px;
    background:#fff1f1;
    color:#b65867;
    font-size:11px;
    font-weight:900;
}
.plasaga-home .plasaga-card-title{
    margin:0 !important;
    font-size:14px !important;
    line-height:1.55 !important;
}
.plasaga-home .plasaga-card-title a{
    color:#322c33;
    text-decoration:none;
}
.plasaga-home .plasaga-card-maker{
    margin-top:9px;
    color:#91848b;
    font-size:12px;
}

/* 月セクションの空状態もブログっぽさを減らす */
.plasaga-home-empty{
    padding:34px 18px;
    background:rgba(255,255,255,.72);
    border:1px dashed #e6d7d1;
    border-radius:20px;
    color:#8c7e85;
    text-align:center;
}

/* 作品一覧は「ナビカード」風 */
.plasaga-work-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:12px;
}
.plasaga-work-grid a{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    min-height:66px;
    padding:15px 17px;
    background:rgba(255,255,255,.9);
    border:1px solid #eee1dc;
    border-radius:18px;
    color:#352e35;
    text-decoration:none !important;
    font-weight:900;
    box-shadow:0 4px 14px rgba(83,59,66,.035);
    transition:.16s ease;
}
.plasaga-work-grid a:hover{
    transform:translateY(-2px);
    border-color:#e0c4c5;
    box-shadow:0 10px 22px rgba(83,59,66,.07);
}
.plasaga-work-grid small{
    flex:0 0 auto;
    padding:4px 7px;
    border-radius:999px;
    background:#f8eff0;
    color:#a85b68;
}

@media(max-width:900px){
    .plasaga-home-card-grid{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }
}
@media(max-width:700px){
    .plasaga-home-inner{
        width:min(100% - 18px,1180px);
    }
    .plasaga-hero{
        padding:42px 0 32px;
    }
    .plasaga-hero-copy p{
        font-size:14px;
    }
    .plasaga-search-shell{
        margin-top:24px;
        padding:15px;
        border-radius:20px;
    }
    .plasaga-search-row{
        grid-template-columns:1fr;
    }
    .plasaga-search-row input{
        min-height:54px;
        border-radius:14px;
    }
    .plasaga-search-row button{
        min-height:48px;
        border-radius:14px;
    }
    .plasaga-search-results{
        left:15px;
        right:15px;
        top:calc(100% - 3px);
    }
    .plasaga-home-content{
        padding-top:6px;
    }
    .plasaga-home-section{
        margin-top:34px;
    }
    .plasaga-section-head h2{
        font-size:22px;
    }
    .plasaga-home-card-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:10px;
    }
    .plasaga-home .plasaga-card{
        border-radius:16px;
    }
    .plasaga-home .plasaga-card-body{
        padding:10px 10px 12px;
    }
    .plasaga-home .plasaga-card-title{
        font-size:13px !important;
    }
    .plasaga-work-grid{
        grid-template-columns:1fr;
    }
}


/* =========================================================
   v0.8.2 探し方導線・情報密度調整
   ========================================================= */

.plasaga-quick-nav{
    position:relative;
    z-index:5;
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:12px;
    margin-top:-20px;
}
.plasaga-quick-nav a{
    display:flex;
    flex-direction:column;
    min-height:118px;
    padding:18px 20px;
    background:rgba(255,255,255,.94);
    border:1px solid #eee1dc;
    border-radius:20px;
    box-shadow:0 8px 22px rgba(91,64,72,.06);
    color:#342d34;
    text-decoration:none !important;
    transition:.16s ease;
}
.plasaga-quick-nav a:hover{
    transform:translateY(-2px);
    box-shadow:0 14px 28px rgba(91,64,72,.10);
}
.plasaga-quick-nav-kicker{
    margin-bottom:5px;
    color:#bc6b79;
    font-size:10px;
    font-weight:900;
    letter-spacing:.12em;
}
.plasaga-quick-nav strong{
    font-size:17px;
}
.plasaga-quick-nav small{
    margin-top:5px;
    color:#8b7d85;
    line-height:1.5;
}

/* 新着が1～2件でも小さく見えすぎないようにする */
.plasaga-home-card-grid{
    grid-template-columns:repeat(4,minmax(220px,1fr));
}
@media(min-width:701px){
    .plasaga-home-card-grid{
        grid-auto-columns:minmax(220px,280px);
    }
    .plasaga-home-card-grid:has(> .plasaga-card:nth-child(1):last-child){
        grid-template-columns:minmax(260px,300px);
    }
    .plasaga-home-card-grid:has(> .plasaga-card:nth-child(2):last-child){
        grid-template-columns:repeat(2,minmax(260px,300px));
    }
    .plasaga-home-card-grid:has(> .plasaga-card:nth-child(3):last-child){
        grid-template-columns:repeat(3,minmax(240px,1fr));
    }
}

.plasaga-character-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:10px;
}
.plasaga-character-grid a{
    display:flex;
    flex-direction:column;
    justify-content:center;
    min-height:70px;
    padding:13px 15px;
    background:rgba(255,255,255,.9);
    border:1px solid #eee1dc;
    border-radius:16px;
    color:#342d34;
    text-decoration:none !important;
    transition:.16s ease;
}
.plasaga-character-grid a:hover{
    transform:translateY(-2px);
    border-color:#dfc4c5;
    box-shadow:0 8px 18px rgba(86,60,69,.07);
}
.plasaga-character-name{
    font-weight:900;
}
.plasaga-character-grid small{
    margin-top:4px;
    color:#95878e;
    font-size:11px;
}

@media(max-width:900px){
    .plasaga-quick-nav{
        grid-template-columns:1fr;
        margin-top:-10px;
    }
    .plasaga-quick-nav a{
        min-height:auto;
    }
    .plasaga-character-grid{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }
}
@media(max-width:700px){
    .plasaga-quick-nav{
        gap:8px;
    }
    .plasaga-home-card-grid{
        grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    }
    .plasaga-character-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:8px;
    }
    .plasaga-character-grid a{
        min-height:64px;
        padding:11px 12px;
    }
}


/* =========================================================
   v0.8.3 スマホ2列・画像主役カード・0件セクション対策
   ========================================================= */

/* 商品カードは画像を主役にして高さを揃える */
.plasaga-home .plasaga-card{
    min-width:0;
}
.plasaga-home .plasaga-card-image-link{
    aspect-ratio:1/1;
}
.plasaga-home .plasaga-card-img{
    object-fit:cover;
}
.plasaga-home .plasaga-card-title{
    display:-webkit-box;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:3;
    overflow:hidden;
}
.plasaga-home .plasaga-card-maker{
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}

/* PHP側で出力しないのが本筋だが、空セクションがキャッシュ等で残った時も隠せるよう補助 */
#plasaga-this-month:empty,
#plasaga-next-month:empty{
    display:none !important;
}

@media(max-width:700px){
    .plasaga-home{
        overflow-x:hidden;
    }
    .plasaga-home-inner{
        width:calc(100% - 16px);
    }
    .plasaga-home-card-grid{
        display:grid !important;
        grid-template-columns:repeat(2,minmax(0,1fr)) !important;
        gap:8px !important;
        width:100%;
    }
    .plasaga-home .plasaga-card{
        width:100% !important;
        min-width:0 !important;
        max-width:none !important;
        border-radius:14px;
    }
    .plasaga-home .plasaga-card-image-link{
        width:100%;
        aspect-ratio:1/1;
    }
    .plasaga-home .plasaga-card-body{
        padding:9px 9px 11px;
    }
    .plasaga-home .plasaga-card-release{
        margin-bottom:6px;
        padding:4px 7px;
        font-size:10px;
    }
    .plasaga-home .plasaga-card-title{
        font-size:12px !important;
        line-height:1.5 !important;
        -webkit-line-clamp:3;
    }
    .plasaga-home .plasaga-card-maker{
        margin-top:7px;
        font-size:10px;
    }
    .plasaga-section-head{
        align-items:center;
    }
    .plasaga-section-head > a{
        font-size:12px;
    }
}

/* 極端に狭い端末でも2列を維持しつつ破綻させない */
@media(max-width:380px){
    .plasaga-home-card-grid{
        gap:6px !important;
    }
    .plasaga-home .plasaga-card-body{
        padding:8px;
    }
    .plasaga-home .plasaga-card-title{
        font-size:11px !important;
    }
}

/* v0.8.4 商品カード完成版 */
.plasaga-home .plasaga-card{position:relative;}
.plasaga-home .plasaga-card-hit{position:absolute;inset:0;z-index:5;border-radius:inherit;}
.plasaga-home .plasaga-card-image-link{position:relative;z-index:1;}
.plasaga-home .plasaga-card-body{position:relative;z-index:2;pointer-events:none;}
.plasaga-home .plasaga-card-badges{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:8px;}
.plasaga-home .plasaga-card-release,.plasaga-home .plasaga-card-status{display:inline-flex;align-items:center;width:max-content;margin:0;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:800;line-height:1.1;}
.plasaga-home .plasaga-card-status{background:#f4f0ff;color:#7051a6;}
.plasaga-home .plasaga-card-title{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;min-height:4.65em;color:#18213b;}
.plasaga-home .plasaga-card-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:10px;}
.plasaga-home .plasaga-card-tag{display:inline-flex;align-items:center;padding:4px 7px;border:1px solid #eaded9;border-radius:999px;background:#fffaf8;color:#76656b;font-size:10px;font-weight:700;line-height:1.1;}
.plasaga-home .plasaga-card-tag.is-exclusive{background:#fff0f3;border-color:#f6d5dc;color:#c65368;}
@media(max-width:700px){.plasaga-home .plasaga-card-badges{gap:4px;margin-bottom:6px}.plasaga-home .plasaga-card-release,.plasaga-home .plasaga-card-status{padding:4px 6px;font-size:9px}.plasaga-home .plasaga-card-tags{gap:4px;margin-top:7px}.plasaga-home .plasaga-card-tag{padding:3px 5px;font-size:8px}.plasaga-home .plasaga-card-title{min-height:4.5em}}


/* v0.8.5 商品カード最終微調整：高さ統一・スマホ4行・小型タグ */
.plasaga-home-card-grid{
    align-items:stretch;
}
.plasaga-home .plasaga-card{
    height:100%;
    display:flex;
    flex-direction:column;
}
.plasaga-home .plasaga-card-image-link{
    flex:0 0 auto;
}
.plasaga-home .plasaga-card-body{
    flex:1 1 auto;
    display:flex;
    flex-direction:column;
}
.plasaga-home .plasaga-card-tags{
    margin-top:auto;
    padding-top:8px;
}
@media(max-width:700px){
    .plasaga-home .plasaga-card-title{
        -webkit-line-clamp:4;
        min-height:6em;
    }
    .plasaga-home .plasaga-card-tags{
        gap:3px;
        margin-top:auto;
        padding-top:6px;
    }
    .plasaga-home .plasaga-card-tag{
        padding:3px 5px;
        font-size:7.5px;
        line-height:1.05;
    }
}
@media(max-width:380px){
    .plasaga-home .plasaga-card-title{
        -webkit-line-clamp:4;
        min-height:6em;
    }
    .plasaga-home .plasaga-card-tag{
        padding:3px 4px;
        font-size:7px;
    }
}

/* v0.10.93 作品の五十音フィルター */
.plasaga-kana-filter{display:flex;flex-wrap:wrap;gap:7px;margin:0 0 16px}
.plasaga-kana-filter button{appearance:none;border:1px solid #ead8d2;background:#fff;border-radius:999px;padding:7px 12px;min-width:42px;color:#283b70;font-weight:700;cursor:pointer}
.plasaga-kana-filter button:hover,.plasaga-kana-filter button.is-active{background:#405489;color:#fff;border-color:#405489}
#plasaga-work-kana-grid [hidden]{display:none!important}
@media(max-width:600px){.plasaga-kana-filter{gap:6px}.plasaga-kana-filter button{padding:6px 9px;min-width:38px;font-size:12px}}

#plasaga-character-kana-grid [hidden]{display:none!important}

/* v0.10.101 作品・キャラクター一覧ページ */
.plasaga-directory-summary{margin:0 0 14px;color:#64748b;font-size:13px}
.plasaga-directory-pagination{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:24px}
.plasaga-directory-pagination a,.plasaga-directory-pagination span{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:8px 14px;border:1px solid #dbe3ef;border-radius:999px;background:#fff;text-decoration:none;font-weight:700}
.plasaga-directory-pagination span{background:#f8fafc;color:#64748b}
@media(max-width:600px){
  .plasaga-directory-pagination{gap:8px}
  .plasaga-directory-pagination a,.plasaga-directory-pagination span{padding:7px 10px;font-size:13px}
}

/* v0.10.103 月別プライズ */
.plasaga-monthly-entry{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:6px 0 34px;padding:16px 18px;border:1px solid #eadfdc;border-radius:16px;background:#fff}
.plasaga-monthly-entry strong{display:block;color:#283b70}
.plasaga-monthly-entry small{display:block;margin-top:4px;color:#7a7171}
.plasaga-monthly-entry a{flex:0 0 auto;text-decoration:none;font-weight:700;color:#283b70}
.plasaga-month-selector{display:flex;align-items:center;gap:10px;margin:0 0 12px;padding:12px 14px;border:1px solid #eadfdc;border-radius:14px;background:#fff}
.plasaga-month-selector label{font-weight:700;color:#283b70}
.plasaga-month-selector select{min-width:150px;padding:7px 10px;border:1px solid #d8dbe3;border-radius:8px;background:#fff}
.plasaga-month-quick-links{display:flex;flex-wrap:wrap;gap:7px;margin:0 0 18px}
.plasaga-month-quick-links a{display:inline-flex;align-items:center;justify-content:center;padding:7px 11px;border:1px solid #ead8d2;border-radius:999px;background:#fff;color:#283b70;text-decoration:none;font-weight:700;font-size:13px}
.plasaga-month-quick-links a.is-active{background:#405489;color:#fff;border-color:#405489}
@media(max-width:600px){
  .plasaga-monthly-entry{align-items:flex-start;flex-direction:column}
  .plasaga-monthly-entry a{width:100%;text-align:right}
  .plasaga-month-selector{align-items:stretch;flex-direction:column}
  .plasaga-month-selector select{width:100%}
}

/* v0.10.105: 作品・キャラクター一覧の2段階五十音フィルター */
.plasaga-kana-filter,.plasaga-kana-subfilter{display:flex;flex-wrap:wrap;gap:7px;margin:16px 0 10px}
.plasaga-kana-filter a,.plasaga-kana-subfilter a{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:7px 12px;border:1px solid #dbe3ef;border-radius:999px;background:#fff;color:#334155;text-decoration:none;font-size:13px;font-weight:700;line-height:1.2}
.plasaga-kana-filter a.is-active,.plasaga-kana-subfilter a.is-active{border-color:#334155;background:#334155;color:#fff}
.plasaga-kana-subfilter{margin-top:0;padding:10px;border-radius:12px;background:#f8fafc}
.plasaga-kana-subfilter a{min-width:42px}
@media(max-width:600px){.plasaga-kana-filter,.plasaga-kana-subfilter{gap:6px}.plasaga-kana-filter a,.plasaga-kana-subfilter a{min-height:36px;padding:6px 10px;font-size:12px}.plasaga-kana-subfilter a{min-width:38px}}
