@charset "UTF-8";

:root{
    --pc-primary:#1f2a44;
    --pc-primary-light:#2f3d63;
    --pc-accent:#d4af37;
    --pc-accent-light:#f0d66a;

    --pc-bg:#f5f7fb;
    --pc-card:#ffffff;
    --pc-border:#d9dee8;

    --pc-text:#222;
    --pc-text-light:#666;
}

/* =========================
   サイトTOP導線
========================= */

.pc-top-feature{
    margin:24px 0;
}

.pc-top-feature-visual{
    display:block;
    width:100%;
    overflow:hidden;
    border-radius:8px;
}

.pc-top-feature-visual img{
    display:block;
    width:100%;
    height:auto;
    object-fit:cover;
}

.pc-top-feature-grid{
    display:grid;
    grid-template-columns:repeat(3, minmax(0, 1fr));
    gap:14px;
    margin-top:16px;
}

.pc-top-feature-panel{
    min-width:0;
    padding:16px;
    background:#fff;
    border:1px solid var(--pc-border);
    border-top:4px solid var(--pc-accent);
    border-radius:8px;
    box-shadow:0 4px 14px rgba(0,0,0,.06);
}

.pc-top-feature-panel h3,
.post_cont .pc-top-feature-panel h3{
    margin:0 0 12px;
    color:var(--pc-primary);
    font-size:18px;
    letter-spacing:0;
}

.pc-top-feature-season{
    display:block;
    color:var(--pc-primary);
    font-weight:700;
    text-decoration:none;
}

.pc-top-feature-period{
    margin:8px 0 0;
    color:var(--pc-text-light);
    font-size:13px;
}

.pc-top-feature-posts{
    margin:0;
    padding:0;
    list-style:none;
}

.pc-top-feature-posts li + li{
    border-top:1px solid var(--pc-border);
}

.pc-top-feature-posts a{
    display:block;
    padding:8px 0;
    color:var(--pc-primary);
    text-decoration:none;
}

.pc-top-feature-posts span{
    display:inline-block;
    margin-right:6px;
    padding:2px 6px;
    color:var(--pc-primary);
    font-size:11px;
    font-weight:700;
    background:var(--pc-accent-light);
    border-radius:4px;
}

.pc-top-feature-database{
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:8px;
}

.pc-top-feature-database a{
    padding:9px 8px;
    color:var(--pc-primary);
    font-weight:700;
    text-align:center;
    text-decoration:none;
    background:var(--pc-bg);
    border:1px solid var(--pc-border);
    border-radius:6px;
}

.pc-top-feature-empty{
    margin:0;
    color:var(--pc-text-light);
    font-size:13px;
}

.pc-top-feature-more-wrap{
    margin-top:14px;
    text-align:center;
}

.pc-top-feature-more{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:180px;
    min-height:44px;
    padding:10px 24px;
    color:#fff;
    font-weight:700;
    text-decoration:none;
    background:var(--pc-primary);
    border:1px solid var(--pc-primary);
    border-radius:6px;
}

.pc-top-feature-more:hover{
    color:var(--pc-primary);
    background:#fff;
    box-shadow:none;
}

@media (max-width:782px){
    .pc-top-feature-visual img{
        aspect-ratio:2 / 1;
    }

    .pc-top-feature-grid{
        grid-template-columns:1fr;
    }
}

/* =========================
   カード共通
========================= */

.pc-card{
    position:relative;
    background:var(--pc-card);
    border:1px solid var(--pc-border);
    border-radius:16px;
    padding:24px;
    margin:24px 0;
    box-shadow:0 6px 20px rgba(0,0,0,.08);
    overflow:hidden;
}

.pc-card::before{
    content:"";
    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:4px;
    background:var(--pc-accent);
}

/* =========================
   ヘッダー
========================= */

.pc-header{
    display:flex;
    align-items:center;
    gap:24px;
    padding-bottom:20px;
    border-bottom:2px solid #edf1f6;
}

.pc-image{
    width:140px;
    height:140px;
    object-fit:contain;
    flex-shrink:0;

    padding:12px;

    border-radius:50%;

    background:
        radial-gradient(
            circle,
            #ffffff,
            #edf1f7
        );

    border:1px solid #e5e9f0;
}

h3.pc-title,
.post_cont h3.pc-title{
    margin-top:0;
}

/* =========================
   タイプ
========================= */

.pc-types{
    display:flex;
    flex-wrap:wrap;
    gap:6px;
    margin-top:10px;
}

.pc-type{
    display:inline-flex;
    align-items:center;
    justify-content:center;

    min-width:78px;

    padding:6px 12px;

    border-radius:999px;

    font-size:13px;
    font-weight:700;

    color:#fff;

    box-shadow:
        inset 0 -2px rgba(0,0,0,.15);
}

/* =========================
   タイプカラー
========================= */

.pc-type-normal{
    background:#A8A878;
}

.pc-type-fire{
    background:#F08030;
}

.pc-type-water{
    background:#6890F0;
}

.pc-type-electric{
    background:#F8D030;
    color:#333;
}

.pc-type-grass{
    background:#78C850;
}

.pc-type-ice{
    background:#98D8D8;
    color:#333;
}

.pc-type-fighting{
    background:#C03028;
}

.pc-type-poison{
    background:#A040A0;
}

.pc-type-ground{
    background:#E0C068;
    color:#333;
}

.pc-type-flying{
    background:#A890F0;
}

.pc-type-psychic{
    background:#F85888;
}

.pc-type-bug{
    background:#A8B820;
}

.pc-type-rock{
    background:#B8A038;
}

.pc-type-ghost{
    background:#705898;
}

