* { box-sizing: border-box; }
:root { font-family: system-ui, -apple-system, "Segoe UI", Arial, sans-serif; color: #20262c; background: #fff; }
body { margin: 0; }
a { color: #235c85; text-underline-offset: .17em; }
a:focus-visible { outline: 2px solid #235c85; outline-offset: 3px; }
.skip { position: absolute; left: 1rem; top: -5rem; }
.skip:focus { top: 1rem; }
.brand, .site-footer { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: .5rem 2rem; padding: 1rem; }
.brand a, .site-footer a { color: inherit; }
.brand > a:first-child { font-weight: 700; text-decoration: none; }
.phone { font-weight: 700; white-space: nowrap; }
.site-header nav { display: flex; flex-wrap: wrap; gap: .6rem 1.4rem; justify-content: center; padding: .75rem 1rem; background: #20252d; }
.site-header nav a { color: white; text-decoration: none; }
.site-header nav a:hover { text-decoration: underline; }
main { max-width: 58rem; min-height: 60vh; margin: auto; padding: clamp(1.4rem, 4vw, 3rem) clamp(1rem, 4vw, 2.4rem); line-height: 1.65; overflow-wrap: break-word; }
h1 { margin: .6rem 0 1.5rem; font-size: clamp(1.9rem, 5vw, 2.8rem); letter-spacing: -.025em; line-height: 1.15; }
h2, h3, h4 { line-height: 1.28; margin: 1.6em 0 .6em; }
.crumbs { display: flex; flex-wrap: wrap; gap: .25rem .65rem; font-size: .9rem; }
.article-copy { font-size: 1.05rem; }
.article-copy table { display: block; max-width: 100%; overflow-x: auto; border-collapse: collapse; }
th, td { border: 1px solid #dbe2e7; padding: .45rem .65rem; }
th { background: #eef3f6; text-align: left; }
.booking { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .85rem 1.1rem; margin-top: 2.5rem; padding: 1.2rem 1.4rem; background: #edf4f9; border-radius: .5rem; }
.booking a { display: inline-block; background: #275a80; color: #fff; border-radius: .3rem; padding: .45rem .8rem; font-weight: 700; white-space: nowrap; text-decoration: none; }
.site-footer { border-top: 1px solid #dbe2e7; background: #f4f6f7; }
.listing { padding-left: 1.25em; }
.listing li { padding: .24em 0; }
.pagination { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 2rem; }
