/* Reviews in the brand: ink stars, ink bars, a drawn tick for "verified", square corners,
   DM Mono labels at 11px or more. Loaded after brand.css and over the older rules in shop.css.
   No green and no gold here: the only gold is the foil in the photos, and initials set as
   text are --foil-ink. */

/* ── stars and the rating line ── */
.rv-stars-base svg{fill:var(--rule-2)}
.rv-stars-fill svg{fill:var(--ink)}
.rv-line-wrap{margin:0 0 10px}
.rv-line{gap:10px;min-height:24px;font-size:13px;color:var(--ink-2)}
.rv-line b{color:var(--ink);font-weight:700}
.rv-line span:last-child{text-decoration-color:var(--rule-ctl);text-underline-offset:4px}
.rv-line:hover span:last-child{text-decoration-color:var(--ink)}

/* ── "verified purchase": a drawn tick, no badge ── */
.rv-verified{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:11px;font-weight:400;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2)}
.rv-verified::before{content:"";flex:0 0 auto;width:5px;height:9px;margin:-3px 3px 0 2px;border:solid var(--ink);border-width:0 1.5px 1.5px 0;transform:rotate(45deg)}

/* ── the rotating quote under the price (no pause button: the dots stop it) ── */
.rv-mini-wrap{margin:0 0 24px}
.rv-mini{gap:14px;align-items:flex-start;padding:14px 0;border:0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);background:none}
.rv-mini img{width:48px;height:48px;flex:0 0 48px;object-fit:cover;background:var(--stage)}
.rv-mini figcaption{gap:5px}
.rv-mini .rv-stars,.rv-mini .rv-stars svg{width:65px;height:13px}
.rv-mini q{quotes:"\201C" "\201D";font-size:14px;line-height:1.55;color:var(--ink);text-wrap:pretty}
.rv-mini q::before{content:open-quote}
.rv-mini q::after{content:close-quote}
.rv-mini cite{font-family:var(--mono);font-size:11px;font-style:normal;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2)}
.rv-mini-dots{justify-content:flex-start;align-items:center;gap:0;margin-top:4px;padding-left:55px}
.rv-mini-dots button{width:28px;height:24px}
.rv-mini-dots button::before{width:14px;height:2px;border-radius:0;background:var(--rule-ctl)}
.rv-mini-dots button[aria-pressed="true"]::before{width:22px;height:2px;border-radius:0;background:var(--ink)}
.rv-mini-dots button:hover::before{background:var(--ink)}
.rv-mini-dots button:focus-visible{outline:2px solid var(--ink);outline-offset:-2px}

/* ── proof lines at the size, initials and bundle steps ── */
.proof{margin:10px 0 0;font-size:12.5px;line-height:1.5;color:var(--ink-2);text-wrap:pretty}
.proof q{quotes:"\201C" "\201D";color:var(--ink)}
.proof cite{margin-left:8px;font-family:var(--mono);font-size:11px;font-style:normal;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2);white-space:nowrap}
.proof a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--rule-ctl);text-underline-offset:3px}
.proof a:hover{text-decoration-color:var(--ink)}

