.reviews-snapshot {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, .8fr)) minmax(0, 1.25fr);
  gap: 10px;
  margin: 32px 0 42px;
}
.reviews-snapshot > div { min-width: 0; background: #fffefa; border: 1px solid #e1e7dc; padding: 26px 25px; }
.reviews-snapshot span { display: block; color: #9b805c; font-size: .6rem; font-weight: 700; letter-spacing: .16em; }
.reviews-snapshot strong { display: block; margin: 17px 0 5px; font-family: 'Playfair Display', serif; font-size: clamp(2.8rem, 4vw, 4rem); font-weight: 400; line-height: 1; }
.reviews-snapshot small { color: #748278; font-size: .73rem; }
.reviews-snapshot .reviews-snapshot-note { background: #234638; color: #f7f6ef; border-color: #234638; display: flex; flex-direction: column; justify-content: space-between; }
.reviews-snapshot-note span { color: #d7bd90; }
.reviews-snapshot-note p { font-family: 'Playfair Display', serif; font-size: clamp(1.15rem, 1.5vw, 1.45rem); line-height: 1.4; margin: 20px 0 0; }

.reviews-patterns { display: flex; align-items: center; justify-content: space-between; gap: 28px; margin: -12px 0 45px; padding: 28px 30px; background: #e7eee5; border: 1px solid #d4e0d2; }
.reviews-patterns h2 { margin: 8px 0 5px; font-size: 1.7rem; }
.reviews-patterns p { margin: 0; color: #617264; font-size: .82rem; line-height: 1.6; max-width: 520px; }
.reviews-pattern-links { display: flex; align-items: center; justify-content: end; gap: 7px; flex-wrap: wrap; max-width: 440px; }
.reviews-pattern-links span { padding: 9px 11px; background: #fffefa; color: #4d6a55; font-size: .68rem; white-space: nowrap; }
.reviews-pattern-links b { color: #a6865c; padding-left: 4px; }
.reviews-pattern-links button { border: 0; background: transparent; color: #285540; font-size: .71rem; font-weight: 700; padding: 9px 0 9px 10px; cursor: pointer; white-space: nowrap; }
.reviews-pattern-links button:hover { text-decoration: underline; text-underline-offset: 4px; }

.reviews-actions { display: flex; align-items: end; justify-content: space-between; gap: 25px; margin-bottom: 22px; }
.reviews-actions h2 { font-size: clamp(1.9rem, 2.7vw, 2.7rem); margin: 8px 0 0; }
.reviews-actions > div:last-child { display: flex; gap: 9px; flex-wrap: wrap; }
.reviews-actions button { padding: 12px 17px; background: #fffefa; border: 1px solid #c8d3c7; color: #29483a; font-size: .75rem; cursor: pointer; }
.reviews-actions button:last-child { background: #244739; color: white; border-color: #244739; }
.reviews-actions button:hover { transform: translateY(-2px); }

.reviews-controls { border: 1px solid #dbe3d8; background: #fffefa; padding: 0 24px 23px; }
.reviews-tabs { display: flex; flex-wrap: wrap; border-bottom: 1px solid #dbe3d8; gap: 8px; }
.reviews-tabs button { border: 0; border-bottom: 2px solid transparent; background: transparent; padding: 19px 12px 16px; color: #738177; font-size: .78rem; cursor: pointer; }
.reviews-tabs button[aria-pressed="true"] { border-bottom-color: #254a3c; color: #234638; font-weight: 700; }
.reviews-tabs button b { font-size: .63rem; font-weight: 700; margin-left: 7px; color: #aa8d63; }
.reviews-refine { display: grid; grid-template-columns: minmax(230px, 1.6fr) minmax(145px, .85fr) minmax(145px, .85fr); gap: 14px; align-items: end; padding-top: 20px; }
.reviews-refine label { display: block; margin: 0; font-size: .62rem; letter-spacing: .12em; text-transform: uppercase; color: #76867a; }
.reviews-refine input, .reviews-refine select { margin-top: 8px; min-height: 42px; background: #fbfcf8; border-color: #d2dcd1; color: #284236; font-size: .79rem; letter-spacing: 0; text-transform: none; }
.reviews-refine form > div { display: flex; }
.reviews-refine form input { min-width: 0; }
.reviews-refine form button { align-self: stretch; margin-top: 8px; border: 0; background: #244739; color: white; padding: 0 14px; white-space: nowrap; font-size: .7rem; cursor: pointer; }
.reviews-result-head { display: flex; justify-content: space-between; align-items: center; gap: 15px; padding: 25px 0 15px; color: #758279; font-size: .72rem; }
.reviews-result-head button { border: 0; background: transparent; color: #315748; font-size: .72rem; cursor: pointer; }

.review-entry-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.review-entry { display: flex; flex-direction: column; min-width: 0; min-height: 310px; background: #fffefa; border: 1px solid #e0e7dd; padding: 26px 28px 0; transition: box-shadow .3s ease, transform .3s ease; }
.review-entry:hover { box-shadow: 0 14px 35px #24463812; transform: translateY(-2px); }
.review-entry-top { display: flex; align-items: center; gap: 17px; }
.review-score { display: flex; flex-direction: column; justify-content: center; align-items: center; flex: 0 0 62px; width: 62px; height: 62px; background: #e5eee4; color: #264c3b; font-family: 'Playfair Display', serif; font-size: 1.65rem; line-height: 1; }
.review-score small { font-family: 'DM Sans', sans-serif; font-size: .53rem; margin-top: 5px; color: #607c69; }
.review-score-unrated { background: #edece3; color: #728075; }
.review-score-low { background: #f2e9db; color: #8a5e36; }
.review-entry-top > div { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.review-source { color: #927754; font-size: .61rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.review-date { color: #8c988e; font-size: .69rem; }
.review-entry blockquote { font-family: 'Playfair Display', serif; font-size: clamp(1.25rem, 1.7vw, 1.65rem); line-height: 1.43; color: #2b4538; margin: 23px 0 20px; overflow-wrap: anywhere; }
.review-expand { margin: -4px 0 20px; }
.review-expand summary { cursor: pointer; color: #315d48; font-size: .72rem; }
.review-expand p { line-height: 1.65; font-size: .81rem; color: #5d6c60; }
.review-entry-bottom { margin-top: auto; border-top: 1px solid #e3e9df; padding: 15px 0 18px; display: flex; justify-content: space-between; align-items: end; gap: 15px; }
.review-entry-bottom > div:first-child { display: flex; flex-direction: column; align-items: start; gap: 9px; }
.review-entry-bottom strong { font-weight: 600; font-size: .74rem; color: #4f6657; }
.review-case-status { font-size: .58rem; letter-spacing: .09em; text-transform: uppercase; color: #896942; background: #f5efe3; padding: 6px 8px; }
.review-case-status.has-case { background: #e8eee5; color: #3e6a4d; }
.review-entry-actions { display: flex; align-items: center; gap: 13px; flex-wrap: wrap; justify-content: end; }
.review-entry-actions button, .review-entry-actions a { border: 0; background: transparent; color: #285a42; font-size: .73rem; font-weight: 700; text-decoration: none; cursor: pointer; padding: 3px 0; }
.review-entry-actions button:hover, .review-entry-actions a:hover { text-decoration: underline; text-underline-offset: 4px; }
.reviews-empty { margin-top: 18px; background: #e8eee6; border: 1px solid #d7e1d5; padding: 50px; max-width: 760px; }
.reviews-empty h2 { font-size: clamp(2.1rem, 3.4vw, 3.3rem); margin: 15px 0; }
.reviews-empty p { color: #607166; line-height: 1.7; max-width: 560px; }
.reviews-empty button { margin-top: 10px; cursor: pointer; }

@media (max-width: 1120px) {
  .reviews-snapshot { grid-template-columns: repeat(3, 1fr); }
  .reviews-snapshot-note { grid-column: 1 / -1; }
  .reviews-snapshot-note p { max-width: 610px; }
  .reviews-patterns { align-items: start; flex-direction: column; }
  .reviews-pattern-links { justify-content: start; max-width: none; }
}
@media (max-width: 850px) {
  .review-entry-grid { grid-template-columns: 1fr; }
  .reviews-refine { grid-template-columns: 1fr 1fr; }
  .reviews-refine form { grid-column: 1 / -1; }
  .reviews-actions { align-items: start; flex-direction: column; }
}
@media (max-width: 600px) {
  .reviews-snapshot { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .reviews-snapshot > div { padding: 20px; }
  .reviews-snapshot > div:nth-child(3), .reviews-snapshot-note { grid-column: 1 / -1; }
  .reviews-patterns { padding: 22px; margin-bottom: 35px; }
  .reviews-tabs { gap: 0; }
  .reviews-tabs button { padding: 13px 9px; font-size: .68rem; }
  .reviews-tabs button b { margin-left: 4px; }
  .reviews-controls { padding: 0 15px 17px; }
  .reviews-refine { grid-template-columns: 1fr; }
  .reviews-refine form { grid-column: auto; }
  .review-entry { padding: 22px 21px 0; }
  .review-entry-bottom { align-items: start; flex-direction: column; }
  .review-entry-actions { justify-content: start; }
  .reviews-empty { padding: 30px; }
}
@media (prefers-reduced-motion: reduce) { .review-entry { transition: none; } }
/* Keep long review queues cheap to lay out while preserving their exact appearance. */
.review-entry {
  content-visibility: auto;
  contain-intrinsic-size: auto 520px;
}
