/* Owner's mobile reference layout, using site colours and typography. */
.traveller-reviews .section-heading { align-items: center; margin-bottom: 20px; }
.review-carousel-controls { display: flex; gap: 12px; }
.review-carousel-controls[hidden] { display: none; }
.review-carousel-button { width: var(--tap-target); height: var(--tap-target); padding: 0; border: 1px solid var(--line-strong); border-radius: 50%; font-size: 24px; }
.review-carousel-button:disabled { opacity: .45; cursor: default; }
.google-review-overview { display: flex; align-items: center; flex-wrap: wrap; gap: 0 12px; margin-bottom: 28px; }
.google-review-rating { display: inline-flex; align-items: center; gap: 12px; white-space: nowrap; }
.google-review-rating strong { font-size: 18px; font-weight: 600; color: var(--bright); }
.google-rating-stars { display: block; flex: 0 0 120px; color: #d4aa55; }
.google-maps-attribution { position: relative; color: var(--muted); font-size: 14px; }
.google-maps-attribution a { display: inline-flex; align-items: center; min-height: var(--tap-target); font-family: Arial, sans-serif; font-weight: 500; color: var(--bright); white-space: nowrap; text-decoration: underline; text-underline-offset: 3px; }
.review-selection-note { margin: 0 0 24px; color: var(--muted); font-size: 14px; }
.traveller-reviews-track { display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 48px) / 3); align-items: start; gap: 24px; overflow-x: auto; scroll-snap-type: x mandatory; overscroll-behavior-x: contain; padding-bottom: 8px; scrollbar-width: none; }
.traveller-reviews-track::-webkit-scrollbar { display: none; }
.traveller-review-card { position: relative; min-width: 0; padding: 24px; background: var(--surface); border-radius: 18px; scroll-snap-align: start; overflow-wrap: anywhere; }
.traveller-review-author { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }
.traveller-review-avatar { width: 32px; height: 32px; flex: 0 0 32px; border-radius: 50%; object-fit: cover; background: var(--photo-surface); }
.traveller-review-name { min-width: 0; font-weight: 500; line-height: 1.5; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.traveller-review-meta { display: flex; align-items: center; gap: 8px; margin-bottom: 14px; min-height: var(--tap-target); }
.traveller-review-meta time, .review-meta-separator { color: var(--muted); font-size: 16px; }
.traveller-review-score { color: var(--bright); white-space: nowrap; }
.traveller-review-source { display: inline-flex; justify-content: center; align-items: center; width: var(--tap-target); height: var(--tap-target); margin-left: -12px; margin-right: -4px; flex: 0 0 var(--tap-target); }
.traveller-review-source img, .traveller-review-google { width: 20px; height: 20px; }
.traveller-review-text { margin: 0; white-space: pre-line; line-height: 1.65; }
.traveller-review-text.is-clamp-ready:not(.is-expanded) { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 4; line-clamp: 4; }
.traveller-review-card .clamp-toggle, .review-all-link { display: inline-flex; align-items: center; width: max-content; min-height: var(--tap-target); margin-top: 16px; padding: 0; font-size: 16px; font-weight: 500; color: var(--bright); text-decoration: none; border-bottom: 2px solid var(--ink); }
.traveller-review-card .clamp-toggle[hidden] { display: none; }
.review-translation { color: var(--muted); font-size: 14px; margin: 8px 0 0; }
.review-all-link { margin-top: 24px; gap: 8px; }
.google-hotel-links { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 24px; margin-top: 24px; font-size: 14px; color: var(--muted); }
.google-hotel-links a { display: inline-flex; align-items: center; min-height: var(--tap-target); text-decoration: underline; text-underline-offset: 4px; }
.reviews-dialog { width: min(760px, calc(100vw - 48px)); max-height: 90dvh; margin: auto; padding: 0; border: 1px solid var(--line); border-radius: 18px; color: var(--ink); background: var(--bg); overscroll-behavior: contain; }
.reviews-dialog::backdrop { background: #0009; }
.reviews-dialog-head { position: sticky; top: 0; z-index: 1; display: flex; align-items: center; gap: 16px; padding: 20px 24px; background: var(--bg); }
.reviews-dialog-head h2 { font: 500 22px/1.4 var(--sans); }
.reviews-dialog-head button { width: var(--tap-target); height: var(--tap-target); padding: 0; flex: 0 0 var(--tap-target); font-size: 28px; }
.reviews-dialog-body { padding: 12px 32px 32px; }
.traveller-review-list { display: grid; gap: 16px; }
@media (max-width: 1050px) {
  .traveller-reviews-track { grid-auto-columns: calc((100% - 24px) / 2); }
}
@media (max-width: 760px) {
  .traveller-reviews .review-carousel-controls { display: none; }
  .traveller-reviews-track { grid-auto-columns: 88%; gap: 12px; margin-right: calc(-1 * var(--gutter)); padding-right: var(--gutter); }
  .traveller-review-card { padding: 18px; border-radius: 16px; }
  .traveller-review-name { font-size: 16px; }
  .reviews-dialog { width: 100%; max-width: none; height: 100dvh; max-height: none; inset: 0; margin: 0; border: 0; border-radius: 0; }
  .reviews-dialog-head { padding: calc(12px + env(safe-area-inset-top)) 16px 12px; gap: 12px; }
  .reviews-dialog-body { padding: 16px 20px calc(28px + env(safe-area-inset-bottom)); }
}