/* ── the professional's view: the page's one editorial spread ── */
.rv-feature-wrap{max-width:none;margin:0;padding:0 0 clamp(56px,6vw,96px)}
.rv-feature-wrap:empty{display:none}   /* the endorsement is off (featuredOn() false): no gap left behind */
.rv-pro{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);max-width:1440px;margin:0 auto;background:var(--white);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.rv-pro-photo{order:2;position:relative;margin:0;min-height:560px;background:var(--stage);overflow:hidden}
.rv-pro-photo picture{display:contents}
.rv-pro-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:0% 35%}
.rv-pro-copy{display:flex;flex-direction:column;justify-content:center;padding:clamp(48px,6vw,104px) clamp(28px,5.6vw,96px) clamp(44px,5.4vw,92px) max(var(--pad),clamp(28px,5.6vw,96px))}
.rv-pro-copy > *{max-width:600px}
.rv-pro-eyebrow{display:flex;align-items:center;gap:14px;margin:0;font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-2)}
.rv-pro-eyebrow::before{content:"";width:32px;height:1px;background:var(--ink)}
.rv-pro-quote{margin:22px 0 26px;padding:0}
.rv-pro-quote p{position:relative;margin:0;font-family:var(--display);font-weight:400;font-size:clamp(28px,2.9vw,44px);line-height:1.14;letter-spacing:-.005em;color:var(--ink);text-wrap:balance}
.rv-pro-quote p::before{content:"\201C";position:absolute;right:100%;padding-right:.06em}
.rv-pro-quote p::after{content:"\201D"}
.rv-pro-body p{margin:0 0 14px;font-size:16px;line-height:1.75;color:var(--ink-2);text-wrap:pretty}
.rv-pro-body p:last-child{margin-bottom:0}
.rv-pro-body .ini,.rv-setup .ini{font-size:.92em}
.rv-setup{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin:28px 0 0;border-top:1px solid var(--rule)}
.rv-setup div{display:flex;flex-direction:column;gap:5px;padding:14px 16px 14px 0;border-bottom:1px solid var(--rule)}
.rv-setup div:nth-child(even){padding-left:18px;border-left:1px solid var(--rule)}
.rv-setup dt{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}
.rv-setup dd{margin:0;font-size:15px;line-height:1.35;color:var(--ink)}
.rv-pro-sign{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px 16px;margin-top:28px}
.rv-pro-seal{display:grid;place-items:center;width:58px;height:58px;border:1px solid var(--rule-2);font-family:var(--serif);font-size:19px;letter-spacing:.06em;color:var(--foil-ink)}
.rv-pro-sign p{display:flex;flex-direction:column;gap:3px;margin:0;min-width:0}
.rv-pro-sign b{font-family:var(--display);font-size:17px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--ink)}
.rv-pro-sign p span{font-size:13.5px;color:var(--ink-2)}
.rv-pro-tag{justify-self:end;padding:5px 8px 4px;border:1px solid var(--ink);font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);white-space:nowrap}
.rv-pro-act{display:flex;flex-wrap:wrap;align-items:center;gap:12px 22px;margin-top:30px}
.rv-pro-cta{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:0 30px;border:1px solid var(--ink);background:transparent;font-family:var(--display);font-size:12px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--ink);text-decoration:none;transition:background-color .2s,color .2s}
.rv-pro-cta:hover{background:var(--ink);color:var(--white)}
.rv-pro-cta:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
.rv-pro-act span{font-size:13px;line-height:1.5;color:var(--ink-2)}
.rv-pro-sample{margin:26px 0 0;font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}
@media(max-width:760px){
  .rv-pro{grid-template-columns:minmax(0,1fr)}
  .rv-pro-photo{order:0;min-height:0;aspect-ratio:5/4}
  .rv-pro-photo img{object-position:30% 40%}
  .rv-pro-copy{padding:32px var(--pad) 36px}
  .rv-pro-quote{margin:18px 0 22px}
  .rv-pro-quote p{font-size:clamp(26px,7.4vw,32px)}
  .rv-pro-body p{font-size:15.5px}
  .rv-pro-sign{grid-template-columns:auto minmax(0,1fr)}
  .rv-pro-tag{grid-column:2;justify-self:start}
  .rv-pro-act{flex-direction:column;align-items:stretch}
  .rv-pro-act span{text-align:center}
}

/* ── members carousel ── */
.rv-kicker{font-size:11px}
.rv-card{background:none;border:0}
.rv-card figure{background:var(--stage)}
.rv-card-body{padding:16px 0 0}
.rv-card-body > p{font-size:15px;line-height:1.6}
.rv-by{padding-top:12px}
.rv-bought{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin:0;font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2)}
.rv-bought b{font-weight:400;color:var(--ink)}
.rv-gift{display:inline-block;padding:3px 6px 2px;border:1px solid var(--rule-ctl);font-family:var(--mono);font-size:11px;font-weight:400;letter-spacing:.12em;text-transform:uppercase;color:var(--ink)}
.rv-arrow{border-radius:0;box-shadow:none;border:1px solid var(--rule-ctl);background:transparent;transition:background-color .2s,border-color .2s}
.rv-arrow:hover:not(:disabled){background:var(--ink);border-color:var(--ink)}
.rv-arrow:hover:not(:disabled) svg{stroke:var(--white)}
.rv-arrow:focus-visible{outline:2px solid var(--ink);outline-offset:2px}

