/* =========================================================
 * エロゲーランキング
 * 現行UI統合版
 * ========================================================= */

:root {
    --eroge-blue-900: #263b55;
    --eroge-blue-800: #385775;
    --eroge-blue-700: #496383;
    --eroge-blue-600: #66809a;
    --eroge-blue-300: #cdddeb;
    --eroge-blue-200: #dce7f1;
    --eroge-blue-100: #edf4fb;
    --eroge-lavender-200: #d5cbe5;
    --eroge-lavender-100: #f3eff9;
    --eroge-paper: #fff;
    --eroge-review-paper: #fbfdff;
    --eroge-text: #526983;
    --eroge-streamer-text: #526983;
    --eroge-radius: 20px;
}

.eroge-ranking-tiered {
    width: 100%;
    margin: 24px 0 42px;
    padding: 0;
    color: var(--eroge-blue-900);
    font-size: 14px;
    line-height: 1.8;
}

.eroge-ranking-tiered,
.eroge-ranking-tiered * {
    box-sizing: border-box;
}

/* Cocoon共通見出しの装飾をランキング内へ持ち込まない */
html body .eroge-ranking-tiered h2,
html body .eroge-ranking-tiered h3,
html body .eroge-ranking-tiered h4,
html body .eroge-ranking-tiered h5,
html body .eroge-ranking-tiered h6 {
    width: auto;
    min-width: 0;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: none;
    box-shadow: none;
    color: inherit;
    font-family: inherit;
    text-align: left;
    text-transform: none;
}

html body .eroge-ranking-tiered h2::before,
html body .eroge-ranking-tiered h2::after,
html body .eroge-ranking-tiered h3::before,
html body .eroge-ranking-tiered h3::after,
html body .eroge-ranking-tiered h4::before,
html body .eroge-ranking-tiered h4::after,
html body .eroge-ranking-tiered h5::before,
html body .eroge-ranking-tiered h5::after,
html body .eroge-ranking-tiered h6::before,
html body .eroge-ranking-tiered h6::after {
    display: none;
    content: none;
}

.eroge-ranking-tiered button,
.eroge-ranking-tiered input {
    font: inherit;
}

.eroge-ranking-tiered button {
    -webkit-appearance: none;
    appearance: none;
}

.eroge-ranking-tiered a {
    color: inherit;
}

.eroge-ranking-empty {
    margin: 30px 0;
    padding: 26px;
    border: 1px solid var(--eroge-blue-200);
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.66);
    color: var(--eroge-blue-600);
    text-align: center;
}

.eroge-ranking-empty[hidden],
.eroge-tier-card.is-filter-hidden,
.eroge-rank-section.is-filter-hidden {
    display: none !important;
}

/* =========================================================
 * 冒頭ガイド
 * ========================================================= */

.eroge-guide {
    margin: 0 0 26px;
    color: var(--eroge-text);
}

.eroge-guide-main,
.eroge-guide-voice {
    padding: 18px 0 20px;
    border-bottom: 1px solid rgba(214, 226, 238, 0.8);
}

.eroge-guide-kicker,
.eroge-guide-voice-kicker {
    margin: 0 0 5px;
    color: #7891aa;
    font-size: 9.5px;
    line-height: 1.3;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

html body .entry-content .eroge-guide .eroge-guide-kicker,
html body .entry-content .eroge-guide .eroge-guide-voice-kicker {
    margin: 0 0 5px !important;
    padding: 0 !important;
    border: 0 !important;
    background: none !important;
    color: #7891aa !important;
    font-size: 9.5px !important;
    line-height: 1.3 !important;
    font-weight: 800 !important;
    letter-spacing: 0.12em !important;
}

.eroge-guide-title,
.eroge-guide-voice-title {
    margin: 0 0 8px !important;
    color: var(--eroge-blue-900) !important;
    font-size: 16px !important;
    line-height: 1.5 !important;
    font-weight: 800 !important;
}

html body .entry-content .eroge-guide h2.eroge-guide-title,
html body .entry-content .eroge-guide h3.eroge-guide-title,
html body .entry-content .eroge-guide h2.eroge-guide-voice-title,
html body .entry-content .eroge-guide h3.eroge-guide-voice-title {
    display: block !important;
    width: auto !important;
    margin: 0 0 8px !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: none !important;
    box-shadow: none !important;
    color: var(--eroge-blue-900) !important;
    font-size: 16px !important;
    line-height: 1.5 !important;
    font-weight: 800 !important;
}

html body .entry-content .eroge-guide h2.eroge-guide-title::before,
html body .entry-content .eroge-guide h2.eroge-guide-title::after,
html body .entry-content .eroge-guide h3.eroge-guide-title::before,
html body .entry-content .eroge-guide h3.eroge-guide-title::after,
html body .entry-content .eroge-guide h2.eroge-guide-voice-title::before,
html body .entry-content .eroge-guide h2.eroge-guide-voice-title::after,
html body .entry-content .eroge-guide h3.eroge-guide-voice-title::before,
html body .entry-content .eroge-guide h3.eroge-guide-voice-title::after {
    display: none !important;
    content: none !important;
}

.eroge-guide-lead,
.eroge-guide-overview,
.eroge-guide-voice-copy,
.eroge-guide-voice-body {
    margin: 0;
    font-size: 13px;
    line-height: 1.9;
}

.eroge-guide-voice-link,
.eroge-child-links a {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    margin-top: 14px;
    padding-bottom: 3px;
    border-bottom: 1px solid rgba(73, 99, 131, 0.3);
    color: var(--eroge-blue-700);
    font-size: 12.5px;
    font-weight: 800;
    text-decoration: none;
}

.eroge-guide-voice-link-mark {
    color: #7d96af;
    transition: transform 0.18s ease;
}

/* =========================================================
 * 検索・ランク移動
 * ========================================================= */

.eroge-ranking-tools {
    display: grid;
    grid-template-columns: max-content minmax(150px, 1fr) max-content;
    grid-template-areas: "rank search count";
    gap: 16px;
    align-items: center;
    margin: 0 0 20px;
    padding: 7px 0;
    border: 0;
    border-top: 0 !important;
    border-bottom: 1px solid rgba(218, 229, 240, 0.86);
}

.eroge-rank-jump {
    grid-area: rank;
    display: flex;
    align-items: center;
    gap: 7px;
    min-width: 0;
    padding-right: 16px;
    border-right: 1px solid rgba(205, 219, 232, 0.78);
}

.eroge-rank-jump-icon,
.eroge-ranking-search-icon {
    display: block;
    flex: 0 0 auto;
    width: 13px;
    height: 13px;
    color: #7890a8;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.eroge-rank-jump-label {
    display: inline-flex;
    align-items: center;
    min-height: 13px;
    color: rgba(102, 127, 151, 0.48);
    font-size: 10.5px;
    line-height: 13px;
    font-weight: 600;
    letter-spacing: 0.025em;
    white-space: nowrap;
    transform: translateY(1px);
}

.eroge-rank-jump-buttons {
    display: inline-flex;
    flex-wrap: nowrap;
    gap: 1px;
}

button.eroge-rank-jump-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 29px;
    min-height: 32px;
    margin: 0;
    padding: 4px 6px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: #5b7793;
    font-size: 10.5px;
    line-height: 1;
    font-weight: 800;
    cursor: pointer;
    transition: color 0.18s ease, background-color 0.18s ease;
}

