/* Customer review sets and the full archive (Master 029).

   Editorial, not a third-party widget: cream ground, ink type, one restrained
   yellow accent on the stars. No platform badge, no avatar, no logo.
   Card height is reserved with a min-height so a set does not shift the page
   as webfonts settle. Tokens come from drawer.css, which loads sitewide. */

.ccrv{
  --ccrv-paper:var(--ccx-paper,#FBF8F1);
  --ccrv-card:#FFFDF8;
  --ccrv-ink:var(--ccx-ink,#1B1A17);
  --ccrv-body:#55504A;
  --ccrv-mute:#8A8279;
  --ccrv-line:#E7E0D3;
  --ccrv-gold:#E9B93C;
  width:min(1180px,92vw);margin:0 auto;padding:clamp(44px,6vw,84px) 0;
  font-family:var(--ccx-body,"Inter",system-ui,sans-serif);color:var(--ccrv-body);
}
.ccrv--quiet{padding:clamp(30px,4vw,52px) 0}

.ccrv__eyebrow{
  margin:0 0 12px;font-size:11px;letter-spacing:.18em;text-transform:uppercase;
  font-weight:600;color:var(--ccrv-mute);
}
.ccrv__h{
  margin:0 0 10px;font-family:var(--ccx-display,"Cormorant Garamond",Georgia,serif);
  font-weight:400;font-style:italic;letter-spacing:-.01em;line-height:1.1;
  font-size:clamp(28px,3.4vw,44px);color:var(--ccrv-ink);text-wrap:balance;
}
.ccrv--quiet .ccrv__h{font-size:clamp(22px,2.4vw,30px)}
.ccrv__h3{
  margin:0 0 8px;font-size:12px;letter-spacing:.14em;text-transform:uppercase;
  font-weight:600;color:var(--ccrv-mute);
}
.ccrv__intro{margin:0 0 clamp(24px,3vw,38px);font-size:15.5px;line-height:1.6;max-width:62ch}

.ccrv__grid{display:grid;gap:20px;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch}
.ccrv--cols1 .ccrv__grid{grid-template-columns:minmax(0,1fr);max-width:720px}
.ccrv--cols2 .ccrv__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.ccrv__grid--archive{grid-template-columns:repeat(3,minmax(0,1fr))}
.ccrv__cell{display:flex}
.ccrv__cell>.ccrv__card{width:100%}

.ccrv__card{
  display:flex;flex-direction:column;gap:14px;margin:0;
  background:var(--ccrv-card);border:1px solid var(--ccrv-line);border-radius:3px;
  padding:clamp(20px,2.2vw,28px);min-height:210px;
}
.ccrv--quiet .ccrv__card{min-height:0}

.ccrv__stars{display:inline-flex;gap:2px;color:var(--ccrv-gold);line-height:0}
.ccrv__star{opacity:.22}
.ccrv__star--on{opacity:1}

.ccrv__quote{margin:0;flex:1 1 auto}
.ccrv__quote p{
  margin:0 0 10px;font-size:15px;line-height:1.62;color:var(--ccrv-body);
}
.ccrv__quote p:last-child{margin-bottom:0}
.ccrv--archive .ccrv__quote p{font-size:14.5px}

.ccrv__by{display:flex;align-items:center;gap:11px;margin:0;padding-top:4px}
.ccrv__mono{
  flex:0 0 auto;width:32px;height:32px;border-radius:999px;
  display:inline-flex;align-items:center;justify-content:center;
  background:var(--ccrv-paper);border:1px solid var(--ccrv-line);
  font-size:11px;font-weight:600;letter-spacing:.04em;color:var(--ccrv-mute);
}
.ccrv__who{display:flex;flex-direction:column;min-width:0}
.ccrv__name{font-size:13.5px;font-weight:600;color:var(--ccrv-ink);letter-spacing:.01em}
.ccrv__date{font-size:11.5px;color:var(--ccrv-mute);letter-spacing:.03em}

.ccrv__cta{margin:clamp(22px,3vw,34px) 0 0}
.ccrv__cta a{
  display:inline-block;font-size:12px;font-weight:600;letter-spacing:.14em;
  text-transform:uppercase;color:var(--ccrv-ink);text-decoration:none;
  border-bottom:1px solid var(--ccrv-gold);padding-bottom:4px;
  transition:border-color 200ms cubic-bezier(.23,1,.32,1);
}
.ccrv__cta a:hover{border-bottom-color:var(--ccrv-ink)}
.ccrv__cta--quiet a{
  text-transform:none;letter-spacing:.01em;font-weight:500;font-size:13.5px;
  color:var(--ccrv-mute);border-bottom-color:var(--ccrv-line);
}
.ccrv__cta--quiet a:hover{color:var(--ccrv-ink)}

/* ------------------------------------------------------------ archive only */
.ccrv__filters{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 clamp(22px,3vw,30px)}
.ccrv__f{
  appearance:none;cursor:pointer;background:transparent;color:var(--ccrv-body);
  border:1px solid var(--ccrv-line);border-radius:999px;
  padding:9px 16px;min-height:38px;
  font:inherit;font-size:12.5px;letter-spacing:.02em;
  transition:background-color 180ms ease,border-color 180ms ease,color 180ms ease;
}
.ccrv__f:hover{border-color:var(--ccrv-mute)}
.ccrv__f.is-on{background:var(--ccrv-ink);border-color:var(--ccrv-ink);color:#FBF8F1}
.ccrv__empty{margin:18px 0 0;font-size:14.5px;color:var(--ccrv-mute)}

.ccrv__ratings{margin:clamp(30px,4vw,46px) 0 0;padding-top:clamp(22px,3vw,30px);border-top:1px solid var(--ccrv-line)}
.ccrv__ratings-row{margin:0;font-size:14px;color:var(--ccrv-mute);line-height:1.9}

/* ------------------------------------------------------------- responsive */
@media (max-width:1024px){
  .ccrv__grid,.ccrv__grid--archive{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
  .ccrv--cols2 .ccrv__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:767px){
  /* One card at a time, stacked - never a JS-only carousel. */
  .ccrv__grid,.ccrv__grid--archive,
  .ccrv--cols2 .ccrv__grid{grid-template-columns:minmax(0,1fr);gap:14px}
  .ccrv__card{min-height:0;padding:18px}
  .ccrv__quote p{font-size:14.5px}
  .ccrv__filters{gap:6px}
  .ccrv__f{padding:8px 13px;font-size:12px}
}

@media (prefers-reduced-motion:reduce){
  .ccrv__cta a,.ccrv__f{transition:none}
}
