/* Shared header/footer geometry, independent of individual page layouts. */
.site-header, .site-footer {
    --shell: 1240px;
    --transition: 320ms cubic-bezier(.2,.7,.2,1);
    --white: #f5f5f3;
    --white-soft: #cecec8;
    --gold: #b89a64;
    --line: rgba(184,154,100,.36);
    --line-soft: rgba(245,245,243,.16);
    font-family: "Manrope", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    text-align: left;
}
.site-header .shell, .site-footer .shell { width: min(100% - 2.4rem, 1240px); margin-inline: auto; }
.site-header a, .site-footer a { text-decoration: none; }
.site-header .brand img { display: block; width: 2.1rem; height: 2.1rem; }
.site-header .site-nav a[aria-current="page"]:not(.cta-link) { color: var(--gold); }
.site-footer { width: 100%; }
.site-footer p { margin: 0; color: var(--white-soft); line-height: 1.6; }
.site-footer .footer-title { color: var(--white); font-weight: 700; }
.site-footer .footer-grid { text-align: left; }
.site-utility-page { display: block; padding: 0; }
.site-utility-page > main.panel { margin: 8rem auto 4rem; width: min(100% - 2rem, 860px); }
.site-utility-page .cs-main { margin-top: 5.2rem; min-height: 70svh; }
.booking-header { padding-top: 7rem; }
body.nav-open { overflow: hidden; }
@media (max-width: 780px) {
    .site-header .shell, .site-footer .shell { width: min(100% - 1.4rem, 1240px); }
    .site-header .site-nav { overflow-y: auto; }
    .site-footer .footer-grid { grid-template-columns: 1fr 1fr; }
    .site-footer .footer-branding { grid-column: 1 / -1; }
}
@media (max-width: 420px) {
    .site-footer .footer-grid { grid-template-columns: 1fr; }
}
