/* ReviewFlows review displays: one stylesheet for every theme and layout. Loaded only on pages that print a
   view. Tokens (inlined after this file from settings): --rvf-rev-accent (links, read more), --rvf-rev-card-bg,
   --rvf-rev-card-radius, --rvf-rev-name, --rvf-rev-star, --rvf-rev-btn, --rvf-rev-label. Themes are pure CSS
   blocks on the same markup (.rvf-view--{theme}); layouts too (.rvf-view--{layout}). px throughout. */

/* 1. Tokens + reset --------------------------------------------------------------------------------- */
.rvf-view{
  --rvf-rev-accent:#FF4E00;--rvf-rev-card-bg:#F8F9FB;--rvf-rev-card-radius:15px;--rvf-rev-name:#E94D10;--rvf-rev-star:#FFB900;--rvf-rev-btn:#E94D10;--rvf-rev-label:#444444;
  --rvf-rev-text:#4C4243;--rvf-rev-muted:#6B6560;--rvf-rev-muted-2:#8A847F;--rvf-rev-ink:#151414;--rvf-rev-paper:#FFFFFF;--rvf-rev-line:#E6E1DC;--rvf-rev-tint:#F4F2EF;
  --rvf-rev-ok:#0B8A4B;--rvf-rev-ok-bg:#EAF6EF;--rvf-rev-star-empty:#D9D5D0;
  --rvf-rev-shadow:0 0 8px 0 rgba(0,0,0,.10);--rvf-rev-shadow-1:0 1px 2px rgba(21,20,20,.05),0 8px 24px -8px rgba(21,20,20,.12);--rvf-rev-shadow-2:0 2px 4px rgba(21,20,20,.08),0 12px 28px -10px rgba(21,20,20,.3);
  --rvf-rev-radius:24px;--rvf-cols:1;--rvf-slider-gap:20px;--rvf-s-desktop:4;--rvf-s-large:2;--rvf-s-medium:1;--rvf-s-small:1;
  --rvf-star-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-8 -8 584 520'%3E%3Cpath d='M259.3 17.8L194 150.2 47.9 171.5c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.3 23.2 46 46.4 33.7L288 439.6l130.7 68.7c23.2 12.2 50.9-7.4 46.4-33.7l-25-145.5 105.7-103c19-18.5 8.5-50.8-17.7-54.6L382 150.2 316.7 17.8c-11.7-23.6-45.6-23.9-57.4 0z'/%3E%3C/svg%3E");
  display:block;width:100%;box-sizing:border-box;container-type:inline-size;text-align:left;color:var(--rvf-rev-text)
}
.rvf-view *,.rvf-view *::before,.rvf-view *::after{box-sizing:border-box}
.rvf-view p{margin:0}
.rvf-view h2,.rvf-view h3{margin:0}
.rvf-view :where(button){font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer;-webkit-tap-highlight-color:transparent}
.rvf-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.rvf-view :where(a){color:var(--rvf-rev-accent)}
.rvf-view__empty{color:var(--rvf-rev-muted)}
.rvf-view__selected{margin:0 0 10px;font-size:13px;color:var(--rvf-rev-muted)}

