.catalog-masthead h1 { font-size: clamp(42px, 7vw, 78px); }

.review-hero { background: #f4f7f5; border-bottom: 1px solid var(--line); padding: 27px 0 45px; }
.review-hero .breadcrumbs { flex-wrap: wrap; margin: 0 0 25px; color: #546a63; }
.review-hero .breadcrumbs a { color: #526b62; }
.review-hero-row { display: grid; align-items: center; gap: clamp(24px, 5vw, 59px); }
.review-hero-row--with-image { grid-template-columns: minmax(0, 1.14fr) minmax(0, 1fr); }
.review-hero-copy { max-width: 700px; }
.review-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 15px;
  margin: 0 0 10px;
  font-size: 12px;
  color: #4f675e;
}
.review-meta span:first-child { font-weight: 700; }
.review-hero h1 {
  margin: 0 0 15px;
  font-size: clamp(36px, 4.3vw, 56px);
  line-height: 1.08;
  text-wrap: balance;
  overflow-wrap: anywhere;
}
.review-hero .review-lead { margin: 0; line-height: 1.7; color: #394e46; }
.review-hero .review-hero-actions { margin-top: 21px; }
.review-screenshot { min-width: 0; margin: 0; }
.review-screenshot a { display: block; border-radius: 5px; }
.review-screenshot img { display: block; width: 100%; height: auto; border-radius: inherit; }
.review-screenshot figcaption {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 8px 15px;
  margin-top: 9px;
  color: #536861;
  font-size: 12px;
}
.review-score {
  display: grid;
  justify-items: end;
  gap: 2px;
  margin-inline-start: auto;
  text-align: right;
}
.review-score-value {
  color: #b92f38;
  font-family: var(--font-heading);
  font-size: clamp(28px, 3.6vw, 40px);
  line-height: 1;
  white-space: nowrap;
}
.review-score-value span { font-size: .62em; }
.review-score-byline { color: #635e60; font-size: 11px; }

.review-takeaway {
  display: grid;
  grid-template-columns: max-content minmax(0, 1fr);
  align-items: baseline;
  gap: 6px clamp(14px, 2vw, 24px);
  padding: clamp(16px, 2vw, 23px) clamp(17px, 2.4vw, 27px);
  margin: clamp(20px, 3vw, 33px) 0 0;
  border-left: 3px solid #a14a3a;
  background: #faf5ef;
}
.review-takeaway figcaption {
  color: #694335;
  font-family: var(--font-heading);
  font-size: clamp(17px, 1.8vw, 21px);
  font-weight: 700;
  line-height: 1.2;
}
.review-takeaway blockquote { margin: 0; }
.review-takeaway p { max-width: 76ch; margin: 0; line-height: 1.65; }

.review-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(190px, 225px);
  grid-template-areas: "article sidebar";
  gap: clamp(30px, 6vw, 80px);
  padding-top: clamp(28px, 4vw, 49px);
  padding-bottom: clamp(54px, 7vw, 88px);
}
.review-article { grid-area: article; min-width: 0; }
.review-sidebar { grid-area: sidebar; }
.review-toc {
  position: sticky;
  top: calc(25px + var(--site-sticky-inset, 0px));
  z-index: 1;
  max-height: calc(100vh - 50px - var(--site-sticky-inset, 0px));
  overflow: auto;
  padding: 0 0 0 15px;
  background: #fff;
  border-left: 1px solid #c8d6cf;
}
.review-toc-title { margin: 0 0 8px; color: #52645f; font-size: 12px; font-weight: 700; }
.review-toc ul { list-style: none; margin: 0; padding: 0; }
.review-toc a {
  display: block;
  padding: 6px 0;
  color: #324a40;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.4;
  text-decoration: none;
}
.review-toc a:hover { text-decoration: underline; }
.review-section {
  padding: 34px 0;
  border-bottom: 1px solid var(--line);
  scroll-margin-top: 24px;
  overflow-wrap: anywhere;
}
.review-section:first-child { padding-top: 0; }
.review-section:last-child { border-bottom: 0; padding-bottom: 0; }
.review-section h2 { margin: 0 0 16px; font-size: clamp(25px, 3.1vw, 37px); }
.review-section > h3 { margin: 24px 0 8px; font-size: clamp(20px, 2vw, 25px); }
.review-section > p { max-width: 76ch; color: #374e45; line-height: 1.75; }
.review-section > p { margin: 0 0 12px; }
.review-section > p:last-child { margin-bottom: 0; }
.review-section > p a { color: var(--brand); text-underline-offset: 2px; }
.review-section > .review-watch {
  margin-top: 16px;
  padding: 12px 15px;
  border-inline-start: 3px solid #ba5155;
  background: #fff5f5;
  color: #483535;
}
.review-watch strong { color: #842c34; }

.review-section .review-feedback-intro { font-size: 14px; margin-bottom: 15px; }
.review-topic-control {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px 12px;
  margin-bottom: 16px;
  color: #43534a;
  font-size: 13px;
  font-weight: 600;
}
.review-topic-control select {
  min-height: 38px;
  max-width: 100%;
  padding: 6px 10px;
  border: 1px solid #afbeb6;
  border-radius: 6px;
  background: #fff;
  color: var(--ink);
  font: inherit;
}
.review-results {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr));
  gap: 13px;
}
.review-item {
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-width: 0;
  padding: 15px 16px;
  border: 2px solid #ce3f49;
  border-radius: 12px;
  background: #fff9f9;
}
.review-item--positive {
  border-color: #68927b;
  background: #f7fbf8;
}
.review-card-meta {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 3px 10px;
  color: #585c54;
  font-size: 12px;
  line-height: 1.5;
}
.review-category { color: #962831; font-weight: 700; }
.review-item--positive .review-category { color: #34634b; }
.review-text { margin: 0; color: #25352e; font-size: 15px; line-height: 1.58; }
.review-card-source { margin-top: auto; padding-top: 5px; }
.review-card-source a {
  color: rgb(41 37 41 / 68%);
  font-weight: 400;
  text-decoration-color: rgb(41 37 41 / 32%);
  text-underline-offset: 3px;
}
.review-card-source a:hover { text-decoration-color: currentColor; }
.review-more { margin-top: 15px; }
.review-status {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}
.review-section .related-posts .blog-entry:first-child { padding-top: 0; }

@media (max-width: 880px) {
  .review-layout { grid-template-columns: minmax(0, 1fr); grid-template-areas: "sidebar" "article"; gap: 26px; }
  .review-toc { position: static; max-height: none; overflow: visible; border: 0; padding: 13px 0; border-block: 1px solid var(--line); }
  .review-toc ul { display: flex; flex-wrap: wrap; column-gap: 18px; }
}
@media (max-width: 720px) {
  .review-hero { padding: 20px 0 26px; }
  .review-hero .breadcrumbs { margin-bottom: 16px; }
  .review-hero-row--with-image { grid-template-columns: minmax(0, 1fr); }
  .review-hero .review-hero-actions { margin-top: 15px; }
  .review-takeaway { grid-template-columns: minmax(0, 1fr); }
}
