.wbc-card {
    box-sizing: border-box;
    max-width: var(--wbc-max-width, 760px);
    margin: 1.8em auto;
    padding: clamp(12px, 2vw, 20px) clamp(18px, 3vw, 30px) clamp(18px, 3vw, 30px);
    background: var(--wbc-bg, #fff);
    color: var(--wbc-text, #222);
    border: var(--wbc-border-width, 1px) solid var(--wbc-border-color, #dedede);
    border-radius: var(--wbc-radius, 12px);
    font-family: var(--wbc-font, inherit);
    font-size: var(--wbc-body-size, 16px);
    line-height: 1.75;
    overflow: hidden;
}

.wbc-card *, .wbc-card *::before, .wbc-card *::after { box-sizing: border-box; }
.wbc-title { margin: 0 0 .85em; color: var(--wbc-text, #222); font: inherit; font-size: var(--wbc-title-size, 28px); font-weight: 700; line-height: 1.35; }
.wbc-top { display: flex; align-items: center; gap: clamp(18px, 4vw, 38px); margin-bottom: 20px; }
.wbc-image-wrap { flex: 0 1 var(--wbc-image-width, 320px); max-width: var(--wbc-image-width, 320px); margin: 0; }
.wbc-image { display: block; width: 100%; height: auto; border-radius: calc(var(--wbc-radius, 12px) * .65); object-fit: contain; }
.wbc-rating { display: flex; flex: 1 1 220px; min-width: 190px; flex-direction: column; align-items: flex-start; justify-content: center; padding: 18px; background: color-mix(in srgb, var(--wbc-accent, #a56a2a) 8%, transparent); border-radius: calc(var(--wbc-radius, 12px) * .65); }
.wbc-rating-label { margin-bottom: 4px; font-weight: 700; }
.wbc-stars { display: inline-flex; gap: 2px; font-size: clamp(22px, 4vw, 34px); line-height: 1.2; }
.wbc-star { color: #d6d6d6; }
.wbc-star.is-active { color: var(--wbc-accent, #a56a2a); }
.wbc-score { display: inline-flex; align-items: baseline; gap: 3px; margin-top: 6px; font-size: var(--wbc-score-size, 18px); }
.wbc-score strong { font-size: 1.55em; color: var(--wbc-accent, #a56a2a); }
.wbc-score small { font-size: .85em; }
.wbc-details { margin-top: 14px; border: 1px solid color-mix(in srgb, var(--wbc-text, #222) 18%, transparent); border-radius: calc(var(--wbc-radius, 12px) * .55); overflow: hidden; }
.wbc-details summary { position: relative; cursor: pointer; list-style: none; padding: 13px 46px 13px 16px; background: color-mix(in srgb, var(--wbc-accent, #a56a2a) 9%, transparent); font-weight: 700; }
.wbc-details summary::-webkit-details-marker { display: none; }
.wbc-details summary::after { content: "+"; position: absolute; top: 50%; right: 16px; transform: translateY(-50%); color: var(--wbc-accent, #a56a2a); font-size: 1.35em; }
.wbc-details[open] summary::after { content: "−"; }
.wbc-details-body { padding: 14px 16px 16px; }
.wbc-table { width: 100%; margin: 0; border-collapse: collapse; font-size: inherit; }
.wbc-table th, .wbc-table td { padding: 10px 12px; border-bottom: 1px solid color-mix(in srgb, var(--wbc-text, #222) 13%, transparent); text-align: left; vertical-align: top; }
.wbc-table th { width: 30%; color: var(--wbc-text, #222); font-weight: 700; background: color-mix(in srgb, var(--wbc-accent, #a56a2a) 5%, transparent); }
.wbc-table tr:last-child th, .wbc-table tr:last-child td { border-bottom: 0; }
.wbc-tasting-body { display: grid; gap: 16px; }
.wbc-tasting-item { padding-bottom: 14px; border-bottom: 1px dashed color-mix(in srgb, var(--wbc-text, #222) 18%, transparent); }
.wbc-tasting-item:last-child { padding-bottom: 0; border-bottom: 0; }
.wbc-tasting-item h4 {
    display: flex;
    align-items: center;
    gap: 7px;
    margin: 0 0 5px;
    padding: 0;
    color: var(--wbc-accent, #a56a2a);
    font: inherit;
    font-weight: 700;
}
.wbc-tasting-item h4::before,
.wbc-tasting-item h4::after {
    display: none !important;
    content: none !important;
}
.wbc-tasting-marker { display: inline-flex; flex: 0 0 auto; align-items: center; justify-content: center; width: 1.25em; height: 1.25em; color: var(--wbc-accent, #a56a2a); line-height: 1; }
.wbc-tasting-marker.is-check { width: auto; font-weight: 700; }
.wbc-tasting-marker.is-icon svg { display: block; width: 100%; height: 100%; fill: currentColor; }
.wbc-tasting-label { display: inline; }
.wbc-tasting-item p { margin: 0; }

.wbc-catchphrase {
    margin: -.45em 0 1.05em;
    color: color-mix(in srgb, var(--wbc-text, #222) 76%, transparent);
    font-size: .95em;
    font-weight: 600;
    letter-spacing: .02em;
    line-height: 1.55;
}

.wbc-pairings {
    margin-top: 14px;
}
.wbc-pairings-body {
    background: color-mix(in srgb, var(--wbc-accent, #a56a2a) 3%, transparent);
}
.wbc-pairings-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 10px;
    margin: 0;
}
.wbc-pairing-item {
    min-width: 0;
    padding: 12px 13px;
    border: 1px solid color-mix(in srgb, var(--wbc-text, #222) 10%, transparent);
    border-radius: calc(var(--wbc-radius, 12px) * .45);
    background: var(--wbc-bg, #fff);
}
.wbc-pairing-item dt {
    margin: 0 0 5px;
    color: var(--wbc-accent, #a56a2a);
    font-weight: 700;
}
.wbc-pairing-item dd {
    margin: 0;
    line-height: 1.65;
}

.wbc-free-text { margin: 16px 0 4px; }
.wbc-free-text > :first-child { margin-top: 0; }
.wbc-free-text > :last-child { margin-bottom: 0; }
.wbc-free-text .pochipp-box,
.wbc-free-text [class*="pochipp"] { max-width: 100%; }

@media (max-width: 680px) {
    .wbc-top { flex-direction: column; align-items: stretch; }
    .wbc-image-wrap { width: 100%; max-width: min(100%, var(--wbc-image-width, 320px)); margin-inline: auto; }
    .wbc-image-wrap.is-rakuten { max-width: 100%; }
    .wbc-rating { min-width: 0; align-items: center; text-align: center; }
    .wbc-table, .wbc-table tbody, .wbc-table tr, .wbc-table th, .wbc-table td { display: block; width: 100%; }
    .wbc-table th { border-bottom: 0; padding-bottom: 4px; }
    .wbc-table td { padding-top: 4px; }
}

.wbc-affiliate-image-link {
    display: block;
    width: 100%;
    text-decoration: none;
}

.wbc-affiliate-image-link:focus-visible {
    outline: 3px solid var(--wbc-accent, #a56a2a);
    outline-offset: 4px;
    border-radius: calc(var(--wbc-radius, 12px) * .65);
}

.wbc-image-wrap.is-rakuten {
    flex: 0 1 auto;
    max-width: 100%;
    overflow-x: auto;
    text-align: center;
}
.wbc-rakuten-html { display: inline-block; max-width: none; line-height: 1; vertical-align: top; }
.wbc-rakuten-note {
    margin-top: 7px;
    color: color-mix(in srgb, var(--wbc-text, #222) 72%, transparent);
    font-size: .75em;
    line-height: 1.5;
    text-align: center;
}

.wbc-extra-blocks { margin: 18px 0 4px; }
.wbc-extra-blocks > :first-child { margin-top: 0; }
.wbc-extra-blocks > :last-child { margin-bottom: 0; }
.wbc-extra-blocks .wp-block-button,
.wbc-extra-blocks .wp-block-image,
.wbc-extra-blocks .wp-block-group,
.wbc-extra-blocks .pochipp-box,
.wbc-extra-blocks [class*="pochipp"] { max-width: 100%; }
