/* ============================================================
   pages.css — subpage & legal specifics, page-only tweaks
   ============================================================ */

/* Homepage: gallery time-ordered caption emphasis */
.gallery-grid .gallery-item .cap time {
  font-family: var(--font-display);
  font-style: italic;
  color: var(--accent-soft);
}

/* Homepage: plan section background */
.plan-section {
  background:
    radial-gradient(80% 60% at 50% 0%, var(--accent-tint), transparent 70%),
    var(--bg);
  border-top: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
}

/* Responsible-gambling homepage band */
.rg-band {
  background: linear-gradient(160deg, var(--surface-sunk), var(--bg-soft));
  border-top: 1px solid var(--rule);
}

/* Subpage hero with optional image */
.sub-hero--img {
  position: relative;
  min-height: 46vh;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  isolation: isolate;
  border-radius: 0 0 var(--r-lg) var(--r-lg);
}
.sub-hero--img .shi-bg {
  position: absolute;
  inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  z-index: -2;
  filter: saturate(0.9) contrast(1.05);
}
.sub-hero--img .shi-grad {
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(180deg, rgba(8,6,4,0.35) 0%, rgba(8,6,4,0.7) 60%, rgba(8,6,4,0.98) 100%);
}
.sub-hero--img .page-grid { padding-bottom: var(--s-7); }

/* Casino sticky feature (homepage) */
.casino-feature {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--s-7);
  align-items: center;
  margin: var(--s-6) 0;
}
.casino-feature .cf-visual { position: sticky; top: calc(var(--header-h) + 24px); }
.casino-feature .cf-visual img { width: 100%; border-radius: var(--r-md); border: 1px solid var(--border); filter: saturate(0.92) contrast(1.05); }
.casino-feature .cf-visual .vtag { display: block; margin-top: 10px; font-size: 0.72rem; letter-spacing: var(--track-cap); text-transform: uppercase; color: var(--text-faint); }
.casino-feature .cf-points { display: flex; flex-direction: column; gap: var(--s-5); }
.casino-feature .cf-points .pt { border-left: 2px solid var(--accent-line); padding-left: var(--s-4); }
.casino-feature .cf-points .pt h4 { font-family: var(--font-display); font-size: 1.2rem; text-transform: none; letter-spacing: 0; color: var(--ink); margin: 0 0 6px; font-weight: 600; }
.casino-feature .cf-points .pt p { font-size: 0.92rem; color: var(--text-muted); margin: 0; }
@media (max-width: 880px) {
  .casino-feature { grid-template-columns: 1fr; }
  .casino-feature .cf-visual { position: static; }
}

/* Subpage: sticky review layout */
.sticky-review { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s-7); align-items: start; }
.sticky-review .sticky-visual { position: sticky; top: calc(var(--header-h) + 24px); }
.sticky-review .sticky-visual img { width: 100%; border-radius: var(--r-md); border: 1px solid var(--border); filter: saturate(0.92) contrast(1.05); }
.sticky-review .sticky-visual .vtag { display: block; margin-top: 10px; font-size: 0.72rem; letter-spacing: var(--track-cap); text-transform: uppercase; color: var(--text-faint); }
.sticky-review .review-steps { display: flex; flex-direction: column; gap: var(--s-5); }
.sticky-review .review-steps article { border-left: 2px solid var(--rule); padding-left: var(--s-4); }
.sticky-review .review-steps .rhead { display: flex; align-items: baseline; gap: 10px; margin-bottom: 6px; }
.sticky-review .review-steps .ri { font-family: var(--font-display); font-size: 1.4rem; color: var(--accent-ink); font-weight: 600; }
.sticky-review .review-steps h3 { font-size: 1.15rem; margin: 0; }
.sticky-review .review-steps p { font-size: 0.92rem; color: var(--text-muted); margin: 0 0 8px; }
.sticky-review .review-steps .rtag { font-size: 0.72rem; letter-spacing: 0.04em; color: var(--text-faint); display: inline-flex; align-items: center; gap: 6px; }
.sticky-review .review-steps .rtag .dot { width: 7px; height: 7px; border-radius: 50%; background: var(--good); }
.sticky-review .review-steps .rtag.mid .dot { background: var(--accent); }
@media (max-width: 880px) {
  .sticky-review { grid-template-columns: 1fr; }
  .sticky-review .sticky-visual { position: static; }
}