/* 2. Stars: a CSS mask, fractional fill, no image request ---------------------------------------------- */
.rvf-stars{--rvf-rating:0;--rvf-star-size:20px;position:relative;display:inline-block;vertical-align:middle;width:calc(5 * var(--rvf-star-size));height:var(--rvf-star-size);background:var(--rvf-rev-star-empty);-webkit-mask:var(--rvf-star-mask) 0 0/var(--rvf-star-size) var(--rvf-star-size) repeat-x;mask:var(--rvf-star-mask) 0 0/var(--rvf-star-size) var(--rvf-star-size) repeat-x;flex:none}
.rvf-stars__fill{position:absolute;inset:0;width:calc(var(--rvf-rating) / 5 * 100%);background:var(--rvf-rev-star)}
.rvf-view--heat .rvf-review[data-rating="1"] .rvf-stars__fill{background:#E0362C}.rvf-view--heat .rvf-review[data-rating="2"] .rvf-stars__fill{background:#F26A21}.rvf-view--heat .rvf-review[data-rating="3"] .rvf-stars__fill{background:#F7C51E}.rvf-view--heat .rvf-review[data-rating="4"] .rvf-stars__fill{background:#55A630}.rvf-view--heat .rvf-review[data-rating="5"] .rvf-stars__fill{background:#0B8A4B}

/* 3. Shared card anatomy (theme-agnostic behaviour) ------------------------------------------------------ */
.rvf-review{position:relative;overflow-wrap:anywhere}
.rvf-review__body p{font-size:16px;line-height:1.45;color:var(--rvf-rev-text)}
.rvf-review__body p+p{margin-top:.6em}
.rvf-review__rest{display:inline}
/* 1.7.2: our controls are buttons, and a site stylesheet may style EVERY button (a site stylesheet seen in the wild: a green shadow, a radius,
   padding, uppercase on a.button, button, input[type=button], input[type=submit]). This reset outranks a bare element rule
   (0,1,1); our own looks are stated below it with at least the same weight. */
.rvf-view button{box-shadow:none;text-shadow:none;filter:none;background:transparent;border:0;border-radius:0;padding:0;margin:0;min-height:0;min-width:0;width:auto;height:auto;font:inherit;line-height:inherit;letter-spacing:inherit;text-transform:none;color:inherit;cursor:pointer;-webkit-appearance:none;appearance:none}
.rvf-review__ellipsis,.rvf-review__more{display:none}
.rvf-js .rvf-view--more-inline .rvf-review__rest{display:none}
.rvf-js .rvf-view--more-inline .rvf-review__ellipsis{display:inline}
.rvf-js .rvf-view--more-inline .rvf-review__more{display:inline}
.rvf-js .rvf-view--more-inline .rvf-review.is-open .rvf-review__rest{display:inline}
.rvf-js .rvf-view--more-inline .rvf-review.is-open .rvf-review__ellipsis{display:none}
.rvf-js .rvf-view--more-inline .rvf-review.is-open .rvf-review__more:empty{display:none}
.rvf-view .rvf-review__more{margin-left:5px;font-weight:700;color:var(--rvf-rev-accent);white-space:nowrap}
.rvf-view .rvf-review__more:hover{text-decoration:underline}
.rvf-view .rvf-review__more:focus-visible{outline:2px solid var(--rvf-rev-accent);outline-offset:2px;border-radius:4px}
.rvf-js .rvf-view--more-clamp .rvf-review__body:not(.is-open) .rvf-review__text{display:-webkit-box;-webkit-line-clamp:var(--rvf-clamp,4);-webkit-box-orient:vertical;overflow:hidden}
.rvf-js .rvf-view--more-clamp .rvf-review__more--clamp:not([hidden]){display:inline-block;margin:6px 0 0 0;font-size:14px}
.rvf-review__meta{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;margin-top:5px;font-size:15px;line-height:1.45}
.rvf-review__name{font-weight:600;color:var(--rvf-rev-ink)}
.rvf-review__city{font-weight:400;color:var(--rvf-rev-muted)}
.rvf-review__product{color:var(--rvf-rev-text)}
.rvf-review__label{font-weight:700;color:var(--rvf-rev-label);margin-right:.5em}
.rvf-review__product a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.rvf-tag{display:inline-flex;align-items:center;gap:4px;padding:2px 9px;border-radius:999px;font-size:12px;font-weight:700;line-height:1.4;white-space:nowrap}
.rvf-tag--verified{background:var(--rvf-rev-ok-bg);color:var(--rvf-rev-ok)}
.rvf-tag--verified::before{content:"\2713";font-size:11px}
.rvf-tag--customer{background:var(--rvf-rev-tint);color:var(--rvf-rev-muted)}
.rvf-src{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;color:var(--rvf-rev-muted);text-decoration:none}
.rvf-src__mark{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:3px;font-size:11px;font-weight:800;color:#fff}
.rvf-src--trustpilot .rvf-src__mark{background:#00B67A}
.rvf-src--google .rvf-src__mark{background:#fff;border:1px solid var(--rvf-rev-line);width:18px;height:18px;border-radius:4px}
.rvf-src--google .rvf-src__mark svg{display:block}
.rvf-src--google:hover{text-decoration:underline}
.rvf-review__date{font-size:13px;color:var(--rvf-rev-muted-2);white-space:nowrap}
.rvf-review__reply{margin-top:14px;padding:12px 14px;background:var(--rvf-rev-tint);border-left:3px solid var(--rvf-rev-accent);border-radius:10px;font-size:14px;line-height:1.5}
.rvf-review__reply-h{display:block;font-size:13px;font-weight:600;color:var(--rvf-rev-ink);margin-bottom:4px}
.rvf-review__photo{margin:0}
.rvf-review__img{display:block;max-width:100%;height:auto}
.rvf-avatar{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:var(--rvf-rev-tint);color:var(--rvf-rev-accent);font-weight:700;font-size:15px;flex:none}

/* 4. Theme: default (the classic card) ------------------------------------------------------------------ */
.rvf-view--default .rvf-review{background:var(--rvf-rev-card-bg);border-radius:var(--rvf-rev-card-radius);box-shadow:var(--rvf-rev-shadow);padding:20px;line-height:1.45}
.rvf-view--default .rvf-review__body p{font-size:16px;line-height:1.45}
.rvf-view--default .rvf-review__meta{display:block;margin-top:5px}
.rvf-view--default .rvf-review__name{display:block;font-family:var(--rvf-rev-heading-font,inherit);font-weight:500;font-size:15px;color:var(--rvf-rev-name)}
.rvf-view--default .rvf-review__city{display:none}
.rvf-view--default .rvf-review__product{display:block;margin-top:5px;font-size:15px}
.rvf-view--default .rvf-src{display:inline-flex;margin-top:5px}
.rvf-view--default .rvf-review__stars{margin-top:5px;line-height:1.7}
.rvf-view--default .rvf-review__stars .rvf-review__date{margin-left:8px}
.rvf-view--default.rvf-view--slider .rvf-review__meta,.rvf-view--default.rvf-view--slider .rvf-review__stars,.rvf-view--default.rvf-view--strip .rvf-review__meta,.rvf-view--default.rvf-view--strip .rvf-review__stars{text-align:right}
.rvf-view--default.rvf-view--img-right .rvf-review__photo{float:right;margin:4px 0 4px 15px;max-width:50%}
.rvf-view--default.rvf-view--img-left .rvf-review__photo{float:left;margin:4px 15px 4px 0;max-width:50%}
.rvf-view--default .rvf-review__photo .rvf-review__img{background:#fff;border:1px solid #EFEFEF;padding:0}
.rvf-view--default.rvf-view--img-top .rvf-review__photo{margin:0 0 12px}
.rvf-view--default .rvf-review::after{content:"";display:table;clear:both}
.rvf-view--default .rvf-view__all{display:block;width:200px;margin:15px 0 0 auto;padding:.75em;border-radius:4px;background:var(--rvf-rev-btn);border:1px solid var(--rvf-rev-btn);color:#fff;font-weight:700;font-size:15px;text-align:center;text-decoration:none;box-sizing:border-box}
.rvf-view--default .rvf-view__all:hover{filter:brightness(1.06)}
.rvf-view--default .rvf-view__footer--left .rvf-view__all{margin-left:0}
.rvf-view--default .rvf-view__footer--center .rvf-view__all{margin-left:auto;margin-right:auto}
@container (max-width:480px){.rvf-view--default .rvf-review__stars{text-align:center}.rvf-view--default.rvf-view--slider .rvf-review__stars{text-align:right}}

/* 9. Layouts ------------------------------------------------------------------------------------------- */
.rvf-view__items{display:grid;gap:20px}
.rvf-view--grid .rvf-view__items{grid-template-columns:repeat(var(--rvf-cols),minmax(0,1fr))}
.rvf-view--grid .rvf-review{height:100%}
@container (max-width:959px){.rvf-view--grid .rvf-view__items{grid-template-columns:repeat(min(var(--rvf-cols),2),minmax(0,1fr))}}
@container (max-width:599px){.rvf-view--grid .rvf-view__items{grid-template-columns:1fr}}
.rvf-view--masonry .rvf-view__items{display:block;columns:var(--rvf-cols);column-gap:20px}
.rvf-view--masonry .rvf-review{break-inside:avoid;display:inline-block;width:100%;margin:0 0 20px}
@container (max-width:959px){.rvf-view--masonry .rvf-view__items{columns:min(var(--rvf-cols),2)}}
@container (max-width:599px){.rvf-view--masonry .rvf-view__items{columns:1}}

/* 10. Slider: a scroll-snap track; the script adds arrows, dots, autoplay ---------------------------------- */
.rvf-view--slider,.rvf-view--strip{position:relative}
.rvf-view--controls-sides.rvf-view--slider{padding:10px 50px 0}
.rvf-view--slider .rvf-view__items,.rvf-view--strip .rvf-view__items{display:flex;gap:var(--rvf-slider-gap);overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;scroll-behavior:smooth;align-items:stretch}
.rvf-view--slider .rvf-view__items::-webkit-scrollbar,.rvf-view--strip .rvf-view__items::-webkit-scrollbar{display:none}
.rvf-view--slider .rvf-review{flex:0 0 calc((100% - (var(--rvf-slides) - 1) * var(--rvf-slider-gap)) / var(--rvf-slides));scroll-snap-align:start;--rvf-slides:var(--rvf-s-desktop)}
.rvf-view--strip .rvf-review{flex:0 0 320px;scroll-snap-align:start}
@container (max-width:1199px){.rvf-view--slider .rvf-review{--rvf-slides:var(--rvf-s-large)}}
@container (max-width:1023px){.rvf-view--slider .rvf-review{--rvf-slides:var(--rvf-s-medium)}}
@container (max-width:639px){.rvf-view--slider .rvf-review{--rvf-slides:var(--rvf-s-small)}}
.rvf-view--h-adaptive .rvf-view__items{align-items:flex-start}
.rvf-view__controls{display:none}
.rvf-js .rvf-view__controls{display:block;text-align:right}
/* On a page the head knew about, html.rvf-js is set before the first paint (a one-line head script), so the controls
   render with the page and nothing moves when the deferred script arrives. */
.rvf-view .rvf-view__prev,.rvf-view .rvf-view__next{position:absolute;top:calc(50% - 14px);width:25px;height:25px;border-radius:50%;background:#999;color:#fff;transition:background .2s;z-index:2}
/* 1.7.2: the pause control stays for keyboards and screen readers (an autoplaying slider offers a stop) and never shows
   otherwise: visually hidden until keyboard focus (Mike: never a pause button in sight). */
.rvf-view .rvf-view__pause{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;margin:-1px}
.rvf-view .rvf-view__pause:focus-visible{position:static;width:auto;height:auto;overflow:visible;clip:auto;margin:14px 6px 0;padding:6px 12px;border-radius:999px;background:#333;color:#fff;font-size:13px;outline:2px solid var(--rvf-rev-accent);outline-offset:3px}
.rvf-view__prev{left:10px}.rvf-view__next{right:10px}
.rvf-view__prev::before,.rvf-view__next::before{content:"";position:absolute;top:8px;width:8px;height:8px;border:solid #fff;border-width:2px 2px 0 0}
.rvf-view__prev::before{left:10px;transform:rotate(-135deg)}.rvf-view__next::before{left:7px;transform:rotate(45deg)}
.rvf-view .rvf-view__prev:hover,.rvf-view .rvf-view__next:hover{background:#333}
.rvf-view .rvf-view__prev[aria-disabled="true"],.rvf-view .rvf-view__next[aria-disabled="true"]{opacity:.35;cursor:default}
.rvf-view .rvf-view__prev:focus-visible,.rvf-view .rvf-view__next:focus-visible{outline:2px solid var(--rvf-rev-accent);outline-offset:3px}
.rvf-view--controls-none .rvf-view__prev,.rvf-view--controls-none .rvf-view__next{display:none}
.rvf-view.rvf-view--controls-below .rvf-view__prev,.rvf-view.rvf-view--controls-below .rvf-view__next{position:relative;top:auto;left:auto;right:auto;display:inline-block;margin:14px 6px 0;vertical-align:top}
.rvf-view--controls-below .rvf-view__controls{text-align:center}
.rvf-view__dots{display:flex;justify-content:center;gap:8px;list-style:none;margin:14px 0 0;padding:0}
.rvf-view__dots button{width:8px;height:8px;border-radius:50%;background:var(--rvf-rev-line);transition:background .2s,transform .2s}
.rvf-view__dots button[aria-current="true"]{background:var(--rvf-rev-accent);transform:scale(1.25)}
.rvf-view__pause{position:relative;display:inline-block;width:24px;height:24px;margin:10px 0 0;border-radius:50%;background:#BBB;color:transparent;font-size:0;overflow:hidden;vertical-align:top;transition:background .2s}
.rvf-view__pause::before,.rvf-view__pause::after{content:"";position:absolute;top:7px;left:8px;width:3px;height:10px;background:#fff}
.rvf-view__pause::after{left:13px}
.rvf-view__pause[aria-pressed="true"]::before{top:6px;left:9px;width:0;height:0;background:none;border-style:solid;border-width:6px 0 6px 9px;border-color:transparent transparent transparent #fff}
.rvf-view__pause[aria-pressed="true"]::after{display:none}
.rvf-view__pause:hover{background:#333}
.rvf-view__pause:focus-visible{outline:2px solid var(--rvf-rev-accent);outline-offset:3px}
.rvf-view--controls-below .rvf-view__pause{margin-top:12px}
.rvf-view--strip .rvf-view__controls{display:none}

/* 11. Header (aggregate), pagination, footer ------------------------------------------------------------- */
.rvf-view__header{margin:0 0 20px}
.rvf-view__heading{font-size:22px;font-weight:700;color:var(--rvf-rev-ink);margin:0 0 10px}
.rvf-agg{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;font-size:15px;color:var(--rvf-rev-muted)}
.rvf-agg__score{font-size:32px;font-weight:800;line-height:1;color:var(--rvf-rev-ink)}
.rvf-agg--inline{display:inline-flex;gap:6px;font-size:14px;text-decoration:none}
.rvf-agg--inline .rvf-agg__score{font-size:16px;font-weight:700}
.rvf-agg__count b{color:var(--rvf-rev-ink)}
.rvf-agg__verified::before{content:"\00b7";margin-right:8px}
.rvf-dist{list-style:none;margin:14px 0 0;padding:0;max-width:420px}
.rvf-dist__row{display:grid;grid-template-columns:44px 1fr 44px;align-items:center;gap:10px;font-size:13px;color:var(--rvf-rev-muted);margin:0 0 6px}
.rvf-dist__bar{height:8px;border-radius:999px;background:var(--rvf-rev-tint);overflow:hidden}
.rvf-dist__bar i{display:block;height:100%;background:var(--rvf-rev-star);border-radius:999px}
.rvf-dist__pct{text-align:right}
.rvf-view__write{display:inline-flex;margin-top:14px;min-height:44px;align-items:center;padding:10px 20px;border:1.5px solid var(--rvf-rev-ink);border-radius:999px;color:var(--rvf-rev-ink);font-weight:700;text-decoration:none}
.rvf-view__pager{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:4px;margin:20px auto 0;text-align:center}
.rvf-page{display:inline-block;line-height:1.5;padding:.1em .3em;margin:0 .2em;text-decoration:none;color:var(--rvf-rev-accent);font-weight:700;transition:background .2s}
.rvf-page:hover{background:#BBB;color:#fff}
.rvf-page.is-current{background:#999;color:#fff}
.rvf-page--dots{color:var(--rvf-rev-muted);font-weight:400}
.rvf-view__more{text-align:center;margin-top:20px}
.rvf-view .rvf-view__load{display:inline-flex;align-items:center;justify-content:center;min-height:48px;min-width:240px;padding:12px 24px;border:1.5px solid var(--rvf-rev-ink);border-radius:999px;color:var(--rvf-rev-ink);font-weight:700;text-decoration:none;background:var(--rvf-rev-paper)}
.rvf-view .rvf-view__load.is-loading{opacity:.6;pointer-events:none}
.rvf-view__footer{margin-top:15px}
.rvf-view__footer--right{text-align:right}.rvf-view__footer--center{text-align:center}
.rvf-view__all{display:inline-flex;align-items:center;gap:6px;min-height:48px;padding:12px 22px;border-radius:999px;background:var(--rvf-rev-btn);color:#fff;font-weight:700;font-size:15px;text-decoration:none}

/* 12. Motion, print ------------------------------------------------------------------------------------ */
@media (prefers-reduced-motion:reduce){.rvf-view *{transition:none!important}.rvf-view--slider .rvf-view__items{scroll-behavior:auto}}
@media print{.rvf-view__controls,.rvf-view__pager,.rvf-view__more,.rvf-review__more{display:none!important}.rvf-review__rest{display:inline!important}}
