/* Page layout. Colours and components come from tokens.css and components.css. */
html, body { margin: 0; }
body { min-height: 100vh; display: flex; flex-direction: column; }

.site-container {
    width: 100%;
    max-width: 1040px;
    margin-inline: auto;
    padding-left: max(var(--space-4), env(safe-area-inset-left, 0px));
    padding-right: max(var(--space-4), env(safe-area-inset-right, 0px));
    box-sizing: border-box;
}

.site-band { height: 6px; }

.site-header { padding-block: var(--space-6); }
.site-logo { display: inline-block; }
.site-logo img { display: block; height: 64px; width: auto; }

.site-main { flex: 1; padding-block: var(--space-6) var(--space-12); }

.site-footer { border-top: 1px solid var(--line); background: var(--surface-alt); color: var(--ink-muted); font-size: 14px; line-height: 20px; }
.site-footer__inner { padding-block: var(--space-6); display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--space-2) var(--space-6); }
.site-footer p { margin: 0; }
.site-footer a { color: var(--brand-red-ink); }

.hero { display: grid; gap: var(--space-2); margin-bottom: var(--space-8); max-width: 40rem; }
.hero__title { margin: 0; font: 600 44px/48px var(--font-display); letter-spacing: -0.01em; text-wrap: balance; }
.hero__tagline { margin: 0; font-size: 19px; line-height: 28px; color: var(--ink-muted); }

.page-title { font: 600 32px/38px var(--font-display); margin: 0 0 var(--space-4); }

.booking-layout { display: grid; gap: var(--space-8); grid-template-columns: 1fr; align-items: start; }
@media (min-width: 820px) {
    .booking-layout { grid-template-columns: minmax(0, 1fr) minmax(0, 420px); }
}

.facts { margin: 0; display: grid; gap: var(--space-6); grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }
.facts__item { display: grid; gap: var(--space-1); }
.facts dd { margin: 0; font-size: 17px; line-height: 24px; }

.booking-card { display: grid; gap: var(--space-6); padding: var(--space-6); border: 1px solid var(--line); border-radius: var(--radius-lg); box-shadow: var(--shadow-card); background: var(--surface); }

@media (max-width: 480px) {
    .hero__title { font-size: 34px; line-height: 40px; }
    .site-logo img { height: 52px; }
}