/* ── the full list: summary, scores and fit, customer photos, reviews ── */
.rv-sample{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2)}
.rv-summary{grid-template-columns:auto minmax(0,1fr) minmax(0,.9fr);align-items:start}
.rv-avg b{font-size:48px;font-weight:400}
.rv-bars i{height:6px;background:var(--rule)}
.rv-bars em{background:var(--ink)}
.rv-scores{display:grid;gap:18px}
.rv-scores dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.rv-scores dl div{display:flex;flex-direction:column;gap:4px;padding:10px 0}
.rv-scores dl div + div{padding-left:14px;border-left:1px solid var(--rule)}
.rv-scores dt{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}
.rv-scores dd{margin:0;font-family:var(--display);font-size:20px;font-weight:500;color:var(--ink)}
.rv-fit i{position:relative;display:block;height:1px;margin:8px 0 10px;background:var(--rule-ctl)}
.rv-fit em{position:absolute;top:-6px;width:2px;height:13px;margin-left:-1px;background:var(--ink)}
.rv-fit p{display:flex;justify-content:space-between;gap:8px;margin:0;font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}
.rv-fit b{display:block;margin-top:8px;font-size:13px;font-weight:600;color:var(--ink)}
.rv-shots{padding:24px 0;border-bottom:1px solid var(--rule)}
.rv-shots-h{margin:0 0 12px;font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2)}
.rv-shots ul{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:8px;margin:0;padding:0;list-style:none}
.rv-shots button{display:block;width:100%;aspect-ratio:1;padding:0;border:0;background:var(--stage);cursor:pointer;overflow:hidden}
.rv-shots img{width:100%;height:100%;object-fit:cover;transition:opacity .2s}
.rv-shots button:hover img{opacity:.85}
.rv-shots button:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
.rv-list li{display:block;padding:24px 0;border-bottom:1px solid var(--rule);scroll-margin-top:calc(var(--hdr) + 24px)}
.rv-list li:focus{outline:none}
.rv-list li:focus-visible{outline:2px solid var(--ink);outline-offset:4px}
.rv-item-head{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px}
.rv-item-head b{font-weight:600;font-size:14px}
.rv-place{font-size:13px;color:var(--ink-3)}
.rv-item-head .rv-verified{margin-left:auto}
.rv-attrs{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;margin:10px 0 0;font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2)}
@media(min-width:701px){.rv-attrs span:not(.rv-gift) + span:not(.rv-gift)::before{content:"";display:inline-block;width:1px;height:10px;margin-right:14px;background:var(--rule-2);vertical-align:-1px}}
.rv-list li .rv-attrs b,.rv-bought b{font-size:inherit;font-weight:400;color:var(--ink)}
.rv-list li .rv-text{margin:10px 0 0;font-size:15px;line-height:1.7;color:var(--ink-2)}
.rv-photos{display:flex;gap:8px;margin-top:14px}
.rv-photos img{width:88px;height:88px;object-fit:cover;background:var(--stage)}
.rv-pages button{border-color:var(--rule-ctl)}
@media(max-width:900px){.rv-summary{grid-template-columns:auto minmax(0,1fr)}.rv-scores{grid-column:1/-1}}
@media(max-width:700px){
  .rv-summary{grid-template-columns:minmax(0,1fr)}
  .rv-item-head .rv-verified{flex-basis:100%;margin-left:0}
  .rv-shots ul{grid-template-columns:repeat(3,minmax(0,1fr))}
}

/* ── Review photos, framed as the owner set them in the picker (js/photos.js).
   The frame's shape comes from --ar (or the layout, for data-fill); the
   photo's fit, focus point and zoom from its inline style. ── */
.rv-mini .rv-mini-pic{flex:0 0 56px;width:56px;height:56px;overflow:hidden;background:var(--stage)}
.rv-mini .rv-mini-pic img{display:block;width:100%;height:100%;flex:none;background:none}
.rv-mini-dots{padding-left:0}

/* the big review: the review on one side, the photo on the other */
.rv-pro.no-photo{display:block}
.rv-pro.no-photo .rv-pro-copy{max-width:860px;margin:0 auto}
.rv-pro .rv-pro-photo{order:2;position:relative;margin:0;overflow:hidden;background:var(--stage)}
.rv-pro .rv-pro-photo:not([data-fill]){min-height:0;aspect-ratio:var(--ar);align-self:center}
.rv-pro .rv-pro-photo[data-fill]{min-height:560px}
.rv-pro .rv-pro-photo img{position:absolute;inset:0;display:block;width:100%;height:100%}
.rv-pro-copy .rv-stars{margin-top:20px}
.rv-pro-quote{margin:16px 0 22px}
.rv-pro-sign{grid-template-columns:auto minmax(0,1fr) auto}
.rv-pro .rv-bought{margin-top:14px}
@media(max-width:760px){
  .rv-pro .rv-pro-photo{order:0}
  .rv-pro .rv-pro-photo[data-fill]{min-height:0;aspect-ratio:4/5}
  .rv-pro-sign{grid-template-columns:auto minmax(0,1fr)}
  .rv-pro-sign .rv-verified{grid-column:2}
}