button.eroge-rank-jump-button:disabled {
    opacity: 0.35;
    cursor: default;
}

.eroge-rank-jump-tier {
    display: block;
    line-height: 1;
}

.eroge-rank-jump-count {
    display: none;
}

.eroge-ranking-search {
    grid-area: search;
    min-width: 0;
}

.eroge-ranking-search-label {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.eroge-ranking-search-field {
    position: relative;
    min-width: 0;
}

.eroge-ranking-search-icon {
    position: absolute;
    top: 50%;
    left: 8px;
    z-index: 1;
    pointer-events: none;
    transform: translateY(-50%);
}

html body .eroge-ranking-tiered .eroge-ranking-search-input[type="search"] {
    display: block;
    width: 100%;
    height: 32px;
    margin: 0;
    padding: 0 44px 0 29px;
    border: 0;
    border-radius: 7px;
    outline: 0;
    background: transparent;
    color: var(--eroge-blue-800);
    font-size: 10.5px;
    line-height: 1;
    box-shadow: none;
    transition: background-color 0.18s ease, box-shadow 0.18s ease;
}

.eroge-ranking-search-input::placeholder {
    color: rgba(102, 127, 151, 0.48);
    opacity: 1;
}

.eroge-ranking-search-input::-webkit-search-cancel-button {
    display: none;
}

.eroge-ranking-search-input:focus {
    background: rgba(255, 255, 255, 0.52) !important;
    box-shadow: inset 0 0 0 1px rgba(122, 158, 190, 0.24) !important;
}

.eroge-ranking-search-clear {
    position: absolute;
    top: 50%;
    right: 7px;
    min-width: 0;
    margin: 0;
    padding: 3px 6px;
    border: 0;
    border-radius: 6px;
    background: transparent;
    color: #7890a8;
    font-size: 9px;
    line-height: 1;
    cursor: pointer;
    transform: translateY(-50%);
}

.eroge-ranking-search-clear[hidden] {
    display: none;
}

.eroge-ranking-search-count {
    grid-area: count;
    color: #879ab0;
    font-size: 10px;
    line-height: 1;
    font-weight: 700;
    white-space: nowrap;
}

/* =========================================================
 * ランク帯
 * ========================================================= */

.eroge-rank-section {
    --eroge-tier-accent: #796b99;
    --eroge-tier-line: #d5cbe5;
    --eroge-tier-soft: #f1edf8;
    margin: 0 0 38px;
    padding: 0;
    overflow: visible;
    border: 0;
    background: transparent;
}

.eroge-rank-section-ss {
    --eroge-tier-accent: #a97724;
    --eroge-tier-line: #e8d09c;
    --eroge-tier-soft: #fff5dc;
}

.eroge-rank-section-s {
    --eroge-tier-accent: #796b99;
    --eroge-tier-line: #d5cbe5;
    --eroge-tier-soft: #f1edf8;
}

.eroge-rank-section-a {
    --eroge-tier-accent: #a15e4b;
    --eroge-tier-line: #e4c3b9;
    --eroge-tier-soft: #fcece7;
}

.eroge-rank-section-b {
    --eroge-tier-accent: #587b8e;
    --eroge-tier-line: #c2d7df;
    --eroge-tier-soft: #edf6f8;
}

.eroge-rank-section-c {
    --eroge-tier-accent: #66806a;
    --eroge-tier-line: #c9d9c8;
    --eroge-tier-soft: #f0f7ef;
}

.eroge-rank-section-d {
    --eroge-tier-accent: #827267;
    --eroge-tier-line: #d9cec5;
    --eroge-tier-soft: #f5f0ec;
}

.eroge-rank-section-e {
    --eroge-tier-accent: #77747c;
    --eroge-tier-line: #d3d1d8;
    --eroge-tier-soft: #f1f1f4;
}

.eroge-rank-section:focus,
.eroge-rank-section:focus .eroge-rank-heading {
    outline: none;
    box-shadow: none;
}

.eroge-rank-heading {
    display: flex;
    align-items: center;
    min-height: 0;
    margin: 0;
    padding: 0 2px 14px;
}

html body .eroge-ranking-tiered h2.eroge-rank-heading-main {
    display: block;
    width: 100%;
    font-size: inherit;
    line-height: 1;
}

.eroge-rank-heading-line {
    display: inline-flex;
    flex-flow: row nowrap;
    align-items: center;
    justify-content: flex-start;
    gap: 14px;
    white-space: nowrap;
}

.eroge-rank-tier {
    display: block;
    flex: 0 0 auto;
    margin: 0;
    color: var(--eroge-tier-accent);
    font-size: 34px;
    line-height: 1;
    font-weight: 900;
    letter-spacing: -0.035em;
}

.eroge-rank-divider {
    display: block;
    flex: 0 0 1px;
    align-self: center;
    width: 1px;
    height: 22px;
    margin: 0;
    overflow: hidden;
    background: var(--eroge-tier-accent);
    color: transparent;
    font-size: 0;
    line-height: 0;
    opacity: 0.5;
}

.eroge-rank-label {
    display: block;
    flex: 0 0 auto;
    margin: 0;
    color: var(--eroge-tier-accent);
    font-size: 15px;
    line-height: 1.35;
    font-weight: 850;
}

.eroge-rank-cards {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 18px;
    margin: 0;
    padding: 0;
}

/* =========================================================
 * 作品カード
 * ========================================================= */

.eroge-tier-card {
    position: relative;
    margin: 0;
    overflow: hidden;
    border: 1px solid var(--eroge-lavender-200);
    border-radius: var(--eroge-radius);
    background: var(--eroge-paper);
    box-shadow: 0 9px 22px rgba(69, 96, 127, 0.045);
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.eroge-tier-card-main {
    display: grid;
    grid-template-columns: 58px 92px minmax(0, 1fr);
    gap: 14px;
    align-items: center;
    min-width: 0;
    padding: 22px;
    background: linear-gradient(118deg, rgba(210, 198, 232, 0.34) 0%, rgba(255, 255, 255, 0) 56%);
}

.eroge-tier-card.has-detail .eroge-tier-card-main,
.eroge-tier-card.has-detail .eroge-tier-card-info {
    cursor: pointer;
}

.eroge-tier-card-rank {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 3px;
    width: 52px;
    height: 52px;
    border: 1px solid var(--eroge-tier-line);
    border-radius: 50%;
    background: linear-gradient(135deg, #fff 0%, var(--eroge-tier-soft) 100%);
    color: var(--eroge-tier-accent);
    font-size: 18px;
    line-height: 1;
    font-weight: 900;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.62), 0 5px 13px rgba(69, 96, 127, 0.055);
}

.eroge-rank-word {
    font-size: 7px;
    line-height: 1;
    font-weight: 700;
    letter-spacing: 0.04em;
    opacity: 0.72;
}

.eroge-rank-value {
    line-height: 1;
}

.eroge-tier-thumb {
    width: 92px;
    height: 92px;
    margin: 0;
    overflow: hidden;
    border-radius: 14px;
    background: #f5f0eb;
    box-shadow: 0 8px 20px rgba(74, 49, 37, 0.12);
}

.eroge-tier-thumb img {
    display: block;
    width: 100%;
    height: 100%;
    margin: 0;
    object-fit: cover;
}

.eroge-tier-card-body,
.eroge-tier-card-summary,
.eroge-tier-title-area {
    min-width: 0;
}

.eroge-tier-card-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}

html body .eroge-ranking-tiered h3.eroge-tier-title {
    color: #293e59;
    font-size: 20px;
    line-height: 1.4;
    font-weight: 900;
    overflow-wrap: anywhere;
}

.eroge-tier-review-catch {
    margin: 9px 0 0;
    color: #405873;
    font-size: 14px;
    line-height: 1.55;
}

.eroge-tier-feature-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 9px;
}

