/* Gilligan spacing audit — site-wide tightening (27 Sep 2026).
   Deliberately does not set shadows or change button minimum heights. */
:root {
  --leading-snug: 1.25;
  --text-sm--line-height: 1.3;
  --text-base--line-height: 1.35;
  --text-lg--line-height: 1.3;
  --text-xl--line-height: 1.3;
  --text-2xl--line-height: 1.25;
  --text-3xl--line-height: 1.2;
  --text-4xl--line-height: 1.1;
}
body { line-height: 1.35; }
.max-w-prose p, p.max-w-prose, dd.whitespace-pre-line { line-height: 1.4; }
li, dd, .card p { line-height: 1.3; }
ul.space-y-1 > li, footer .space-y-2 > p { margin-block: 0 4px; }
ul.flex-col.gap-3, ul.flex-col.gap-4 { gap: 6px; }
ul.grid.gap-3, ul.grid.gap-4 { gap: 12px; }
dl.space-y-3 > * + * { margin-top: 9px; }
h1 { line-height: 1.1; }
h2, h3 { line-height: 1.2; }

/* Named audit spots. */
.hcr-promo-sub { line-height: 1.25 !important; }
main:has(.hcr-daystrip) .hcr-daylist p,
main:has(.hcr-daystrip) .hcr-daylist h2 { line-height: 1.25 !important; }
main ul.mt-4.flex.flex-col.gap-4,
main ul.flex.flex-col.gap-4 { gap: 8px !important; }
main ul.mt-4.flex.flex-col.gap-3,
main ul.flex.flex-col.gap-3 { gap: 6px !important; }
main ul.grid.gap-3,
main ul.grid.gap-4 { gap: 12px !important; }
main ul.grid > li button > span.block.px-4.py-3.text-lg,
main ul.grid > li > button > span.block { line-height: 1.3 !important; }

/* The What's on title is hidden, but keep its former important intro rules tight. */
main:has([role="tablist"][aria-label="What’s on in the Harvey region list"]) p.uppercase:has(+ h1) { line-height: 1.35 !important; }
main:has([role="tablist"][aria-label="What’s on in the Harvey region list"]) h1 { line-height: 1.1 !important; }
main:has([role="tablist"][aria-label="What’s on in the Harvey region list"]) h1 + p { line-height: 1.3 !important; }

/* Closing soon is intentionally about twice the Next few days card gap. */
main:has([role="tablist"][aria-label="What’s on in the Harvey region list"]) #closing-soon > ul { gap: 13.5px !important; }
