/* Shared by both storefronts; all rules are scoped to the package widget. */
.evo-reviews {
    --er-accent: var(--bg-red-100, #ef1e24);
    --er-ink: #1a1a1a;
    --er-muted: #666;
    --er-line: #e8e8e8;
    font: inherit;
    font-size: 15px;
    line-height: 1.5;
    color: var(--er-ink);
    background: #fff;
    border-radius: 16px;
    padding: 28px;
    margin: 24px 0;
    max-width: 100%;
    scroll-margin-top: 100px;
}
.evo-reviews * { box-sizing: border-box; }
.evo-reviews h2, .evo-reviews h3 { font-weight: 600; line-height: 1.3; margin: 0; }
.evo-reviews h2 { font-size: 24px; }
.evo-reviews h3 { font-size: 22px; margin-bottom: 20px; }
.evo-reviews p { margin: 0; }
.evo-reviews a { color: inherit; text-decoration: none; }
.evo-reviews a:hover { text-decoration: underline; }
.evo-reviews button, .evo-reviews input, .evo-reviews textarea { font: inherit; }
.evo-reviews button {
    cursor: pointer;
    border: 1px solid #d5d5d5;
    border-radius: 10px;
    padding: 11px 18px;
    background: #fff;
    color: var(--er-ink);
    line-height: 1.4;
    font-weight: 500;
    transition: background .15s, border-color .15s, color .15s;
}
.evo-reviews button:hover { background: #f5f5f5; border-color: #aaa; }
.evo-reviews [data-er-create], .evo-reviews button[type=submit] { background: var(--er-accent); color: #fff; border-color: var(--er-accent); }
.evo-reviews [data-er-create]:hover, .evo-reviews button[type=submit]:hover { background: #cf0000; border-color: #cf0000; }
.evo-reviews button:disabled { opacity: .55; cursor: wait; }
.evo-reviews :focus-visible { outline: 3px solid #2054a8; outline-offset: 3px; }
.evo-reviews .er-heading { display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap; }
.evo-reviews .er-actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.evo-reviews .er-summary { display: flex; flex-wrap: wrap; gap: 12px 24px; margin: 20px 0 24px; color: var(--er-muted); font-size: 14px; }
.evo-reviews .er-summary p { background: #f6f6f6; padding: 10px 14px; border-radius: 8px; }
.evo-reviews .er-summary strong { font-weight: 500; }
.evo-reviews .er-tabs { display: flex; flex-wrap: wrap; gap: 6px 20px; border-bottom: 1px solid var(--er-line); padding-bottom: 0; }
.evo-reviews .er-tabs button { display: inline-flex; align-items: center; gap: 8px; background: transparent; border: 0; border-bottom: 3px solid transparent; border-radius: 0; padding: 12px 0; color: var(--er-muted); margin-bottom: -1px; }
.evo-reviews .er-tabs button:hover { color: var(--er-ink); }
.evo-reviews .er-tabs button[aria-pressed=true] { color: var(--er-ink); border-bottom-color: var(--er-accent); }
.evo-reviews .er-count { border-radius: 20px; padding: 2px 8px; font-size: 12px; background: #f0f0f0; color: #666; min-width: 24px; text-align: center; }
.evo-reviews [aria-pressed=true] .er-count { color: #fff; background: var(--er-ink); }
.evo-reviews .er-message { border-bottom: 1px solid var(--er-line); padding: 28px 0; scroll-margin-top: 100px; overflow-wrap: anywhere; }
.evo-reviews .er-message:last-child { border-bottom: 0; }
.evo-reviews .er-message:target { outline: 2px solid #f0bd52; outline-offset: 6px; border-radius: 4px; }
.evo-reviews .er-message header { display: flex; gap: 8px 12px; align-items: center; flex-wrap: wrap; }
.evo-reviews .er-message header strong { font-size: 16px; font-weight: 600; }
.evo-reviews .er-message header a { font-size: 12px; color: var(--er-muted); }
.evo-reviews .er-message time { font-size: 12px; color: var(--er-muted); margin-left: auto; font-variant-numeric: tabular-nums; }
.evo-reviews .er-body { white-space: pre-wrap; line-height: 1.7; margin: 14px 0 18px; max-width: 90ch; }
.evo-reviews .er-product { font-size: 12px; color: var(--er-muted); margin-top: 6px; }
.evo-reviews .er-product a { text-decoration: underline; text-decoration-color: #ccc; text-underline-offset: 3px; }
.evo-reviews .er-rating { color: #866000; font-size: 14px; font-weight: 600; margin-top: 12px; }
.evo-reviews .er-expert { display: inline-block; background: #f2f2f2; color: var(--er-ink); padding: 4px 10px; border-radius: 6px; }
.evo-reviews .er-message > .er-actions { margin-top: 16px; }
.evo-reviews .er-message > .er-actions button { padding: 6px 10px; border-color: transparent; background: #f5f5f5; font-size: 13px; font-weight: 400; border-radius: 6px; }
.evo-reviews .er-message > .er-actions button:hover { background: #eaeaea; }
.evo-reviews .er-helpful { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-left: auto; color: var(--er-muted); font-size: 12px; }
.evo-reviews .er-helpful button { background: transparent; }
.evo-reviews [data-er-thread-content]:not(:empty) { margin-top: 20px; }
.evo-reviews [data-er-thread-content] .er-message { padding: 20px 0; }
.evo-reviews .er-photos, .evo-reviews .er-previews { display: flex; flex-wrap: wrap; gap: 10px; }
.evo-reviews .er-photos img, .evo-reviews .er-previews img { display: block; width: 96px; height: 96px; object-fit: cover; border: 1px solid var(--er-line); border-radius: 10px; }
.evo-reviews .er-previews:not(:empty) { margin-bottom: 16px; }
.evo-reviews .er-preview { position: relative; flex: 0 0 96px; width: 96px; min-width: 0; font-size: 12px; }
.evo-reviews .er-preview-name { display: block; margin-top: 6px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.evo-reviews .er-preview-remove { position: absolute; top: 4px; right: 4px; display: grid; place-items: center; width: 32px; height: 32px; padding: 0; border-radius: 7px; background: #fffffff2; box-shadow: 0 1px 4px #0002; }
.evo-reviews .er-preview-remove:hover { color: var(--er-accent); border-color: var(--er-accent); background: #fff; }
.evo-reviews .er-preview-remove .er-icon { width: 18px; height: 18px; }
.evo-reviews [data-er-list] > p { padding: 40px 16px; text-align: center; color: var(--er-muted); }
.evo-reviews dialog { position: fixed; inset: 0; width: min(600px, calc(100% - 24px)); max-height: 90vh; max-height: 90dvh; overflow: auto; border: 0; border-radius: 16px; padding: 28px; background: #fff; color: var(--er-ink); margin: auto; z-index: 100000; box-shadow: 0 12px 60px #0003; }
.evo-reviews dialog::backdrop { background: #0009; }
.evo-reviews dialog label { display: block; margin: 16px 0; font-size: 14px; }
.evo-reviews dialog input:not([type=radio]), .evo-reviews dialog textarea { display: block; width: 100%; border: 1px solid #ccc; border-radius: 8px; padding: 11px 12px; margin-top: 6px; background: #fff; color: var(--er-ink); font-size: 16px; }
.evo-reviews dialog textarea { resize: vertical; min-height: 120px; }
.evo-reviews dialog input[type=file] { font-size: 12px; padding: 12px 8px; border-style: dashed; background: #fafafa; }
.evo-reviews dialog fieldset { border: 0; padding: 0; margin: 16px 0; }
.evo-reviews dialog legend { font-size: 14px; margin-bottom: 8px; }
.evo-reviews .er-stars { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 6px; }
.evo-reviews dialog .er-stars .er-star { display: inline-flex; justify-content: center; align-items: center; gap: 6px; margin: 0; padding: 10px 2px; font-size: 16px; white-space: nowrap; border: 1px solid #ddd; border-radius: 8px; cursor: pointer; }
.evo-reviews dialog .er-star:has(:checked) { background: #fff7df; border-color: #d8a124; }
.evo-reviews dialog .er-star input { margin: 0; width: 16px; height: 16px; flex-shrink: 0; accent-color: #9d7000; }
.evo-reviews dialog .er-actions { margin-top: 20px; }
.evo-reviews [data-er-manager] { display: inline-block; margin-top: 16px; font-size: 13px; text-decoration: underline; }
.evo-reviews [hidden] { display: none !important; }
.evo-reviews .er-manage { position: relative; margin-left: auto; font-size: 13px; }
.evo-reviews .er-manage > summary { cursor: pointer; list-style: none; color: #42618c; border-radius: 6px; padding: 5px 8px; }
.evo-reviews .er-manage > summary::-webkit-details-marker { display: none; }
.evo-reviews .er-manage[open] > summary { background: #edf3fa; }
.evo-reviews .er-manage-options { position: absolute; right: 0; top: 100%; z-index: 5; min-width: 230px; max-width: min(300px, 70vw); background: #fff; border: 1px solid var(--er-line); border-radius: 10px; padding: 10px; box-shadow: 0 6px 24px #0002; display: flex; flex-direction: column; gap: 6px; }
.evo-reviews .er-manage-options > button { text-align: left; font-size: 13px; padding: 8px 10px; border: 0; background: #f6f6f6; }
.evo-reviews .er-moderation-state { font-size: 12px; color: #795d23; margin-bottom: 6px; }
.evo-reviews [data-er-moderation-state] { padding: 3px 8px; border-radius: 6px; margin: 0; background: #fff5db; }
.evo-reviews .er-state-published { color: #287440; background: #edf8ef; }
.evo-reviews .er-state-deleted { color: #a22b35; background: #fceef0; }
.evo-reviews .er-moderation-feedback:empty { display: none; }
.evo-reviews .er-delete-confirm { display: flex; flex-wrap: wrap; gap: 6px; }
.evo-reviews .er-delete-confirm p { width: 100%; font-size: 13px; }
.evo-reviews [data-er-status]:empty, .evo-reviews [data-er-form-status]:empty { display: none; }
.evo-reviews [role=status] { padding: 12px; margin-top: 12px; color: #8b1421; background: #fff2f2; border-radius: 8px; }
.evo-reviews [data-er-pages], .evo-reviews [data-er-thread-content] nav { display: flex; justify-content: center; align-items: center; gap: 16px; padding: 16px 0 0; font-size: 13px; color: var(--er-muted); }
.evo-reviews [data-er-thread-content] nav { padding: 0 0 16px; }
.evo-reviews [data-er-pages]:empty { display: none; }
@media (max-width: 600px) {
    .evo-reviews { padding: 20px 16px; font-size: 14px; border-radius: 12px; }
    .evo-reviews h2 { font-size: 22px; }
    .evo-reviews .er-heading { gap: 16px; }
    .evo-reviews .er-create { width: 100%; }
    .evo-reviews .er-create button { flex: 1; padding: 10px 8px; font-size: 13px; }
    .evo-reviews .er-summary { gap: 8px; margin: 16px 0; font-size: 12px; }
    .evo-reviews .er-tabs { gap: 0 14px; }
    .evo-reviews .er-tabs button { font-size: 13px; padding: 10px 0; gap: 5px; }
    .evo-reviews .er-message { padding: 22px 0; }
    .evo-reviews .er-message time { width: 100%; margin-left: 0; }
    .evo-reviews .er-helpful { width: 100%; margin-left: 0; }
    .evo-reviews dialog { padding: 20px 16px; }
    .evo-reviews dialog .er-star input { width: 14px; height: 14px; }
}

/* The reCAPTCHA challenge layer: a manual popover inside the dialog (so it is not inert), positioned like <body> so the challenge keeps its
   document-absolute coordinates, and in the top layer after the dialog, so it paints above it. */
.er-captcha-layer { position: absolute; inset: 0 auto auto 0; width: 100%; height: 0; margin: 0; padding: 0; border: 0; overflow: visible; background: transparent; color: inherit; pointer-events: none; }
.er-captcha-layer > * { pointer-events: auto; }

/* Package SVGs and review-specific controls. */
.evo-reviews .er-icon { display: inline-block; width: 20px; height: 20px; fill: currentColor; flex-shrink: 0; vertical-align: middle; }
.evo-reviews .er-rating-stars { display: inline-flex; align-items: center; gap: 2px; color: #d5d5d5; }
.evo-reviews .er-rating-stars .er-star-on { color: #f5b300; }
.evo-reviews .er-summary p { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; }
.evo-reviews .er-summary .er-icon { width: 16px; height: 16px; }
.evo-reviews .er-rating { margin-top: 10px; }
.evo-reviews .er-thumb-down { transform: rotate(180deg); }
.evo-reviews .er-helpful button { display: inline-flex; align-items: center; gap: 6px; }
.evo-reviews .er-helpful button[aria-pressed=true] { color: #187443; background: #eaf7ee; opacity: 1; cursor: default; }
.evo-reviews dialog .er-stars { display: flex; gap: 8px; }
.evo-reviews dialog .er-stars .er-star { position: relative; padding: 6px; margin: 0; border: 0; background: transparent; }
.evo-reviews dialog .er-star .er-icon { width: 36px; height: 36px; color: #d5d5d5; }
.evo-reviews dialog .er-star.er-selected .er-icon { color: #f5b300; }
.evo-reviews dialog .er-star:has(:checked) { background: transparent; }
.evo-reviews dialog .er-star:focus-within { outline: 3px solid #2054a8; outline-offset: 2px; }
.evo-reviews dialog .er-star input { position: absolute; width: 1px; height: 1px; opacity: 0; overflow: hidden; }
.evo-reviews [data-er-list] > .er-message, .evo-reviews [data-er-list] > .er-message:last-child { margin: 16px 0; padding: 20px; border: 1px solid var(--er-line); border-radius: 12px; }
.evo-reviews .er-kind { display: block; font-size: 12px; color: var(--er-muted); font-weight: 500; margin-bottom: 8px; }
.evo-reviews .er-message > .er-actions .er-thread-toggle { order: 3; flex-basis: 100%; width: 100%; padding: 12px 8px 0; border-top: 1px solid var(--er-line); border-radius: 0; margin-top: 8px; background: transparent; color: #405d7e; }
.evo-reviews .er-thread-toggle::after { content: ' ↓'; }
.evo-reviews .er-thread-toggle[aria-expanded=true]::after { content: ' ↑'; }
.evo-reviews [data-er-thread-content] .er-answer { padding: 16px; background: #f8f8f8; border: 1px solid var(--er-line); border-radius: 10px; margin: 10px 0 0; }
.evo-reviews .er-answer .er-kind { color: #405d7e; }
.evo-reviews .er-gallery { margin: 24px 0; padding: 16px; border: 1px solid var(--er-line); border-radius: 12px; }
.evo-reviews .er-gallery h3 { font-size: 16px; margin: 0 0 12px; }
.evo-reviews .er-gallery-strip { display: flex; gap: 10px; overflow-x: auto; overscroll-behavior-inline: contain; scroll-snap-type: x proximity; padding: 3px 3px 10px; }
.evo-reviews .er-gallery-strip a { flex: 0 0 96px; scroll-snap-align: start; }
.evo-reviews .er-gallery-strip img { display: block; width: 96px; height: 96px; border-radius: 8px; object-fit: cover; background: #f5f5f5; }
.evo-reviews [data-er-gallery-more] { margin-top: 10px; font-size: 13px; }
.evo-reviews .er-photos a, .evo-reviews .er-gallery-strip a { cursor: zoom-in; }
.evo-reviews dialog.er-photo-dialog { width: min(920px, calc(100% - 24px)); padding: 16px; }
.evo-reviews .er-photo-dialog > img { display: block; width: 100%; height: min(62vh, 640px); object-fit: contain; margin: 12px 0; background: #f6f6f6; border-radius: 8px; }
.evo-reviews .er-photo-toolbar { display: flex; gap: 12px; justify-content: space-between; align-items: center; font-size: 14px; }
.evo-reviews .er-photo-toolbar a { text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 600px) {
    .evo-reviews [data-er-list] > .er-message, .evo-reviews [data-er-list] > .er-message:last-child { padding: 16px 12px; }
    .evo-reviews .er-gallery { padding: 12px; }
    .evo-reviews .er-gallery-strip a { flex-basis: 80px; }
    .evo-reviews .er-gallery-strip img { width: 80px; height: 80px; }
    .evo-reviews [data-er-thread-content] .er-answer { padding: 12px; }
    .evo-reviews .er-photo-toolbar button { padding: 8px 12px; }
}

/* Product conversation: summary sidebar, append-only reading and rating distribution. */
.evo-reviews .er-avatar { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; flex-shrink: 0; border-radius: 50%; background: #e8e8e8; color: #666; font-weight: 600; }
.evo-reviews .er-title-product { display: block; font-size: 16px; font-weight: 400; color: var(--er-muted); margin-top: 8px; }
.evo-reviews .er-layout { display: grid; grid-template-columns: minmax(260px, 30%) minmax(0, 1fr); gap: 28px; margin-top: 24px; align-items: start; }
.evo-reviews .er-sidebar, .evo-reviews .er-content { min-width: 0; }
.evo-reviews .er-summary { display: block; margin: 0; color: var(--er-ink); font-size: 14px; }
.evo-reviews .er-rating-summary { padding: 24px 20px; border-radius: 14px; background: #f7f7f7; }
.evo-reviews .er-rating-title { font-size: 17px; font-weight: 500; }
.evo-reviews .er-rating-value { display: flex; align-items: baseline; gap: 6px; margin-top: 8px; }
.evo-reviews .er-rating-value b { font-size: 38px; line-height: 1.2; font-weight: 600; }
.evo-reviews .er-rating-value > span { font-size: 16px; }
.evo-reviews .er-rating-value .er-icon { align-self: center; width: 25px; height: 25px; }
.evo-reviews .er-star-on { color: #f5a800; }
.evo-reviews .er-rating-caption { color: var(--er-muted); font-size: 12px; margin: 10px 0 20px; }
.evo-reviews .er-distribution { display: grid; gap: 12px; }
.evo-reviews .er-distribution-row { display: grid; grid-template-columns: 12px 18px minmax(0, 1fr) minmax(22px, auto); align-items: center; gap: 9px; font-size: 14px; }
.evo-reviews .er-distribution-row .er-icon { width: 16px; height: 16px; }
.evo-reviews .er-distribution-row > span:last-child { text-align: right; font-variant-numeric: tabular-nums; }
.evo-reviews .er-bar { height: 9px; background: #e5e5e5; border-radius: 8px; overflow: hidden; }
.evo-reviews .er-bar > span { display: block; height: 100%; background: #f5a800; border-radius: inherit; }
.evo-reviews .er-variant-rating { margin: 12px 0; border: 1px solid var(--er-line); border-radius: 10px; overflow: hidden; }
.evo-reviews .er-variant-rating > summary { padding: 12px; cursor: pointer; font-size: 13px; }
.evo-reviews .er-variant-rating .er-rating-summary { border-radius: 0; }
.evo-reviews .er-filter-panel { background: #f3f3f3; border-radius: 14px; padding: 20px 12px; text-align: center; margin-top: 16px; color: var(--er-muted); }
.evo-reviews .er-total { font-size: 38px; font-weight: 600; line-height: 1.2; color: var(--er-ink); }
.evo-reviews .er-filters { display: flex; justify-content: center; gap: 8px; margin-top: 16px; flex-wrap: wrap; }
.evo-reviews .er-filters button { border-radius: 24px; padding: 9px 12px; font-size: 13px; }
.evo-reviews .er-filters button span { opacity: .65; margin-left: 5px; }
.evo-reviews .er-filters button[aria-pressed=true] { background: #1a1a1a; color: #fff; border-color: #1a1a1a; }
.evo-reviews .er-sidebar .er-create { display: grid; gap: 10px; margin-top: 16px; }
.evo-reviews .er-sidebar .er-create button { width: 100%; font-size: 15px; padding: 14px 12px; }
.evo-reviews [data-er-list] > .er-message:first-child { margin-top: 0; }
.evo-reviews .er-gallery { margin-top: 20px; }
.evo-reviews [data-er-pages].er-more, .evo-reviews .er-more { display: flex; flex-direction: column; gap: 10px; align-items: stretch; padding: 16px 0 0; }
.evo-reviews .er-more-status { text-align: center; font-size: 13px; color: var(--er-muted); }
.evo-reviews .er-more > button { width: 100%; border: 0; background: #f2f2f2; text-transform: uppercase; font-size: 14px; }
.evo-reviews [data-er-before]:not(:empty) { margin: 16px 0; }
.evo-reviews [data-er-before] button { width: 100%; }
@media (max-width: 900px) {
    .evo-reviews .er-layout { grid-template-columns: minmax(0, 1fr); gap: 24px; }
    .evo-reviews .er-sidebar { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; align-items: start; }
    .evo-reviews .er-sidebar .er-summary { grid-row: span 2; }
    .evo-reviews .er-sidebar .er-filter-panel, .evo-reviews .er-sidebar .er-create { margin-top: 0; }
}
@media (max-width: 600px) {
    .evo-reviews .er-sidebar { display: block; }
    .evo-reviews .er-sidebar .er-filter-panel, .evo-reviews .er-sidebar .er-create { margin-top: 16px; }
    .evo-reviews .er-title-product { font-size: 14px; }
}