.eroge-tier-feature-tag {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    margin: 0;
    padding: 5px 9px;
    border: 0;
    border-radius: 999px;
    background: #edf5fb;
    color: #476a88;
    font-size: 11px;
    line-height: 1;
    font-weight: 850;
    box-shadow: inset 0 0 0 1px rgba(77, 119, 157, 0.11);
}

.eroge-tier-feature-tag-positive::before,
.eroge-tier-feature-tag-negative::before {
    font-size: 0.82em;
    line-height: 1;
    font-weight: 900;
    opacity: 0.68;
}

.eroge-tier-feature-tag-positive::before {
    content: "+";
}

.eroge-tier-feature-tag-negative {
    background: #fbf1f3;
    color: #95616a;
    box-shadow: inset 0 0 0 1px rgba(157, 92, 105, 0.11);
}

.eroge-tier-feature-tag-negative::before {
    content: "\2212";
}

.eroge-tier-feature-tag-deadly {
    background: #f3efff;
    color: #6c5696;
    box-shadow: inset 0 0 0 1px rgba(108, 86, 150, 0.16);
}

.btn-expand {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-width: 90px;
    min-height: 34px;
    margin: 0;
    padding: 0 11px;
    border: 1px solid rgba(174, 199, 220, 0.78);
    border-radius: 999px;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.92), rgba(240, 247, 252, 0.9));
    color: #436382;
    font-size: 10.5px;
    line-height: 1;
    font-weight: 850;
    cursor: pointer;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.8);
    transition: color 0.18s ease, border-color 0.18s ease, background-color 0.18s ease, box-shadow 0.18s ease;
}

.btn-expand-text {
    display: block;
    position: relative;
    top: 1px;
    white-space: nowrap;
}

html body .eroge-ranking-tiered .btn-expand-text-full {
    display: block !important;
}

html body .eroge-ranking-tiered .btn-expand-text-short {
    display: none !important;
}

.btn-expand-mark {
    font-size: 14px;
    line-height: 1;
    transition: color 0.18s ease;
}

