:root {
  --ink: #1f2723;
  --cream: #f4f0e8;
  --paper: #fbf9f4;
  --sage: #6e7d72;
  --teal: #A85F38;
  --teal-hover: #8F4E2D;
  --deep: #25352f;
  --gold: #b18a53;
  --line: rgba(31, 39, 35, .18)
}
* {
  box-sizing: border-box
}
html {
  scroll-behavior: smooth
}
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: Arial, Helvetica, sans-serif;
  font-size: 16px;
  line-height: 1.65
}
a {
  color: inherit;
  text-decoration: none
}
img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover
}
.hero {
  position: relative;
  height: 100vh;
  min-height: 620px;
  background: #66746d;
  color: #fff;
  overflow: hidden
}
.hero-slideshow {
  position: absolute;
  inset: 0
}
.hero-slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity 1.8s ease-in-out;
  will-change: opacity
}
.hero-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 45%
}
.hero-slide.active {
  opacity: 1
}
.hero-shade {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(14, 22, 18, .64) 0%, rgba(14, 22, 18, .32) 48%, rgba(14, 22, 18, .08) 75%), linear-gradient(0deg, rgba(12, 18, 15, .32), transparent 45%)
}
.site-nav {
  position: absolute;
  z-index: 5;
  top: 0;
  left: 0;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 28px 5vw;
  border-bottom: 1px solid rgba(255, 255, 255, .28);
  background: linear-gradient(180deg, rgba(18, 27, 23, .72) 0%, rgba(18, 27, 23, .46) 62%, rgba(18, 27, 23, .18) 100%);
  text-shadow: 0 1px 3px rgba(0, 0, 0, .55)
}
.sticky-nav {
  position: fixed;
  z-index: 20;
  top: 0;
  left: 0;
  width: 100%;
  height: 58px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 5vw;
  background: rgba(23, 32, 28, .96);
  color: #fff;
  border-bottom: 1px solid rgba(255, 255, 255, .12);
  transform: translateY(-105%);
  opacity: 0;
  visibility: hidden;
  transition: transform .28s ease, opacity .28s ease, visibility .28s
}
.sticky-nav.visible {
  transform: translateY(0);
  opacity: 1;
  visibility: visible
}
.sticky-wordmark {
  font-family: Georgia, 'Times New Roman', serif;
  font-size: 20px;
  letter-spacing: .02em
}
.sticky-links {
  display: flex;
  align-items: center;
  gap: 24px;
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: .16em
}
.sticky-links > a:not(.sticky-book) {
  padding: 8px 0;
  border-bottom: 1px solid transparent
}
.sticky-links > a:hover {
  border-color: currentColor
}
.sticky-book {
  border: 1px solid var(--teal);
  background: var(--teal);
  color: #fff;
  padding: 8px 13px;
  transition: background .2s ease, border-color .2s ease
}
.sticky-book:hover {
  background: var(--teal-hover);
  border-color: var(--teal-hover)
}
.wordmark {
  display: flex;
  flex-direction: column;
  line-height: 1
}
.wordmark-main {
  font-family: Georgia, 'Times New Roman', serif;
  font-size: 27px;
  letter-spacing: .02em
}
.wordmark-sub {
  margin-top: 7px;
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: .28em
}
.nav-links {
  display: flex;
  align-items: center;
  gap: 28px;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .16em
}
.nav-links > a:not(.nav-book) {
  padding: 9px 0;
  border-bottom: 1px solid transparent
}
.nav-links > a:hover {
  border-color: currentColor
}
.nav-book {
  border: 1px solid var(--teal);
  background: var(--teal);
  color: #fff;
  padding: 12px 18px;
  transition: background .2s ease, border-color .2s ease
}
.nav-book:hover {
  background: var(--teal-hover);
  border-color: var(--teal-hover)
}
.menu-toggle {
  display: none;
  background: none;
  border: 1px solid rgba(255, 255, 255, .6);
  color: #fff;
  padding: 9px 13px;
  text-transform: uppercase;
  letter-spacing: .15em
}
.hero-content {
  position: absolute;
  z-index: 2;
  left: 8vw;
  bottom: 15vh;
  max-width: 760px
}
.eyebrow {
  margin: 0 0 18px;
  text-transform: uppercase;
  letter-spacing: .27em;
  font-size: 11px;
  font-weight: 700
}
.eyebrow.dark {
  color: var(--sage)
}
h1, h2, h3 {
  font-family: Georgia, 'Times New Roman', serif;
  font-weight: 400;
  line-height: 1.04;
  margin: 0
}
h1 {
  font-size: clamp(52px, 7vw, 104px);
  letter-spacing: -.035em
}
h2 {
  font-size: clamp(40px, 5vw, 72px);
  letter-spacing: -.025em
}
.hero-copy {
  max-width: 600px;
  font-family: Georgia, 'Times New Roman', serif;
  font-size: 19px;
  margin: 28px 0 32px
}
.hero-actions {
  display: flex;
  align-items: center;
  gap: 30px
}
.button {
  display: inline-block;
  padding: 14px 22px;
  text-transform: uppercase;
  letter-spacing: .17em;
  font-size: 11px;
  font-weight: 700
}
.button-light {
  background: var(--cream);
  color: var(--ink)
}
.button-primary {
  background: var(--teal);
  color: #fff;
  border: 1px solid var(--teal);
  transition: background .2s ease, border-color .2s ease
}
.button-primary:hover {
  background: var(--teal-hover);
  border-color: var(--teal-hover)
}
.button-outline {
  border: 1px solid var(--ink)
}
.text-link {
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .15em;
  border-bottom: 1px solid currentColor;
  padding-bottom: 4px
}
.hero-note {
  position: absolute;
  z-index: 2;
  right: 5vw;
  bottom: 35px;
  margin: 0;
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: .18em
}
.welcome {
  padding: 120px max(8vw, 30px);
  max-width: 1600px
}
.welcome .lead {
  font-family: Georgia, 'Times New Roman', serif;
  font-size: clamp(20px, 1.65vw, 26px);
  line-height: 1.55;
  width: 72%;
  max-width: 1150px;
  color: #475049;
  margin: 34px 0
}
.dark-link {
  color: var(--deep)
}
.feature {
  display: grid;
  grid-template-columns: 1.35fr .65fr;
  min-height: 720px;
  background: var(--cream)
}
.feature-image {
  min-height: 600px
}
.feature-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 9vw 7vw
}
.feature-copy p:not(.eyebrow) {
  font-family: Georgia, 'Times New Roman', serif;
  font-size: 18px;
  color: #505951;
  margin: 28px 0 36px
}
.feature-copy .button {
  align-self: flex-start
}
.editorial-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: 600px auto
}
.editorial-card {
  position: relative;
  overflow: hidden
}
.editorial-card:after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(0deg, rgba(15, 22, 18, .6), transparent 55%)
}
.card-overlay {
  position: absolute;
  z-index: 2;
  left: 50px;
  bottom: 45px;
  color: white
}
.card-overlay h3 {
  font-size: 38px;
  margin-bottom: 15px
}
.card-overlay a {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .15em
}
.editorial-text {
  grid-column: 1/-1;
  padding: 100px 8vw;
  display: grid;
  grid-template-columns: .6fr 1fr;
  gap: 20px 8vw;
  align-items: start
}
.editorial-text h2 {
  grid-row: 2
}
.editorial-copy {
  grid-column: 2;
  grid-row: 1 / span 2;
  align-self: center;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 28px
}
.editorial-copy p {
  font-family: Georgia, 'Times New Roman', serif;
  font-size: 21px;
  max-width: 620px;
  margin: 0
}
.editorial-copy a {
  align-self: flex-start
}
.weddings {
  min-height: 78vh;
  display: flex;
  align-items: center;
  color: white;
  background: linear-gradient(90deg, rgba(22, 31, 27, .72), rgba(22, 31, 27, .22)), url('images/dunsley-window-lounge.jpg') center/cover no-repeat
}
.weddings-inner {
  padding: 9vw;
  max-width: 680px
}
.weddings p:not(.eyebrow) {
  font-family: Georgia, 'Times New Roman', serif;
  font-size: 20px;
  margin: 28px 0 34px
}
.location {
  display: grid;
  grid-template-columns: 1fr 1fr;
  padding: 120px 8vw 0;
  gap: 50px 8vw
}
.location-copy {
  align-self: end;
  max-width: 560px
}
.location-copy p {
  font-family: Georgia, 'Times New Roman', serif;
  font-size: 21px;
  margin: 0 0 30px
}
.location img {
  grid-column: 1/-1;
  height: 60vh;
  min-height: 450px;
  margin-top: 30px;
  object-position: center 72%
}
.booking {
  text-align: center;
  background: var(--deep);
  color: white;
  padding: 110px 30px
}
.booking h2 {
  margin-bottom: 35px
}
footer {
  background: #17201c;
  color: #ddd;
  display: grid;
  grid-template-columns: 1.6fr .8fr 1.2fr 1fr;
  gap: 50px;
  padding: 65px 6vw;
  font-size: 13px
}
footer > div {
  display: flex;
  flex-direction: column;
  gap: 7px
}
footer strong {
  color: #fff;
  text-transform: uppercase;
  letter-spacing: .18em;
  font-size: 10px;
  margin-bottom: 10px
}
.footer-brand span {
  font-family: Georgia, 'Times New Roman', serif;
  color: #fff;
  font-size: 31px
}
.footer-brand small {
  text-transform: uppercase;
  letter-spacing: .18em;
  font-size: 9px
}
@media(max-width:900px) {
  .site-nav {
    padding: 20px 24px
  }
  .menu-toggle {
    display: block
  }
  .nav-links {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: rgba(23, 32, 28, .97);
    padding: 28px;
    flex-direction: column;
    align-items: stretch;
    gap: 5px
  }
  .nav-links.open {
    display: flex
  }
  .nav-links a {
    padding: 10px
  }
  .hero-content {
    left: 7vw;
    right: 7vw;
    bottom: 13vh
  }
  .hero-note {
    display: none
  }
  .feature {
    grid-template-columns: 1fr
  }
  .feature-image {
    min-height: 55vh
  }
  .feature-copy {
    padding: 80px 8vw
  }
  .editorial-grid {
    grid-template-columns: 1fr;
    grid-template-rows: none
  }
  .editorial-card {
    height: 62vh;
    min-height: 460px
  }
  .editorial-text {
    grid-column: auto;
    display: block;
    padding: 80px 8vw
  }
  .editorial-text h2 {
    margin-bottom: 25px
  }
  .editorial-copy {
    display: flex;
    grid-column: auto;
    grid-row: auto;
    align-items: flex-start;
    gap: 28px
  }
  .editorial-copy p {
    margin: 0
  }
  .location {
    grid-template-columns: 1fr;
    padding-top: 85px
  }
  .location-copy {
    max-width: none
  }
  .location img {
    grid-column: auto;
    height: 50vh
  }
  .weddings {
    min-height: 70vh
  }
  footer {
    grid-template-columns: 1fr;
    text-align: center;
    justify-items: center
  }
  .footer-brand {
    grid-column: auto
  }
  footer > div {
    align-items: center;
    width: 100%
  }
  footer address {
    text-align: center
  }
  footer a {
    width: auto;
    max-width: 100%
  }
}
@media(max-width:560px) {
  .sticky-nav {
    padding: 0 18px
  }
  .sticky-links {
    gap: 12px
  }
  .sticky-links a:not(.sticky-book) {
    display: none
  }
  .sticky-wordmark {
    font-size: 18px
  }
  .hero {
    min-height: 640px
  }
  .wordmark-main {
    font-size: 22px
  }
  .hero-content {
    bottom: 11vh
  }
  .hero-copy {
    font-size: 17px
  }
  .hero-actions {
    align-items: flex-start;
    flex-direction: column;
    gap: 20px
  }
  .welcome {
    padding-top: 80px;
    padding-bottom: 80px
  }
  .welcome .lead {
    width: 100%
  }
  .editorial-card {
    height: 55vh;
    min-height: 400px
  }
  .card-overlay {
    left: 28px;
    bottom: 28px
  }
  .location {
    padding-left: 7vw;
    padding-right: 7vw
  }
  .location img {
    min-height: 350px
  }
  .booking {
    padding: 80px 24px
  }
  footer {
    grid-template-columns: 1fr
  }
}
/* Full-screen navigation */
.menu-toggle {
  display: flex;
  width: 48px;
  height: 48px;
  padding: 0;
  border: 1px solid rgba(255, 255, 255, .62);
  background: rgba(20, 29, 25, .16);
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 5px;
  cursor: pointer;
  position: relative;
  z-index: 31
}
.menu-toggle span {
  display: block;
  width: 20px;
  height: 1px;
  background: #fff;
  transition: transform .25s ease, opacity .25s ease
}
.menu-toggle:hover {
  background: rgba(20, 29, 25, .38)
}
.sticky-toggle {
  width: 40px;
  height: 40px;
  border-color: rgba(255, 255, 255, .4)
}
.menu-overlay {
  position: fixed;
  z-index: 30;
  inset: 0;
  background: rgba(25, 36, 31, .985);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  visibility: hidden;
  transition: opacity .3s ease, visibility .3s ease
}
.menu-overlay.open {
  opacity: 1;
  visibility: visible
}
.menu-close {
  position: absolute;
  top: 27px;
  right: 5vw;
  width: 48px;
  height: 48px;
  border: 1px solid rgba(255, 255, 255, .45);
  background: transparent;
  color: #fff;
  font-family: Georgia, 'Times New Roman', serif;
  font-size: 35px;
  line-height: 42px;
  cursor: pointer
}
.overlay-nav {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 13px;
  text-align: center
}
.overlay-nav a {
  font-family: Georgia, 'Times New Roman', serif;
  font-size: clamp(32px, 4.4vw, 62px);
  line-height: 1.12
}
.overlay-nav a:not(.overlay-book):after {
  content: "";
  display: block;
  width: 0;
  height: 1px;
  background: rgba(255, 255, 255, .7);
  margin: 5px auto 0;
  transition: width .2s ease
}
.overlay-nav a:not(.overlay-book):hover:after {
  width: 100%
}
.overlay-nav .overlay-book {
  font-family: Arial, Helvetica, sans-serif;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .18em;
  border: 1px solid var(--teal);
  background: var(--teal);
  color: #fff;
  padding: 13px 20px;
  margin-top: 15px;
  transition: background .2s ease, border-color .2s ease
}
.overlay-nav .overlay-book:hover {
  background: var(--teal-hover);
  border-color: var(--teal-hover)
}
.overlay-note {
  position: absolute;
  left: 5vw;
  bottom: 28px;
  margin: 0;
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: .22em;
  color: rgba(255, 255, 255, .6)
}
body.menu-open {
  overflow: hidden
}
@media(max-width:560px) {
  .menu-close {
    top: 18px;
    right: 18px
  }
  .overlay-nav {
    gap: 18px
  }
  .overlay-nav a {
    font-size: 34px
  }
  .overlay-note {
    left: 22px;
    bottom: 22px
  }
}
/* Responsive primary navigation: full menu until it no longer fits */
.site-nav .menu-toggle, .sticky-nav .menu-toggle {
  display: none
}
@media(max-width:1120px) {
  .site-nav .nav-links, .sticky-nav .sticky-links {
    display: none
  }
  .site-nav .menu-toggle, .sticky-nav .menu-toggle {
    display: flex
  }
}
@media(min-width:1121px) {
  .site-nav .nav-links {
    display: flex
  }
  .sticky-nav .sticky-links {
    display: flex
  }
}
footer address {
  font-style: normal;
  line-height: 1.65;
  margin: 0 0 5px
}
footer a {
  width: max-content;
  max-width: 100%
}
footer a:hover {
  text-decoration: underline;
  text-underline-offset: 3px
}
/* Keep the full-screen navigation above every page element */
.menu-overlay {
  z-index: 1000
}
.menu-close {
  z-index: 1002
}
.menu-overlay .overlay-nav, .menu-overlay .overlay-note {
  z-index: 1001
}
body.menu-open .site-nav, body.menu-open .sticky-nav {
  z-index: 999
}
/* Centre the footer once it has collapsed to a single column. */
@media (max-width:560px) {
  footer {
    text-align: center;
    justify-items: center;
  }
  footer > div {
    align-items: center;
    width: 100%;
  }
  footer .footer-brand {
    grid-column: auto;
    align-items: center;
  }
  footer address {
    text-align: center;
  }
  footer a {
    width: auto;
    max-width: 100%;
  }
}
@media (prefers-reduced-motion:reduce) {
  .hero-slide {
    transition: none
  }
  .hero-slide:not(:first-child) {
    display: none
  }
}
/* Hero slideshow pagination */
.hero-pagination {
  position: absolute;
  z-index: 4;
  left: 50%;
  bottom: 34px;
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  gap: 12px
}
.hero-dot {
  width: 8px;
  height: 8px;
  padding: 0;
  border: 1px solid rgba(255, 255, 255, .9);
  border-radius: 50%;
  background: rgba(255, 255, 255, .38);
  cursor: pointer;
  box-shadow: 0 1px 3px rgba(0, 0, 0, .25);
  transition: background .25s ease, border-color .25s ease, transform .25s ease
}
.hero-dot:hover, .hero-dot:focus-visible {
  background: #fff;
  transform: scale(1.18);
  outline: none
}
.hero-dot.active {
  background: var(--teal);
  border-color: var(--teal);
  transform: scale(1.15)
}
@media(max-width:560px) {
  .hero-pagination {
    bottom: 24px;
    gap: 11px
  }
}
@media(prefers-reduced-motion:reduce) {
  .hero-pagination {
    display: none
  }
}
/* Social links */
.social-links {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 12px;
  margin-top: 14px
}
.social-links a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border: 1px solid rgba(255, 255, 255, .35);
  border-radius: 50%;
  color: #fff;
  transition: background .2s ease, border-color .2s ease, color .2s ease
}
.social-links a:hover {
  background: var(--teal);
  border-color: var(--teal);
  color: #fff;
  text-decoration: none
}
.social-links svg {
  width: 15px;
  height: 15px;
  fill: currentColor;
  display: block
}
@media(max-width:900px) {
  .social-links {
    justify-content: center
  }
}
/* Period detailing for the booking invitation */
.booking {
  position: relative;
  overflow: hidden;
  padding-top: 92px;
  padding-bottom: 92px
}
.booking:before, .booking:after {
  content: "";
  position: absolute;
  width: 88px;
  height: 88px;
  opacity: .38;
  pointer-events: none
}
.booking:before {
  top: 28px;
  left: 28px;
  border-top: 1px solid var(--gold);
  border-left: 1px solid var(--gold)
}
.booking:after {
  right: 28px;
  bottom: 28px;
  border-right: 1px solid var(--gold);
  border-bottom: 1px solid var(--gold)
}
.booking .eyebrow {
  color: #d4bd99;
  margin: 18px 0 16px
}
.booking h2 {
  margin-bottom: 34px;
  text-shadow: 0 1px 0 rgba(0, 0, 0, .18)
}
.booking-ornament {
  width: min(360px, 62vw);
  margin: 0 auto 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 13px;
  color: var(--gold)
}
.booking-ornament span {
  height: 1px;
  flex: 1;
  background: linear-gradient(90deg, transparent, currentColor)
}
.booking-ornament span:last-child {
  background: linear-gradient(90deg, currentColor, transparent)
}
.booking-ornament i {
  position: relative;
  width: 11px;
  height: 11px;
  border: 1px solid currentColor;
  transform: rotate(45deg);
  display: block
}
.booking-ornament i:before {
  content: "";
  position: absolute;
  inset: 3px;
  border: 1px solid currentColor
}
.booking-ornament-bottom {
  margin-top: 30px
}
@media(max-width:560px) {
  .booking {
    padding-top: 72px;
    padding-bottom: 72px
  }
  .booking:before, .booking:after {
    width: 58px;
    height: 58px
  }
  .booking:before {
    top: 20px;
    left: 20px
  }
  .booking:after {
    right: 20px;
    bottom: 20px
  }
  .booking-ornament {
    width: min(270px, 70vw)
  }
}
/* Stay panel: softly faded, large-scale country-house plaid inspired by the room textiles */
.feature-stay .feature-copy {
  background-color: #f7f3eb;
  background-image:
    linear-gradient(90deg, transparent 0 42%, rgba(132, 91, 48, .055) 42% 47%, transparent 47% 100%), linear-gradient(0deg, transparent 0 42%, rgba(132, 91, 48, .055) 42% 47%, transparent 47% 100%), linear-gradient(90deg, transparent 0 66%, rgba(190, 151, 66, .085) 66% 72%, transparent 72% 100%), linear-gradient(0deg, transparent 0 66%, rgba(190, 151, 66, .085) 66% 72%, transparent 72% 100%), linear-gradient(90deg, transparent 0 16%, rgba(77, 61, 44, .045) 16% 18%, transparent 18% 100%), linear-gradient(0deg, transparent 0 16%, rgba(77, 61, 44, .045) 16% 18%, transparent 18% 100%);
  background-size: 260px 260px;
  background-position: 0 0;
}
/* Keep the Explore our Rooms button distinct from the checked wallpaper */
.feature-stay .button-outline {
  background: var(--cream);
}
/* Weddings copy: prevent the text column narrowing as the viewport gets wider.
   The previous 9vw padding continued growing inside a max-width container. */
