/* =====================================================================
   News. Core — Reviews & ratings (summary, review box, badges, block)
   Uses the theme's CSS variables with fallbacks.
   ===================================================================== */

.nc-rsum,
.nc-review,
.nc-badge,
.nc-rlist{
  --nc-high:#1E7A34;
  --nc-mid:#9A5B00;
  --nc-low:#C8161D;
  --nc-high-ink:#1E7A34;
  --nc-mid-ink:#8A5100;
  --nc-low-ink:#B3141A;
  --nc-high-tint:rgba(30,122,52,.07);
  --nc-low-tint:rgba(200,22,29,.06);
  --nc-card:var(--paper-2,#fff);
  --nc-line:var(--line,#DED7C8);
}
html[data-theme="dark"] :is(.nc-rsum, .nc-review, .nc-badge, .nc-rlist){
  --nc-high-ink:#63CF82;
  --nc-mid-ink:#F0B45A;
  --nc-low-ink:#FF7A7A;
  --nc-high-tint:rgba(99,207,130,.08);
  --nc-low-tint:rgba(255,122,122,.07);
}
@media (prefers-color-scheme: dark){
  html[data-theme="system"] :is(.nc-rsum, .nc-review, .nc-badge, .nc-rlist){
    --nc-high-ink:#63CF82;
    --nc-mid-ink:#F0B45A;
    --nc-low-ink:#FF7A7A;
    --nc-high-tint:rgba(99,207,130,.08);
    --nc-low-tint:rgba(255,122,122,.07);
    --nc-card:#141416;
    --nc-line:#2C2C30;
    --ink:#F2EFE8;
    --ink-2:#E8E4DA;
    --ink-hover:#CFCBC0;
    --paper:#0B0B0C;
    --paper-2:#141416;
    --muted:#A39D8C;
  }
}
.nc-rsum--high, .nc-review--high, .nc-badge--high, .nc-crit--high{ --nc-tier:var(--nc-high); --nc-tier-ink:var(--nc-high-ink); }
.nc-rsum--mid,  .nc-review--mid,  .nc-badge--mid,  .nc-crit--mid { --nc-tier:var(--nc-mid);  --nc-tier-ink:var(--nc-mid-ink); }
.nc-rsum--low,  .nc-review--low,  .nc-badge--low,  .nc-crit--low { --nc-tier:var(--nc-low);  --nc-tier-ink:var(--nc-low-ink); }

/* ---- Stars ------------------------------------------------------------ */
.nc-stars{ position:relative; display:inline-block; line-height:1; letter-spacing:.08em; white-space:nowrap; font-family:var(--sans,system-ui,sans-serif); }
.nc-stars__base{ color:var(--nc-line); }
.nc-stars__fill{ position:absolute; inset:0 auto 0 0; overflow:hidden; color:var(--nc-tier,#1E7A34); }
.nc-stars--sm{ font-size:12px; }
.nc-stars--lg{ font-size:22px; }

/* ---- Summary (top of the article) ------------------------------------ */
.nc-rsum{
  display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:14px 20px;
  margin:0 0 1.6em; padding:16px 20px 16px 16px;
  background:var(--nc-card); color:var(--ink,#0B0B0C);
  border:1px solid var(--nc-line); border-left:4px solid var(--nc-tier);
  border-radius:var(--radius-m,8px);
  font-family:var(--sans,system-ui,sans-serif);
}
.nc-rsum p{ margin:0; }
.nc-rsum__score{
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  width:76px; height:76px; border-radius:var(--radius-m,8px);
  background:var(--nc-tier); color:#fff; text-align:center;
}
.nc-rsum__num{ font-family:var(--display,system-ui,sans-serif); font-size:32px; font-weight:800; line-height:1; letter-spacing:-.03em; }
.nc-rsum__max{ margin-top:3px; font-size:12px; font-weight:700; opacity:.85; }
.nc-rsum__score--stars .nc-stars{ margin-top:6px; font-size:11px; }
.nc-rsum__score--stars .nc-stars__base{ color:rgba(255,255,255,.35); }
.nc-rsum__score--stars .nc-stars__fill{ color:#fff; }
.nc-rsum__eyebrow{ font-size:11px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:var(--muted,#6B675E); }
.nc-rsum__eyebrow b{ color:var(--nc-tier-ink); }
.nc-rsum__item{ margin-top:3px !important; font-family:var(--display,system-ui,sans-serif); font-size:19px; font-weight:800; line-height:1.2; letter-spacing:-.015em; }
.nc-rsum__line{ margin-top:4px !important; font-family:var(--serif,Georgia,serif); font-size:15.5px; line-height:1.45; color:var(--ink-2,#17171A); }
.nc-rsum__jump{
  display:inline-flex; align-items:center; gap:6px; min-height:40px; padding:0 16px;
  border:1px solid var(--ink,#0B0B0C); border-radius:999px;
  color:var(--ink,#0B0B0C); font-size:13.5px; font-weight:700; text-decoration:none; white-space:nowrap;
  transition:background .18s, color .18s;
}
.nc-rsum__jump:hover, .nc-rsum__jump:focus-visible{ background:var(--ink,#0B0B0C); color:var(--paper-2,#fff); }

/* ---- Full review box -------------------------------------------------- */
.nc-review{
  margin:2.4em 0 1.6em; padding:clamp(18px,3vw,32px);
  background:var(--nc-card); color:var(--ink,#0B0B0C);
  border:1px solid var(--nc-line); border-top:4px solid var(--ink,#0B0B0C);
  border-radius:var(--radius-m,8px);
  font-family:var(--sans,system-ui,sans-serif); font-size:16px; line-height:1.5;
  scroll-margin-top:110px;
}
.nc-review p{ margin:0; }
.nc-review__head{ display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:18px 24px; }
.nc-review__media{ display:block; width:104px; aspect-ratio:1; border-radius:var(--radius-s,4px); overflow:hidden; background:var(--paper,#F5F1EA); }
.nc-review__img{ display:block; width:100%; height:100%; object-fit:cover; }
.nc-review__id{ min-width:0; }
.nc-review__eyebrow{ display:inline-flex; align-items:center; gap:9px; font-size:10.5px; font-weight:900; letter-spacing:.2em; text-transform:uppercase; color:var(--red-deep,#8C0F14); }
.nc-review__eyebrow::before{ content:''; width:20px; height:2px; background:currentColor; }
html[data-theme="dark"] .nc-review__eyebrow{ color:#FF6A6F; }
.nc-review .nc-review__title{
  margin:6px 0 0; font-family:var(--display,system-ui,sans-serif); font-size:clamp(24px,2.6vw,34px);
  font-weight:800; line-height:1.05; letter-spacing:-.03em; color:var(--ink,#0B0B0C);
}
.nc-review__meta{ display:flex; flex-wrap:wrap; gap:4px 14px; margin-top:8px !important; font-size:13.5px; color:var(--muted,#6B675E); }
.nc-review__type{ font-weight:800; text-transform:uppercase; letter-spacing:.08em; font-size:11.5px; color:var(--ink,#0B0B0C); align-self:center; }

.nc-review__score{ position:relative; display:flex; flex-direction:column; align-items:center; gap:4px; min-width:120px; }
.nc-ring{ display:block; width:120px; height:120px; }
.nc-ring circle{ fill:none; stroke-width:10; }
.nc-ring__track{ stroke:var(--nc-line); }
.nc-ring__bar{ stroke:var(--nc-tier); stroke-linecap:round; animation:nc-ring .9s cubic-bezier(.2,.7,.2,1) both; }
@keyframes nc-ring{ from{ stroke-dashoffset:326.73; } }
.nc-ring__num{
  position:absolute; top:0; left:50%; width:120px; height:120px; transform:translateX(-50%);
  display:flex; align-items:center; justify-content:center;
  font-family:var(--display,system-ui,sans-serif); font-size:40px; font-weight:800; letter-spacing:-.04em; color:var(--ink,#0B0B0C);
}
.nc-review__starnum{ font-family:var(--display,system-ui,sans-serif); font-size:44px; font-weight:800; line-height:1; letter-spacing:-.04em; }
.nc-review__starnum small{ font-size:16px; font-weight:700; color:var(--muted,#6B675E); letter-spacing:0; }
.nc-review__label{ font-size:11.5px; font-weight:900; letter-spacing:.14em; text-transform:uppercase; color:var(--nc-tier-ink); }

/* Criteria */
.nc-review .nc-review__criteria{
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px 32px;
  margin:26px 0 0; padding:22px 0 0; list-style:none; border-top:1px solid var(--nc-line);
}
.nc-crit{ display:grid; grid-template-columns:minmax(0,1fr) auto; gap:6px 12px; margin:0; padding:0; }
.nc-crit::before{ display:none; }
.nc-crit__label{ font-size:14.5px; font-weight:600; }
.nc-crit__val{ font-size:14px; font-weight:800; font-variant-numeric:tabular-nums; color:var(--nc-tier-ink); }
.nc-crit__bar{ grid-column:1 / -1; display:block; height:6px; border-radius:6px; background:var(--nc-line); overflow:hidden; }
.nc-crit__bar span{ display:block; height:100%; border-radius:inherit; background:var(--nc-tier); }

/* Pros / cons */
.nc-review__pc{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin-top:26px; }
.nc-review__pc--one{ grid-template-columns:minmax(0,1fr); }
.nc-review__col{ padding:18px 20px; border-radius:var(--radius-m,8px); }
.nc-review__col--pros{ background:var(--nc-high-tint); --nc-tier:var(--nc-high); --nc-tier-ink:var(--nc-high-ink); }
.nc-review__col--cons{ background:var(--nc-low-tint); --nc-tier:var(--nc-low); --nc-tier-ink:var(--nc-low-ink); }
.nc-review .nc-review__colhead{
  display:flex; align-items:center; gap:10px; margin:0 0 10px;
  font-family:var(--sans,system-ui,sans-serif); font-size:12px; font-weight:900; letter-spacing:.14em; text-transform:uppercase; color:var(--nc-tier-ink);
}
.nc-review__colhead::before{
  display:inline-flex; align-items:center; justify-content:center; width:22px; height:22px; border-radius:50%;
  background:var(--nc-tier); color:#fff; font-size:16px; font-weight:700; letter-spacing:0; line-height:1;
}
.nc-review__col--pros .nc-review__colhead::before{ content:'+'; }
.nc-review__col--cons .nc-review__colhead::before{ content:'\2212'; }
.nc-review .nc-review__list{ margin:0; padding:0; list-style:none; }
.nc-review__list li{ position:relative; margin:0; padding:6px 0 6px 20px; font-size:15px; line-height:1.45; border-top:1px solid var(--nc-line); }
.nc-review__list li:first-child{ border-top:none; }
.nc-review__list li::before{ content:''; position:absolute; left:2px; top:14px; width:8px; height:8px; border-radius:50%; background:var(--nc-tier); }
.nc-review__col--cons .nc-review__list li::before{ border-radius:1px; height:3px; top:16px; }

/* Verdict */
.nc-review__verdict{ margin-top:26px; padding-top:22px; border-top:1px solid var(--nc-line); font-family:var(--serif,Georgia,serif); font-size:17px; line-height:1.65; }
.nc-review__verdict p + p{ margin-top:.8em; }
.nc-review .nc-review__bottom{ margin-bottom:.5em; font-family:var(--display,system-ui,sans-serif); font-size:clamp(19px,1.7vw,22px); font-weight:800; line-height:1.25; letter-spacing:-.015em; }

/* Where to buy */
.nc-review__buy{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px 20px;
  margin-top:24px; padding:16px 18px; border-radius:var(--radius-m,8px); background:var(--paper,#F5F1EA);
}
.nc-review__price{ display:flex; align-items:baseline; gap:10px; }
.nc-review__price span{ font-size:11.5px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:var(--muted,#6B675E); }
.nc-review__price b{ font-family:var(--display,system-ui,sans-serif); font-size:26px; font-weight:800; letter-spacing:-.02em; }
.nc-review .nc-review__btn{
  display:inline-flex; align-items:center; gap:8px; min-height:46px; padding:0 22px; margin-left:auto;
  border-radius:999px; background:var(--ink,#0B0B0C); color:var(--paper-2,#fff);
  font-family:var(--sans,system-ui,sans-serif); font-size:15px; font-weight:700; text-decoration:none;
  transition:background .18s, transform .18s;
}
.nc-review .nc-review__btn:hover, .nc-review .nc-review__btn:focus-visible{ background:var(--red-deep,#8C0F14); color:#fff; transform:translateY(-1px); }
.nc-review__disclosure{ flex-basis:100%; font-size:12px; line-height:1.4; color:var(--muted,#6B675E); }

/* ---- Card badge ------------------------------------------------------- */
.nc-badge{
  display:inline-flex; align-items:center; justify-content:center; gap:3px; min-width:24px; min-height:24px; padding:2px 7px;
  border-radius:var(--radius-s,4px); background:var(--nc-tier); color:#fff;
  font-family:var(--display,system-ui,sans-serif); font-size:13px; font-weight:800; line-height:1; letter-spacing:-.01em;
  font-variant-numeric:tabular-nums;
}
.nc-badge__star{ font-size:.9em; }
.nc-badge--lg{ min-height:34px; padding:4px 10px; font-size:18px; box-shadow:0 4px 14px rgba(0,0,0,.25); }

/* ---- "Best reviewed" block ------------------------------------------- */
.nc-rlist{ margin-block:clamp(28px,4vw,48px); font-family:var(--sans,system-ui,sans-serif); }
.nc-rlist.section{ margin-block:0; padding-block:clamp(36px,4vw,48px) 0; }
.nc-rlist .nc-rlist__title{ margin:0; }
.nc-rlist .nc-rlist__grid{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:clamp(18px,2vw,28px); margin:0; padding:0; list-style:none; }
.nc-rlist__grid--1{ grid-template-columns:minmax(0,1fr) !important; max-width:420px; }
.nc-rlist__grid--2{ grid-template-columns:repeat(2,minmax(0,1fr)) !important; }
.nc-rlist__grid--3{ grid-template-columns:repeat(3,minmax(0,1fr)) !important; }
.nc-rcard{ margin:0; padding:0; min-width:0; }
.nc-rcard::before{ display:none; }
.nc-rcard__link{ display:block; color:inherit; text-decoration:none; }
.nc-rcard .nc-rcard__thumb{ position:relative; aspect-ratio:16/10; margin-bottom:12px; background:var(--paper-2,#fff); }
.nc-rcard__thumb img{ display:block; width:100%; height:100%; object-fit:cover; transition:transform .7s cubic-bezier(.2,.7,.2,1); }
.nc-rcard__link:hover .nc-rcard__thumb img{ transform:scale(1.05); }
.nc-rcard__thumb .nc-badge{ position:absolute; z-index:2; left:10px; bottom:10px; }
.nc-rcard__rank{
  position:absolute; z-index:2; top:10px; left:10px; display:flex; align-items:center; justify-content:center;
  width:28px; height:28px; border-radius:50%; background:rgba(11,11,12,.78); color:#fff;
  font-family:var(--display,system-ui,sans-serif); font-size:14px; font-weight:800;
}
.nc-rcard .kicker{ margin-bottom:6px; }
.nc-rlist .nc-rcard__title{
  margin:0; font-family:var(--sans,system-ui,sans-serif); font-size:clamp(16px,1.3vw,18px); font-weight:600;
  line-height:1.28; letter-spacing:-.015em; color:var(--ink,#0B0B0C); transition:color .18s;
}
.nc-rcard__link:hover .nc-rcard__title{ color:var(--ink-hover,#4A4640); }
.nc-rcard__item{ display:block; margin-top:6px; font-size:13px; color:var(--muted,#6B675E); }
.nc-rcard__verdict{ font-weight:800; color:var(--nc-tier-ink); }
.nc-rcard__verdict--high{ --nc-tier-ink:var(--nc-high-ink); }
.nc-rcard__verdict--mid{ --nc-tier-ink:var(--nc-mid-ink); }
.nc-rcard__verdict--low{ --nc-tier-ink:var(--nc-low-ink); }
.nc-rlist__empty{ padding:16px; border:1px dashed var(--nc-line,#DED7C8); font-family:var(--sans,system-ui,sans-serif); font-size:14px; }

/* ---- Responsive ------------------------------------------------------- */
@media (max-width:1024px){
  .nc-rlist .nc-rlist__grid, .nc-rlist__grid--3{ grid-template-columns:repeat(2,minmax(0,1fr)) !important; }
}
@media (max-width:720px){
  .nc-review__head{ grid-template-columns:minmax(0,1fr) auto; }
  .nc-review__media{ grid-column:1 / -1; width:88px; }
  .nc-review .nc-review__criteria, .nc-review__pc{ grid-template-columns:minmax(0,1fr); }
  .nc-review__score{ min-width:96px; }
  .nc-ring, .nc-ring__num{ width:96px; height:96px; }
  .nc-ring__num{ font-size:32px; }
}
@media (max-width:600px){
  .nc-rsum{ grid-template-columns:auto minmax(0,1fr); padding:14px; gap:12px 14px; }
  .nc-rsum__score{ width:64px; height:64px; }
  .nc-rsum__num{ font-size:27px; }
  .nc-rsum__item{ font-size:17px; }
  .nc-rsum__jump{ grid-column:1 / -1; justify-content:center; }
  .nc-review .nc-review__btn{ width:100%; justify-content:center; margin-left:0; }
  .nc-rlist .nc-rlist__grid, .nc-rlist__grid--2, .nc-rlist__grid--3{ grid-template-columns:minmax(0,1fr) !important; gap:0; }
  .nc-rcard{ padding:14px 0; border-top:1px solid var(--border-bottom,#e5e7eb); }
  .nc-rcard:first-child{ border-top:none; padding-top:0; }
  .nc-rcard__link{ display:grid; grid-template-columns:128px minmax(0,1fr); grid-template-rows:auto auto 1fr; column-gap:14px; }
  .nc-rcard .nc-rcard__thumb{ grid-row:1 / 4; margin:0; aspect-ratio:4/3; }
  .nc-rcard__thumb .nc-badge--lg{ left:6px; bottom:6px; min-height:26px; padding:2px 7px; font-size:14px; }
  .nc-rcard__rank{ top:6px; left:6px; width:22px; height:22px; font-size:12px; }
  .nc-rcard__title{ font-size:16px !important; }
}
@media (prefers-reduced-motion: reduce){
  .nc-ring__bar{ animation:none; }
  .nc-rcard__thumb img, .nc-review__btn{ transition:none; }
}