.eroge-tier-card-info {
    border-top: 1px solid #e0d9e9;
    background: linear-gradient(90deg, #f7f4fa 0%, #fcfbfd 100%);
    color: #49627c;
}

.eroge-tier-card-info-row {
    display: grid;
    grid-template-columns: 112px minmax(0, 1fr);
    gap: 20px;
    align-items: start;
    padding: 11px 22px;
}

.eroge-tier-card-info-row + .eroge-tier-card-info-row {
    border-top: 1px solid #e9e4ef;
}

.eroge-tier-card-info-label {
    padding-top: 2px;
    color: #6b849e;
    font-size: 10px;
    line-height: 1.4;
    font-weight: 900;
    letter-spacing: 0.14em;
    white-space: nowrap;
}

.eroge-tier-card-info-value {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 0;
    align-items: center;
    min-width: 0;
    color: #4f392e;
    font-size: 12.5px;
    line-height: 1.6;
    font-weight: 780;
    letter-spacing: 0.015em;
}

.eroge-tier-card-info-item {
    display: inline-flex;
    align-items: center;
}

.eroge-tier-card-info-item + .eroge-tier-card-info-item::before {
    width: 1px;
    height: 14px;
    margin: 0 14px;
    background: rgba(171, 145, 126, 0.36);
    content: "";
}

.eroge-tier-card-info-brand {
    color: #513a2d;
    font-weight: 850;
}

.eroge-tier-card-info-date,
.eroge-legacy-voice-actor {
    color: #58718b;
}

/* 声優名・VOICE TIER */
.eroge-tier-card-cast {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 6px 16px;
    align-items: center;
}

.eroge-voice-person {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    white-space: nowrap;
}

.eroge-linked-voice {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    min-width: 0;
    color: #405f7d;
    font-weight: 850;
    text-decoration: none;
}

a.eroge-linked-voice {
    margin: -2px -5px;
    padding: 2px 5px;
    border-radius: 6px;
    transition: color 0.18s ease, background-color 0.18s ease, box-shadow 0.18s ease;
}

.eroge-linked-voice-name {
    text-decoration: underline;
    text-decoration-color: rgba(64, 95, 125, 0.38);
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
    transition: color 0.18s ease, text-decoration-color 0.18s ease;
}

.eroge-linked-voice-no-link .eroge-linked-voice-name {
    text-decoration: none;
}

.eroge-linked-voice:focus-visible {
    outline: 2px solid rgba(78, 115, 151, 0.42);
    outline-offset: 2px;
}

.eroge-linked-voice-rank {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.9em;
    min-height: 18px;
    padding: 2px 5px;
    border: 1px solid currentColor;
    border-radius: 999px;
    background: #f7f3ef;
    font-size: 9.5px;
    line-height: 1;
    font-weight: 900;
    letter-spacing: 0.03em;
}

.eroge-linked-voice-rank-ss {
    color: #9a6b1d;
    background: #fff3d7;
}

.eroge-linked-voice-rank-s-plus,
.eroge-linked-voice-rank-s {
    color: #766294;
    background: #f0ecf8;
}

.eroge-linked-voice-rank-a-plus,
.eroge-linked-voice-rank-a {
    color: #a05547;
    background: #fce9e4;
}

.eroge-linked-voice-rank-b-plus,
.eroge-linked-voice-rank-b {
    color: #557a8d;
    background: #eaf4f7;
}

.eroge-linked-voice-rank-c-plus,
.eroge-linked-voice-rank-c {
    color: #638069;
    background: #edf5ec;
}

.eroge-linked-voice-rank-d-plus,
.eroge-linked-voice-rank-d {
    color: #806f62;
    background: #f4efea;
}

.eroge-linked-voice-rank-e-plus,
.eroge-linked-voice-rank-e {
    color: #75727a;
    background: #f0f0f3;
}

/* =========================================================
 * 展開レビュー
 * ========================================================= */

.eroge-inline-detail {
    display: none;
    border-top: 1px solid var(--eroge-blue-200);
    background: #fff;
    color: #2e3a4f;
}

.eroge-review-wrap {
    width: 100%;
    max-width: none;
    margin: 0 auto;
    padding: 34px 38px 38px;
    color: var(--eroge-streamer-text);
    font-size: 15px;
    line-height: 2.08;
}

.eroge-review-overview,
.eroge-review-section-group,
.eroge-review-favorite-scene,
.eroge-review-keypoints,
.eroge-review-conclusion {
    margin: 0 0 36px;
}

.eroge-review-overview:last-child,
.eroge-review-section-group:last-child,
.eroge-review-favorite-scene:last-child,
.eroge-review-keypoints:last-child,
.eroge-review-conclusion:last-child {
    margin-bottom: 0;
}

.eroge-review-lead-heading {
    margin-bottom: 24px !important;
    color: var(--eroge-blue-900) !important;
    font-size: 18px !important;
    line-height: 1.55 !important;
    font-weight: 900 !important;
    text-align: center !important;
}

.eroge-review-category-label,
.eroge-review-keypoints-heading,
.eroge-review-conclusion-label {
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    margin: 0 0 20px !important;
    padding: 0 14px !important;
    border-radius: 999px !important;
    background: var(--eroge-blue-700) !important;
    color: #fff !important;
    font-size: 13.5px !important;
    line-height: 1 !important;
    font-weight: 850 !important;
    letter-spacing: 0.015em;
}

.eroge-review-intro,
.eroge-review-section-body,
.eroge-review-conclusion-body,
.eroge-review-favorite-body {
    margin: 0;
    font-size: 15px;
    line-height: 2.08;
    color: var(--eroge-streamer-text);
}

.eroge-review-points-image {
    display: block;
    width: auto;
    max-width: 100%;
    height: auto;
    margin: 24px auto;
    border-radius: 12px;
}

.eroge-review-intro p,
.eroge-review-section-body p,
.eroge-review-conclusion-body p,
.eroge-review-favorite-body p {
    margin: 0 0 1.25em;
}

.eroge-review-intro p:last-child,
.eroge-review-section-body p:last-child,
.eroge-review-conclusion-body p:last-child,
.eroge-review-favorite-body p:last-child {
    margin-bottom: 0;
}

.eroge-review-section {
    margin: 0 0 29px;
}

.eroge-review-section:last-child {
    margin-bottom: 0;
}

html body .eroge-ranking-tiered h5.eroge-review-section-title {
    position: relative;
    margin: 0 0 14px;
    padding-left: 14px;
    color: rgba(33, 46, 68, 0.96);
    font-size: 17.5px;
    line-height: 1.58;
    font-weight: 880;
}

html body .eroge-ranking-tiered h5.eroge-review-section-title::before {
    position: absolute;
    top: 0.28em;
    bottom: 0.28em;
    left: 0;
    display: block;
    width: 2px;
    border-radius: 2px;
    background: #bdcce0;
    content: "";
}

/* ツボったシーン */
.eroge-review-favorite-list {
    display: block;
    width: 100%;
    margin: 0;
    padding: 0;
    list-style: none;
    counter-reset: favorite-scene;
}

.eroge-review-favorite-item {
    position: relative;
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr);
    gap: 10px;
    margin: 0;
    padding: 0 0 24px;
    border-bottom: 1px solid rgba(216, 226, 236, 0.9);
    counter-increment: favorite-scene;
    width: 100%;
    min-width: 0;
    writing-mode: horizontal-tb;
}

.eroge-review-favorite-item + .eroge-review-favorite-item {
    padding-top: 24px;
}

.eroge-review-favorite-item::before {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    margin-top: 1px;
    border: 1px solid rgba(188, 112, 128, 0.22);
    border-radius: 50%;
    background: #fff7f9;
    color: #ba6c7d;
    font-size: 9px;
    line-height: 1;
    font-weight: 900;
    content: counter(favorite-scene, decimal-leading-zero);
}

.eroge-review-favorite-item-content {
    display: block;
    width: 100%;
    min-width: 0;
    writing-mode: horizontal-tb;
}

html body .eroge-ranking-tiered h5.eroge-review-favorite-title {
    margin: 0 0 8px;
    color: var(--eroge-blue-900);
    font-size: 16px;
    line-height: 1.55;
    font-weight: 880;
    white-space: normal;
    word-break: normal;
    overflow-wrap: anywhere;
    writing-mode: horizontal-tb;
}

.eroge-review-favorite-cast {
    display: flex;
    flex-wrap: wrap;
    gap: 5px 18px;
    margin: 0 0 12px;
    padding: 0;
    list-style: none;
    width: 100%;
    writing-mode: horizontal-tb;
}

.eroge-review-favorite-cast-item {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 7px 13px;
    min-width: 0;
    margin: 0;
}

.eroge-review-favorite-character,
.eroge-review-favorite-voice {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    min-height: 24px;
    color: #5c7088;
    font-size: 12px;
    line-height: 1.4;
}

.eroge-review-favorite-character-icon,
.eroge-review-favorite-cv-label {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 14px;
    color: #91a5b8;
    font-size: 10px;
    line-height: 1;
}

.eroge-review-favorite-character-name {
    color: #52657b;
    font-weight: 750;
}

.eroge-review-favorite-actor,
.eroge-review-favorite-actor-plain {
    display: inline-flex;
    align-items: center;
    gap: 5px;
}

.eroge-review-favorite-body {
    color: #596b80;
    font-size: 14px;
}

/* 良かった点・気になった点 */
.eroge-review-keypoints-heading {
    padding-right: 14px !important;
}

.eroge-review-keypoint-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 34px;
}

.eroge-review-keypoint-row {
    min-width: 0;
    margin: 0;
}

.eroge-review-keypoint-content {
    min-width: 0;
}

.eroge-review-keypoint-meta {
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 24px;
    margin: 0 0 9px;
}