.pc-type-dragon{
    background:#7038F8;
}

.pc-type-dark{
    background:#705848;
}

.pc-type-steel{
    background:#B8B8D0;
    color:#333;
}

.pc-type-fairy{
    background:#EE99AC;
}

/* =========================
   ステータス
========================= */

.pc-stats{
    width:100%;
    margin-top:24px;
    border-collapse:collapse;
}

.pc-stats th,
.pc-stats td,
.post_cont .pc-stats th,
.post_cont .pc-stats td{
    border-color: transparent;
}

.pc-stats .pc-stats-title,
.post_cont .pc-stats .pc-stats-title{
    padding:10px;
    color:#fff;
    font-size:16px;
    font-weight:700;
    text-align:center;

    background:
        linear-gradient(
            90deg,
            var(--pc-primary),
            var(--pc-primary-light)
        );
}

.pc-stats th,
.post_cont .pc-stats th{
    width: 90px;
    padding: 5px;
    text-align: center;
    background: #f5f7fb;
    color: var(--pc-primary);
    font-weight: 700;
    font-size: 14px;
    border-bottom: 1px solid #e5e9f0;
}

.pc-stats .pc-stat-bar-cell,
.post_cont .pc-stats .pc-stat-bar-cell{
    border-bottom:1px solid #e5e9f0;
    padding: 5px;
}

.pc-stat-bar{
    position:relative;

    height:28px;

    background:#eef2f8;

    overflow:hidden;
}

.pc-stat-fill{
    position:absolute;

    top:0;
    left:0;
    bottom:0;

    background:
        linear-gradient(
            90deg,
            var(--pc-accent),
            var(--pc-accent-light)
        );
}

.pc-stat-bar span{
    position:relative;
    z-index:2;
    display:flex;
    align-items:center;
    justify-content:center;
    height:100%;
    font-size:13px;
    font-weight:700;
    color:#111;
    text-shadow:
        -1px -1px 0 rgba(255,255,255,.9),
         1px -1px 0 rgba(255,255,255,.9),
        -1px  1px 0 rgba(255,255,255,.9),
         1px  1px 0 rgba(255,255,255,.9);
}

.pc-total-row th,
.post_cont  .pc-total-row th{
    background:var(--pc-primary);
    color:#fff;
}

.pc-total-value{
    text-align:center;

    font-size:18px;
    font-weight:700;

    background:#f8fafc;
}

.stat-low{
    background:#d9534f;
}

.stat-mid{
    background:#f0ad4e;
}

.stat-high{
    background:#5cb85c;
}

.stat-top{
    background:#337ab7;
}

/* =========================
   特性
========================= */

.pc-abilities{
    margin-top:24px;
}

.pc-abilities > strong{
    display:block;
    margin-bottom:12px;

    font-size:18px;
    font-weight:700;

    color:var(--pc-primary);
}

.pc-abilities ul,
.post_cont .pc-abilities ul{
    list-style:none;
    margin:0;
    padding:0;
}

.pc-abilities li{
    margin-bottom:12px;

    background:#fafbfd;

    border:1px solid #e4e8ef;
    border-left:5px solid var(--pc-accent);

    border-radius:10px;

    padding:14px;
}

.ability-name{
    font-size:16px;
    font-weight:700;
    margin-bottom:8px;
}

.ability-description{
    font-size:14px;
    line-height:1.8;
    color:var(--pc-text-light);
}

.ability-description p{
    margin:0;
}

/* =========================
   技・特性・アイテム
========================= */

.pc-move .pc-title,
.pc-ability .pc-title,
.pc-item .pc-title{
    /* color:var(--pc-primary);
    font-size:22px;
    font-weight:700; */
}

.pc-description{
    margin-top:12px;
    line-height:1.9;
    color:var(--pc-text);
}

/* =========================
   覚えるわざ一覧
========================= */

.pc-move-table{
    width:100%;
    margin-top:16px;
    border-collapse:collapse;
}


.pc-move-table th{
    background:
        linear-gradient(
            90deg,
            var(--pc-primary),
            var(--pc-primary-light)
        );

    color:#fff;

    padding:10px;

    text-align:center;

    font-size:14px;
}


.pc-move-table td,
.post_cont .pc-move-table td{
    padding: 5px;
    text-align:center;
    border: none;
    border-bottom: 1px solid #e5e9f0;
    font-size:14px;
}


.pc-move-table tr:nth-child(even){
    background:#f8fafc;
}


.pc-move-name{
    text-align:left;
    font-weight:700;
    color:var(--pc-primary);
}

/* =========================
   リンク
========================= */

.pc-card a{
    color:var(--pc-primary);
    text-decoration:none;
    font-weight:600;
}

.pc-card a:hover{
    color:var(--pc-accent);
}

/* =========================
   データベースページ
========================= */

.pc-page{
    background:var(--pc-bg);
    color:var(--pc-text);
    padding:32px 0 56px;
}

.pc-container{
    width:min(1120px, calc(100% - 32px));
    margin:0 auto;
}

.pc-hero{
    color:#fff;
    background:
        linear-gradient(
            135deg,
            var(--pc-primary),
            #151b2c
        );
    border-top:4px solid var(--pc-accent);
    border-radius:8px;
    padding:32px;
    margin-bottom:24px;
}

.pc-hero h1,
.pc-archive-header h1,
.pc-detail h1,
.pc-section h2{
    margin:0;
    letter-spacing:0;
}

.pc-hero h1{
    font-size:40px;
    line-height:1.2;
}

.pc-hero p{
    margin:10px 0 0;
}

.pc-kicker{
    color:var(--pc-accent-light);
    font-size:13px;
    font-weight:700;
    text-transform:uppercase;
}

