/* Shared booking information and current site shell for all published pages. */
.visual-stay .visual-header .primary-navigation { display:flex; gap:22px; }
.visual-stay .visual-header .primary-navigation .button { max-width:330px; text-align:center; }
.visual-stay .visual-header .compact-navigation { display:none; }
.visual-stay .visual-header a, .visual-stay .visual-footer a { letter-spacing:0; }
.visual-stay main { padding-top:0; }
.visual-stay .gallery-heading:has(+ .booking-rates) { padding-top:48px; padding-bottom:8px; }
.visual-stay .gallery-heading:has(+ .booking-rates) h1 { font-size:48px; }
.visual-stay .gallery-heading + .booking-rates { padding-top:40px; }
.visual-stay .booking-rates h2 { font-size:40px; max-width:none; margin-bottom:16px; }
.rates-layout { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(0,1fr); gap:40px; margin:30px 0; align-items:start; }
.season-table { width:100%; border-collapse:collapse; text-align:left; font-size:16px; hyphens:auto; }
.season-table th,.season-table td { padding:18px 12px; border-bottom:1px solid #cbd6d7; vertical-align:top; }
.season-table th { font-weight:500; }
.season-table thead { background:#e7f0f2; color:#173746; }
.season-table strong { font-size:22px; font-weight:500; white-space:nowrap; }
.rate-extras { border-left:3px solid #8cb8c2; padding:0 0 0 24px; }
.rate-extras h3 { font-size:27px; margin:0 0 16px; }
.rate-extras dl { margin:0; }
.rate-extras dl>div { display:flex; justify-content:space-between; gap:20px; padding:12px 0; border-bottom:1px solid #d9dfdc; }
.rate-extras dd { margin:0; white-space:nowrap; font-weight:600; }
.rate-extras p { margin-top:14px; font-size:14px; }
.booking-rates a:not(.button) { text-decoration:underline; text-underline-offset:3px; }
.rate-policy-links { display:flex; flex-wrap:wrap; gap:4px 24px; font-size:15px; }
.rate-policy-links a { display:inline-flex; align-items:center; min-height:44px; }
.booking-rates>.button { margin-top:24px; }
.visual-stay[data-legacy-layout] { background-image:none; font-weight:400; }
.visual-stay[data-legacy-layout] .wrap,.visual-stay[data-legacy-layout] .wrap-sm { max-width:1240px; padding-inline:5%; }
.visual-stay[data-legacy-layout] .page-hero { padding:56px 0 36px; }
.visual-stay[data-legacy-layout] h1 { font-size:48px; max-width:22ch; margin-bottom:20px; }
.visual-stay[data-legacy-layout] h2 { font-size:34px; max-width:none; margin-bottom:20px; }
.visual-stay[data-legacy-layout] h3 { font-size:26px; }
.visual-stay[data-legacy-layout] .lead { font-size:18px; }
.visual-stay[data-legacy-layout] .block { padding:48px 0; }
.visual-stay[data-legacy-layout] .block.alt { background:#e8efec; }
.visual-stay[data-legacy-layout] .info-card p,.visual-stay[data-legacy-layout] .flow p,.visual-stay[data-legacy-layout] .tc-section p,.visual-stay[data-legacy-layout] .tc-section li { font-size:16px; color:#4e5d5c; }
.visual-stay[data-legacy-layout] .btn { letter-spacing:0; font-size:15px; text-transform:none; min-height:48px; }
.visual-stay[data-legacy-layout] .grid-2,.visual-stay[data-legacy-layout] .grid-3 { grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr)); }
.visual-stay .visual-footer { margin-top:0; }
.visual-stay .visual-footer .visual-brand { color:inherit; }
.visual-stay .visual-footer a { overflow-wrap:anywhere; }
.visual-stay .translated-hero { position:relative; isolation:isolate; color:#fff; min-height:560px; padding:0!important; display:flex; align-items:flex-end; }
.translated-hero-photo { position:absolute; inset:0; z-index:-2; }
.translated-hero-photo img { width:100%; height:100%; object-fit:cover; object-position:50% 55%; }
.translated-hero-copy { width:100%; padding:56px 5%; background:linear-gradient(transparent,rgba(9,30,32,.85)); }
.translated-hero .lead,.translated-hero .eyebrow,.translated-hero .note { color:#fff!important; }
.translated-hero .btn-ghost { background:#fff; color:#173746; }
.translated-hero h1 { font-size:64px!important; }
.tc-tabs { gap:8px!important; }
.tc-tab { letter-spacing:0!important; font-size:14px!important; }
.enquiry-trap { position:absolute!important; left:-10000px; width:1px; height:1px; overflow:hidden; }
[data-online-enquiry] { margin-bottom:18px; }
.stay-form a { text-decoration:underline; }
@media(max-width:1150px) {
  .visual-stay .visual-header { flex-wrap:wrap; row-gap:6px; }
  .visual-stay .visual-header .primary-navigation { flex:1; justify-content:flex-end; }
  .visual-stay .primary-navigation>a:not(.button) { display:none; }
  .visual-stay .visual-header .compact-navigation { display:flex; flex-basis:100%; gap:24px; flex-wrap:wrap; border-top:1px solid #d9dfdc; }
  .visual-stay .compact-navigation a { display:inline-flex; min-height:36px; align-items:center; font-size:14px; }
  html { scroll-padding-top:170px; }
}
@media(max-width:900px) { .rates-layout { grid-template-columns:1fr; gap:28px; } }
@media(max-width:600px) {
  .visual-stay .visual-header { gap:12px; }
  .visual-stay .visual-header .visual-brand { font-size:23px; }
  .visual-stay .visual-header .primary-navigation .button { font-size:12px; padding:10px; min-width:0; width:auto; }
  .visual-stay .visual-header .compact-navigation { gap:16px; }
  .visual-stay .compact-navigation a { font-size:13px; }
  .visual-stay .booking-rates h2 { font-size:32px; }
  .season-table { font-size:13px; table-layout:fixed; }
  .season-table th,.season-table td { padding:14px 6px; overflow-wrap:anywhere; }
  .season-table th:nth-child(1) { width:24%; }
  .season-table th:nth-child(2) { width:34%; }
  .season-table th:nth-child(3) { width:21%; }
  .season-table strong { font-size:18px; }
  .visual-stay[data-legacy-layout] h1 { font-size:36px; }
  .visual-stay[data-legacy-layout] h2 { font-size:30px; }
  .translated-hero h1 { font-size:44px!important; }
  .visual-stay .translated-hero { min-height:620px; }
  .visual-stay .visual-footer { padding:40px 5%; }
}