.eroge-review-keypoint-icon {
    display: inline-flex;
    flex: 0 0 22px;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    margin: 0;
    border-radius: 50%;
    background-image: none;
    font-size: 14px;
    line-height: 1;
    font-weight: 800;
}

html body .eroge-ranking-tiered h5.eroge-review-keypoint-label {
    display: flex;
    align-items: center;
    min-height: 22px;
    margin: 0;
    padding: 0;
    font-size: 14px;
    line-height: 22px;
    font-weight: 850;
    position: relative;
    top: 1px;
}

.eroge-review-keypoint-good .eroge-review-keypoint-icon {
    border: 1px solid rgba(76, 139, 101, 0.2);
    background: #eaf5ee;
    color: #3f7c59;
}

.eroge-review-keypoint-good .eroge-review-keypoint-icon::before {
    content: "+";
}

.eroge-review-keypoint-good .eroge-review-keypoint-label {
    color: #3f7657 !important;
}

.eroge-review-keypoint-bad .eroge-review-keypoint-icon {
    border: 1px solid rgba(172, 91, 99, 0.18);
    background: #faeeee;
    color: #a45861;
}

.eroge-review-keypoint-bad .eroge-review-keypoint-icon::before {
    content: "\2212";
}

.eroge-review-keypoint-bad .eroge-review-keypoint-label {
    color: #99555d !important;
}

.eroge-review-keypoint-list-content ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.eroge-review-keypoint-list-content li {
    position: relative;
    margin: 0;
    padding: 8px 4px 8px 18px;
    border-top: 1px dotted rgba(140, 157, 174, 0.4);
    color: #4d5e72;
    font-size: 13px;
    line-height: 1.65;
}

.eroge-review-keypoint-list-content li::before {
    position: absolute;
    top: 1.15em;
    left: 3px;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    content: "";
}

.eroge-review-keypoint-good .eroge-review-keypoint-list-content li::before {
    background: rgba(69, 132, 94, 0.78);
    box-shadow: 0 0 0 3px rgba(69, 132, 94, 0.08);
}

.eroge-review-keypoint-bad .eroge-review-keypoint-list-content li::before {
    background: rgba(166, 85, 94, 0.74);
    box-shadow: 0 0 0 3px rgba(166, 85, 94, 0.07);
}

/* =========================================================
 * 読了フッター
 * ========================================================= */

.eroge-review-footer {
    position: relative;
    display: block;
    margin: 44px -38px -38px;
    padding: 25px 52px 30px;
    overflow: hidden;
    border-top: 1px solid var(--eroge-lavender-200);
    border-radius: 0 0 19px 19px;
    background: linear-gradient(135deg, #f1edf8 0%, #fdfcff 100%);
}

.eroge-review-footer-conversion,
.eroge-review-footer-static {
    display: flex;
    justify-content: center;
    text-align: center;
}

.eroge-sale-link-buttons,
.eroge-sale-link-row {
    width: 100%;
}

.eroge-review-conclusion-links {
    width: 100%;
    margin: 0;
}

.eroge-sale-link-row {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
}

.eroge-review-footer-eyebrow,
.eroge-review-footer-guide {
    display: block;
    margin: 0;
    color: #927180;
    font-size: 9.5px;
    line-height: 1.4;
    font-weight: 750;
    letter-spacing: 0.04em;
}

.eroge-sale-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    max-width: 100%;
    color: var(--eroge-blue-900) !important;
    border: 0 !important;
    border-bottom: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    text-decoration: none;
}

.eroge-sale-link-leading,
.eroge-review-footer-context {
    display: inline-flex;
    align-items: baseline;
    justify-content: center;
    gap: 7px;
    min-width: 0;
}

.eroge-review-footer-title {
    color: var(--eroge-blue-900);
    font-size: 17px;
    line-height: 1.55;
    font-weight: 850;
    text-decoration: underline;
    text-decoration-color: rgba(38, 59, 85, 0.34);
    text-decoration-thickness: 1px;
    text-underline-offset: 4px;
    overflow-wrap: anywhere;
}

.eroge-review-footer-platform {
    color: #a18ca2;
    font-size: 8.5px;
    line-height: 1;
    font-weight: 700;
    letter-spacing: 0.09em;
    text-transform: uppercase;
}

.eroge-review-footer-platform::after {
    margin-left: 5px;
    color: #75879c;
    font-size: 11px;
    content: "\2197";
}

.eroge-review-footer-static-content {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 9px;
}

.eroge-review-close {
    position: absolute;
    right: 14px;
    bottom: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    margin: 0;
    padding: 0;
    border: 1px solid rgba(118, 105, 151, 0.22);
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.58);
    color: rgba(92, 81, 125, 0.62);
    cursor: pointer;
    transition: color 0.18s ease, border-color 0.18s ease, background-color 0.18s ease;
}

.eroge-review-close-text {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
}

.eroge-review-close-mark {
    font-size: 14px;
    line-height: 1;
}

/* =========================================================
 * モバイル読書中表示
 * ========================================================= */

body > .eroge-reading-status {
    display: none;
}

/* =========================================================
 * ホバー・フォーカス
 * ========================================================= */

@media (hover: hover) and (pointer: fine) {
    .eroge-guide-voice-link:hover .eroge-guide-voice-link-mark {
        transform: translateX(3px);
    }

    button.eroge-rank-jump-button:hover:not(:disabled) {
        background: rgba(255, 255, 255, 0.58);
        color: #385f82;
    }

    .eroge-ranking-search-clear:hover {
        background: rgba(119, 145, 171, 0.09);
        color: #4b6a88;
    }

    a.eroge-linked-voice:hover {
        background: rgba(72, 105, 139, 0.04);
        box-shadow: inset 0 0 0 1px rgba(72, 105, 139, 0.085);
    }

    .eroge-linked-voice:hover .eroge-linked-voice-name {
        color: #365f82;
        text-decoration-color: rgba(54, 95, 130, 0.56);
    }

    .eroge-tier-card.has-detail:hover:not(.shown) {
        border-color: #c6bad8;
        box-shadow: 0 12px 28px rgba(104, 91, 132, 0.1);
    }

    .eroge-tier-card.has-detail:hover:not(.shown) .btn-expand {
        border-color: #aec5d9;
        background: #f0f6fb;
        color: #315a7e;
    }

    .eroge-sale-link:hover .eroge-review-footer-title {
        color: #3f5f80;
        text-decoration-color: rgba(63, 95, 128, 0.62);
    }

    .eroge-review-close:hover {
        border-color: rgba(98, 82, 137, 0.38);
        background: rgba(255, 255, 255, 0.88);
        color: #65547d;
    }
}

