/* ==========================================================
   Touring Review Plugin - Stylesheet  v1.1.0
   Overview cards + pagination + Detail page
   ========================================================== */

:root {
  --tr-blue:        #003882;
  --tr-blue-light:  #1a56c4;
  --tr-yellow:      #f5c800;
  --tr-text:        #1a1a1a;
  --tr-muted:       #6b7280;
  --tr-border:      #e5e7eb;
  --tr-bg-soft:     #f8f9fb;
  --tr-radius:      10px;
  --tr-shadow-sm:   0 2px 8px rgba(0,0,0,.07);
  --tr-shadow-md:   0 6px 24px rgba(0,0,0,.10);
}

/* ========== OVERVIEW ========== */
.review-overview { max-width: 820px; margin: 0 auto; padding: 0 1rem 3rem; }
.review-overview__header { margin: 0 0 2rem; font-size: 1.75rem; font-weight: 800; color: var(--tr-blue); }
.review-overview__grid { display: grid; grid-template-columns: 1fr; gap: 1.5rem; }
@media (min-width: 600px) { .review-overview__grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1024px) { .review-overview__grid { grid-template-columns: 1fr 1fr 1fr; } }

/* Cards */
.review-card {
  display: flex; flex-direction: column; text-decoration: none; color: var(--tr-text);
  background: #fff; border: 1px solid var(--tr-border); border-radius: var(--tr-radius);
  overflow: hidden; box-shadow: var(--tr-shadow-sm);
  transition: box-shadow .2s ease, transform .2s ease;
}
.review-card:hover { box-shadow: var(--tr-shadow-md); transform: translateY(-2px); }
.review-card__img { display: block; width: 100%; height: auto; aspect-ratio: 16/9; object-fit: cover; }
.review-card__body { padding: 1rem 1.25rem 1.25rem; flex: 1; display: flex; flex-direction: column; }
.review-card__brand { font-size: .78rem; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; color: var(--tr-muted); margin-bottom: .25rem; }
.review-card__model { margin: 0 0 auto; font-size: 1.15rem; font-weight: 700; color: var(--tr-blue); line-height: 1.3; }

/* ========== PAGINATION ========== */
.review-pagination {
  display: flex; flex-direction: column; align-items: center; gap: .75rem;
  margin-top: 2.5rem; padding-top: 2rem; border-top: 1px solid var(--tr-border);
}
.review-pagination__info {
  font-size: .85rem; color: var(--tr-muted); font-weight: 500;
}
.review-pagination__links {
  display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: .375rem;
}
.review-pagination__btn,
.review-pagination__num {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 2.25rem; height: 2.25rem; padding: 0 .75rem;
  border: 1px solid var(--tr-border); border-radius: 6px;
  font-size: .9rem; font-weight: 600; text-decoration: none;
  color: var(--tr-blue); background: #fff;
  transition: background .15s, border-color .15s, color .15s;
  line-height: 1;
}
.review-pagination__btn:hover,
.review-pagination__num:hover {
  background: var(--tr-bg-soft); border-color: var(--tr-blue);
}
.review-pagination__num--active {
  background: var(--tr-blue); border-color: var(--tr-blue); color: #fff;
  cursor: default; pointer-events: none;
}
.review-pagination__ellipsis {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 2rem; height: 2.25rem; color: var(--tr-muted); font-size: .9rem;
}

/* ========== DETAIL PAGE ========== */
.review-detail { max-width: 820px; margin: 0 auto; padding: 0 1rem 3rem; color: var(--tr-text); font-size: 1.0625rem; line-height: 1.7; }

/* Hero */
.review-detail__hero { margin: 0 0 1.75rem; }
.review-detail__hero img { display: block; width: 100%; height: auto; max-height: 480px; object-fit: cover; border-radius: var(--tr-radius); margin-top: 1rem; }

/* Title */
.review-detail h1 { font-size: clamp(1.6rem, 4vw, 2.2rem); font-weight: 800; color: var(--tr-blue); margin: 0 0 .75rem; line-height: 1.2; }

