/* Score numeral only: genuine Lato Black 900 under an isolated alias (the site ships no Lato 900 face, so Lato 900 would fall back to Bold). */
@font-face { font-family:'ZZ PDP Score Lato Black'; font-style:normal; font-weight:900; font-display:swap; src:url('../fonts/PDP-score/lato-black-900-latin-ext.woff2') format('woff2'); unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family:'ZZ PDP Score Lato Black'; font-style:normal; font-weight:900; font-display:swap; src:url('../fonts/PDP-score/lato-black-900-latin.woff2') format('woff2'); unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
/* PDP-041 — canonical Reviews adapter: desktop DeskReviewsC, Tablet 42, mobile cards. */
.zz-pdp-reviews { margin-top: 56px; color: var(--text-body, #334155); font-family: Lato, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
.zz-pdp-reviews *, .zz-pdp-reviews *::before, .zz-pdp-reviews *::after { box-sizing: border-box; }
.zz-pdp-reviews__heading { margin-bottom: 18px; }
.zz-pdp-reviews__summary { display:grid; grid-template-columns:1fr 1.6fr 1fr; column-gap:32px; align-items:center; padding:4px 0 16px; border-bottom:1px solid var(--border-default, #e5e7eb); }
.zz-pdp-reviews__score { display:grid; gap:6px; justify-items:start; }
.zz-pdp-reviews__score strong { color:var(--text-heading, #1f1f1f); font:900 44px/1 'ZZ PDP Score Lato Black', Lato, sans-serif; }
.zz-pdp-reviews__score > span:not(.zz-pdp-reviews__stars) { color:var(--text-muted, #64748b); font:400 13px/1.4 Lato, sans-serif; }
.zz-pdp-reviews__stars { display:inline-flex; gap:1px; height:13px; vertical-align:middle; }
.zz-pdp-reviews__stars--summary { height:16px; }
.zz-pdp-reviews__star { position:relative; display:block; width:13px; height:13px; }
.zz-pdp-reviews__stars--summary .zz-pdp-reviews__star { width:16px; height:16px; }
.zz-pdp-reviews__star svg { display:block; width:100%; height:100%; }
.zz-pdp-reviews__star-empty { fill:#d1d5db; stroke:#d1d5db; stroke-width:.8; stroke-linejoin:round; }
.zz-pdp-reviews__star-fill { position:absolute; inset:0; fill:#ffd700; stroke:#ffd700; stroke-width:.8; stroke-linejoin:round; }
.zz-pdp-reviews__distribution { display:grid; }
.zz-pdp-reviews__distribution-row { display:flex; align-items:center; gap:8px; min-height:26px; color:inherit; text-decoration:none; }
.zz-pdp-reviews__distribution a.zz-pdp-reviews__distribution-row { cursor:pointer; }
.zz-pdp-reviews__distribution-row.is-active span, .zz-pdp-reviews__distribution-row.is-active em { color:var(--text-heading, #1f1f1f); font-weight:600; }
.zz-pdp-reviews__distribution a.zz-pdp-reviews__distribution-row:focus-visible { outline:2px solid var(--focus-ring, #2563eb); outline-offset:2px; }
.zz-pdp-reviews__distribution span, .zz-pdp-reviews__distribution em { color:var(--text-muted, #64748b); font:400 13px/1 Lato, sans-serif; font-style:normal; }
.zz-pdp-reviews__distribution span { width:28px; }.zz-pdp-reviews__distribution em { width:22px; text-align:right; }
.zz-pdp-reviews__distribution i { flex:1; height:6px; overflow:hidden; border-radius:999px; background:var(--border-divider, #e5e7eb); }.zz-pdp-reviews__distribution b { display:block; height:100%; border-radius:inherit; background:var(--accent-highlight, #ffd700); }
.zz-pdp-reviews__actions { display:grid; gap:2px; justify-items:start; }.zz-pdp-reviews__actions button, .zz-pdp-reviews__actions a, .zz-pdp-reviews__empty button { border:0; padding:0; background:none; color:var(--text-heading, #1f1f1f); cursor:pointer; font-family:inherit; }.zz-pdp-reviews__all { display:inline-flex; align-items:center; min-height:36px; font-size:13.5px; font-weight:600; line-height:1.2; text-decoration:underline; text-underline-offset:3px; }.zz-pdp-reviews__actions > span { color:var(--text-muted, #64748b); font-size:13px; line-height:1.4; }.zz-pdp-reviews__actions [data-zz-reviews-add] { display:inline-flex; align-items:center; min-height:40px; font-size:13.5px; font-weight:600; line-height:1.2; }
/* PDP-041-R5: relative age is Mobile-only; Desktop/Tablet keep the absolute date exactly as before. */
.zz-pdp-reviews__date-rel { display:none; }
/* PDP-041-R3 Phase A: Flatsome's global `button` rule uppercases and tracks every button; the canonical entry caption is sentence case. Scoped to the Reviews entry only. */
.zz-pdp-reviews [data-zz-reviews-add] { text-transform:none; letter-spacing:normal; }
.zz-pdp-reviews__review { display:grid; grid-template-columns:168px minmax(0, 1fr); column-gap:24px; padding:14px 0; border-bottom:1px solid var(--border-divider, #e5e7eb); }.zz-pdp-reviews__author { display:flex; gap:10px; align-items:center; align-self:start; }.zz-pdp-reviews__avatar { display:grid; flex:0 0 auto; width:34px; height:34px; place-items:center; border-radius:50%; background:rgba(15,23,42,.06); color:var(--text-heading, #1f1f1f); font-size:12.5px; font-weight:600; }.zz-pdp-reviews__author > span:last-child { display:grid; gap:1px; }.zz-pdp-reviews__author b { color:var(--text-heading, #1f1f1f); font-size:14px; font-weight:600; line-height:1.3; white-space:nowrap; }.zz-pdp-reviews__author time { color:var(--text-muted, #64748b); font-size:12px; line-height:1.4; white-space:nowrap; }.zz-pdp-reviews__content { max-width:600px; }.zz-pdp-reviews__body { margin-top:4px; color:var(--text-body, #334155); font-size:14.5px; line-height:1.5; }.zz-pdp-reviews__body p { margin:0; }.zz-pdp-reviews__meta { display:flex; flex-wrap:wrap; align-items:center; gap:6px; margin-top:6px; color:var(--text-muted, #64748b); font-size:12px; line-height:1.3; }.zz-pdp-reviews__verified { color:var(--accent-success, #15803d); font-weight:500; }.zz-pdp-reviews__empty { padding:18px 0; border-bottom:1px solid var(--border-divider, #e5e7eb); }.zz-pdp-reviews__empty p { margin:0; }.zz-pdp-reviews__empty button { min-height:40px; font-size:13.5px; font-weight:600; }
/* PDP-047: Tablet shares the Desktop editorial composition (three-part summary, full-width 168px/fluid rows). Only the section rhythm differs: 24px heading, 40px top padding. */
@media (min-width:700px) and (max-width:1279.98px) { .zz-pdp-reviews { margin-top:0; padding-top:40px; }.zz-pdp-reviews__heading { font-size:24px; line-height:1.25; } }
@media (max-width:699.98px) { .zz-pdp-reviews { margin-top:0; padding-top:32px; }.zz-pdp-reviews__heading { margin-bottom:14px; }.zz-pdp-reviews__summary { display:grid; grid-template-columns:1fr; gap:10px; padding:0; border:0; }.zz-pdp-reviews__score { display:grid; grid-template-columns:auto 1fr; align-items:center; column-gap:14px; row-gap:0; }.zz-pdp-reviews__score strong { grid-row:1 / span 2; font-size:34px; }.zz-pdp-reviews__score > .zz-pdp-reviews__stars { grid-column:2; grid-row:1; }.zz-pdp-reviews__score > span:not(.zz-pdp-reviews__stars) { grid-column:2; grid-row:2; }.zz-pdp-reviews__distribution-row { min-height:30px; padding:2px; }.zz-pdp-reviews__distribution span { width:26px; }.zz-pdp-reviews__distribution i { height:9px; }.zz-pdp-reviews__actions { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:10px; padding:0 2px; }.zz-pdp-reviews__actions > span { font-size:13px; }.zz-pdp-reviews__actions [data-zz-reviews-add] { min-height:44px; padding:0 2px; font-size:13px; }.zz-pdp-reviews__list { display:grid; gap:10px; padding-top:10px; }.zz-pdp-reviews__list #comments { display:grid; gap:10px; }.zz-pdp-reviews__form { margin-top:6px; }.zz-rf { border-bottom:0; border-top:1px solid var(--border-divider, #e5e7eb); }.zz-pdp-reviews__list .zz-pdp-reviews__all { display:inline-flex; align-items:center; justify-content:center; min-height:44px; margin-top:2px; border:1px solid var(--border-default,#e5e7eb); border-radius:12px; background:var(--surface-subtle,#fafafa); text-decoration:none; }.zz-pdp-reviews__mobile-invite { display:flex; align-items:center; justify-content:space-between; gap:10px; min-width:0; padding:0 2px; }.zz-pdp-reviews__mobile-invite > span { flex:0 0 auto; color:var(--text-muted,#64748b); font-size:13px; line-height:1.3; white-space:nowrap; }.zz-pdp-reviews__mobile-invite [data-zz-reviews-add] { display:inline-flex; align-items:center; flex:0 0 auto; min-height:44px; margin:0; padding:0 2px; color:var(--text-heading,#1f1f1f); border:0; background:none; font-family:inherit; font-size:13px; font-weight:600; line-height:1.2; white-space:nowrap; cursor:pointer; }.zz-pdp-reviews__review { position:relative; display:flex; flex-wrap:wrap; align-items:baseline; align-content:flex-start; column-gap:8px; row-gap:0; min-width:0; padding:14px 14px 14px 60px; border:1px solid var(--border-default,#e5e7eb); border-radius:14px; background:#fff; box-shadow:0 1px 2px rgba(15,23,42,.04); }
@media (max-width:339.98px) { .zz-pdp-reviews__mobile-invite > span, .zz-pdp-reviews__mobile-invite [data-zz-reviews-add] { font-size:12px; } }
/* R5: author/who/content wrappers dissolve so name -> stars -> date share one wrapping header line (single source of truth, no cloned nodes); avatar stays at the card's left padding box. */
.zz-pdp-reviews__author, .zz-pdp-reviews__author > span:last-child, .zz-pdp-reviews__content { display:contents; }
.zz-pdp-reviews__avatar { position:absolute; top:14px; left:14px; }
.zz-pdp-reviews__author b { order:1; min-width:0; max-width:100%; white-space:normal; overflow-wrap:anywhere; }
.zz-pdp-reviews__review .zz-pdp-reviews__stars { order:2; position:relative; top:2px; gap:0; height:12px; }
.zz-pdp-reviews__review .zz-pdp-reviews__star { width:12px; height:12px; }
.zz-pdp-reviews__review .zz-pdp-reviews__star + .zz-pdp-reviews__star { margin-left:-1.6px; }
.zz-pdp-reviews__author time { order:3; min-width:0; max-width:100%; font-size:12px; line-height:1.3; white-space:normal; overflow-wrap:anywhere; }
.zz-pdp-reviews__date--rel .zz-pdp-reviews__date-abs { display:none; }
.zz-pdp-reviews__date--rel .zz-pdp-reviews__date-rel { display:inline; }
.zz-pdp-reviews__body { order:4; flex:0 0 100%; min-width:0; margin-top:6px; font-size:14px; }
.zz-pdp-reviews__meta { order:5; flex:0 0 100%; margin-top:8px; } }
/* PDP-041-R3 Phase B: first-party ReviewForm72 family over the native Woo/WP comment form. Closed by default; opened only by the explicit Add Review click. */
.zz-pdp-reviews [data-zz-reviews-add][aria-disabled="true"] { cursor:default; color:var(--text-muted, #64748b); }
.zz-pdp-reviews__form { container-type:inline-size; container-name:zz-rf; scroll-margin-top:96px; }
.zz-pdp-reviews__form[hidden] { display:none; }
.zz-rf { box-sizing:border-box; padding:20px 0 22px; border-bottom:1px solid var(--border-divider, #e5e7eb); color:var(--text-body, #334155); font-family:Lato, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; outline:0; }
.zz-rf *, .zz-rf *::before, .zz-rf *::after { box-sizing:border-box; }
.zz-rf__head { display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:2px 16px; margin-bottom:14px; }
.zz-rf__title { color:var(--text-heading, #1f1f1f); font:700 16px/1.3 Lato, sans-serif; }
.zz-rf__helper { display:flex; flex-wrap:wrap; align-items:center; gap:0 10px; color:var(--text-muted, #64748b); font:400 12.5px/1.45 Lato, sans-serif; }
.zz-rf__verified { display:inline-flex; align-items:center; gap:4px; color:var(--accent-success, #15803d); font:500 12px/1.3 Lato, sans-serif; }
.zz-rf__body { min-width:0; }
.zz-rf #respond { margin:0; padding:0; }
.zz-rf__form { display:grid; gap:16px; max-width:600px; margin:0; }
.zz-rf__field { margin:0; }
.zz-rf .zz-rf__label { display:block; margin:0 0 6px; padding:0; color:var(--text-heading, #1f1f1f); font:700 12px/1.2 Lato, sans-serif; letter-spacing:.04em; text-transform:uppercase; }
.zz-rf__req { color:#b20000; }
.zz-rf input[type="text"], .zz-rf input[type="email"], .zz-rf textarea { display:block; width:100%; max-width:none; height:auto; min-height:46px; margin:0; padding:10px 14px; color:var(--text-heading, #1f1f1f); background:#fafafa; border:1px solid #e5e7eb; border-radius:12px; box-shadow:none; outline:0; font:400 14.5px/1.45 Lato, sans-serif; transition:box-shadow .15s, border-color .15s; }
.zz-rf textarea { min-height:104px; resize:vertical; }
.zz-rf__field.comment-form-comment { padding-bottom:3px; }
.zz-rf input[type="text"]:focus, .zz-rf input[type="email"]:focus, .zz-rf textarea:focus { background:#fff; border-color:var(--accent-brand, #ed0678); box-shadow:0 0 0 3px rgba(237,6,120,.2); }
.zz-rf [aria-invalid="true"] { border-color:#b20000; }
.zz-rf__error { margin-top:5px; color:#b20000; font:400 12.5px/1.3 Lato, sans-serif; }
.zz-rf .zz-rf__rating { display:block; min-width:0; margin:0; padding:0; border:0; }
.zz-rf__rating > legend { float:left; width:100%; white-space:nowrap; border:0; }
.zz-rf__stars { clear:both; display:flex; align-items:center; margin-left:-4px; }
.zz-rf__star-input { position:absolute; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip:rect(0 0 0 0); border:0; opacity:0; }
.zz-rf .zz-rf__star { display:grid; place-items:center; width:44px; height:44px; margin:0; padding:0; border-radius:12px; color:#d3d7dd; cursor:pointer; font:400 30px/1 Lato, sans-serif; letter-spacing:normal; text-transform:none; transition:color .12s; }
.zz-rf__star:has(~ .zz-rf__star-input:checked), .zz-rf__star-input:checked + .zz-rf__star { color:var(--accent-highlight, #fec90e); }
@media (hover:hover) { .zz-rf__stars:hover .zz-rf__star { color:#d3d7dd; }.zz-rf__stars .zz-rf__star:hover, .zz-rf__stars .zz-rf__star:has(~ .zz-rf__star:hover) { color:var(--accent-highlight, #fec90e); } }
.zz-rf__star-input:focus-visible + .zz-rf__star { outline:2px solid var(--accent-brand, #ed0678); outline-offset:-2px; }
.zz-rf__rating-label { min-width:84px; margin-left:10px; color:var(--text-muted, #64748b); font:400 13.5px/1.2 Lato, sans-serif; }
.zz-rf__pair { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:16px; }
.zz-rf__actions { display:flex; flex-wrap:wrap; align-items:center; gap:4px 20px; margin:2px 0 0; }
.zz-rf .zz-rf__submit { display:inline-flex; align-items:center; justify-content:center; flex:0 0 auto; min-height:48px; margin:0; padding:0 30px; color:#14301f; background:var(--zzs-cta-green, #8ed1a6); border:1px solid #7cc296; border-radius:12px; box-shadow:none; font:700 13px/1 Lato, sans-serif; letter-spacing:.05em; text-decoration:none; text-transform:uppercase; white-space:nowrap; cursor:pointer; }
.zz-rf .zz-rf__submit:hover { box-shadow:none; filter:brightness(.97); }
.zz-rf .zz-rf__submit:focus-visible, .zz-rf .zz-rf__cancel:focus-visible { outline:2px solid var(--accent-brand, #ed0678); outline-offset:2px; }
.zz-rf .zz-rf__submit.is-pending { opacity:.7; cursor:progress; }
.zz-rf .zz-rf__cancel { min-height:44px; margin:0; padding:0; color:var(--text-muted, #64748b); background:none; border:0; box-shadow:none; font:600 13.5px/1 Lato, sans-serif; letter-spacing:normal; text-decoration:underline; text-transform:none; text-underline-offset:3px; cursor:pointer; }
.zz-rf__note { color:var(--text-muted, #64748b); font:400 12.5px/1.4 Lato, sans-serif; }
.zz-rf__locked { display:flex; max-width:634px; align-items:center; gap:20px; padding:14px 16px; background:var(--surface-sunken, #f6f6f4); border:1px solid var(--border-divider, #e5e7eb); border-radius:12px; }
.zz-rf__lock { display:grid; flex:0 0 auto; place-items:center; width:36px; height:36px; color:var(--text-muted, #64748b); background:#fff; border:1px solid var(--border-default, #e5e7eb); border-radius:50%; }
.zz-rf__locked-text { flex:1; font:400 14.5px/1.5 Lato, sans-serif; }
.zz-rf__locked-actions { margin-top:4px; }
.zz-rf__status { max-width:600px; margin:14px 0; padding:14px 16px; color:var(--text-heading, #1f1f1f); background:#f1faf4; border:1px solid #c2e9d0; border-radius:12px; font:400 14.5px/1.5 Lato, sans-serif; }
@container zz-rf (min-width:780px) { .zz-rf { display:grid; grid-template-columns:168px minmax(0, 1fr); column-gap:24px; }.zz-rf__head { display:grid; grid-template-columns:minmax(0, 1fr); align-content:start; gap:4px; margin:0; }.zz-rf__title { font-size:15px; }.zz-rf__helper { display:grid; gap:4px; } }
@container zz-rf (max-width:439.98px) { .zz-rf__form { gap:14px; }.zz-rf input[type="text"], .zz-rf input[type="email"], .zz-rf textarea { font-size:16px; }.zz-rf textarea { min-height:138px; }.zz-rf__pair { grid-template-columns:minmax(0, 1fr); gap:14px; }.zz-rf__actions { display:grid; justify-items:center; gap:4px; }.zz-rf .zz-rf__submit { width:100%; }.zz-rf .zz-rf__cancel { padding:0 16px; }.zz-rf__note { text-align:center; }.zz-rf__locked { flex-direction:column; align-items:stretch; gap:14px; }.zz-rf__lock { display:none; } }
@media (prefers-reduced-motion:reduce) { .zz-rf * { transition:none !important; } }

/* PDP-047: text-only filter toggle (server-rendered GET form + one aria-pressed button), muted rating-only body, filtered-empty state. Flatsome's global `button` rule is neutralized for this control only. */
.zz-pdp-reviews__filters { display:flex; justify-content:flex-end; margin:0; padding:6px 0 0; }
.zz-pdp-reviews .zz-pdp-reviews__text-toggle { display:inline-flex; align-items:center; min-height:40px; max-width:100%; margin:0; padding:0; color:inherit; background:none; border:0; border-radius:0; box-shadow:none; font:inherit; letter-spacing:normal; line-height:1.2; text-transform:none; text-align:left; cursor:pointer; }
.zz-pdp-reviews__text-toggle-pill { display:inline-flex; align-items:center; gap:8px; min-height:32px; max-width:100%; padding:0 12px 0 8px; color:var(--text-muted, #64748b); background:#fff; border:1px solid var(--border-default, #e5e7eb); border-radius:999px; font:500 13px/1.2 Lato, sans-serif; transition:border-color .15s, background .15s; }
.zz-pdp-reviews__text-toggle-box { display:grid; flex:0 0 auto; place-items:center; width:16px; height:16px; color:#fff; background:#fff; border:1.5px solid #c4c9d1; border-radius:4px; }
.zz-pdp-reviews__text-toggle-box svg { display:none; }
.zz-pdp-reviews__text-toggle[aria-pressed="true"] .zz-pdp-reviews__text-toggle-pill { color:var(--text-heading, #1f1f1f); background:rgba(15,23,42,.05); border-color:var(--text-heading, #1f1f1f); font-weight:600; }
.zz-pdp-reviews__text-toggle[aria-pressed="true"] .zz-pdp-reviews__text-toggle-box { background:var(--text-heading, #1f1f1f); border-color:var(--text-heading, #1f1f1f); }
.zz-pdp-reviews__text-toggle[aria-pressed="true"] .zz-pdp-reviews__text-toggle-box svg { display:block; }
.zz-pdp-reviews__text-toggle:focus-visible { outline:0; }
.zz-pdp-reviews__text-toggle:focus-visible .zz-pdp-reviews__text-toggle-pill { outline:2px solid var(--accent-brand, #ed0678); outline-offset:1px; box-shadow:0 0 0 3px rgba(237,6,120,.2); }
.zz-pdp-reviews__review--no-text .zz-pdp-reviews__body { color:var(--text-muted, #64748b); }
.zz-pdp-reviews__filtered-empty { display:grid; gap:4px; justify-items:start; padding:20px 0; border-bottom:1px solid var(--border-divider, #e5e7eb); }
.zz-pdp-reviews__filtered-empty > span { color:var(--text-body, #334155); font:400 14.5px/1.5 Lato, sans-serif; }
.zz-pdp-reviews__filtered-empty > a { display:inline-flex; align-items:center; min-height:40px; color:var(--text-heading, #1f1f1f); font:600 13.5px/1.2 Lato, sans-serif; text-decoration:underline; text-underline-offset:3px; }
@media (max-width:699.98px) { .zz-pdp-reviews__filters { justify-content:flex-start; padding-top:4px; }.zz-pdp-reviews .zz-pdp-reviews__text-toggle { min-height:44px; } }
