/* =====================================================================
   Hamburg Schlüsselexpress — reviews.css (hs-rev__)
   Uses tokens and base classes (hs-wrap, hs-btn, hs-head) from main.css
   ===================================================================== */

/* Hero */
.hs-rev__hero { padding: 56px 0 60px; background: var(--gradient-1), var(--hs-navy); border-bottom: 4px solid var(--hs-yellow); }
.hs-rev__hero-in { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 60px; align-items: center; }
.hs-rev__hero-in > * { min-width: 0; }
.hs-rev__crumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 9px; margin-bottom: 22px; font-size: 13px; color: #fff; }
.hs-rev__crumbs a { color: var(--hs-cyan); font-weight: 700; transition: color .3s ease; }
.hs-rev__crumbs a:hover, .hs-rev__crumbs a:focus-visible { color: #fff; text-decoration: underline; }
.hs-rev__crumbs-sep { opacity: .5; }
.hs-rev__eyebrow { display: block; margin-bottom: 10px; font-size: 13px; font-weight: 500; letter-spacing: .08em; text-transform: uppercase; color: var(--hs-cyan); }
.hs-rev__title { margin-bottom: 18px; font-size: 44px; line-height: 1.1; color: #fff; overflow-wrap: anywhere; }
.hs-rev__title em { font-style: italic; color: var(--hs-yellow); }
.hs-rev__lead { max-width: 640px; font-size: 17px; line-height: 1.65; color: #fff; }

.hs-rev__summary { padding: 30px 28px 26px; text-align: center; background: rgba(255, 255, 255, .06); border: 1px solid var(--color-border-2); border-top: 3px solid var(--hs-yellow); border-radius: var(--radius-1); box-shadow: var(--shadow-2); }
.hs-rev__score { display: flex; align-items: baseline; justify-content: center; gap: 10px; }
.hs-rev__score-value { font-size: 72px; font-weight: 900; font-style: italic; line-height: 1; color: var(--hs-yellow); }
.hs-rev__score-of { font-size: 16px; font-weight: 500; color: #fff; }
.hs-rev__score-stars { margin: 8px 0 18px; font-size: 24px; letter-spacing: .14em; color: var(--hs-yellow); }
.hs-rev__facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; padding-top: 18px; border-top: 1px solid var(--color-border-2); }
.hs-rev__facts li { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.hs-rev__facts strong { font-size: 28px; font-weight: 900; line-height: 1.1; color: #fff; }
.hs-rev__facts span { font-size: 12px; font-weight: 500; letter-spacing: .06em; text-transform: uppercase; color: #fff; }

/* List */
.hs-rev__main { padding: 72px 0 80px; }
.hs-rev__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; }
.hs-rev__card { display: flex; flex-direction: column; min-width: 0; padding: 28px 26px 26px; background: #fff; border: 1px solid var(--hs-line); border-top: 3px solid var(--hs-yellow); border-radius: var(--radius-1); box-shadow: var(--shadow-1); transition: transform .3s ease, box-shadow .3s ease; }
.hs-rev__card:hover { transform: translateY(-4px); box-shadow: var(--shadow-2); }
.hs-rev__card-head { display: flex; align-items: center; gap: 14px; margin-bottom: 16px; }
.hs-rev__avatar { display: grid; place-items: center; flex: 0 0 auto; width: 46px; height: 46px; border-radius: 50%; background: var(--hs-navy); color: var(--hs-yellow); font-size: 20px; font-weight: 700; }
.hs-rev__who { min-width: 0; }
.hs-rev__name { font-size: 23px; line-height: 1.1; color: var(--hs-navy); overflow-wrap: anywhere; }
.hs-rev__stars { margin-top: 3px; font-size: 16px; letter-spacing: .1em; color: var(--hs-orange); }
.hs-rev__service { display: inline-flex; align-items: center; align-self: flex-start; gap: 8px; max-width: 100%; margin-bottom: 14px; padding: 6px 12px; background: #f3f6fa; border-radius: var(--radius-1); font-size: 12.5px; font-weight: 700; letter-spacing: .02em; color: var(--hs-navy); }
.hs-rev__service img { flex: 0 0 auto; width: 14px; height: 14px; }
.hs-rev__service span { min-width: 0; overflow-wrap: anywhere; }
.hs-rev__text { flex-grow: 1; font-size: 15px; line-height: 1.7; color: var(--hs-text); }

/* Pagination */
.hs-rev__pag { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 14px; margin-top: 52px; }
.hs-rev__pag-btn { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 10px 18px; border: 2px solid var(--hs-blue); border-radius: var(--radius-1); font-size: 13px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--hs-blue); cursor: pointer; transition: background .3s ease, color .3s ease, border-color .3s ease; }
.hs-rev__pag-btn img { width: 16px; height: 16px; transition: filter .3s ease; }
.hs-rev__pag-btn--prev img { transform: rotate(180deg); }
.hs-rev__pag-btn:hover, .hs-rev__pag-btn:focus-visible { background: var(--hs-blue); border-color: var(--hs-blue); color: #fff; }
.hs-rev__pag-btn:hover img, .hs-rev__pag-btn:focus-visible img { filter: brightness(0) invert(1); }
.hs-rev__pag-nums { display: flex; align-items: center; gap: 6px; }
.hs-rev__pag-num { display: grid; place-items: center; min-width: 42px; height: 42px; padding: 0 8px; border: 2px solid var(--hs-line); border-radius: var(--radius-1); font-weight: 700; color: var(--hs-navy); cursor: pointer; transition: background .3s ease, color .3s ease, border-color .3s ease; }
a.hs-rev__pag-num:hover, a.hs-rev__pag-num:focus-visible { border-color: var(--hs-blue); color: var(--hs-blue); }
.hs-rev__pag-num--active { background: var(--hs-yellow); border-color: var(--hs-yellow); color: var(--hs-navy); cursor: default; }
.hs-rev__pag-dots { padding: 0 4px; color: var(--hs-text); }

/* Review form */
.hs-rev__formsec { padding: 80px 0; background: #f3f6fa; }
.hs-rev__formsec-in { display: flex; justify-content: center; }
.hs-rev__panel { width: 100%; max-width: 720px; min-width: 0; padding: 38px 40px 40px; background: #fff; border-top: 3px solid var(--hs-yellow); border-radius: var(--radius-1); box-shadow: var(--shadow-2); }
.hs-rev__panel-head { margin-bottom: 28px; }
.hs-rev__panel-head p { margin-top: 18px; font-size: 16px; }
.hs-rev__form input[type=text], .hs-rev__form textarea { display: block; width: 100%; margin-bottom: 4px; padding: 13px 14px; border: 2px solid var(--hs-line); border-radius: var(--radius-1); background: #fff; color: var(--hs-ink); font-size: 15px; line-height: 1.4; transition: border-color .3s ease, box-shadow .3s ease; }
.hs-rev__form input[type=text]:focus, .hs-rev__form textarea:focus { outline: none; border-color: var(--hs-blue); box-shadow: 0 0 0 3px rgba(0, 102, 204, .2); }
.hs-rev__form textarea { min-height: 130px; resize: vertical; }
.hs-rev__form label span { font-size: 13px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--hs-navy); }
.jqr_star-rating { display: inline-flex; gap: 4px; }
.jqr_star-rating .fa-star, .jqr_star-rating .text-warning { color: var(--hs-orange) !important; }
.jqr_error-message { margin-bottom: 8px; font-size: 13px; color: #c62828; }
.hs-rev__form #jqr_submit { display: inline-flex; align-items: center; justify-content: center; width: 100%; min-height: 54px; margin-top: 14px; padding: 14px 32px; border: 2px solid var(--hs-blue); border-radius: var(--radius-1); background: var(--hs-blue); color: #fff; font-size: 14px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; cursor: pointer; transition: background .3s ease, border-color .3s ease, box-shadow .3s ease; }
.hs-rev__form #jqr_submit:hover, .hs-rev__form #jqr_submit:focus-visible { background: var(--hs-navy); border-color: var(--hs-navy); color: #fff; box-shadow: var(--shadow-1); }

/* Call to action (dark band, footer band below is yellow) */
.hs-rev__cta { padding: 64px 0; background: var(--gradient-1), var(--hs-navy); }
.hs-rev__cta-in { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 34px; }
.hs-rev__cta-text { flex: 1 1 480px; min-width: 0; }
.hs-rev__cta-title { margin-bottom: 14px; font-size: 36px; color: #fff; }
.hs-rev__cta-p { max-width: 660px; font-size: 16px; line-height: 1.7; color: #fff; }
.hs-rev__cta-actions { display: flex; flex-direction: column; gap: 14px; flex: 0 0 auto; min-width: 0; }
.hs-rev__cta-btn { white-space: nowrap; }

/* Responsive */
@media (max-width: 1200px) {
  .hs-rev__hero-in { gap: 40px; grid-template-columns: minmax(0, 1fr) 300px; }
  .hs-rev__title { font-size: 40px; }
  .hs-rev__grid { gap: 22px; }
}
@media (max-width: 1024px) {
  .hs-rev__hero-in { grid-template-columns: 1fr; gap: 34px; }
  .hs-rev__summary { max-width: 420px; }
  .hs-rev__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hs-rev__main { padding: 60px 0 68px; }
  .hs-rev__formsec { padding: 64px 0; }
}
@media (max-width: 768px) {
  .hs-rev__hero { padding: 40px 0 44px; }
  .hs-rev__title { font-size: 30px; }
  .hs-rev__lead { font-size: 16px; }
  .hs-rev__score-value { font-size: 60px; }
  .hs-rev__main { padding: 48px 0 56px; }
  .hs-rev__formsec { padding: 52px 0; }
  .hs-rev__panel { padding: 30px 24px 32px; }
  .hs-rev__cta { padding: 52px 0; }
  .hs-rev__cta-in { flex-direction: column; align-items: stretch; gap: 26px; }
  .hs-rev__cta-text { flex: 0 1 auto; }
  .hs-rev__cta-actions { flex: 0 1 auto; width: 100%; }
  .hs-rev__cta-title { font-size: 30px; }
  .hs-rev__cta-btn { white-space: normal; }
  .hs-rev__form input[type=text], .hs-rev__form textarea { font-size: 16px; }
}
@media (max-width: 640px) {
  .hs-rev__grid { grid-template-columns: 1fr; }
}
@media (max-width: 480px) {
  .hs-rev__hero { padding: 32px 0 38px; }
  .hs-rev__title { font-size: 25px; }
  .hs-rev__summary { max-width: none; padding: 24px 20px 22px; }
  .hs-rev__card { padding: 24px 20px 22px; }
  .hs-rev__panel { padding: 26px 18px 28px; }
  .hs-rev__pag-btn span { display: none; }
  .hs-rev__cta-title { font-size: 27px; }
}
@media (max-width: 375px) {
  .hs-rev__title { font-size: 22px; }
  .hs-rev__score-value { font-size: 52px; }
  .hs-rev__cta-title { font-size: 25px; }
  .hs-rev__facts strong { font-size: 24px; }
}
