
.pmcn-guide {
    margin: 0 0 30px;
    padding: 22px;
    border: 1px solid #dbe9df;
    border-radius: 16px;
    background: #f7fbf8;
}

.pmcn-guide__lead {
    margin: 0 0 16px;
}

.pmcn-guide__lead h2 {
    margin: 0 0 7px;
    font-size: 1.35rem;
}

.pmcn-guide__lead p {
    margin: 0;
    color: #52605a;
    line-height: 1.75;
}

.pmcn-category-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    margin: 14px 0 22px;
}

.pmcn-category {
    display: flex;
    align-items: center;
    gap: 9px;
    width: 100%;
    min-height: 58px;
    padding: 11px 12px;
    border: 1px solid #d7e2da;
    border-radius: 12px;
    background: #fff;
    color: #24322b;
    text-align: left;
    font-weight: 750;
    cursor: pointer;
    transition: .15s ease;
}

.pmcn-category:hover,
.pmcn-category:focus,
.pmcn-category.is-selected {
    border-color: #3f8f66;
    background: #edf8f1;
    box-shadow: 0 3px 12px rgba(27, 79, 52, .10);
    color: #087f68;
    outline: none;
    transform: translateY(-1px);
}

.pmcn-category.is-loading::after {
    display: inline-block;
    width: 15px;
    height: 15px;
    margin-left: auto;
    border: 2px solid #9fd1bb;
    border-top-color: #087f68;
    border-radius: 50%;
    content: "";
    animation: pmcn-spin .7s linear infinite;
}

.pmcn-category[hidden],
.pmcn-sort[hidden] {
    display: none !important;
}

.pmcn-category__icon {
    flex: 0 0 auto;
    font-size: 1.35rem;
    line-height: 1;
}

.pmcn-guide__subhead {
    margin: 0 0 9px;
    font-size: 1.05rem;
}

.pmcn-sort-row {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.pmcn-sort {
    padding: 8px 13px;
    border: 1px solid #cad8cf;
    border-radius: 999px;
    background: #fff;
    color: #284335;
    font-weight: 750;
    cursor: pointer;
}

.pmcn-sort:hover,
.pmcn-sort:focus,
.pmcn-sort.is-selected {
    border-color: #3f8f66;
    background: #edf8f1;
    color: #087f68;
    outline: none;
}

.pmcn-feedback {
    margin-top: 14px;
    padding: 11px 13px;
    border-left: 4px solid #4fc6a4;
    background: #fff;
    color: #4d5f57;
    font-size: .92rem;
    font-weight: 700;
}

.pmcn-results-anchor {
    scroll-margin-top: 90px;
}

.pmcn-results-anchor.pmcn-pulse {
    animation: pmcn-pulse 1.3s ease;
}

/*
 * カード内容はPoimichi Compare本体に任せます。
 * このプラグインは配置・案件名の折返し・余白だけを調整します。
 */
.poimichi-results-grid,
.pmcn-results-anchor {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 18px !important;
    align-items: stretch;
}

.poimichi-result-card {
    min-width: 0 !important;
    height: 100% !important;
}

.poimichi-result-card h3,
.poimichi-result-card h3 a {
    word-break: normal !important;
    overflow-wrap: break-word !important;
}

.poimichi-result-card h3 br {
    display: none !important;
}

@keyframes pmcn-spin {
    to { transform: rotate(360deg); }
}

@keyframes pmcn-pulse {
    0% { box-shadow: 0 0 0 0 rgba(79, 198, 164, .42); }
    100% { box-shadow: 0 0 0 18px rgba(79, 198, 164, 0); }
}

@media (max-width: 900px) {
    .pmcn-category-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .poimichi-results-grid,
    .pmcn-results-anchor {
        grid-template-columns: 1fr !important;
    }
}

@media (max-width: 600px) {
    .pmcn-guide {
        padding: 16px;
    }

    .pmcn-category-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 8px;
    }

    .pmcn-category {
        min-height: 54px;
        padding: 9px;
    }

    .pmcn-category__icon {
        font-size: 1.15rem;
    }
}


/* =========================================================
 * v1.4.0: SWELLのサイドバーをサイト全体で非表示
 * ======================================================= */
body.poimichi-full-width-layout .l-sidebar,
body.poimichi-full-width-layout #sidebar {
    display: none !important;
}

body.poimichi-full-width-layout .l-content {
    display: block !important;
    grid-template-columns: minmax(0, 1fr) !important;
}

body.poimichi-full-width-layout .l-mainContent,
body.poimichi-full-width-layout main.l-mainContent {
    width: 100% !important;
    max-width: none !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
}

