:root {
  color-scheme: dark;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: #f5faff;
  background: #071a33;
  --surface: #0b2545;
  --line: #244b78;
  --muted: #c5d8ed;
  --blue: #2e6fdc;
  --blueprint: #dceeff;
  --ink: #071a33;
  --ink-soft: #31516f;
}
* { box-sizing: border-box; }
body { margin: 0; min-width: 320px; min-height: 100vh; background: radial-gradient(circle at 85% 10%, rgba(46, 111, 220, 0.24), transparent 28rem), #071a33; }
.reviews-page { width: min(1180px, calc(100% - 32px)); margin: 0 auto; padding: 148px 0 80px; }
.reviews-page__hero { max-width: 920px; margin-bottom: 44px; }
.eyebrow { margin: 0 0 10px; color: var(--blueprint); font-size: 0.78rem; font-weight: 850; letter-spacing: 0.06em; text-transform: uppercase; }
h1 { margin: 0 0 18px; font-size: clamp(3.2rem, 8vw, 6.8rem); line-height: 0.9; }
.reviews-page__hero > p:not(.eyebrow) { max-width: 760px; margin: 0; color: var(--muted); font-size: 1.08rem; line-height: 1.6; }
.reviews-page__aggregate { width: fit-content; display: flex; flex-wrap: wrap; align-items: center; gap: 7px 10px; margin-top: 24px; }
.reviews-page__aggregate strong { color: #ffd60a; font-size: 1.25rem; }
.reviews-page__aggregate span { color: var(--muted); font-weight: 760; }
.reviews-page__aggregate .aggregate-stars { display: inline-flex; gap: 2px; color: #ffd60a; font-size: 1.45rem; line-height: 1; }
.reviews-page__aggregate .aggregate-star { color: #ffd60a; }
.aggregate-star { position: relative; width: 1em; height: 1em; display: inline-block; }
.aggregate-star::before { content: "☆"; position: absolute; inset: 0; }
.aggregate-star::after { content: "★"; position: absolute; inset: 0; width: 0; overflow: hidden; white-space: nowrap; }
.aggregate-star.is-half::after { width: 0.5em; }
.aggregate-star.is-full::after { width: 1em; }
.public-review-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.public-review-card { min-height: 300px; display: flex; flex-direction: column; padding: 26px; border: 0; border-radius: 0; background: transparent; color: #f5faff; box-shadow: none; }
.public-review-card__stars { margin-bottom: 22px; color: #ffd60a; font-size: 1.55rem; letter-spacing: 0.08em; }
.public-review-card blockquote { flex: 1; margin: 0; white-space: pre-wrap; font-size: 1rem; line-height: 1.7; }
.public-review-card footer { display: grid; gap: 3px; margin-top: 24px; padding-top: 18px; border-top: 1px solid rgba(220, 238, 255, 0.22); }
.public-review-card footer span { color: var(--muted); font-size: 0.78rem; font-weight: 760; }
.reviews-empty { padding: 54px 24px; border: 1px dashed var(--line); border-radius: 9px; text-align: center; }
.reviews-empty h2 { margin: 0 0 9px; }
.reviews-empty p { margin: 0; color: var(--muted); }
.reviews-pagination { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-top: 32px; }
.reviews-pagination a { min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--line); border-radius: 7px; color: #f5faff; background: var(--surface); text-decoration: none; font-weight: 800; }
.reviews-pagination a:hover, .reviews-pagination a[aria-current="page"] { border-color: var(--blueprint); background: var(--blue); }
a:focus-visible, button:focus-visible { outline: 3px solid var(--blueprint); outline-offset: 3px; }
@media (max-width: 720px) {
  .reviews-page { width: min(100% - 24px, 1180px); padding-top: 110px; }
  .reviews-page__hero { margin-bottom: 28px; }
  h1 { font-size: clamp(2.8rem, 15vw, 4.5rem); }
  .public-review-grid { grid-template-columns: 1fr; }
  .public-review-card { min-height: 0; padding: 20px; }
  .reviews-page__aggregate { align-items: center; }
}
