* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--header-height, 130px) + 20px); }
body { overflow-x: clip; margin: 0; color: var(--paper); font: 14px var(--sans); background: radial-gradient(ellipse at 15% 12%, #697279 0%, transparent 48%), linear-gradient(125deg, #535b61, #363e45 70%); background-attachment: fixed; }
a { color: inherit; text-decoration: none; }
button, select, input, textarea { font: inherit; }
button, select { cursor: pointer; }
button { color: inherit; }
img, video { max-width: 100%; }
[hidden] { display: none !important; }
:focus-visible { outline: 2px solid var(--yellow); outline-offset: 4px; }
main > section:not(.hero) { max-width: 1440px; margin: 0 auto; }
.section-pad { padding: 64px clamp(24px, 7vw, 110px); border-top: 1px solid var(--line); }
.section-heading { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 14px; margin: 0 auto 42px; max-width: 760px; }
.section-heading > div { width: 100%; }
h1, h2, h3 { overflow-wrap: break-word; }
.section-heading h2, .booking-heading h2, .contact-section h2 { font: 500 clamp(32px, 4vw, 52px)/1.15 var(--sans); letter-spacing: -.035em; margin: 0; }
h2 em { font: inherit; color: var(--paper); }
.section-heading p { max-width: 560px; margin: 0 auto; color: #d0d0ca; font-size: 16px; line-height: 1.8; }
.button { display: inline-flex; align-items: center; justify-content: center; padding: 16px 24px; border: 0; border-radius: 5px; background: var(--yellow); color: var(--dark); font-size: 16px; font-weight: 600; line-height: 1.4; text-align: center; }
.button:hover { background: #e7f2c2; }
.button:disabled { opacity: .65; cursor: wait; }
select option { background: #383e43; color: var(--paper); }
.eyebrow, .news-label { color: var(--yellow); font-size: 12px; line-height: 1.6; letter-spacing: 1px; }
.footer { min-height: 130px; border-top: 1px solid var(--line); display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 10px; padding: 24px; text-align: center; color: #d0d0ca; font-size: 13px; }
.footer-logo { width: 90px; height: 55px; object-fit: contain; }
@media(max-width:760px) {
  .section-pad { padding: 45px 6%; }
  .section-heading { margin-bottom: 30px; }
}
@media(prefers-reduced-motion:reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