/* =========================================================
 * v1.4.0: 案件一覧はPC 2列、スマホ1列
 * ======================================================= */
body.poimichi-cases-page .poimichi-result-list.poimichi-all-case-list,
body.poimichi-cases-page .poimichi-all-case-list {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 20px !important;
    align-items: stretch !important;
}

body.poimichi-cases-page .poimichi-all-case-list .poimichi-result-card {
    min-width: 0 !important;
    height: 100% !important;
    padding: 22px !important;
}

body.poimichi-cases-page .poimichi-result-card-head {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    gap: 12px !important;
    align-items: start !important;
}

body.poimichi-cases-page .poimichi-result-card-head h3 {
    min-width: 0 !important;
    margin: 0 !important;
    font-size: 1.15rem !important;
    line-height: 1.55 !important;
    word-break: auto-phrase !important;
    overflow-wrap: normal !important;
    line-break: strict !important;
    hyphens: none !important;
}

body.poimichi-cases-page .poimichi-result-card-head h3 a {
    display: inline !important;
    word-break: auto-phrase !important;
    overflow-wrap: normal !important;
    line-break: strict !important;
    hyphens: none !important;
}

body.poimichi-cases-page .poimichi-result-card-head h3 br {
    display: none !important;
}

body.poimichi-cases-page .poimichi-result-card-head .poimichi-category {
    max-width: 145px;
    text-align: center;
    white-space: normal !important;
}