/* Meta pills */
.review-detail__meta { list-style: none; padding: 0; margin: 0 0 2rem; display: flex; flex-wrap: wrap; gap: .5rem .75rem; }
.review-detail__meta li { display: inline-flex; align-items: center; gap: .35rem; background: var(--tr-bg-soft); border: 1px solid var(--tr-border); border-radius: 999px; padding: .25rem .85rem; font-size: .875rem; }
.review-detail__meta li strong, .review-detail__meta li b { color: var(--tr-blue); font-weight: 600; }

/* Intro */
.review-detail__intro { font-size: 1.125rem; color: var(--tr-muted); border-left: 4px solid var(--tr-yellow); padding-left: 1rem; margin: 0 0 2.5rem; line-height: 1.65; }

/* Sections */
.review-detail section { margin: 2.5rem 0; padding-top: 2rem; border-top: 1px solid var(--tr-border); }
.review-detail section:first-of-type { border-top: none; padding-top: 0; }
.review-detail section h2 { font-size: 1.35rem; font-weight: 700; color: var(--tr-blue); margin: 0 0 1rem; }
.review-detail section p { margin: 0 0 1rem; }
.review-detail section ul, .review-detail section ol { padding-left: 1.4rem; margin: 0 0 1rem; }
.review-detail section li { margin-bottom: .4rem; }
.review-detail section strong, .review-detail section b { color: var(--tr-blue); }

/* Intro sits directly under the header — no top divider */
.review-detail__intro { border-top: none; padding-top: 0; margin-top: 2rem; }

/* Stock widget */
.review-detail__stock { margin: 2.5rem 0; padding: 0; background: none; border: none; border-radius: 0; min-height: 0; overflow: visible; }

/* Price block */
.review-detail__price { margin-top: 2.5rem; padding: 1.75rem; background: linear-gradient(135deg, var(--tr-blue) 0%, var(--tr-blue-light) 100%); border-radius: var(--tr-radius); color: #fff; }
.review-detail__price h2 { font-size: 1.25rem; font-weight: 700; color: #fff; margin: 0 0 .75rem; }
.review-detail__price p { opacity: .9; margin: 0 0 1.25rem; font-size: .975rem; line-height: 1.6; }
.review-detail__price strong, .review-detail__price b { color: var(--tr-yellow); }
.review-detail__price .button, .review-detail__price a.button { display: inline-block; background: var(--tr-yellow); color: var(--tr-blue) !important; font-weight: 700; font-size: .95rem; padding: .75rem 1.75rem; border-radius: 6px; text-decoration: none; transition: background .2s, transform .15s; }
.review-detail__price .button:hover, .review-detail__price a.button:hover { background: #e6b800; transform: translateY(-1px); }

/* CTA */
.review-detail__cta { margin-top: 3rem; text-align: center; }
.review-detail__cta .button, .review-detail__cta a.button { display: inline-block; background: var(--tr-blue); color: #fff !important; font-weight: 700; font-size: 1rem; padding: .875rem 2.25rem; border-radius: 6px; text-decoration: none; letter-spacing: .02em; transition: background .2s, transform .15s; }
.review-detail__cta .button:hover, .review-detail__cta a.button:hover { background: var(--tr-blue-light); transform: translateY(-1px); }

/* Article banner fixes */
article > header.review-detail__hero, .review-detail__banner { margin: 0 0 2rem; }
article > header.review-detail__hero img, .review-detail__banner img { width: 100%; height: auto; max-height: 480px; object-fit: cover; border-radius: var(--tr-radius); display: block; }
article .review-detail__meta { margin-bottom: 2rem; }

/* ========== RESPONSIVE ========== */
@media (max-width: 600px) {
  .review-detail { padding: 0 .75rem 2rem; }
  .review-detail h1 { font-size: 1.5rem; }
  .review-detail section h2 { font-size: 1.15rem; }
  .review-detail__price { padding: 1.25rem; }
  .review-detail__price .button, .review-detail__price a.button { width: 100%; text-align: center; }
  .review-pagination__btn { padding: 0 .5rem; font-size: .8rem; }
}