.pc-link-grid,
.pc-grid{
    display:grid;
    grid-template-columns:repeat(auto-fill, minmax(190px, 1fr));
    gap:16px;
}

.pc-nav-card,
.pc-list-card,
.pc-row-card{
    color:var(--pc-primary);
    text-decoration:none;
    background:var(--pc-card);
    border:1px solid var(--pc-border);
    border-radius:8px;
    box-shadow:0 4px 14px rgba(0,0,0,.06);
}

.pc-nav-card{
    display:flex;
    flex-direction:column;
    gap:6px;
    padding:18px;
    border-top:4px solid var(--pc-accent);
}

.pc-nav-card span,
.pc-list-card strong,
.pc-row-card strong{
    font-weight:700;
}

.pc-nav-card small,
.pc-card-meta,
.pc-card-text,
.pc-row-card span{
    color:var(--pc-text-light);
    font-size:13px;
    line-height:1.6;
}

.pc-home-season-block{
    margin-top:16px;
}

.pc-home-season-block h3{
    margin:0 0 10px;
    color:var(--pc-primary);
    font-size:18px;
    letter-spacing:0;
}

.pc-home-season-list{
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(220px, 1fr));
    gap:10px;
}

.pc-home-season-card{
    display:flex;
    align-items:center;
    min-height:48px;
    padding:12px 14px;
    color:var(--pc-primary);
    text-decoration:none;
    background:#fff;
    border:1px solid var(--pc-border);
    border-left:4px solid var(--pc-accent);
    border-radius:8px;
    box-shadow:0 3px 12px rgba(0,0,0,.05);
}

.pc-home-season-card span{
    font-weight:700;
}

.pc-home-season-card:hover{
    color:var(--pc-primary-light);
    text-decoration:none;
}

.pc-home-more{
    margin-top:12px;
}

.pc-official-news-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(240px, 1fr));
    gap:14px;
}

.pc-official-news-card{
    display:flex;
    flex-direction:column;
    overflow:hidden;
    color:var(--pc-primary);
    text-decoration:none;
    background:#fff;
    border:1px solid var(--pc-border);
    border-radius:8px;
    box-shadow:0 4px 14px rgba(0,0,0,.06);
}

.pc-official-news-card:hover{
    color:var(--pc-primary-light);
    text-decoration:none;
}

.pc-official-news-image{
    display:block;
    aspect-ratio:16 / 9;
    background:#eef2f7;
}

.pc-official-news-image img{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
}

.pc-official-news-body{
    display:flex;
    flex:1;
    flex-direction:column;
    gap:8px;
    padding:12px 14px 14px;
}

.pc-official-news-meta{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
    color:var(--pc-text-light);
    font-size:12px;
    line-height:1.4;
}

.pc-official-news-category{
    flex-shrink:0;
    padding:3px 8px;
    color:var(--pc-primary);
    font-size:12px;
    font-weight:700;
    background:var(--pc-accent-light);
    border-radius:999px;
}

.pc-official-news-title{
    font-size:15px;
    font-weight:700;
    line-height:1.55;
}