body.poimichi-cases-page .poimichi-result-metrics-229 {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

/* ポイントサイト名を1文字ずつ縦にしない */
body.poimichi-cases-page .poimichi-card-ranking li {
    grid-template-columns: 28px minmax(145px, 1fr) auto auto !important;
    column-gap: 10px !important;
}

body.poimichi-cases-page .poimichi-card-site {
    min-width: 145px !important;
    font-size: .92rem !important;
    line-height: 1.45 !important;
    word-break: keep-all !important;
    overflow-wrap: normal !important;
    line-break: strict !important;
}

body.poimichi-cases-page .poimichi-card-ranking strong {
    white-space: nowrap !important;
}

body.poimichi-cases-page .poimichi-link-button {
    white-space: normal !important;
    text-align: center !important;
}

@media (max-width: 900px) {
    body.poimichi-cases-page .poimichi-result-list.poimichi-all-case-list,
    body.poimichi-cases-page .poimichi-all-case-list {
        grid-template-columns: 1fr !important;
    }
}

@media (max-width: 640px) {
    body.poimichi-cases-page .poimichi-result-card-head {
        grid-template-columns: 1fr !important;
    }

    body.poimichi-cases-page .poimichi-result-card-head .poimichi-category {
        justify-self: start;
        max-width: none;
    }

    body.poimichi-cases-page .poimichi-result-metrics-229 {
        grid-template-columns: 1fr !important;
    }

    body.poimichi-cases-page .poimichi-card-ranking li {
        grid-template-columns: 28px minmax(0, 1fr) !important;
    }

    body.poimichi-cases-page .poimichi-card-site {
        min-width: 0 !important;
        word-break: normal !important;
        overflow-wrap: break-word !important;
    }

    body.poimichi-cases-page .poimichi-card-ranking strong,
    body.poimichi-cases-page .poimichi-card-ranking small {
        grid-column: 2;
        white-space: normal !important;
    }
}


/* =========================================================
 * v1.5.0 最終上書き
 * ・サイト全体の本文幅を拡張
 * ・案件一覧をPC 2列へ固定
 * ・案件名／ポイントサイト名の細切れ改行を防止
 * ======================================================= */

/* SWELLの本文領域を広げる */
body.poimichi-full-width-layout .l-container {
    width: min(100%, 1440px) !important;
    max-width: 1440px !important;
    margin-right: auto !important;
    margin-left: auto !important;
}

body.poimichi-full-width-layout .l-content {
    width: calc(100% - 32px) !important;
    max-width: 1360px !important;
    margin-right: auto !important;
    margin-left: auto !important;
    padding-right: 0 !important;
    padding-left: 0 !important;
}

body.poimichi-full-width-layout .l-mainContent,
body.poimichi-full-width-layout main.l-mainContent,
body.poimichi-full-width-layout .l-article {
    width: 100% !important;
    max-width: none !important;
}

/*
 * /cases/ が固定ページではなく仮想URLであっても確実に2列にします。
 * Poimichi Compare本体の3列指定より優先します。
 */
body.poimichi-cases-page .poimichi-result-list.poimichi-all-case-list,
.poimichi-result-list.poimichi-all-case-list {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 22px !important;
    align-items: stretch !important;
    width: 100% !important;
}

/* カード内の横幅を最大限使う */
.poimichi-result-list.poimichi-all-case-list .poimichi-result-card {
    min-width: 0 !important;
    width: 100% !important;
    height: 100% !important;
    padding: 22px !important;
}

/* 案件名とカテゴリー */
.poimichi-result-list.poimichi-all-case-list .poimichi-result-card-head {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    gap: 12px !important;
    align-items: center !important;
    min-width: 0 !important;
}

.poimichi-result-list.poimichi-all-case-list .poimichi-result-card-head h3 {
    display: block !important;
    min-width: 0 !important;
    max-width: 100% !important;
    margin: 0 !important;
    overflow: hidden !important;
    font-size: 1.14rem !important;
    line-height: 1.45 !important;
    white-space: nowrap !important;
    text-overflow: ellipsis !important;
    word-break: keep-all !important;
    overflow-wrap: normal !important;
    line-break: strict !important;
    hyphens: none !important;
}

.poimichi-result-list.poimichi-all-case-list .poimichi-result-card-head h3 a {
    display: block !important;
    min-width: 0 !important;
    max-width: 100% !important;
    overflow: hidden !important;
    white-space: nowrap !important;
    text-overflow: ellipsis !important;
    word-break: keep-all !important;
    overflow-wrap: normal !important;
    line-break: strict !important;
    hyphens: none !important;
}

.poimichi-result-list.poimichi-all-case-list .poimichi-result-card-head h3 br {
    display: none !important;
}

.poimichi-result-list.poimichi-all-case-list .poimichi-category {
    display: block !important;
    max-width: 150px !important;
    overflow: hidden !important;
    white-space: nowrap !important;
    text-overflow: ellipsis !important;
    word-break: keep-all !important;
}

/* 比較値は2列で読みやすく */
.poimichi-result-list.poimichi-all-case-list .poimichi-result-metrics,
.poimichi-result-list.poimichi-all-case-list .poimichi-result-metrics-229 {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

/* ランキングはサイト名の横幅を優先 */
.poimichi-result-list.poimichi-all-case-list .poimichi-card-ranking li {
    display: grid !important;
    grid-template-columns: 28px minmax(0, 1fr) auto auto !important;
    column-gap: 10px !important;
    align-items: center !important;
    min-width: 0 !important;
}

.poimichi-result-list.poimichi-all-case-list .poimichi-card-site {
    display: block !important;
    min-width: 0 !important;
    max-width: 100% !important;
    overflow: hidden !important;
    font-size: .91rem !important;
    line-height: 1.45 !important;
    white-space: nowrap !important;
    text-overflow: ellipsis !important;
    word-break: keep-all !important;
    overflow-wrap: normal !important;
    line-break: strict !important;
    hyphens: none !important;
}

.poimichi-result-list.poimichi-all-case-list .poimichi-card-ranking strong,
.poimichi-result-list.poimichi-all-case-list .poimichi-card-ranking small {
    white-space: nowrap !important;
}

/* CTAも不自然な縦長にしない */
.poimichi-result-list.poimichi-all-case-list .poimichi-link-button {
    max-width: 100% !important;
    white-space: nowrap !important;
    text-align: center !important;
}

/* タブレット以下は1列 */
@media (max-width: 820px) {
    body.poimichi-full-width-layout .l-content {
        width: calc(100% - 24px) !important;
    }

    body.poimichi-cases-page .poimichi-result-list.poimichi-all-case-list,
    .poimichi-result-list.poimichi-all-case-list {
        grid-template-columns: 1fr !important;
    }
}

/* スマホではカテゴリーをタイトルの下へ移動 */
@media (max-width: 640px) {
    body.poimichi-full-width-layout .l-content {
        width: calc(100% - 20px) !important;
    }

    .poimichi-result-list.poimichi-all-case-list .poimichi-result-card {
        padding: 16px !important;
    }

    .poimichi-result-list.poimichi-all-case-list .poimichi-result-card-head {
        grid-template-columns: minmax(0, 1fr) !important;
        align-items: start !important;
    }

    .poimichi-result-list.poimichi-all-case-list .poimichi-category {
        justify-self: start !important;
        max-width: 100% !important;
    }

    .poimichi-result-list.poimichi-all-case-list .poimichi-result-metrics,
    .poimichi-result-list.poimichi-all-case-list .poimichi-result-metrics-229 {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .poimichi-result-list.poimichi-all-case-list .poimichi-card-ranking li {
        grid-template-columns: 28px minmax(0, 1fr) auto !important;
    }

    .poimichi-result-list.poimichi-all-case-list .poimichi-card-ranking small {
        grid-column: 2 / 4 !important;
    }
}