/* member cards */
.rv-card figure.rv-card-pic{position:relative;margin:0;overflow:hidden;background:var(--stage);aspect-ratio:var(--ar,1/1)}
.rv-card figure.rv-card-pic img{display:block;width:100%;height:100%}

/* the list: a review's photo at its chosen shape */
figure.rv-photos{display:block;position:relative;width:auto;height:180px;max-width:100%;margin:14px 0 0;overflow:hidden;background:var(--stage);aspect-ratio:var(--ar)}
figure.rv-photos img{display:block;width:100%;height:100%}

/* members: the same edge on both sides, and cards sized so only whole cards
   show; all five sit side by side on a wide screen, and the arrows appear
   only when some are off screen. */
.rv-members{--edge:max(var(--pad),calc((100vw - 1760px) / 2 + var(--pad)));--n:5;grid-auto-columns:calc((100% - (var(--n) - 1) * 20px) / var(--n));padding-left:var(--edge);padding-right:var(--edge);scroll-padding:0 var(--edge)}
@media(max-width:1500px){.rv-members{--n:4}}
@media(max-width:1180px){.rv-members{--n:3}}
@media(max-width:860px){.rv-members{--n:2}}
@media(max-width:600px){.rv-members{grid-auto-columns:80%}}
.rv-card-body{gap:12px}
.rv-card .rv-by{margin-top:auto}
.rv-card .rv-bought{min-height:24px}
.rv-members-rail.rv-fits .rv-nav{display:none}

/* ── the rotating quote as one compact card (like the reference): photo, then
   name and stars on one line with the quote under them, the next arrow inside ── */
.rv-mini-wrap{margin:0 0 18px}
.rv-mini-box{position:relative;display:flex;align-items:center;gap:6px;padding:10px 8px 10px 10px;background:var(--ground-2);border:1px solid var(--rule)}
.rv-mini-box .rv-mini-track{flex:1 1 auto;min-width:0}
.rv-mini-box .rv-mini{align-items:center;gap:12px;padding:0;border:0;background:none}
.rv-mini-box .rv-mini-pic{flex:0 0 52px;width:52px;height:52px}
.rv-mini-box figcaption{gap:3px}
.rv-mini-top{display:flex;align-items:center;flex-wrap:wrap;gap:4px 10px}
.rv-mini-box cite{font-family:var(--display);font-size:14px;font-weight:600;font-style:normal;letter-spacing:.02em;text-transform:none;color:var(--ink)}
.rv-mini-box .rv-stars,.rv-mini-box .rv-stars svg{width:62px;height:12px}
.rv-mini-box q{font-size:13.5px;line-height:1.45;color:var(--ink-2)}
.rv-mini-next{flex:0 0 44px;display:grid;place-items:center;width:44px;height:44px;padding:0;border:0;border-radius:50%;background:none;color:var(--ink);cursor:pointer;transition:background-color .2s}
.rv-mini-next:hover{background:var(--white)}
.rv-mini-next:focus-visible{outline:2px solid var(--ink);outline-offset:1px}
.rv-mini-next svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

/* review photos open larger on a click or a tap */
[data-rv-zoom]{cursor:zoom-in}
[data-rv-zoom]:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
.rv-zoom{padding:0;border:0;background:none;max-width:none;max-height:none;overflow:visible}
.rv-zoom::backdrop{background:rgba(17,17,16,.72)}
.rv-zoom-frame{position:relative;overflow:hidden;background:var(--stage)}
.rv-zoom-frame img{position:absolute;inset:0;display:block;width:100%;height:100%}
.rv-zoom-cap{margin:12px 0 0;text-align:center;font-family:var(--mono);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:#F7F6F3}
.rv-zoom-close{position:absolute;top:-52px;right:0;display:grid;place-items:center;width:44px;height:44px;padding:0;border:0;border-radius:50%;background:#F7F6F3;color:var(--ink);cursor:pointer}
.rv-zoom-close svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}