.pc-archive-header h1,
.pc-detail h1{
    max-width: 100%;
    font-size: 32px;
    line-height: 1.2;
    color: #fff;
    background: linear-gradient(135deg, var(--pc-primary), #151b2c);
    border-top: 4px solid var(--pc-accent);
    border-radius: 8px;
    padding: 24px 32px;
    margin-bottom: 24px;
}

.pc-archive-header span{
    color:#fff;
    background:var(--pc-primary);
    border-radius:999px;
    padding:6px 12px;
    font-size:13px;
    font-weight:700;
}

.pc-search{
    display:grid;
    grid-template-columns:repeat(3, minmax(0, 1fr));
    gap:12px;
    background:#fff;
    border:1px solid var(--pc-border);
    border-radius:8px;
    padding:16px;
    margin-bottom:20px;
}

.pc-search-compact{
    grid-template-columns:repeat(3, minmax(0, 1fr)) auto;
}

.pc-search label,
.pc-search fieldset{
    display:flex;
    flex-direction: row;
    gap:6px;
    min-width:0;
    margin:0;
}

.pc-search span,
.pc-search legend{
    color:var(--pc-primary);
    font-size:12px;
    font-weight:700;
}

.pc-search fieldset{
    border:1px solid #e5e9f0;
    border-radius:8px;
    padding:8px;
}

.pc-search input,
.pc-search select{
    width:100%;
    height: 42px;
    border:1px solid var(--pc-border);
    border-radius:6px;
    padding:0;
    background:#fff;
}

.pc-search fieldset input + input{
    margin-top:6px;
}

.pc-search button,
.pc-search a{
    align-self:end;
    min-height:38px;
    border-radius:6px;
    padding:8px 14px;
    font-weight:700;
    text-align:center;
}

.pc-search button{
    color:#fff;
    background:var(--pc-primary);
    border:1px solid var(--pc-primary);
    cursor:pointer;
}

.pc-search a{
    color:var(--pc-primary);
    border:1px solid var(--pc-border);
    text-decoration:none;
    background:#fff;
}

.pc-list-card{
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:8px;
    min-height:220px;
    padding:16px;
    text-align:center;
}

.pc-list-card:hover,
.pc-row-card:hover,
.pc-nav-card:hover{
    border-color:var(--pc-accent);
}

.pc-list-image,
.pc-detail-image{
    display:flex;
    align-items:center;
    justify-content:center;
    object-fit:contain;
    flex-shrink:0;
    background:#f7f9fc;
    border:1px solid #e5e9f0;
}

.pc-list-image{
    width:96px;
    height:96px;
    border-radius:50%;
    padding:8px;
}

.pc-detail-image{
    width:150px;
    height:150px;
    border-radius:50%;
    padding:12px;
}

.pc-item-placeholder{
    color:var(--pc-primary);
    border-radius:8px;
    font-size:13px;
    font-weight:700;
}

.pc-number{
    margin:0;
    color:var(--pc-text-light);
    font-size:13px;
    font-weight:700;
}

.pc-detail{
    background:#fff;
    border:1px solid var(--pc-border);
    border-radius:8px;
    padding:24px;
}

.pc-detail-header{
    display:flex;
    align-items:center;
    gap:24px;
    padding-bottom:22px;
    border-bottom:1px solid #e5e9f0;
    margin-bottom:24px;
}

.pc-compact-header{
    align-items:flex-start;
}

.pc-section{
    margin-top:28px;
}

.pc-section h2{
    color:var(--pc-primary);
    font-size:22px;
    line-height:1.3;
    margin-bottom:12px;
}

.pc-page-stats th,
.pc-page-stats td{
    padding:8px;
    border-bottom:1px solid #e5e9f0;
}

.pc-page-stats th{
    width:110px;
    color:var(--pc-primary);
    background:#f5f7fb;
}

.pc-table-wrap{
    width:100%;
    overflow-x:auto;
    background:#fff;
    border:1px solid var(--pc-border);
    border-radius:8px;
}

.pc-pokemon-table-wrap,
.pc-move-table-wrap,
.pc-pokemon-move-table-wrap,
.pc-season-pokemon .pc-table-wrap,
.pc-season-items .pc-table-wrap{
    min-height:260px;
    max-height:min(62vh, 620px);
    overflow:auto;
    overscroll-behavior:contain;
}

.pc-pokemon-table-wrap .pc-data-table th,
.pc-move-table-wrap .pc-data-table th,
.pc-pokemon-move-table-wrap .pc-move-table th,
.pc-season-pokemon .pc-data-table th,
.pc-season-items .pc-data-table th{
    position:sticky;
    top:0;
    z-index:2;
}

.pc-data-table{
    width:100%;
    border-collapse:collapse;
}

.pc-data-table th,
.post_cont .pc-data-table th{
    color:#fff;
    background:var(--pc-primary);
    padding:10px;
    text-align:left;
    white-space:nowrap;
    border: none;
}

.pc-data-table td,
.post_cont .pc-data-table td{
    padding:10px;
    border: none;
    border-bottom:1px solid #e5e9f0;
    vertical-align:middle;
}

.pc-data-table tr:nth-child(even){
    background:#f8fafc;
}

.pc-data-table a,
.pc-row-card a{
    color: var(--pc-primary);
    font-weight: bold;
    font-size: 14px;
    text-decoration: underline;
    max-width: 90px;
}

.pc-list{
    display:grid;
    gap:10px;
}

.pc-list[data-pc-ability-list],
.pc-grid[data-pc-item-list]{
    min-height:260px;
    max-height:min(62vh, 620px);
    overflow-y:auto;
    overscroll-behavior:contain;
    padding-right:6px;
}

.pc-related-list{
    min-height:180px;
    max-height:min(52vh, 460px);
    overflow-y:auto;
    overscroll-behavior:contain;
    padding-right:6px;
}

.pc-row-card{
    display:grid;
    grid-template-columns:minmax(140px, 220px) 1fr;
    gap:12px;
    padding:14px;
}

.pc-definition{
    display:grid;
    gap:10px;
    margin:0;
}

.pc-definition div{
    display:grid;
    grid-template-columns:140px 1fr;
    gap:12px;
    padding:14px;
    background:#f8fafc;
    border:1px solid #e5e9f0;
    border-radius:8px;
}

.pc-definition dt{
    color:var(--pc-primary);
    font-weight:700;
}

.pc-definition dd{
    margin:0;
    line-height:1.8;
}

.pc-empty{
    color:var(--pc-text-light);
    background:#fff;
    border:1px dashed var(--pc-border);
    border-radius:8px;
    padding:18px;
}

.pc-related-grid{
    grid-template-columns:repeat(auto-fill, minmax(150px, 1fr));
}

.pc-related-card{
    min-height:170px;
}

.pc-related-list{
    display:grid;
    grid-template-columns:1fr;
    gap:8px;
}

.pc-related-row{
    display:grid;
    grid-template-columns:40px minmax(120px, 180px) minmax(0, 1fr);
    align-items:center;
    gap:8px;
    min-width:0;
    padding:8px 10px;
    background:#fff;
    border:1px solid var(--pc-border);
    border-radius:8px;
}

.pc-related-row-image{
    width:36px;
    height:36px;
    object-fit:contain;
}

.pc-related-row-name{
    min-width:0;
    font-size:14px;
    line-height:1.3;
}

.pc-related-row-name a{
    color:var(--pc-primary);
    text-decoration:none;
}

.pc-related-row-types{
    justify-content:flex-start;
    gap:4px;
}

.pc-related-row-types .pc-type{
    min-width:48px;
    padding:3px 6px;
    font-size:10px;
}

.pc-related-image{
    width:72px;
    height:72px;
    border-radius:50%;
    padding:6px;
    object-fit:contain;
    background:#f7f9fc;
    border:1px solid #e5e9f0;
}

.pc-season-list-image{
    width:42px;
    height:42px;
    object-fit:contain;
}

.pc-article-badges{
    display:flex;
    flex-wrap:wrap;
    gap:6px;
    align-items:center;
    margin:0 0 6px;
}

.pc-article-badge{
    display:inline-flex;
    align-items:center;
    min-height:24px;
    padding:3px 9px;
    border-radius:999px;
    border:1px solid var(--pc-border);
    background:#fff;
    color:var(--pc-text);
    font-size:12px;
    font-weight:700;
    line-height:1.3;
    text-decoration:none;
    box-shadow:0 1px 0 rgba(20, 31, 52, 0.04);
}

.pc-article-badge:hover{
    text-decoration:none;
    transform:translateY(-1px);
}

.pc-article-badge-season{
    border-color:#d7c27d;
    background:linear-gradient(180deg, #fff8d8 0%, #f7eab1 100%);
    color:#5f4700;
}

.pc-article-badge-rule{
    color:#fff;
}

.pc-article-badge-single{
    border-color:#2563a9;
    background:linear-gradient(180deg, #3f7fc4 0%, #1f5f9f 100%);
}

.pc-article-badge-double{
    border-color:#9b2f4f;
    background:linear-gradient(180deg, #cc5575 0%, #993653 100%);
}

.pc-pokemon-controls{
    display:grid;
    grid-template-columns:152px minmax(0, 1fr);
    gap:8px;
    align-items:start;
    padding:0;
    border:0;
    background:transparent;
    width:100%;
    min-width:0;
}

.pc-filter-controls{
    display:grid;
    grid-template-columns:152px 152px minmax(0, 1fr) 88px;
    gap:8px;
    align-items:start;
    padding:0;
    border:0;
    background:transparent;
    width:100%;
    min-width:0;
}

.pc-article-filter-controls{
    display:grid;
    grid-template-columns:minmax(130px, 1fr) minmax(110px, .7fr) minmax(220px, 1.4fr) max-content;
    gap:8px;
    align-items:center;
    padding:0;
    border:0;
    background:transparent;
    width:100%;
    min-width:0;
    margin:0 0 14px;
}

.pc-pokemon-controls label,
.pc-filter-controls label,
.pc-article-filter-controls label{
    position:relative;
    gap:0;
    min-width:0;
}

.pc-pokemon-controls label > span,
.pc-filter-controls label > span,
.pc-article-filter-controls label > span{
    position:absolute;
    width:1px;
    height:1px;
    overflow:hidden;
    clip:rect(0, 0, 0, 0);
}

.pc-pokemon-controls select,
.pc-pokemon-controls input,
.pc-filter-controls select,
.pc-filter-controls input,
.pc-article-filter-controls select,
.pc-article-filter-controls input{
    box-sizing:border-box;
    width:100%;
    max-width:100%;
    height: 42px;
    border:1px solid #6f95c5;
    border-radius:3px;
    background:#eaf4ff;
    box-shadow:inset 0 1px 2px rgba(31,42,68,.12);
}

.pc-pokemon-controls select,
.pc-filter-controls select,
.pc-article-filter-controls select{
    color: var(--pc-primary);
    padding-left: 5px;
}

.pc-pokemon-type-box,
.pc-filter-type-box{
    display:grid;
    grid-template-columns:auto minmax(0, 1fr);
    align-items:center;
    gap:4px;
}

.pc-pokemon-type-box b,
.pc-filter-type-box b{
    color:var(--pc-primary);
    font-size:14px;
    line-height:32px;
    white-space:nowrap;
}

.pc-pokemon-search-box::before,
.pc-filter-search-box::before{
    content:"";
    position:absolute;
    top:13px;
    left:10px;
    width:10px;
    height:10px;
    border:3px solid #8fb5e6;
    border-radius:50%;
    pointer-events:none;
}

.pc-pokemon-search-box::after,
.pc-filter-search-box::after{
    content:"";
    position:absolute;
    top:26px;
    left:22px;
    width:9px;
    height:3px;
    background:#8fb5e6;
    transform:rotate(45deg);
    pointer-events:none;
}

.pc-pokemon-controls input,
.pc-filter-controls input,
.pc-article-filter-controls input{
    padding-left:34px;
    padding-right:34px;
}

.pc-article-pokemon-search-box .pc-pokemon-suggestions{
    top:42px;
}

.pc-article-pokemon-search-box input[type="search"]{
    padding-right:48px;
}

.pc-article-filter-buttons{
    display:flex;
    gap:6px;
    align-items:center;
    height:42px;
    min-width:0;
}

.pc-article-filter-submit,
.pc-article-filter-clear{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    box-sizing:border-box;
    width:76px;
    min-width:76px;
    max-width:76px;
    height:42px;
    min-height:0;
    margin:0;
    padding:0;
    align-self:center;
    border-radius:6px;
    font-size:15px;
    font-weight:700;
    line-height:1;
    text-decoration:none;
    cursor:pointer;
}

.pc-article-filter-submit{
    color:#fff;
    border:1px solid var(--pc-primary);
    background:linear-gradient(180deg, #344461 0%, var(--pc-primary) 100%);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.16);
}

.pc-article-filter-submit:hover{
    background:var(--pc-primary);
}

.pc-search.pc-article-filter-controls .pc-search-clear-x{
    top:5px;
    right:8px;
    box-sizing:border-box;
    width:32px;
    min-width:0;
    max-width:32px;
    height:32px;
    min-height:0;
    margin:0;
    padding:0 0 2px;
    border-radius:8px;
    font-size:22px;
    line-height:1;
}

.pc-search .pc-search-clear-x{
    position: absolute;
    top: 6px;
    right: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    font-size: 18px;
    min-height: 32px;
    line-height: 1;
    padding: 0px 0 3px;
}

.pc-search-clear-x:hover{
    color:var(--pc-primary);
    background:rgba(31,42,68,.08);
}

.pc-pokemon-suggestions{
    position:absolute;
    z-index:20;
    top:36px;
    left:0;
    right:0;
    background:#fff;
    border:1px solid #9bb6d9;
    border-radius:0 0 6px 6px;
    box-shadow:0 10px 20px rgba(31,42,68,.16);
    overflow:hidden;
}

.pc-pokemon-suggestions button{
    display:block;
    width:100%;
    min-height:34px;
    padding:7px 12px;
    color:var(--pc-primary);
    text-align:left;
    background:#fff;
    border:0;
    border-bottom:1px solid #edf1f6;
    cursor:pointer;
}

.pc-pokemon-suggestions button:hover{
    background:#f5f8fd;
}

.pc-pokemon-sort-buttons{
    grid-column:1 / -1;
    display:grid;
    grid-template-columns:repeat(6, minmax(72px, 1fr)) minmax(72px, .8fr);
    gap:4px;
}

.pc-pokemon-sort-buttons button{
    height:50px;
    color:#303846;
    background:linear-gradient(#f6f6f6, #dfdfdf);
    border:1px solid #d5d9df;
    border-radius:4px;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.8);
    cursor:pointer;
}

.pc-pokemon-sort-buttons button span{
    display:block;
    color:#303846;
    font-size:16px;
    font-weight:bold;
    line-height:1.1;
    text-shadow:0 1px 0 #fff;
}

.pc-pokemon-sort-buttons button b{
    display:block;
    margin-top:2px;
    color: #303846;
    font-size:14px;
    line-height:1;
}

.pc-pokemon-sort-buttons button.is-active{
    border-color:var(--pc-accent);
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.9),
        0 0 0 2px rgba(212,175,55,.22);
}

.pc-pokemon-sort-buttons button.is-asc b{
    color:#d63a2f;
}

.pc-pokemon-sort-buttons button.is-desc b{
    color:#1f6fd2;
}

.pc-pokemon-sort-buttons .pc-pokemon-clear-button,
.pc-search .pc-filter-clear-button{
    color:#7b1d26;
    border:1px solid #e89aa3;
    background:linear-gradient(#fff1f2, #f8d7da);
    font-size:14px;
    font-weight:700;
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.8),
        0 1px 2px rgba(123,29,38,.08);
}

.pc-pokemon-sort-buttons .pc-pokemon-clear-button:hover,
.pc-filter-clear-button:hover{
    color:#fff;
    border-color:#b02a37;
    background:#b02a37;
    box-shadow:none;
}

.pc-pokemon-sort-buttons .pc-pokemon-clear-button:active,
.pc-filter-clear-button:active{
    transform:translateY(1px);
    box-shadow:inset 0 1px 2px rgba(123,29,38,.18);
}

.pc-pokemon-table-wrap{
    position:relative;
    border:0;
    background:#fff;
}

.pc-pokemon-table{
    max-width:100%;
}

.pc-pokemon-table thead th{
    text-align: center;
}

.pc-pokemon-table td{
    padding:10px 8px;
    vertical-align:middle;
    text-align: center;
    border-bottom:1px dashed #d7dce5;
}

.pc-pokemon-table tr:nth-child(even){
    background:#fff;
}

.pc-pokemon-table .pc-types{
    justify-content:center;
    margin-top:0;
}

.pc-pokemon-table .pc-type{
    min-width:38px;
    padding:3px 8px;
    border-radius:3px;
    font-size:11px;
    line-height:1.2;
}

.pc-pokemon-table-image{
    width:58px;
    text-align:right;
}

.pc-table-image{
    width:34px;
    height:34px;
    max-width: none;
    object-fit:contain;
    padding:0;
    border:0;
    border-radius:0;
    background:transparent;
}

.pc-pokemon-table-name{
    color:#9aa0a8;
    font-weight:700;
    text-decoration:none;
}

.pc-pokemon-table-name:hover{
    color:var(--pc-primary);
}

.pc-pokemon-stat-line{
    color:#697386;
    font-size:12px;
    white-space:nowrap;
}

.pc-pokemon-ability-line{
    font-size:12px;
    line-height:1.35;
    white-space:nowrap;
}

.pc-pokemon-ability-line a{
    color:var(--pc-primary);
    text-decoration:underline;
    text-underline-offset:2px;
    display: block;
    font-size: 12px;
    margin-bottom: 6px;
}

.pc-pokemon-ability-line br {
    display: none;
}

.pc-pokemon-no-results{
    margin:12px;
}

.pc-move-controls{
    margin-bottom:25px;
}

.pc-ability-controls{
    grid-template-columns:minmax(0, 1fr);
    margin-bottom:12px;
}

.pc-item-controls{
    grid-template-columns:minmax(0, 1fr);
    margin-bottom:12px;
}

.pc-filter-clear-button{
    height:42px;
    border-radius:4px;
    cursor:pointer;
}

.pc-move-no-results{
    margin:12px;
}

.pc-ability-no-results{
    margin-top:12px;
}

.pc-item-no-results{
    margin-top:12px;
}

.pc-stat-calc{
    border-radius:8px;
}

.pc-stat-calc-controls{
    display:grid;
    grid-template-columns:repeat(3, minmax(0, 1fr));
    gap:12px;
    align-items:end;
    margin-top:18px;
}

.pc-stat-calc-controls label{
    display:grid;
    gap:6px;
}

.pc-stat-calc-controls span{
    color:var(--pc-primary);
    font-size:13px;
    font-weight:700;
}

.pc-stat-calc-controls select,
.pc-stat-calc-table input{
    box-sizing:border-box;
    width:100%;
    height:38px;
    border:1px solid var(--pc-border);
    border-radius:6px;
    background:#fff;
}

.pc-stat-calc-controls select{
    padding:0 8px;
}

.pc-stat-point-summary{
    box-sizing:border-box;
    width:100%;
    min-height:38px;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:4px;
    padding:0 12px;
    color:var(--pc-primary);
    background:#f8fafc;
    border:1px solid var(--pc-border);
    border-radius:6px;
    font-weight:700;
    white-space:nowrap;
}

.pc-stat-calc.is-over-limit .pc-stat-point-summary{
    color:#7b1d26;
    background:#fff1f2;
    border-color:#e89aa3;
}

.pc-stat-calc.is-point-complete .pc-stat-point-summary{
    color:#503310;
    background:var(--pc-accent-light);
    border-color:var(--pc-accent);
}

.pc-stat-base-line{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    margin-top:14px;
    color:var(--pc-primary);
    font-size:14px;
    font-weight:700;
}

.pc-stat-base-text{
    display:flex;
    align-items:center;
    gap:10px;
}

.pc-stat-base-text span{
    color:var(--pc-text-light);
}

.pc-stat-base-text strong{
    color:var(--pc-primary);
    letter-spacing:0;
}

.pc-stat-remaining{
    flex:0 0 auto;
    padding:8px 12px;
    color:var(--pc-primary);
    border:1px solid #d1d5db;
    border-radius:6px;
    background:#f3f4f6;
    font-weight:700;
    white-space:nowrap;
}

.pc-stat-calc-table-wrap{
    margin-top:16px;
}

.pc-stat-calc-table,
.post_cont .pc-stat-calc-table{
    min-width:auto;
    margin-bottom: 0;
}

.pc-stat-calc-table th,
.pc-stat-calc-table td{
    text-align:center;
}

.pc-stat-calc-table tbody th,
.post_cont .pc-stat-calc-table tbody th{
    color: var(--pc-primary);
    background: transparent;
    border-bottom: 1px solid #e5e9f0;
}

.pc-stat-calc-table input{
    max-width:68px;
    padding:0 6px;
    text-align:center;
}

.pc-stat-point-control{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:6px;
}

.pc-stat-point-control button{
    min-width:38px;
    height:32px;
    padding:0 8px;
    color:var(--pc-primary);
    border:1px solid var(--pc-border);
    border-radius:6px;
    background:#f8fafc;
    font-weight:700;
    cursor:pointer;
}

.pc-stat-point-control button:hover{
    color:#fff;
    border-color:var(--pc-primary);
    background:var(--pc-primary);
}

.pc-stat-calc-table strong{
    color:var(--pc-primary);
    font-size:18px;
}

.pc-stat-calc-table tr.is-nature-up strong{
    color:#d63a2f;
}

.pc-stat-calc-table tr.is-nature-down strong{
    color:#1f6fd2;
}

.pc-stat-calc-footer{
    display:grid;
    justify-items:end;
    gap: 15px;
    margin-top:12px;
}

.pc-stat-calc-clear{
    min-width:92px;
    height:34px;
    padding:0 14px;
    color:#58151c;
    border:1px solid #f1aeb5;
    border-radius:6px;
    background:#f8d7da;
    font-size:14px;
    font-weight:700;
    cursor:pointer;
}

.pc-stat-calc-clear:hover{
    color:#fff;
    border-color:#b02a37;
    background:#b02a37;
}

.pc-stat-calc-error{
    width:100%;
    margin:0;
    padding: 20px;
    box-sizing:border-box;
    color: var(--pc-primary);
    border:1px solid #d1d5db;
    border-radius:6px;
    background:#f3f4f6;
    font-size:14px;
    font-weight:700;
    text-align:left;
}

.pc-stat-calc-error[hidden]{
    display:none;
}

.pc-build-card{
    position:relative;
    display:grid;
    grid-template-columns:1fr;
    overflow:hidden;
    margin:24px 0;
    border:2px solid #a7b2c7;
    border-radius:14px;
    background:#fff;
}

.pc-build-rule{
    display:inline-flex;
    align-items:center;
    flex:0 0 auto;
    min-height:22px;
    padding:3px 9px;
    border-radius:999px;
    font-size:12px;
    font-weight:800;
    line-height:1;
    box-shadow:0 1px 2px rgba(31,42,68,.12);
}

.pc-build-rule-single{
    color:#075985;
    background:#e0f2fe;
}

.pc-build-rule-double{
    color:#b42335;
    background:#ffe4e8;
}

.pc-build-card-main{
    display:grid;
    grid-template-columns:96px minmax(0, 1fr);
    gap:14px;
    padding:14px;
    min-width:0;
}

.pc-build-card-sub{
    padding:0 14px 14px;
}

.pc-build-name-row{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:10px;
    margin:0 0 8px;
}

.pc-build-card-image{
    width:92px;
    height:92px;
    object-fit:contain;
    border-radius:50%;
    background:#f4f6fa;
    border:1px solid #e3e8f1;
}

.pc-build-card-body h3{
    margin:0;
    color:#0070c9;
    font-size:20px;
    line-height:1.15;
    word-break:keep-all;
    overflow-wrap:anywhere;
}

.pc-build-card-types{
    display:flex;
    flex-wrap:wrap;
    gap:6px;
    margin-bottom:8px;
}

.pc-build-card-item{
    display:flex;
    align-items:center;
    gap:8px;
    padding:6px 10px;
    border:1px solid #dde4ef;
    border-radius:8px;
    color:#0070c9;
    font-size:15px;
    font-weight:800;
    min-width:0;
}

.pc-build-card-item img{
    width:28px;
    height:28px;
    object-fit:contain;
}

.pc-build-card-moves{
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:7px;
}

.pc-build-card-moves div{
    display:flex;
    align-items:center;
    gap:8px;
    padding:7px 9px;
    border:1px solid #dde4ef;
    border-radius:8px;
    background:#fff;
    color:#0070c9;
    font-size:15px;
    font-weight:800;
    min-width:0;
}

.pc-build-card-ability{
    display:flex;
    align-items:center;
    justify-content:flex-start;
    gap:10px;
    margin-bottom:10px;
    padding:8px 10px;
    border:1px solid #dde4ef;
    border-radius:8px;
    background:#f8fafc;
    color:#0070c9;
    font-size:15px;
    font-weight:800;
    min-width:0;
}

.pc-build-card-ability span{
    display:inline-flex;
    min-width:38px;
    justify-content:center;
    padding:3px 6px;
    color:#fff;
    border-radius:4px;
    background:#7b8798;
    font-size:11px;
    margin-right:15px;
}

.pc-build-card-stats{
    display:grid;
    align-content:start;
    background:#eef1f7;
    border-top:1px solid #dde4ef;
}

.pc-build-card-base{
    padding:8px 10px;
    color:#7e8aa0;
    font-size:13px;
    font-weight:800;
    text-align:center;
}

.pc-build-card-stat,
.pc-build-card-nature{
    display:grid;
    grid-template-columns:68px 38px minmax(0, 1fr) 24px;
    gap:12px;
    align-items:center;
    min-height:34px;
    padding:0 8px;
    border-top:1px solid #fff;
    background:#fff;
    color:#2f3747;
    font-weight:800;
}

.pc-build-card-stat b,
.pc-build-card-nature b{
    font-size:18px;
    text-align:right;
}

.pc-build-card-nature b{
    text-align:left;
    font-size:14px;
}

.pc-build-card-stat span{
    height:16px;
    background:linear-gradient(90deg, #ffb13b var(--pc-build-bar), #dde2ec var(--pc-build-bar));
}

.pc-build-card-stat em{
    font-style:normal;
    text-align:right;
}

.pc-build-card-stat.is-up{
    color:#d5293e;
}

.pc-build-card-stat.is-down{
    color:#0070a8;
}

.pc-build-card-nature{
    grid-template-columns:58px 1fr;
    min-height:44px;
    background:#f8fafc;
}

.pc-build-card-nature > div{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
    min-width:0;
}

.pc-build-card-nature > div > span{
    display:flex;
    flex-wrap:wrap;
    justify-content:flex-end;
    gap:4px;
}

.pc-build-nature-up,
.pc-build-nature-down,
.pc-build-nature-neutral{
    display:inline-flex;
    align-items:center;
    min-height:20px;
    padding:2px 7px;
    border-radius:999px;
    font-size:11px;
    font-weight:800;
    line-height:1;
    white-space:nowrap;
}

.pc-build-nature-up{
    color:#b42335;
    background:#ffe4e8;
}

.pc-build-nature-down{
    color:#075985;
    background:#e0f2fe;
}

.pc-build-nature-neutral{
    color:#4b5563;
    background:#e5e7eb;
}


/* =========================
   レスポンシブ
========================= */

@media (max-width:768px){

    .pc-card{
        padding:16px;
    }

    .pc-header{
        flex-direction:column;
        text-align:center;
    }

    .pc-image{
        width:120px;
        height:120px;
    }

    .pc-types{
        justify-content:center;
    }

    .pc-title{
        /* font-size:24px; */
    }

    .pc-stats th{
        width:80px;
    }

    .pc-page{
        padding-top:20px;
    }

    .pc-container{
        width:min(100% - 20px, 1120px);
    }

    .pc-hero,
    .pc-detail{
        padding:18px;
    }

    .pc-hero h1,
    .pc-archive-header h1,
    .pc-detail h1{
        font-size:28px;
    }

    .pc-search,
    .pc-search-compact,
    .pc-pokemon-controls,
    .pc-filter-controls,
    .pc-article-filter-controls,
    .pc-row-card,
    .pc-definition div{
        grid-template-columns:1fr;
    }

    .pc-article-filter-buttons{
        justify-content:flex-start;
    }

    .pc-pokemon-table-wrap,
    .pc-move-table-wrap,
    .pc-pokemon-move-table-wrap,
    .pc-season-pokemon .pc-table-wrap,
    .pc-season-items .pc-table-wrap,
    .pc-list[data-pc-ability-list],
    .pc-grid[data-pc-item-list]{
        min-height:220px;
        max-height:70vh;
    }

    .pc-related-list{
        min-height:160px;
        max-height:56vh;
    }

    .pc-pokemon-sort-buttons{
        grid-template-columns:repeat(3, minmax(0, 1fr));
    }

    .pc-pokemon-sort-buttons button span{
        font-size:16px;
    }

    .pc-detail-header{
        flex-direction:column;
        align-items:center;
        text-align:center;
    }

    .pc-stat-calc-controls{
        grid-template-columns:1fr;
    }

    .pc-stat-base-line{
        align-items:stretch;
        flex-direction:column;
    }

    .pc-stat-remaining{
        align-self:flex-end;
        order:-1;
        text-align:right;
        width:fit-content;
    }

    .pc-build-card{
        grid-template-columns:1fr;
    }

    .pc-build-card-main{
        grid-template-columns:76px minmax(0, 1fr);
        gap:10px;
    }

    .pc-build-card-image{
        width:72px;
        height:72px;
    }

    .pc-build-card-body h3{
        font-size:18px;
    }

    .pc-build-card-moves{
        grid-template-columns:1fr;
    }

    .pc-build-card-stats{
        border-left:0;
        border-top:1px solid #dde4ef;
    }

    .pc-search button,
    .pc-search a{
        align-self:stretch;
    }
}