.btn-expand:focus-visible,
.eroge-rank-jump-button:focus-visible,
.eroge-ranking-search-clear:focus-visible,
.eroge-review-close:focus-visible,
.eroge-sale-link:focus-visible {
    outline: 2px solid rgba(69, 105, 139, 0.42);
    outline-offset: 2px;
}

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

@media screen and (max-width: 768px) {
    .eroge-ranking-tiered {
        margin-top: 18px;
    }

    .eroge-guide-main,
    .eroge-guide-voice {
        padding: 15px 0 17px;
    }

    .eroge-ranking-tools {
        grid-template-columns: max-content minmax(52px, 1fr);
        grid-template-areas: "rank search";
        gap: 8px;
        margin-bottom: 18px;
        padding: 6px 0;
    }

    .eroge-rank-jump {
        gap: 4px;
        padding-right: 8px;
    }

    .eroge-rank-jump-label {
        font-size: 9.5px;
    }

    .eroge-rank-jump-icon,
    .eroge-ranking-search-icon {
        width: 11px;
        height: 11px;
    }

    button.eroge-rank-jump-button {
        min-width: 21px;
        min-height: 32px;
        padding: 3px 2px;
        font-size: 10px;
    }

    .eroge-ranking-search-count {
        display: none;
    }

    .eroge-ranking-search-icon {
        left: 7px;
    }

    html body .eroge-ranking-tiered .eroge-ranking-search-input[type="search"] {
        height: 32px;
        padding-right: 34px;
        padding-left: 28px;
        font-size: 9.5px;
    }

    .eroge-rank-section {
        margin-bottom: 28px;
    }

    .eroge-rank-heading {
        padding: 0 1px 11px;
    }

    .eroge-rank-heading-line {
        gap: 11px;
    }

    .eroge-rank-tier {
        font-size: 29px;
    }

    .eroge-rank-divider {
        height: 18px;
    }

    .eroge-rank-label {
        font-size: 13px;
    }

    .eroge-rank-cards {
        gap: 14px;
    }

    .eroge-tier-card {
        border-radius: 17px;
    }

    .eroge-tier-card-main {
        display: grid;
        grid-template-columns: 48px minmax(0, 1fr);
        grid-template-rows: auto auto auto;
        gap: 14px 13px;
        align-items: start;
        padding: 15px;
    }

    .eroge-tier-card-rank {
        grid-column: 1;
        grid-row: 2;
        align-self: center;
        width: 48px;
        height: 48px;
        font-size: 16px;
    }

    .eroge-tier-thumb {
        grid-column: 1 / -1;
        grid-row: 1;
        width: 100%;
        height: auto;
        max-height: none;
        aspect-ratio: 16 / 10;
        border-radius: 13px;
    }

    .eroge-tier-card-body {
        display: contents;
    }

    .eroge-tier-card-summary {
        grid-column: 2;
        grid-row: 2;
        align-self: center;
    }

    .eroge-tier-feature-tags {
        grid-column: 1 / -1;
        grid-row: 3;
        margin-top: 0;
    }

    html body .eroge-ranking-tiered h3.eroge-tier-title {
        font-size: 18px;
        line-height: 1.42;
    }

    .eroge-tier-review-catch {
        margin-top: 8px;
        font-size: 14px;
        line-height: 1.62;
    }

    .eroge-tier-feature-tag {
        padding: 6px 10px;
        font-size: 11px;
    }

    .btn-expand {
        flex: 0 0 38px;
        width: 38px;
        min-width: 38px;
        min-height: 38px;
        padding: 0;
    }

    html body .eroge-ranking-tiered .btn-expand-text-full {
        display: none !important;
    }

    html body .eroge-ranking-tiered .btn-expand-text-short {
        display: block !important;
    }

    .eroge-tier-card-info-row {
        grid-template-columns: 86px minmax(0, 1fr);
        gap: 12px;
        padding: 11px 15px;
    }

    .eroge-tier-card-info-label {
        font-size: 9.5px;
    }

    .eroge-tier-card-cast {
        gap: 6px 13px;
    }

    a.eroge-linked-voice {
        min-height: 24px;
    }

    .eroge-inline-detail {
        border-top-color: #e1e9f2;
    }

    .eroge-review-wrap {
        padding: 28px 22px 32px;
        font-size: 14px;
        line-height: 1.95;
    }

    .eroge-review-overview,
    .eroge-review-section-group,
    .eroge-review-favorite-scene,
    .eroge-review-keypoints,
    .eroge-review-conclusion {
        margin-bottom: 30px;
    }

    .eroge-review-intro,
    .eroge-review-section-body,
    .eroge-review-conclusion-body {
        font-size: 14px;
        line-height: 1.95;
    }

    .eroge-review-category-label,
    .eroge-review-keypoints-heading,
    .eroge-review-conclusion-label {
        min-height: 28px;
        margin-bottom: 17px !important;
        padding: 0 12px !important;
        font-size: 12.5px !important;
    }

    html body .eroge-ranking-tiered h5.eroge-review-section-title {
        font-size: 16px;
    }

    .eroge-review-favorite-item {
        grid-template-columns: 26px minmax(0, 1fr);
        gap: 9px;
    }

    .eroge-review-favorite-cast {
        gap: 4px 12px;
    }

    .eroge-review-keypoint-list {
        grid-template-columns: 1fr;
        gap: 22px;
    }

    .eroge-review-footer {
        margin: 38px -22px -32px;
        padding: 24px 38px 31px;
        border-radius: 0 0 16px 16px;
    }

    .eroge-review-footer-title {
        font-size: 16px;
    }

    .eroge-review-close {
        right: 10px;
        bottom: 9px;
    }

    body > .eroge-reading-status {
        position: fixed;
        right: 12px;
        bottom: 12px;
        z-index: 9998;
        display: block;
        max-width: calc(100vw - 24px);
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transform: translateY(8px);
        transition: opacity 0.18s ease, transform 0.18s ease, visibility 0.18s ease;
    }

    body > .eroge-reading-status.is-visible {
        opacity: 1;
        visibility: visible;
        transform: translateY(0);
    }

    .eroge-reading-status-inner {
        display: flex;
        align-items: center;
        gap: 8px;
        max-width: min(350px, calc(100vw - 24px));
        padding: 7px 10px;
        border: 1px solid rgba(193, 210, 225, 0.88);
        border-radius: 999px;
        background: rgba(255, 255, 255, 0.94);
        box-shadow: 0 7px 20px rgba(43, 66, 91, 0.12);
        backdrop-filter: blur(8px);
    }

    .eroge-reading-status-emblem {
        display: flex;
        flex: 0 0 34px;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        width: 34px;
        height: 34px;
        border: 1px solid var(--eroge-blue-300);
        border-radius: 50%;
        color: var(--eroge-blue-700);
        font-size: 12px;
        line-height: 1;
        font-weight: 900;
    }

    .eroge-reading-status-rank-label {
        margin-top: 2px;
        font-size: 5.5px;
        letter-spacing: 0.06em;
        opacity: 0.65;
    }

    .eroge-reading-status-tier {
        font-size: 12px;
        line-height: 1;
        font-weight: 900;
    }

    .eroge-reading-status-title {
        min-width: 0;
        overflow: hidden;
        color: var(--eroge-blue-900);
        font-size: 11px;
        line-height: 1.35;
        font-weight: 800;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
}

@media screen and (max-width: 520px) {
    .eroge-tier-card-main {
        gap: 12px 10px;
        padding: 13px;
    }

    .eroge-tier-card-rank {
        width: 44px;
        height: 44px;
        font-size: 15px;
    }

    html body .eroge-ranking-tiered h3.eroge-tier-title {
        font-size: 16px;
    }

    .eroge-tier-review-catch {
        font-size: 12.5px;
    }

    .eroge-tier-card-head {
        gap: 8px;
    }

    .btn-expand {
        flex-basis: 34px;
        width: 34px;
        min-width: 34px;
        min-height: 34px;
        font-size: 0;
    }

    html body .eroge-ranking-tiered .btn-expand-text-short {
        display: none !important;
    }

    .btn-expand-mark {
        font-size: 17px;
    }

    .eroge-tier-card-info-row {
        grid-template-columns: 78px minmax(0, 1fr);
        gap: 10px;
        padding-right: 13px;
        padding-left: 13px;
    }

    .eroge-review-wrap {
        padding-right: 17px;
        padding-left: 17px;
    }

    .eroge-review-footer {
        margin-right: -17px;
        margin-left: -17px;
        padding-right: 34px;
        padding-left: 34px;
    }

    .eroge-review-favorite-cast-item {
        width: 100%;
    }
}

/* リスト疑似要素・本文開始余白の最終補正 */
body.page-id-24221 .entry-content {
    margin-top: 18px !important;
}

html body .eroge-ranking-tiered .eroge-review-favorite-scene,
html body .eroge-ranking-tiered .eroge-review-favorite-list,
html body .eroge-ranking-tiered .eroge-review-favorite-item {
    border: 0 !important;
    box-shadow: none !important;
}

html body .eroge-ranking-tiered .eroge-review-favorite-list {
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
    counter-reset: eroge-favorite-scene !important;
}

html body .eroge-ranking-tiered .eroge-review-favorite-item {
    list-style: none !important;
    counter-increment: eroge-favorite-scene !important;
}

html body .eroge-ranking-tiered .eroge-review-favorite-item::marker,
html body .eroge-ranking-tiered .eroge-review-favorite-cast-item::marker {
    color: transparent !important;
    font-size: 0 !important;
    content: "" !important;
}

html body .eroge-ranking-tiered .eroge-review-favorite-item::before {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 26px !important;
    height: 26px !important;
    margin: 1px 0 0 !important;
    padding: 0 !important;
    border: 1px solid rgba(188, 112, 128, 0.22) !important;
    border-radius: 50% !important;
    background: #fff7f9 !important;
    color: #ba6c7d !important;
    font-size: 9px !important;
    line-height: 1 !important;
    font-weight: 900 !important;
    content: counter(eroge-favorite-scene, decimal-leading-zero) !important;
}

html body .eroge-ranking-tiered .eroge-review-favorite-cast-item {
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

html body .eroge-ranking-tiered .eroge-review-favorite-cast-item::before,
html body .eroge-ranking-tiered .eroge-review-favorite-cast-item::after {
    display: none !important;
    content: none !important;
}

html body .eroge-ranking-tiered h5.eroge-review-keypoint-label {
    top: auto !important;
    transform: none !important;
}

/* 削減前のトップ余白・本文見出し寸法へ復元 */
@media screen and (min-width: 769px) {
    body.page-id-24221 .article-header {
        margin-bottom: 28px !important;
        padding-bottom: 0 !important;
    }

    body.page-id-24221 .entry-content {
        margin-top: 0 !important;
    }
}

html body .entry-content .eroge-guide {
    margin-bottom: 0 !important;
}

html body .entry-content .eroge-guide .eroge-guide-main {
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
}

html body .entry-content .eroge-guide .eroge-guide-voice {
    margin: 18px 0 0 !important;
    padding: 18px 0 0 !important;
    border: 0 !important;
    border-top: 1px solid #dfe8f2 !important;
    background: transparent !important;
}

html body .entry-content .eroge-guide .eroge-guide-kicker,
html body .entry-content .eroge-guide .eroge-guide-voice-kicker {
    margin-bottom: 5px !important;
    font-size: 9px !important;
    line-height: 1 !important;
}

html body .entry-content .eroge-guide h2.eroge-guide-title,
html body .entry-content .eroge-guide h3.eroge-guide-voice-title {
    margin-bottom: 7px !important;
    color: #31445e !important;
    font-size: 15px !important;
    line-height: 1.45 !important;
    font-weight: 900 !important;
}

html body .entry-content .eroge-guide .eroge-guide-lead,
html body .entry-content .eroge-guide .eroge-guide-voice-body {
    margin: 0 !important;
    color: #526176 !important;
    font-size: 12.5px !important;
    line-height: 1.75 !important;
}

html body .entry-content .eroge-guide .eroge-guide-voice-link {
    margin-top: 12px !important;
    padding: 6px 1px 5px !important;
    font-size: 12px !important;
    line-height: 1.4 !important;
}

html body .eroge-ranking-tiered .eroge-review-category-label,
html body .eroge-ranking-tiered .eroge-review-keypoints-heading,
html body .eroge-ranking-tiered .eroge-review-conclusion-label {
    min-height: 38px !important;
    margin: 0 0 20px !important;
    padding: 0 14px !important;
    font-size: 13.5px !important;
    line-height: 1 !important;
}

html body .eroge-ranking-tiered .eroge-review-section {
    margin-top: 30px !important;
}

html body .eroge-ranking-tiered h5.eroge-review-section-title {
    margin: 0 0 13px !important;
    font-size: 18px !important;
    line-height: 1.5 !important;
}

html body .eroge-ranking-tiered h5.eroge-review-keypoint-label {
    position: static !important;
    top: auto !important;
    transform: translateY(0.5px) !important;
}

@media screen and (max-width: 768px) {
    body.page-id-24221 #main.main {
        padding-top: 20px !important;
    }

    body.page-id-24221 .article-header {
        margin-bottom: 28px !important;
        padding-bottom: 12px !important;
    }

    body.page-id-24221 .entry-content {
        margin-top: 0 !important;
    }

    body.page-id-24221 .entry-title {
        padding-top: 8px !important;
        padding-bottom: 8px !important;
    }

    html body .entry-content .eroge-guide .eroge-guide-voice {
        margin-top: 12px !important;
        padding-top: 12px !important;
    }

    html body .entry-content .eroge-guide h2.eroge-guide-title,
    html body .entry-content .eroge-guide h3.eroge-guide-voice-title {
        font-size: 14.5px !important;
    }

    html body .eroge-ranking-tiered .eroge-review-category-label,
    html body .eroge-ranking-tiered .eroge-review-keypoints-heading,
    html body .eroge-ranking-tiered .eroge-review-conclusion-label {
        min-height: 34px !important;
        margin-bottom: 18px !important;
        padding: 0 13px !important;
        font-size: 13px !important;
    }

    html body .eroge-ranking-tiered h5.eroge-review-section-title {
        font-size: 17px !important;
    }
}

html body .eroge-ranking-tiered .eroge-review-keypoint-list-content li {
    border: 0 !important;
}

html body .eroge-ranking-tiered .eroge-review-keypoint-list-content li + li {
    border-top: 1px dotted rgba(140, 157, 174, 0.4) !important;
}

@media screen and (max-width: 768px) {
    body.page-id-24221 .entry-content {
        margin-top: 0 !important;
    }
}

/* テーマ競合後も崩れない最終レイアウト */
html body .entry-content .eroge-guide .eroge-guide-voice {
    border-bottom: 0 !important;
}

html body .eroge-ranking-tiered .eroge-review-favorite-item {
    display: grid !important;
    grid-template-columns: 28px minmax(0, 1fr) !important;
    gap: 10px !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 0 24px !important;
}

html body .eroge-ranking-tiered .eroge-review-favorite-item::before {
    grid-column: 1 !important;
    grid-row: 1 !important;
}

html body .eroge-ranking-tiered .eroge-review-favorite-item-content {
    grid-column: 2 !important;
    grid-row: 1 !important;
    width: auto !important;
    max-width: 100% !important;
    min-width: 0 !important;
}

html body .eroge-ranking-tiered .eroge-review-favorite-cast {
    margin: 0 0 12px !important;
    padding: 0 !important;
}

html body .eroge-ranking-tiered .eroge-review-keypoint-meta {
    display: grid !important;
    grid-template-columns: 22px minmax(0, 1fr) !important;
    align-items: center !important;
    min-height: 22px !important;
}

html body .eroge-ranking-tiered h5.eroge-review-keypoint-label {
    position: static !important;
    top: auto !important;
    height: 22px !important;
    min-height: 22px !important;
    line-height: 22px !important;
    transform: translateY(1px);
}

html body .eroge-ranking-tiered .eroge-review-footer .eroge-sale-link {
    position: relative !important;
    display: inline-block !important;
    width: auto !important;
    max-width: calc(100% - 58px) !important;
    overflow: visible !important;
    text-align: center !important;
}

html body .eroge-ranking-tiered .eroge-review-footer .eroge-sale-link-leading,
html body .eroge-ranking-tiered .eroge-review-footer .eroge-review-footer-context {
    position: relative !important;
    display: block !important;
    width: auto !important;
    min-width: 0 !important;
    gap: 0 !important;
}

html body .eroge-ranking-tiered .eroge-review-footer .eroge-review-footer-title {
    display: block !important;
    width: auto !important;
    text-align: center !important;
}

html body .eroge-ranking-tiered .eroge-review-footer .eroge-review-footer-platform {
    position: absolute !important;
    top: 50% !important;
    left: calc(100% + 8px) !important;
    display: inline-flex !important;
    align-items: center !important;
    width: max-content !important;
    margin: 0 !important;
    white-space: nowrap !important;
    transform: translateY(-50%) !important;
}

@media screen and (max-width: 520px) {
    html body .eroge-ranking-tiered .eroge-review-favorite-item {
        grid-template-columns: 26px minmax(0, 1fr) !important;
        gap: 9px !important;
    }

    html body .eroge-ranking-tiered .eroge-review-footer .eroge-sale-link {
        max-width: calc(100% - 52px) !important;
    }

    html body .eroge-ranking-tiered .eroge-review-footer .eroge-review-footer-platform {
        left: calc(100% + 6px) !important;
    }
}

@media screen and (max-width: 420px) {
    .eroge-rank-jump-label {
        display: none;
    }
}

@media screen and (min-width: 421px) and (max-width: 768px) {
    .eroge-ranking-tools {
        gap: 0;
    }

    .eroge-ranking-search {
        transform: translateX(-1px);
    }
}

@media (prefers-reduced-motion: reduce) {
    .eroge-ranking-tiered *,
    body > .eroge-reading-status {
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
    }
}

@media print {
    .eroge-ranking-tools,
    .btn-expand,
    .eroge-review-close,
    body > .eroge-reading-status {
        display: none !important;
    }

    .eroge-tier-card,
    .eroge-inline-detail {
        break-inside: avoid;
        box-shadow: none;
    }
}

/* Cocoon共通CSSより確実に優先する最小互換レイヤー */
html body .eroge-ranking-tiered .eroge-ranking-tools {
    border-top: 0 !important;
    box-shadow: none !important;
}

html body .eroge-ranking-tiered button.btn-expand {
    width: auto !important;
    min-width: 90px !important;
    height: 34px !important;
    min-height: 34px !important;
    padding: 0 11px !important;
    font-size: 10.5px !important;
    line-height: 1 !important;
}

html body .eroge-ranking-tiered .eroge-review-wrap,
html body .eroge-ranking-tiered .eroge-review-intro,
html body .eroge-ranking-tiered .eroge-review-section-body,
html body .eroge-ranking-tiered .eroge-review-favorite-body,
html body .eroge-ranking-tiered .eroge-review-conclusion-body {
    color: var(--eroge-streamer-text) !important;
}

html body .eroge-ranking-tiered h5.eroge-review-keypoint-label {
    position: relative !important;
    top: 1px !important;
}

html body .eroge-ranking-tiered .eroge-review-footer .eroge-sale-link {
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    text-decoration: none !important;
}

html body .eroge-ranking-tiered .eroge-review-footer .eroge-sale-link::before,
html body .eroge-ranking-tiered .eroge-review-footer .eroge-sale-link::after {
    display: none !important;
    content: none !important;
}

@media screen and (max-width: 520px) {
    html body .eroge-ranking-tiered button.btn-expand {
        width: 34px !important;
        min-width: 34px !important;
        padding: 0 !important;
    }
}

html body .eroge-ranking-tiered h5.eroge-review-keypoint-label {
    position: relative !important;
    transform: none !important;
}

/* 「語りたいところ」直下だけは、見出し後の余白を加えない。 */
html body .eroge-ranking-tiered .eroge-review-category-label + .eroge-review-section {
    margin-top: 0 !important;
}