.weddings-inner {
  box-sizing: border-box;
  width: min(900px, 65vw);
  max-width: none;
  padding: clamp(70px, 9vw, 135px) clamp(55px, 7vw, 105px);
}
@media(max-width:900px) {
  .weddings-inner {
    width: min(760px, 88vw);
    padding: 70px 8vw;
  }
}
@media(max-width:560px) {
  .weddings-inner {
    width: 100%;
    padding: 60px 7vw;
  }
}
/* Breathing space between the coastal image and the dark closing strip */
.location img {
  margin-bottom: 36px
}
@media(max-width:560px) {
  .location img {
    margin-bottom: 24px
  }
}

/* Relax page: four alternating accommodation and lounge strips */
.relax-intro{padding-top:clamp(75px,9vw,125px);padding-bottom:clamp(75px,9vw,125px)}
.relax-strip{align-items:stretch}
.relax-strip .feature-image{min-height:clamp(380px,44vw,640px)}
.relax-strip .feature-image img{height:100%;width:100%;object-fit:cover}
.relax-strip .feature-copy{display:flex;flex-direction:column;justify-content:center;box-sizing:border-box;padding:clamp(48px,6vw,100px);background:#f7f3eb}
.relax-strip .feature-copy h2{margin-bottom:24px}
.relax-strip .feature-copy p:last-child{max-width:520px;line-height:1.8}
.relax-strip-reverse .feature-image{order:2}
.relax-strip-reverse .feature-copy{order:1}
@media(max-width:700px){.relax-strip .feature-image,.relax-strip .feature-copy{order:initial}.relax-strip .feature-image{min-height:310px}.relax-strip .feature-copy{padding:52px 7vw}}

/* Experiences: ensure each photograph fills the full height of its grid strip,
   even when the adjacent text makes the strip taller than its minimum height. */
.experiences-page .relax-strip .feature-image {
  position: relative;
  overflow: hidden;
}
.experiences-page .relax-strip .feature-image img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Experiences: prevent intrinsic text widths from widening grid tracks and
   leaving an uncovered strip alongside the photographs. */
@media (min-width: 901px) {
  .experiences-page .feature.relax-strip {
    grid-template-columns: minmax(0, 1.35fr) minmax(0, .65fr);
  }
  .experiences-page .feature.relax-strip > .feature-image,
  .experiences-page .feature.relax-strip > .feature-copy {
    min-width: 0;
    width: 100%;
  }
  .experiences-page .feature.relax-strip .feature-copy h2 {
    overflow-wrap: normal;
    word-break: normal;
    hyphens: none;
    font-size: clamp(2.25rem, 3.5vw, 4.25rem);
  }
}
.experiences-page .feature.relax-strip .feature-image {
  align-self: stretch;
  justify-self: stretch;
  width: 100%;
}

/* Stacked feature sections: 12px cream frame around each photograph.
   The full-bleed transitioning hero slides are deliberately excluded. */
@media (max-width: 900px) {
  .feature .feature-image {
    box-sizing: border-box;
    padding: 12px;
    background: var(--cream);
  }
  .feature .feature-image > img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  /* Experiences uses absolutely positioned images for full-height cropping. */
  .experiences-page .relax-strip .feature-image > img {
    inset: 12px;
    width: calc(100% - 24px);
    height: calc(100% - 24px);
  }
}

/* Interior-page image spacing: follow the generous homepage inset when
   feature sections stack. Hero slideshows remain full-bleed. */
@media (max-width: 900px) {
  .feature .feature-image {
    --feature-image-inset: clamp(20px, 7vw, 90px);
    padding: 24px var(--feature-image-inset);
  }
  .experiences-page .relax-strip .feature-image > img {
    top: 24px;
    bottom: 24px;
    left: var(--feature-image-inset);
    right: var(--feature-image-inset);
    width: calc(100% - 2 * var(--feature-image-inset));
    height: calc(100% - 48px);
  }
}


/* Active-page navigation: top line, sticky menu and full-screen hamburger menu */
.site-nav .nav-links a[aria-current="page"]:not(.nav-book),
.sticky-nav .sticky-links a[aria-current="page"]:not(.sticky-book) {
  color: #e8b87b;
  text-decoration: underline;
  text-decoration-color: currentColor;
  text-underline-offset: 7px;
  text-decoration-thickness: 2px;
}
.menu-overlay .overlay-nav a[aria-current="page"]:not(.overlay-book) {
  color: #e8b87b;
}
.menu-overlay .overlay-nav a[aria-current="page"]:not(.overlay-book)::after {
  width: 100%;
  background: currentColor;
}

/* Corrected active page selectors: actual navigation containers */
.nav-links > a[aria-current="page"]:not(.nav-book),
.sticky-links > a[aria-current="page"]:not(.sticky-book) {
  color: #a4532f !important;
  border-bottom: 2px solid currentColor;
  text-decoration: none;
}
.menu-overlay .overlay-nav > a[aria-current="page"]:not(.overlay-book) {
  color: #e8b87b !important;
}
.menu-overlay .overlay-nav > a[aria-current="page"]:not(.overlay-book)::after {
  width: 100%;
  background: currentColor;
}

/* v9: high-contrast current-page indication, all navigation modes */
.site-nav .nav-links a[aria-current="page"],
.sticky-nav .sticky-links a[aria-current="page"],
.menu-overlay .overlay-nav a[aria-current="page"] {
 color: #f2bd80 !important; text-decoration: underline !important;
 text-decoration-thickness: 3px !important; text-underline-offset: 7px !important;
}

/* Active navigation: unmistakable contrast in every navigation mode. */
.site-nav .nav-links > a.current-page,
.sticky-nav .sticky-links > a.current-page {
  background-color: #f4c88e !important;
  color: #19251f !important;
  border-radius: 3px;
  padding: 9px 12px;
  text-decoration: none !important;
  border: 0 !important;
  box-shadow: inset 0 -3px 0 #a4532f;
}
.menu-overlay .overlay-nav > a.current-page {
  color: #f4c88e !important;
  text-decoration: none !important;
  border: 0 !important;
}
.menu-overlay .overlay-nav > a.current-page::before {
  content: '• ';
  color: #f4c88e;
}
.menu-overlay .overlay-nav > a.current-page::after {
  width: 100% !important;
  height: 2px;
  background: #f4c88e !important;
}

/* v11: restrained active-page treatment; no coloured background block. */
.site-nav .nav-links > a.current-page,
.sticky-nav .sticky-links > a.current-page {
  background: transparent !important;
  box-shadow: none !important;
  border: 0 !important;
  border-radius: 0 !important;
  padding: 0 !important;
  color: #f2e1c3 !important;
  text-decoration: none !important;
  border-bottom: 1px solid rgba(242,225,195,.9) !important;
  padding-bottom: 5px !important;
}
.menu-overlay .overlay-nav > a.current-page::before { content: none !important; }

/* Contact page */
.contact-hero .hero-slide img { object-position: center 55%; }
.contact-hero .hero-content { max-width: 850px; }
.contact-layout { display:grid; grid-template-columns:minmax(260px,.8fr) minmax(340px,1.2fr); gap:clamp(2rem,6vw,7rem); padding:clamp(3rem,7vw,7rem) max(7vw,20px); background:#f8f5ed; }
.contact-layout h2,.contact-map-section h2 { font-family: Georgia,serif; font-weight:400; font-size:clamp(2rem,3.4vw,3.5rem); line-height:1.16; margin:.5rem 0 2rem; }
.contact-details address { font-style:normal; line-height:1.85; }
.contact-details p { margin:1.5rem 0; line-height:1.7; }
.contact-details a,.contact-map-section a { color:#925331; text-underline-offset:4px; overflow-wrap:anywhere; }
.contact-form-panel { background:#fff; padding:clamp(1.4rem,3vw,3rem); box-shadow:0 8px 35px rgba(33,40,32,.06); }
.contact-form { display:grid; gap:1.2rem; }
.contact-form-row { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.contact-form label { display:block; font-size:.91rem; letter-spacing:.01em; }
.contact-form input,.contact-form textarea { display:block; width:100%; box-sizing:border-box; margin-top:.45rem; padding:.85rem 1rem; border:1px solid #c9c7bd; border-radius:0; background:#fff; color:#23312b; font:inherit; }
.contact-form input:focus,.contact-form textarea:focus { outline:2px solid #a86c47; outline-offset:2px; }
.contact-form textarea { resize:vertical; min-height:160px; }
.contact-form .button { cursor:pointer; justify-self:start; border:0; }
.contact-privacy,.contact-required { color:#6e716a; font-size:.85rem; margin:0; }
.contact-honeypot { position:absolute!important; width:1px!important; height:1px!important; overflow:hidden!important; clip-path:inset(50%)!important; white-space:nowrap!important; }
.contact-map-section { padding:clamp(3rem,6vw,6rem) max(7vw,20px); text-align:center; }
.contact-map-heading { max-width:720px; margin:0 auto 2rem; }
.contact-map-section iframe { display:block; width:100%; height:min(55vw,480px); min-height:320px; border:0; }
.contact-map-section > p { margin:1.5rem 0 0; }
@media(max-width:820px) { .contact-layout {grid-template-columns:1fr;} }
@media(max-width:560px) { .contact-form-row {grid-template-columns:1fr;} .contact-map-section iframe { min-height:320px; } }


/* Christmas homepage announcement */
.christmas-modal[hidden]{display:none!important}.christmas-modal{position:fixed;inset:0;z-index:99999;display:grid;place-items:center;padding:20px;opacity:0;transition:opacity .65s ease}.christmas-modal.christmas-visible{opacity:1}.christmas-backdrop{position:absolute;inset:0;background:rgba(17,31,25,.76);backdrop-filter:blur(4px)}.christmas-panel{position:relative;width:min(780px,100%);max-height:min(88vh,920px);overflow-y:auto;background:#f8f5ed;color:#26372e;border:1px solid #c9aa75;box-shadow:0 20px 70px rgba(0,0,0,.45);text-align:center}.christmas-panel:before{content:"";position:absolute;inset:9px;border:1px solid rgba(155,115,64,.36);pointer-events:none}.christmas-close{position:absolute;right:15px;top:10px;z-index:2;border:0;background:transparent;color:#f6e8c7;font-size:32px;line-height:1;cursor:pointer;padding:6px 12px}.christmas-top{background:#193b32;color:#f8f2e6;padding:34px 46px 26px;background-image:radial-gradient(circle at 50% 0,rgba(196,160,99,.15),transparent 65%)}.christmas-kicker{text-transform:uppercase;letter-spacing:.2em;font-size:11px}.christmas-ornament{color:#c9a36b;font-size:23px;margin:13px 0 6px}.christmas-top h2{color:#f9f0dc;font-family:Georgia,serif;font-size:clamp(31px,5vw,49px);font-weight:400;line-height:1.1;margin:8px 0 12px}.christmas-dates{color:#e1c89d;letter-spacing:.08em;font-size:14px;text-transform:uppercase}.christmas-intro{max-width:500px;margin:13px auto 0;line-height:1.6;font-size:15px}.christmas-content{padding:24px 42px 34px}.christmas-content h3{font-family:Georgia,serif;font-weight:400;font-size:23px;margin:0 0 14px;color:#254436}.christmas-price-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.christmas-price-grid>div{background:#ece5d6;border-top:2px solid #b99660;padding:14px 7px;display:flex;flex-direction:column;gap:7px}.christmas-price-grid strong{font-size:22px;color:#264336}.christmas-price-grid small{font-size:11px;line-height:1.4}.christmas-itinerary{margin-top:24px;text-align:left}.christmas-itinerary h3{text-align:center}.christmas-itinerary p{margin:0;padding:9px 0;border-bottom:1px solid #ddd2bf;line-height:1.5;font-size:14px}.christmas-itinerary b{color:#284739}.christmas-smallprint{font-size:12px;line-height:1.5;color:#6d665b;margin:19px 0 13px}.christmas-cta{display:inline-block;background:#254738;color:#fff!important;text-decoration:none;padding:13px 28px;letter-spacing:.04em;font-size:14px}.christmas-cta:hover{background:#35624e}.christmas-modal-open{overflow:hidden}@media(max-width:650px){.christmas-modal{padding:10px}.christmas-panel{max-height:94vh}.christmas-top{padding:32px 28px 23px}.christmas-content{padding:22px 24px 28px}.christmas-price-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.christmas-price-grid strong{font-size:20px}.christmas-close{right:7px;top:6px}}
@media(prefers-reduced-motion:reduce){.christmas-modal{transition:none}}

/* v16 – richly festive Christmas invitation, without altering site-wide styling */
.christmas-backdrop{background:rgba(12,26,20,.84)}
.christmas-panel{border:5px solid #b99a59;outline:1px solid #f5dfac;outline-offset:-12px;box-shadow:0 0 0 1px #fff1ca,0 28px 90px rgba(0,0,0,.65);border-radius:3px}
.christmas-panel:before{inset:14px;border:1px solid rgba(223,194,132,.5);z-index:1}
.christmas-top{position:relative;overflow:hidden;padding-top:43px;padding-bottom:32px;background-color:#15382b;background-image:radial-gradient(circle at 50% 5%,rgba(253,227,166,.22),transparent 52%),repeating-linear-gradient(135deg,transparent 0 42px,rgba(255,255,255,.018) 42px 44px);border-bottom:7px solid #9c292e}
.christmas-top:before,.christmas-top:after{content:'❄';position:absolute;color:rgba(236,219,172,.32);font-size:105px;top:70px;pointer-events:none}
.christmas-top:before{left:-19px;transform:rotate(-18deg)}
.christmas-top:after{right:-19px;transform:rotate(18deg)}
.christmas-snow{font-size:19px;letter-spacing:.25em;color:#f1d8a1;margin-bottom:10px;text-shadow:0 0 14px rgba(255,245,208,.5)}
.christmas-holly{font-size:23px;color:#c6a55c;line-height:1;margin-bottom:14px}
.christmas-holly span{color:#c74748;font-size:11px;letter-spacing:-.2em;vertical-align:middle;margin:0 5px;text-shadow:0 0 5px rgba(0,0,0,.3)}
.christmas-kicker{letter-spacing:.28em;color:#f4dba6;font-weight:600}
.christmas-top h2{font-size:clamp(34px,5.4vw,54px);font-style:italic;text-shadow:0 2px 16px rgba(0,0,0,.35);margin:13px auto;max-width:590px}
.christmas-ornament{font-size:22px;color:#e3c47e;margin:10px 0 4px}
.christmas-dates{color:#fff2d5;font-weight:600;letter-spacing:.13em}
.christmas-intro{color:#f7ead1}
.christmas-content{background:#fbf5e9;background-image:radial-gradient(circle at top,rgba(203,174,118,.14),transparent 60%)}
.christmas-greeting{color:#9b2932;font-family:Georgia,serif;font-style:italic;font-size:20px;margin:0 0 20px;letter-spacing:.025em}
.christmas-content h3{color:#193e2e}
.christmas-price-grid>div{background:#f2e9d8;border:1px solid #d5bf91;border-top:4px solid #9b2932;box-shadow:0 3px 0 rgba(176,142,82,.1)}
.christmas-price-grid strong{color:#8e2630}
.christmas-itinerary b{color:#8e2630}
.christmas-cta{background:#9b2932!important;border:1px solid #7f1d28;color:#fff6e4!important;font-weight:600;box-shadow:0 3px 0 #6b1821}
.christmas-cta:hover{background:#7d2028!important}
.christmas-close{color:#fff4d5;background:#9b2932;border:1px solid #e2c48a;border-radius:50%;width:39px;height:39px;display:grid;place-items:center;padding:0;font-size:26px;top:16px;right:17px}
@media(max-width:650px){.christmas-top{padding-top:38px}.christmas-top:before,.christmas-top:after{font-size:62px;top:90px}.christmas-snow{font-size:14px}.christmas-greeting{font-size:17px}.christmas-close{top:10px;right:10px}}

/* v17: Christmas invitation always fits inside the viewport; no internal scrollbar. */
.christmas-modal{overflow:hidden;box-sizing:border-box}
.christmas-panel{max-height:none!important;overflow:visible!important;transform:scale(var(--christmas-fit-scale,1));transform-origin:center center;flex-shrink:0}
@media(max-width:650px){.christmas-panel{max-height:none!important}}

/* v18: botanical Christmas invitation, inspired by supplied foliage-and-baubles reference. */
.christmas-panel{width:min(790px,100%);background:#fffdfa;border:1px solid #d9c9a6!important;outline:none!important;border-radius:12px!important;box-shadow:0 28px 95px rgba(0,0,0,.55)!important;isolation:isolate;}
.christmas-panel:before{content:"";position:absolute;inset:0!important;border:0!important;z-index:0!important;pointer-events:none;background:url('images/christmas-foliage-border.png') center center / 100% 100% no-repeat;opacity:.96;}
.christmas-panel:after{content:"";position:absolute;inset:0;border:1px solid rgba(180,154,101,.42);border-radius:12px;pointer-events:none;z-index:0;}
.christmas-top,.christmas-content{position:relative;z-index:1;background:none!important;border:0!important;color:#2d322b!important;}
.christmas-top{padding:42px 115px 8px!important;overflow:visible!important;}
.christmas-top:before,.christmas-top:after{display:none!important;}
.christmas-kicker{color:#9b2c26!important;letter-spacing:.22em!important;font-size:11px!important;}
.christmas-top h2{font-family:'Snell Roundhand','Brush Script MT','Apple Chancery',Georgia,serif!important;font-style:italic;font-weight:400;color:#252922!important;text-shadow:none!important;font-size:clamp(39px,5.5vw,61px)!important;line-height:1.04!important;margin:8px 0 12px!important;}
.christmas-dates{color:#a42c24!important;font-size:12px!important;letter-spacing:.08em!important;font-weight:600!important;}
.christmas-intro{color:#34352f!important;font-size:13px!important;line-height:1.45!important;margin-top:8px!important;}
.christmas-content{padding:10px 113px 35px!important;}
.christmas-content h3{font-family:'Snell Roundhand','Brush Script MT','Apple Chancery',Georgia,serif!important;font-style:italic;color:#a32d25!important;font-size:27px!important;margin-bottom:9px!important;}
.christmas-price-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;}
.christmas-price-grid>div{background:rgba(255,255,255,.87)!important;border:1px solid #e5d9c5!important;border-top:1px solid #e5d9c5!important;box-shadow:none!important;padding:7px 5px!important;gap:2px!important;}
.christmas-price-grid strong{color:#a32d25!important;font-size:19px!important;}
.christmas-price-grid small{font-size:10px!important;line-height:1.2!important;}
.christmas-itinerary{margin-top:13px!important;}
.christmas-itinerary p{padding:5px 0!important;font-size:12px!important;line-height:1.4!important;background:rgba(255,255,255,.5);}
.christmas-itinerary b{color:#a32d25!important;}
.christmas-smallprint{margin:10px 0 9px!important;font-size:10px!important;}
.christmas-cta{background:#a72e24!important;border-radius:25px!important;border:0!important;box-shadow:none!important;letter-spacing:.16em!important;text-transform:uppercase;font-size:11px!important;padding:12px 24px!important;}
.christmas-close{top:13px!important;right:15px!important;background:#a72e24!important;color:white!important;border:2px solid white!important;}
@media(max-width:650px){.christmas-top{padding:34px 65px 7px!important}.christmas-content{padding:7px 65px 24px!important}.christmas-top h2{font-size:38px!important}.christmas-content h3{font-size:23px!important}}
@media(max-width:420px){.christmas-top{padding:32px 47px 7px!important}.christmas-content{padding:7px 47px 22px!important}.christmas-top h2{font-size:34px!important}}

/* v19: readable two-view mobile Christmas invitation, no overflow or miniaturised type. */
.christmas-mobile-tabs{display:none}
@media(max-width:650px){
 .christmas-modal{padding:10px!important;box-sizing:border-box;overflow:hidden}
 .christmas-panel{box-sizing:border-box;width:min(100%,440px)!important;max-width:440px;max-height:calc(100dvh - 20px)!important;overflow:hidden!important;transform:none!important;display:flex;flex-direction:column;justify-content:center}
 .christmas-panel:before{background-size:100% 100%!important;opacity:.67!important}
 .christmas-top{padding:22px 42px 3px!important;flex-shrink:0}
 .christmas-kicker{font-size:10px!important}
 .christmas-top h2{font-size:clamp(27px,7.8vw,37px)!important;margin:5px 0!important;line-height:1.04!important}
 .christmas-dates{font-size:11px!important;line-height:1.3!important}
 .christmas-intro{font-size:12px!important;line-height:1.3!important;margin:4px auto 0!important}
 .christmas-content{padding:4px 36px 18px!important;min-height:0;display:flex;flex-direction:column;align-items:stretch}
 .christmas-mobile-tabs{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin:7px 0 9px}
 .christmas-tab{border:1px solid #ad8c67;background:rgba(255,255,255,.88);color:#772820;border-radius:20px;padding:8px 3px;font-size:12px;line-height:1.1;cursor:pointer;font-weight:600}
 .christmas-tab.active{background:#a72e24;color:#fff;border-color:#a72e24}
 .christmas-content h3{font-size:23px!important;margin:0 0 6px!important}
 .christmas-price-grid{gap:6px}
 .christmas-price-grid>div{padding:8px 4px!important}
 .christmas-price-grid strong{font-size:19px!important}
 .christmas-price-grid small{font-size:12px!important;line-height:1.3!important}
 .christmas-itinerary{margin-top:0!important}
 .christmas-itinerary p{font-size:12.5px!important;line-height:1.3!important;padding:6px 2px!important}
 .christmas-smallprint{font-size:11px!important;line-height:1.25!important;margin:8px 0!important}
 .christmas-cta{font-size:11px!important;padding:10px 12px!important;align-self:center}
 .christmas-close{width:34px!important;height:34px!important;right:5px!important;top:5px!important;font-size:24px!important}
 .christmas-panel [data-christmas-section][hidden]{display:none!important}
}
@media(max-width:370px){
 .christmas-top{padding:18px 31px 1px!important}
 .christmas-content{padding:2px 28px 13px!important}
 .christmas-top h2{font-size:27px!important}
 .christmas-intro{font-size:11.5px!important}
 .christmas-price-grid small{font-size:11.5px!important}
 .christmas-itinerary p{font-size:12px!important}
}
@media(max-height:670px) and (max-width:650px){
 .christmas-top{padding-top:13px!important}
 .christmas-content{padding-bottom:10px!important}
 .christmas-top h2{font-size:26px!important}
 .christmas-intro{display:none!important}
 .christmas-content h3{font-size:20px!important}
 .christmas-itinerary p{font-size:12px!important;padding:4px 0!important}
 .christmas-smallprint{margin:5px 0!important}
}

/* Christmas close control: draw a precisely centred cross rather than relying on font glyph metrics. */
.christmas-close { position:absolute; display:flex!important; align-items:center!important; justify-content:center!important; font-size:0!important; line-height:0!important; padding:0!important; }
.christmas-close::before, .christmas-close::after { content:""; position:absolute; left:50%; top:50%; width:17px; height:2px; border-radius:1px; background:currentColor; transform-origin:center; }
.christmas-close::before { transform:translate(-50%,-50%) rotate(45deg); }
.christmas-close::after { transform:translate(-50%,-50%) rotate(-45deg); }

/* v29: position dismiss control over the invitation corner, not within its artwork. */
.christmas-panel .christmas-close {
  box-sizing:border-box!important;
  position:absolute!important;
  top:-17px!important;
  right:-17px!important;
  left:auto!important;
  width:40px!important;
  height:40px!important;
  margin:0!important;
  padding:0!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  border:3px solid #fff!important;
  border-radius:50%!important;
  background:#a72e24!important;
  color:#fff!important;
  font-size:0!important;
  line-height:0!important;
  z-index:30!important;
  outline:none;
  box-shadow:0 2px 9px rgba(0,0,0,.32);
  transform:none!important;
}
.christmas-panel .christmas-close:focus-visible { outline:3px solid #b99a59!important; outline-offset:3px; }
.christmas-panel .christmas-close::before,
.christmas-panel .christmas-close::after { width:18px;height:2.5px;background:#fff; }
@media (max-width:600px) {
 .christmas-panel .christmas-close { top:5px!important;right:5px!important;width:36px!important;height:36px!important; }
}

/* v32: Dining menu PDF feature on Eat page */
.dining-menus{background:#f3efe7;padding:clamp(66px,8vw,118px) 24px;color:#282c28;text-align:center}
.dining-menus-inner{max-width:1200px;margin:0 auto}
.dining-menus h2{font-family:Georgia,serif;font-size:clamp(2.4rem,5vw,4.4rem);font-weight:400;line-height:1.1;margin:14px 0 18px;color:#30352d}
.dining-menus-intro{max-width:690px;margin:0 auto 45px;font-size:1.08rem;line-height:1.8;color:#555a52}
.dining-menu-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;text-align:left}
.dining-menu-card{background:#fff;border:1px solid #d9d2c5;padding:clamp(26px,3vw,43px);display:flex;flex-direction:column;min-height:345px;box-shadow:0 10px 30px rgba(40,35,25,.045)}
.dining-menu-number{font-size:.72rem;text-transform:uppercase;letter-spacing:.19em;color:#85704e;font-weight:600}
.dining-menu-card h3{font-family:Georgia,serif;font-weight:400;font-size:clamp(1.7rem,2.6vw,2.35rem);line-height:1.2;color:#2e362e;margin:22px 0 12px}
.dining-menu-price{font-size:.96rem;font-weight:600;color:#786244;margin:0 0 18px}
.dining-menu-card>p:not(.dining-menu-price){font-size:.97rem;line-height:1.7;color:#555a52;margin:0 0 30px}
.dining-menu-link{margin-top:auto;align-self:flex-start;display:inline-flex;gap:15px;align-items:center;background:#34463d;color:#fff!important;text-decoration:none!important;padding:14px 19px;font-size:.79rem;letter-spacing:.09em;text-transform:uppercase;transition:background .2s ease}
.dining-menu-link:hover,.dining-menu-link:focus-visible{background:#526c5a}
.dining-menus-note{margin:28px auto 0;color:#64665e;font-size:.83rem;line-height:1.6}
@media(max-width:850px){.dining-menu-grid{grid-template-columns:1fr;max-width:560px;margin:0 auto}.dining-menu-card{min-height:0}.dining-menus-intro{margin-bottom:30px}}

/* v35: keep all menu PDF button labels on one line. */
.dining-menu-link{white-space:nowrap;gap:10px}
.dining-menu-link svg{flex:0 0 auto}

/* v36: make the A little indulgence photograph meet its adjoining copy. */
#sweet-finish .feature-image {
  position: relative;
  overflow: hidden;
  padding: 0;
  min-height: 380px;
}
#sweet-finish .feature-image > img {
  display: block;
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
@media (max-width: 900px) {
  #sweet-finish .feature-image { padding: 0; }
  #sweet-finish .feature-image > img { inset: 0; width: 100%; height: 100%; }
}

/* v37: full-bleed dessert photograph, overriding global inset/padding rules. */
#sweet-finish.feature.relax-strip { column-gap:0!important; row-gap:0!important; }
#sweet-finish.feature.relax-strip > .feature-image {
  position:relative!important; box-sizing:border-box!important;
  display:block!important; padding:0!important; margin:0!important;
  width:100%!important; height:100%!important; min-width:0!important;
  align-self:stretch!important; justify-self:stretch!important; overflow:hidden!important;
}
#sweet-finish.feature.relax-strip > .feature-image > img {
  position:absolute!important; inset:0!important; top:0!important; right:0!important; bottom:0!important; left:0!important;
  display:block!important; width:100%!important; height:100%!important;
  max-width:none!important; max-height:none!important; margin:0!important; padding:0!important;
  object-fit:cover!important; object-position:center!important;
}
#sweet-finish.feature.relax-strip > .feature-copy { margin:0!important; }

/* v38: Eat page – all food photographs are flush with their adjoining text panels.
   Scope this to Eat so the established image framing on other pages remains intact. */
@media (min-width: 901px) {
  body.eat-page section.feature.relax-strip {
    column-gap: 0 !important;
    row-gap: 0 !important;
    align-items: stretch !important;
  }
  body.eat-page section.feature.relax-strip > .feature-image {
    position: relative !important;
    box-sizing: border-box !important;
    padding: 0 !important;
    margin: 0 !important;
    width: 100% !important;
    height: 100% !important;
    min-width: 0 !important;
    overflow: hidden !important;
    align-self: stretch !important;
  }
  body.eat-page section.feature.relax-strip > .feature-image > img {
    display: block !important;
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 !important;
    object-fit: cover !important;
  }
  body.eat-page section.feature.relax-strip > .feature-copy {
    margin: 0 !important;
    min-width: 0 !important;
  }
}
@media (max-width: 900px) {
  body.eat-page section.feature.relax-strip > .feature-image {
    box-sizing: border-box !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: hidden !important;
  }
  body.eat-page section.feature.relax-strip > .feature-image > img {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
  }
}