/* Subpage: rhythm strip (restaurants) */
.rhythm-strip { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: var(--s-5); margin: var(--s-6) 0; }
.rhythm-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-md); overflow: hidden; }
.rhythm-card .rc-img img { width: 100%; height: 100%; object-fit: cover; filter: saturate(0.9) contrast(1.05); }
.rhythm-card .rc-img { aspect-ratio: 16/10; overflow: hidden; }
.rhythm-card .rc-body { padding: var(--s-5); }
.rhythm-card .rc-time { font-size: 0.72rem; letter-spacing: var(--track-cap); text-transform: uppercase; color: var(--accent-ink); font-weight: 600; }
.rhythm-card .rc-body h4 { font-family: var(--font-display); font-size: 1.15rem; text-transform: none; letter-spacing: 0; color: var(--ink); margin: 6px 0; font-weight: 600; }
.rhythm-card .rc-body p { font-size: 0.88rem; color: var(--text-muted); margin: 0 0 var(--s-3); }
.rhythm-card .rc-foot { display: flex; justify-content: space-between; font-size: 0.78rem; color: var(--text-faint); border-top: 1px solid var(--rule); padding-top: var(--s-3); }
.rhythm-card .rc-foot .price { color: var(--accent-ink); font-weight: 600; }

/* Subpage: wellness layout */
.wellness { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s-7); align-items: center; margin: var(--s-6) 0; }
.wellness-img img { width: 100%; border-radius: var(--r-md); border: 1px solid var(--border); filter: saturate(0.9) contrast(1.05); }
.wellness-body h3 { font-size: 1.5rem; margin: 0 0 var(--s-3); }
.wellness-body p { font-size: 0.95rem; color: var(--text-muted); margin: 0 0 var(--s-4); }
.wellness-checklist { list-style: none; padding: 0; margin: 0; }
.wellness-checklist li { display: flex; justify-content: space-between; padding: 10px 0; border-bottom: 1px solid var(--rule); font-size: 0.9rem; color: var(--text); }
.wellness-checklist li .meta { color: var(--text-faint); font-size: 0.82rem; }
@media (max-width: 880px) { .wellness { grid-template-columns: 1fr; } }

/* Subpage: arrival/map */
.arrival { display: grid; grid-template-columns: 1.1fr 0.9fr; gap: var(--s-7); align-items: start; margin: var(--s-6) 0; }
.arrival-map { border: 1px solid var(--border); border-radius: var(--r-md); overflow: hidden; background: var(--surface-sunk); }
.arrival-map svg { width: 100%; height: auto; }
.arrival-notes { display: flex; flex-direction: column; gap: var(--s-4); }
.arrival-notes .note { border-left: 2px solid var(--accent-line); padding-left: var(--s-4); }
.arrival-notes .note h4 { margin: 0 0 4px; }
.arrival-notes .note p { margin: 0; font-size: 0.9rem; color: var(--text-muted); }
@media (max-width: 760px) { .arrival { grid-template-columns: 1fr; } }

/* Subpage: rooms audit */
.rooms-section { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s-7); align-items: start; margin: var(--s-6) 0; }
.rooms-stack .room-hero img { width: 100%; border-radius: var(--r-md); border: 1px solid var(--border); filter: saturate(0.92) contrast(1.05); }
.rooms-stack .room-types { display: flex; gap: var(--s-3); margin-top: var(--s-4); }
.rooms-stack .room-types .rt { flex: 1; }
.rooms-stack .room-types .rt img { width: 100%; border-radius: var(--r-sm); border: 1px solid var(--border); aspect-ratio: 4/3; object-fit: cover; }
.rooms-stack .room-types .rt .lbl { display: block; font-size: 0.72rem; letter-spacing: var(--track-cap); text-transform: uppercase; color: var(--text-faint); margin-top: 6px; }
.room-audit .audit-item { border-bottom: 1px solid var(--rule); padding: var(--s-4) 0; }
.room-audit .audit-item h4 { font-family: var(--font-display); font-size: 1.05rem; text-transform: none; letter-spacing: 0; color: var(--ink); margin: 0 0 4px; font-weight: 600; display: flex; justify-content: space-between; align-items: baseline; }
.room-audit .audit-item h4 .score { font-family: var(--font-display); color: var(--accent-ink); font-size: 1.1rem; }
.room-audit .audit-item p { font-size: 0.85rem; color: var(--text-muted); margin: 0; }
@media (max-width: 880px) { .rooms-section { grid-template-columns: 1fr; } }

/* Score bars (subpage verdict) */
.score-bars { list-style: none; padding: 0; margin: var(--s-5) 0; max-width: 480px; }
.score-bars li { margin-bottom: var(--s-4); }
.score-bars li .head { display: flex; justify-content: space-between; font-size: 0.85rem; margin-bottom: 6px; }
.score-bars li .head .lbl { color: var(--text-muted); }
.score-bars li .head .val { color: var(--accent-ink); font-weight: 600; font-variant-numeric: tabular-nums; }
.score-bars li .track { height: 4px; background: var(--surface-sunk); border-radius: 2px; overflow: hidden; }
.score-bars li .track > span { display: block; height: 100%; width: 0; background: linear-gradient(90deg, var(--accent), var(--accent-bright)); border-radius: 2px; transition: width 900ms var(--ease-soft); }
