/* Grand Selim Resort homepage refinement
   Loaded after the compiled Voyage stylesheet to correct its broad element
   rules without changing the cloned component or booking logic. */
:root {
  --gsrt-green-950: #123226;
  --gsrt-green-900: #173f2e;
  --gsrt-green-800: #20543c;
  --gsrt-green-700: #2c684b;
  --gsrt-terracotta: #b85f38;
  --gsrt-gold: #c9a35f;
  --gsrt-ivory: #fbf8f2;
  --gsrt-sage: #edf3ed;
  --gsrt-surface: #fffefb;
  --gsrt-ink: #202a25;
  --gsrt-muted: #59655f;
  --gsrt-border: rgba(23, 63, 46, .14);
  --gsrt-shadow-sm: 0 12px 32px rgba(18, 50, 38, .08);
  --gsrt-shadow-lg: 0 28px 72px rgba(9, 32, 22, .18);
  --gsrt-focus: #e29a4b;
  --gsrt-radius-sm: 10px;
  --gsrt-radius-card: 17px;
  --gsrt-radius-panel: 22px;
  --gsrt-container: 1280px;
}

/* Mobile comfort-section hardening ------------------------------------
   Keep these rules unlayered and highly specific. The exported utility CSS
   otherwise wins the cascade on some mobile WebViews, leaving the desktop
   grid wider than the viewport and undersizing copy. */
@media (max-width: 1024px) {
  html,
  body.gsrt-theme-v3 {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
  }

  body.gsrt-theme-v3.gsrt-home .gsrt-comfort {
    padding-inline: clamp(16px, 5vw, 28px) !important;
  }

  body.gsrt-theme-v3.gsrt-home .gsrt-comfort > div {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  body.gsrt-theme-v3.gsrt-home .gsrt-comfort > div > .grid {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  body.gsrt-theme-v3.gsrt-home .gsrt-comfort .grid > * {
    min-width: 0 !important;
    max-width: 100% !important;
  }

  body.gsrt-theme-v3.gsrt-home .gsrt-comfort > div > .grid:last-child {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 767px) {
  body.gsrt-theme-v3.gsrt-home .gsrt-comfort {
    padding-block: 48px !important;
  }

  body.gsrt-theme-v3.gsrt-home .gsrt-comfort > div > .grid:first-child {
    gap: 14px !important;
    margin-bottom: 28px !important;
  }

  body.gsrt-theme-v3.gsrt-home .gsrt-comfort > div > .grid:first-child h2 {
    font-size: clamp(32px, 9vw, 42px) !important;
    line-height: 1.08 !important;
    text-wrap: balance;
  }

  body.gsrt-theme-v3.gsrt-home .gsrt-comfort > div > .grid:first-child p {
    max-width: none !important;
    color: #394a42 !important;
    font-size: 16px !important;
    font-weight: 500 !important;
    line-height: 1.7 !important;
  }

  /* The first card is photographic: strengthen its scrim and keep every
     overlay label above WCAG-style readable sizes on narrow screens. */
  body.gsrt-theme-v3.gsrt-home .gsrt-comfort > div > .grid:nth-child(2) > div:first-child {
    height: clamp(420px, 118vw, 540px) !important;
    border-radius: 18px !important;
  }

  body.gsrt-theme-v3.gsrt-home .gsrt-comfort > div > .grid:nth-child(2) > div:first-child > div:nth-of-type(1) {
    background: linear-gradient(to top, rgba(0, 0, 0, .94) 0%, rgba(0, 0, 0, .62) 48%, rgba(0, 0, 0, .18) 100%) !important;
    opacity: 1 !important;
  }

  body.gsrt-theme-v3.gsrt-home .gsrt-comfort > div > .grid:nth-child(2) > div:first-child > div:last-child {
    padding: 22px !important;
    text-shadow: 0 2px 5px rgba(0, 0, 0, .9);
  }

  body.gsrt-theme-v3.gsrt-home .gsrt-comfort > div > .grid:nth-child(2) > div:first-child h3 {
    color: #fff !important;
    font-size: clamp(28px, 8vw, 38px) !important;
    line-height: 1.08 !important;
  }

  body.gsrt-theme-v3.gsrt-home .gsrt-comfort > div > .grid:nth-child(2) > div:first-child p {
    color: #fff !important;
    font-size: 16px !important;
    font-weight: 500 !important;
    line-height: 1.65 !important;
    opacity: 1 !important;
  }

  body.gsrt-theme-v3.gsrt-home .gsrt-comfort > div > .grid:nth-child(2) > div:first-child .font-mono {
    color: #fff !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    letter-spacing: .1em !important;
  }

  body.gsrt-theme-v3.gsrt-home .gsrt-comfort > div > .grid:last-child {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 12px !important;
  }

  body.gsrt-theme-v3.gsrt-home .gsrt-comfort .gsrt-comfort-card {
    min-height: 0 !important;
    padding: 18px !important;
    background: #fff !important;
    border-color: rgba(23, 63, 46, .2) !important;
    border-radius: 14px !important;
  }

  body.gsrt-theme-v3.gsrt-home .gsrt-comfort .gsrt-comfort-card h4 {
    color: #173f2e !important;
    font-size: 20px !important;
    line-height: 1.3 !important;
  }

  body.gsrt-theme-v3.gsrt-home .gsrt-comfort .gsrt-comfort-card p {
    color: #394a42 !important;
    font-size: 16px !important;
    font-weight: 500 !important;
    line-height: 1.6 !important;
    opacity: 1 !important;
  }
}

/* Final room-policy refinement ----------------------------------------- */
.gsrt-site-nav .gsrt-full-brand-name {
  max-width: 230px;
  color: var(--gsrt-green-900) !important;
  font-size: clamp(14px, 1.25vw, 18px) !important;
  line-height: 1.05 !important;
  letter-spacing: .035em !important;
  text-transform: none !important;
  opacity: 1 !important;
}

.gsrt-living .gsrt-curated-data-summary {
  max-width: 600px;
  color: #d9e1dc !important;
  font-size: clamp(15px, 1.35vw, 17px) !important;
  line-height: 1.7 !important;
  opacity: 1;
}

.gsrt-living > div > div:first-child p,
.gsrt-facilities > div > div:first-child p {
  color: #d4ddd7 !important;
}

body.gsrt-theme-v3 .gsrt-facilities li {
  min-height: 72px !important;
  padding-block: 5px;
}

.gsrt-facilities .gsrt-facility-icon {
  width: 44px !important;
  height: 44px !important;
  padding: 10px;
  color: #236846 !important;
  border: 1px solid rgba(255, 255, 255, .18);
  border-radius: 12px;
  background: #eaf2ec;
  opacity: 1 !important;
}

.gsrt-facilities li :where(.text-stone-400, .text-neutral-300) {
  color: #c7d1ca !important;
}

.gsrt-facilities li:hover .gsrt-facility-icon,
.gsrt-facilities li:focus-visible .gsrt-facility-icon {
  color: #174f34 !important;
  background: #fff;
}

/* React DayPicker states: the cloned theme placed a green border on every
   available date and reduced disabled dates to 50% opacity. */
body.gsrt-calendar-open [role="dialog"] .rdp-day_button {
  color: #26342d !important;
  border: 0 !important;
  border-radius: 10px !important;
  background: transparent !important;
  box-shadow: none !important;
  opacity: 1 !important;
}

body.gsrt-calendar-open [role="dialog"] td:not([data-disabled="true"]) .rdp-day_button:hover {
  color: #174f34 !important;
  background: #eaf2ec !important;
}

body.gsrt-calendar-open [role="dialog"] td[data-selected="true"] .rdp-day_button,
body.gsrt-calendar-open [role="dialog"] .rdp-day_button[aria-selected="true"],
body.gsrt-calendar-open [role="dialog"] .rdp-day_button[data-selected-single="true"],
body.gsrt-calendar-open [role="dialog"] .rdp-day_button[data-range-start="true"],
body.gsrt-calendar-open [role="dialog"] .rdp-day_button[data-range-end="true"] {
  color: #fff !important;
  background: var(--gsrt-green-800) !important;
}

body.gsrt-calendar-open [role="dialog"] .rdp-day_button[data-range-middle="true"] {
  color: #174f34 !important;
  border-radius: 0 !important;
  background: #dfeee4 !important;
}

body.gsrt-calendar-open [role="dialog"] td[data-today="true"] .rdp-day_button:not([aria-selected="true"]) {
  box-shadow: inset 0 0 0 1px #c77932 !important;
}

body.gsrt-calendar-open [role="dialog"] td[data-disabled="true"] {
  opacity: 1 !important;
}

body.gsrt-calendar-open [role="dialog"] td[data-disabled="true"] .rdp-day_button {
  color: #8e9992 !important;
  cursor: not-allowed !important;
  background: #f1f3f1 !important;
  opacity: 1 !important;
}

body.gsrt-calendar-open [role="dialog"] td[data-outside="true"] .rdp-day_button {
  color: #b7c0ba !important;
  background: transparent !important;
}

body.gsrt-calendar-open [role="dialog"] .rdp-day_button:focus-visible {
  outline: 3px solid rgba(199, 121, 50, .65) !important;
  outline-offset: 2px;
}

body.gsrt-calendar-open #book {
  pointer-events: none;
  opacity: 0;
  transform: translateY(100%);
}

.gsrt-theme-v3 #book {
  transition: opacity 180ms ease, transform 180ms ease;
}

.gsrt-static-footer-shell {
  padding-bottom: 96px;
  background: #0d271d;
}

.gsrt-static-footer-shell .gsrt-v3-footer {
  color: #d9e1dc;
  background: #0d271d;
  border-top: 1px solid rgba(255, 255, 255, .1);
}

.gsrt-static-footer-shell .gsrt-footer-payment {
  padding: 24px;
  color: #173f2e;
  background: #f7f4ed;
  border-bottom: 1px solid #dce3de;
}

.gsrt-static-footer-shell .gsrt-footer-payment__inner {
  display: grid;
  width: min(1240px, 100%);
  margin: auto;
  grid-template-columns: minmax(190px, .35fr) minmax(0, 1fr);
  align-items: center;
  gap: 28px;
}

.gsrt-static-footer-shell .gsrt-footer-payment__eyebrow {
  color: #1f6842;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
}

.gsrt-static-footer-shell .gsrt-footer-payment h2 {
  margin: 4px 0 0;
  color: #173f2e;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 24px;
}

.gsrt-static-footer-shell .gsrt-footer-payment img {
  display: block;
  width: 100%;
  height: auto;
  max-height: 63px;
  object-fit: contain;
}

.gsrt-static-footer-shell .gsrt-theme-footer__main {
  display: grid;
  width: min(1240px, calc(100% - 40px));
  margin: auto;
  padding: 64px 0 46px;
  grid-template-columns: 1.7fr repeat(3, minmax(150px, 1fr));
  gap: 42px;
}

.gsrt-static-footer-shell .gsrt-v3-footer__identity {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 18px;
}

.gsrt-static-footer-shell .gsrt-v3-footer__identity img {
  width: 48px;
  height: 48px;
  border-radius: 50%;
}

.gsrt-static-footer-shell .gsrt-v3-footer__identity strong,
.gsrt-static-footer-shell .gsrt-v3-footer__identity small {
  display: block;
}

.gsrt-static-footer-shell .gsrt-v3-footer__identity strong {
  color: #fff;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 22px;
}

.gsrt-static-footer-shell .gsrt-v3-footer__identity small,
.gsrt-static-footer-shell address,
.gsrt-static-footer-shell p {
  color: #afbbb4 !important;
  font-size: 13px !important;
  font-style: normal;
  line-height: 1.7;
}

.gsrt-static-footer-shell h3 {
  margin: 0 0 16px;
  color: #fff;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 20px;
}

.gsrt-static-footer-shell ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.gsrt-static-footer-shell li + li {
  margin-top: 8px;
}

.gsrt-static-footer-shell a {
  color: #d9e1dc !important;
  font-size: 13px !important;
  line-height: 1.55;
}

.gsrt-static-footer-shell a:hover {
  color: #fff !important;
}

.gsrt-static-footer-shell .gsrt-footer-facebook {
  display: inline-block;
  margin-top: 18px;
}

.gsrt-static-footer-shell .gsrt-theme-footer__bottom {
  display: flex;
  width: min(1240px, calc(100% - 40px));
  margin: auto;
  padding: 22px 0;
  justify-content: space-between;
  gap: 24px;
  border-top: 1px solid rgba(255, 255, 255, .1);
}

@media (max-width: 900px) {
  .gsrt-static-footer-shell .gsrt-theme-footer__main {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .gsrt-site-nav .gsrt-full-brand-name {
    max-width: 150px;
    font-size: 13px !important;
  }

  .gsrt-static-footer-shell {
    padding-bottom: 74px;
  }

  .gsrt-static-footer-shell .gsrt-footer-payment__inner,
  .gsrt-static-footer-shell .gsrt-theme-footer__main {
    grid-template-columns: 1fr;
  }

  .gsrt-static-footer-shell .gsrt-theme-footer__main {
    padding-top: 48px;
  }

  .gsrt-static-footer-shell .gsrt-theme-footer__bottom {
    display: block;
    text-align: left;
  }

  .gsrt-static-footer-shell .gsrt-footer-payment img {
    width: 1768px;
    max-width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .gsrt-theme-v3 *,
  .gsrt-theme-v3 *::before,
  .gsrt-theme-v3 *::after {
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
  }
}

/* Static interaction replacements for components formerly owned by React. */
.gsrt-static-facility-panel {
  overflow: hidden;
  animation: gsrt-facility-panel-in .28s ease both;
}

.gsrt-static-facility-panel__inner {
  max-width: 780px;
  margin-left: clamp(0px, 16.5%, 210px);
  padding: 2px 20px 24px 0;
}

.gsrt-static-facility-panel__eyebrow {
  margin: 0 0 10px !important;
  color: #c55a20 !important;
  font-size: 12px !important;
  font-weight: 500;
  letter-spacing: .025em;
}

.gsrt-static-facility-panel__copy {
  margin: 0 !important;
  color: #56615b !important;
  font-size: 14px !important;
  line-height: 1.75 !important;
}

.gsrt-static-facility-panel__rule {
  width: 64px;
  height: 1px;
  margin-top: 20px;
  background: rgba(197, 90, 32, .42);
}

.gsrt-advantages .gsrt-advantage-text {
  color: #1f2421 !important;
}

@keyframes gsrt-facility-panel-in {
  from { opacity: 0; transform: translateY(-6px); }
  to { opacity: 1; transform: none; }
}

@media (max-width: 767px) {
  .gsrt-static-facility-panel__inner {
    margin-left: 0;
    padding: 4px 20px 22px;
  }
}

html {
  scroll-padding-top: 88px;
}

body.gsrt-theme-v3 {
  min-width: 320px;
  color: var(--gsrt-ink);
  background: var(--gsrt-ivory);
  font-family: "Plus Jakarta Sans", Arial, sans-serif;
  font-size: 16px;
  line-height: 1.65;
}

.gsrt-theme-v3 h1,
.gsrt-theme-v3 h2,
.gsrt-theme-v3 h3,
.gsrt-theme-v3 h4 {
  font-family: "Cormorant Garamond", Georgia, serif;
  text-wrap: balance;
}

.gsrt-theme-v3 p {
  text-wrap: pretty;
}

.gsrt-theme-v3 :where(a, button, input, select, textarea, [tabindex]):focus-visible {
  outline: 3px solid var(--gsrt-focus) !important;
  outline-offset: 3px !important;
  box-shadow: none;
}

.gsrt-theme-v3 :where(button, a[role="button"], input, select, textarea) {
  min-height: 44px;
}

.gsrt-theme-v3 :where(button, a, input, select, textarea) {
  transition-duration: 200ms !important;
}

/* Header --------------------------------------------------------------- */
.gsrt-theme-v3 .gsrt-site-nav {
  top: 0;
  z-index: 100;
  color: var(--gsrt-ink);
  background: rgba(255, 254, 251, .96) !important;
  border-bottom: 1px solid var(--gsrt-border) !important;
  box-shadow: 0 10px 34px rgba(18, 50, 38, .07) !important;
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
}

.gsrt-site-nav > div:first-child {
  width: min(var(--gsrt-container), calc(100% - 48px));
  height: 80px !important;
  padding-inline: 0 !important;
}

.gsrt-site-nav > div:first-child > a,
.gsrt-site-nav > div:first-child > a span {
  color: var(--gsrt-green-900) !important;
}

.gsrt-site-nav > div:first-child > a span:last-child {
  color: var(--gsrt-muted) !important;
}

.gsrt-site-nav a[href]:not([href="/room-list"]) {
  color: #4b5751 !important;
  font-size: 13px !important;
  letter-spacing: .13em !important;
}

.gsrt-site-nav a[aria-current="page"]:not([href="/room-list"]),
.gsrt-site-nav a[href]:not([href="/room-list"]):hover {
  color: var(--gsrt-green-800) !important;
}

.gsrt-site-nav a[aria-current="page"]:not([href="/room-list"])::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 3px;
  left: 0;
  height: 2px;
  border-radius: 2px;
  background: var(--gsrt-green-700);
}

.gsrt-site-nav a[href="/room-list"] {
  min-height: 46px;
  color: #fff !important;
  background: var(--gsrt-green-800) !important;
  border-color: var(--gsrt-green-800) !important;
  box-shadow: 0 9px 24px rgba(23, 63, 46, .17);
}

.gsrt-site-nav a[href="/room-list"]:hover {
  background: var(--gsrt-green-950) !important;
  border-color: var(--gsrt-green-950) !important;
  transform: translateY(-1px);
}

/* Mobile navigation --------------------------------------------------
   backdrop-filter makes fixed descendants use the sticky header as their
   containing block in mobile browsers. That collapsed the off-canvas panel
   to the header's height and left its links floating over page content. */
@media (max-width: 1023px) {
  body.gsrt-theme-v3 nav.sticky {
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
  }

  body.gsrt-theme-v3 nav.sticky > .fixed.inset-0 {
    width: 100vw !important;
    height: 100vh !important;
    height: 100dvh !important;
  }

  body.gsrt-theme-v3 nav.sticky > .fixed.inset-0 > .absolute.inset-0 {
    background: rgba(7, 9, 8, .86) !important;
  }

  body.gsrt-theme-v3 nav.sticky > .fixed.inset-0 > .absolute.right-0.top-0.h-full {
    height: 100vh !important;
    height: 100dvh !important;
    min-height: 100vh !important;
    min-height: 100dvh !important;
    overflow-y: auto;
    overscroll-behavior: contain;
    color: var(--gsrt-ink) !important;
    background: #fffefb !important;
  }

  body.gsrt-theme-v3 nav.sticky > .fixed.inset-0 > .absolute.right-0.top-0.h-full > div:first-child span,
  body.gsrt-theme-v3 nav.sticky > .fixed.inset-0 > .absolute.right-0.top-0.h-full > div:nth-child(2) > a:not([href="/room-list"]) {
    color: var(--gsrt-green-900) !important;
    opacity: 1 !important;
  }
}

.gsrt-site-nav .gsrt-header-booking {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3px;
}

.gsrt-site-nav .gsrt-header-booking > a[href="/room-list"] {
  min-height: 40px !important;
  padding: 8px 20px !important;
}

.gsrt-site-nav .gsrt-header-booking__contact {
  min-height: 0 !important;
  padding: 0 !important;
  color: #2c684b !important;
  border: 0 !important;
  background: transparent !important;
  font-size: 10px !important;
  font-weight: 700;
  letter-spacing: .025em !important;
  line-height: 1.25;
  text-decoration: none;
  white-space: nowrap;
}

.gsrt-site-nav .gsrt-header-booking__contact:hover,
.gsrt-site-nav .gsrt-header-booking__contact:focus-visible {
  color: #123226 !important;
  text-decoration: underline;
  text-underline-offset: 2px;
}

@media (max-width: 1023px) {
  .gsrt-site-nav .gsrt-header-booking__contact {
    display: none;
  }
}

.gsrt-site-nav button[aria-label="Open menu"] {
  color: var(--gsrt-green-800) !important;
  border-color: var(--gsrt-green-700) !important;
}

/* Homepage foundations ------------------------------------------------- */
.gsrt-home main {
  overflow: clip;
}

.gsrt-home section {
  border-color: var(--gsrt-border) !important;
}

.gsrt-home section:not(.gsrt-hero) {
  padding: clamp(72px, 7.5vw, 104px) max(24px, calc((100% - var(--gsrt-container)) / 2)) !important;
}

.gsrt-home section:not(.gsrt-hero):not(.gsrt-testimonials) h2 {
  color: var(--gsrt-green-900) !important;
  font-size: clamp(36px, 3.6vw, 54px) !important;
  line-height: 1.08 !important;
  letter-spacing: -.025em;
}

.gsrt-home section:not(.gsrt-hero):not(.gsrt-testimonials) h3,
.gsrt-home section:not(.gsrt-hero):not(.gsrt-testimonials) h4 {
  color: var(--gsrt-ink) !important;
}

.gsrt-home section:not(.gsrt-hero):not(.gsrt-testimonials) p,
.gsrt-home section:not(.gsrt-hero):not(.gsrt-testimonials) blockquote,
.gsrt-home section:not(.gsrt-hero):not(.gsrt-testimonials) li {
  color: var(--gsrt-muted) !important;
}

.gsrt-home section:not(.gsrt-hero) p {
  font-size: max(15px, 1rem);
  line-height: 1.72 !important;
}

/* Hero ---------------------------------------------------------------- */
.gsrt-home .gsrt-hero {
  min-height: 760px;
  padding: 0 !important;
  color: #fff;
  background: var(--gsrt-green-950) !important;
  border-top: 0 !important;
}

.gsrt-hero > video {
  opacity: .72 !important;
  filter: saturate(.92) contrast(1.04);
}

.gsrt-hero > video + div {
  background: linear-gradient(90deg, rgba(8, 29, 20, .88) 0%, rgba(8, 29, 20, .65) 48%, rgba(8, 29, 20, .25) 76%, rgba(8, 29, 20, .48) 100%) !important;
}

.gsrt-hero h1 {
  max-width: 760px;
  color: #fff !important;
  font-size: clamp(44px, 5.4vw, 76px) !important;
  line-height: 1.02 !important;
  letter-spacing: -.035em;
  text-shadow: 0 3px 28px rgba(0, 0, 0, .24);
}

.gsrt-hero h1 span,
.gsrt-hero h1 em,
.gsrt-hero h1 i {
  color: inherit !important;
}

.gsrt-hero p {
  max-width: 660px;
  color: rgba(255, 255, 255, .88) !important;
  font-size: 16px !important;
  line-height: 1.72 !important;
}

/* Keep the hero location strap readable as the video moves beneath it. */
.gsrt-hero .overflow-hidden > .inline-flex.items-center.rounded-full > span:last-child {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 5px 12px;
  color: #fff !important;
  font-weight: 800 !important;
  letter-spacing: .2em !important;
  background: rgba(8, 57, 38, .9);
  border: 1px solid rgba(255, 255, 255, .32);
  border-radius: 999px;
  box-shadow: 0 6px 18px rgba(0, 0, 0, .28);
  text-shadow: 0 1px 2px rgba(0, 0, 0, .65);
}

.gsrt-hero img {
  border-radius: var(--gsrt-radius-panel) !important;
  object-fit: cover;
  box-shadow: var(--gsrt-shadow-lg);
}

/* Transparent location glass over the hero room photograph. */
body.gsrt-theme-v3 .gsrt-hero .gsrt-hero-location-card {
  background: rgba(245, 250, 246, .18) !important;
  border-color: rgba(255, 255, 255, .48) !important;
  -webkit-backdrop-filter: blur(12px) saturate(115%) !important;
  backdrop-filter: blur(12px) saturate(115%) !important;
  box-shadow: 0 12px 32px rgba(9, 48, 32, .16) !important;
}

body.gsrt-theme-v3 .gsrt-hero .gsrt-hero-location-card > span:first-child {
  color: #174f36 !important;
  background: rgba(255, 255, 255, .72) !important;
}

body.gsrt-theme-v3 .gsrt-hero .gsrt-hero-location-card > div > div:first-child {
  color: #286847 !important;
  -webkit-text-fill-color: #286847 !important;
  font-weight: 800 !important;
  opacity: 1 !important;
}

body.gsrt-theme-v3 .gsrt-hero .gsrt-hero-location-card > div > div:last-child {
  color: #123f2b !important;
  -webkit-text-fill-color: #123f2b !important;
  font-weight: 700 !important;
  opacity: 1 !important;
  text-shadow: 0 1px 12px rgba(255, 255, 255, .7);
}

.gsrt-hero :where(a[role="button"], button):not(.gsrt-availability button) {
  border-radius: 999px !important;
}

.gsrt-hero a[href="/room-list"],
.gsrt-hero a[href="/rooms"] {
  color: #fff !important;
  background: var(--gsrt-green-700) !important;
  border-color: rgba(255, 255, 255, .34) !important;
}

/* Availability panel --------------------------------------------------- */
.gsrt-home .gsrt-availability {
  position: relative;
  z-index: 30;
  padding: 28px !important;
  color: var(--gsrt-ink) !important;
  background: rgba(255, 254, 251, .98) !important;
  border: 1px solid rgba(255, 255, 255, .78) !important;
  border-radius: var(--gsrt-radius-panel) !important;
  box-shadow: var(--gsrt-shadow-lg) !important;
  -webkit-backdrop-filter: blur(16px);
  backdrop-filter: blur(16px);
}

.gsrt-availability.gsrt-legacy-availability [hidden] {
  display: none !important;
}

.gsrt-availability .gsrt-booking-fields {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(190px, 1fr)) minmax(200px, .85fr) !important;
  align-items: stretch;
}

.gsrt-availability .gsrt-booking-date-field {
  position: relative;
  display: flex !important;
  min-height: 78px;
  flex-direction: column;
  justify-content: center;
}

.gsrt-availability .gsrt-booking-date-field::after {
  content: "";
  position: absolute;
  right: 17px;
  bottom: 25px;
  width: 18px;
  height: 18px;
  pointer-events: none;
  opacity: .72;
  background-color: var(--gsrt-green-700);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 2v4M16 2v4M3 10h18'/%3E%3Crect x='3' y='4' width='18' height='18' rx='2'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 2v4M16 2v4M3 10h18'/%3E%3Crect x='3' y='4' width='18' height='18' rx='2'/%3E%3C/svg%3E") center / contain no-repeat;
}

.gsrt-availability .gsrt-booking-date-field button[aria-haspopup="dialog"] {
  padding-right: 38px !important;
  text-align: left;
  font-variant-numeric: tabular-nums;
}

/* Static homepage calendar -------------------------------------------- */
/* The homepage is intentionally served without the cloned React calendar.
   Keep the native date input available for form semantics, but present a
   small calendar that uses the same green, ivory, gold, and display-font
   language as the rest of the resort theme. */
.gsrt-date-picker {
  position: fixed;
  z-index: 1200;
  box-sizing: border-box;
  padding: 17px;
  color: var(--gsrt-ink);
  background: rgba(255, 254, 251, .99);
  border: 1px solid rgba(23, 63, 46, .17);
  border-radius: 16px;
  box-shadow: 0 24px 55px rgba(18, 50, 38, .22), 0 2px 8px rgba(18, 50, 38, .08);
  font-family: "Plus Jakarta Sans", Arial, sans-serif;
}

.gsrt-date-picker[hidden] {
  display: none !important;
}

.gsrt-date-picker__header,
.gsrt-date-picker__navigation,
.gsrt-date-picker__footer {
  display: flex;
  align-items: center;
}

.gsrt-date-picker__header {
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 15px;
}

.gsrt-date-picker__month {
  color: var(--gsrt-green-900);
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 21px;
  font-weight: 700;
  line-height: 1;
}

.gsrt-date-picker__navigation {
  gap: 4px;
}

.gsrt-date-picker__nav {
  display: inline-flex;
  width: 30px;
  height: 30px;
  min-height: 30px !important;
  align-items: center;
  justify-content: center;
  padding: 0 !important;
  color: var(--gsrt-green-800) !important;
  border: 1px solid rgba(23, 63, 46, .2) !important;
  border-radius: 50% !important;
  background: transparent !important;
  font-size: 23px;
  line-height: 1;
}

.gsrt-date-picker__nav:hover:not(:disabled),
.gsrt-date-picker__nav:focus-visible {
  color: #fff !important;
  background: var(--gsrt-green-800) !important;
}

.gsrt-date-picker__nav:disabled {
  cursor: not-allowed;
  opacity: .32;
}

.gsrt-date-picker__weekdays,
.gsrt-date-picker__days {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 4px;
  text-align: center;
}

.gsrt-date-picker__weekdays {
  margin-bottom: 6px;
}

.gsrt-date-picker__weekdays span {
  color: var(--gsrt-muted);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .12em;
  line-height: 24px;
  text-transform: uppercase;
}

.gsrt-date-picker__day {
  position: relative;
  display: inline-flex;
  width: 100%;
  height: 36px;
  min-height: 36px !important;
  align-items: center;
  justify-content: center;
  padding: 0 !important;
  color: var(--gsrt-ink) !important;
  border: 1px solid transparent !important;
  border-radius: 9px !important;
  background: transparent !important;
  font-size: 12px !important;
  font-variant-numeric: tabular-nums;
}

.gsrt-date-picker__day:hover:not(:disabled),
.gsrt-date-picker__day:focus-visible {
  color: var(--gsrt-green-900) !important;
  border-color: rgba(44, 104, 75, .2) !important;
  background: #eaf2ec !important;
}

.gsrt-date-picker__day.is-outside {
  color: #8d9891 !important;
}

.gsrt-date-picker__day.is-today:not(.is-selected) {
  border-color: rgba(201, 163, 95, .75) !important;
}

.gsrt-date-picker__day.is-selected {
  color: #fff !important;
  border-color: var(--gsrt-green-800) !important;
  background: var(--gsrt-green-800) !important;
  box-shadow: 0 4px 10px rgba(32, 84, 60, .2);
}

.gsrt-date-picker__day:disabled {
  color: #b7c0ba !important;
  cursor: not-allowed;
  opacity: .55;
}

.gsrt-date-picker__footer {
  justify-content: flex-end;
  margin-top: 13px;
  padding-top: 12px;
  border-top: 1px solid rgba(23, 63, 46, .12);
}

.gsrt-date-picker__quick-select {
  min-height: 32px !important;
  padding: 5px 8px !important;
  color: var(--gsrt-green-800) !important;
  border: 0 !important;
  border-radius: 7px !important;
  background: transparent !important;
  font-size: 11px !important;
  font-weight: 700;
  letter-spacing: .05em;
}

.gsrt-date-picker__quick-select:hover,
.gsrt-date-picker__quick-select:focus-visible {
  background: #eaf2ec !important;
}

.gsrt-availability .gsrt-booking-submit-field {
  min-width: 0;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.gsrt-availability .gsrt-booking-submit-field > button {
  height: 100%;
  min-height: 78px !important;
  padding-inline: 24px !important;
  border-radius: 14px !important;
}

.gsrt-availability > div:first-child {
  margin-bottom: 18px !important;
}

.gsrt-availability > div:first-child p,
.gsrt-availability label,
.gsrt-availability [class*="uppercase"] {
  color: var(--gsrt-muted) !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: .14em !important;
}

.gsrt-availability > div:last-child {
  gap: 14px !important;
}

.gsrt-availability > div:last-child > * {
  min-width: 0;
  padding: 14px 15px !important;
  color: var(--gsrt-ink) !important;
  background: #fff !important;
  border: 1px solid var(--gsrt-border) !important;
  border-radius: var(--gsrt-radius-sm) !important;
  box-shadow: 0 5px 16px rgba(18, 50, 38, .045) !important;
}

.gsrt-availability :where(button, select, input) {
  width: 100%;
  min-height: 46px !important;
  color: var(--gsrt-ink) !important;
  font-size: 15px !important;
  background-color: #fff !important;
  border-color: rgba(23, 63, 46, .28) !important;
  border-radius: 9px !important;
}

.gsrt-availability button[type="submit"],
.gsrt-availability > div:last-child > button:last-child {
  align-self: stretch;
  color: #fff !important;
  background: var(--gsrt-green-800) !important;
  border-color: var(--gsrt-green-800) !important;
  box-shadow: none !important;
}

/* Content sections ----------------------------------------------------- */
.gsrt-home .gsrt-comfort,
.gsrt-home .gsrt-surroundings {
  background: var(--gsrt-ivory) !important;
}

.gsrt-home .gsrt-unforgettable,
.gsrt-home .gsrt-location {
  background: var(--gsrt-surface) !important;
}

.gsrt-home .gsrt-living,
.gsrt-home .gsrt-facilities {
  background: var(--gsrt-sage) !important;
}

.gsrt-home .gsrt-dining {
  background: #f3eee4 !important;
}

.gsrt-home section:not(.gsrt-hero) img {
  border-radius: var(--gsrt-radius-card);
  object-fit: cover;
}

.gsrt-comfort img,
.gsrt-unforgettable img,
.gsrt-dining img {
  box-shadow: var(--gsrt-shadow-sm);
}

.gsrt-living [role="region"] > a {
  overflow: hidden;
  border: 1px solid var(--gsrt-border) !important;
  border-radius: var(--gsrt-radius-card) !important;
  box-shadow: var(--gsrt-shadow-sm);
}

.gsrt-living [role="region"] > a:hover {
  transform: translateY(-2px);
  box-shadow: 0 18px 42px rgba(18, 50, 38, .14);
}

.gsrt-living [aria-label*="slide" i],
.gsrt-testimonials button[aria-label] {
  min-width: 44px;
  min-height: 44px;
}

.gsrt-facilities li {
  min-height: 64px;
  padding-inline: 14px;
  border-bottom: 1px solid var(--gsrt-border) !important;
  border-radius: 8px;
}

.gsrt-facilities li:hover,
.gsrt-facilities li:focus-visible {
  background: rgba(255, 255, 255, .7) !important;
}

.gsrt-dining [role="tablist"] {
  gap: 8px !important;
}

.gsrt-dining [role="tab"] {
  min-height: 46px;
  padding: 10px 16px !important;
  color: var(--gsrt-green-900) !important;
  border: 1px solid var(--gsrt-border) !important;
  border-radius: 999px !important;
  background: rgba(255, 255, 255, .58) !important;
}

.gsrt-dining [role="tab"][aria-selected="true"] {
  color: #fff !important;
  background: var(--gsrt-green-800) !important;
  border-color: var(--gsrt-green-800) !important;
}

.gsrt-home .gsrt-testimonials {
  padding-block: clamp(64px, 6vw, 88px) !important;
  color: #fff;
  background: var(--gsrt-green-950) !important;
}

.gsrt-testimonials h2,
.gsrt-testimonials h3,
.gsrt-testimonials blockquote {
  color: #fff !important;
}

.gsrt-testimonials h2 {
  font-size: clamp(36px, 3.6vw, 52px) !important;
}

.gsrt-testimonials p,
.gsrt-testimonials figcaption {
  color: rgba(255, 255, 255, .78) !important;
}

.gsrt-testimonials figure {
  padding: clamp(24px, 4vw, 42px) !important;
  border: 1px solid rgba(255, 255, 255, .14) !important;
  border-radius: var(--gsrt-radius-card) !important;
  background: rgba(255, 255, 255, .055) !important;
}

.gsrt-testimonials blockquote {
  font-size: clamp(20px, 2.2vw, 30px) !important;
  line-height: 1.45 !important;
}

.gsrt-surroundings li {
  padding: 22px !important;
  background: var(--gsrt-surface) !important;
  border: 1px solid var(--gsrt-border) !important;
  border-radius: var(--gsrt-radius-card) !important;
  box-shadow: 0 8px 22px rgba(18, 50, 38, .045);
}

.gsrt-location > div {
  display: grid !important;
  grid-template-columns: minmax(280px, .75fr) minmax(0, 1.25fr) !important;
  align-items: stretch !important;
  gap: clamp(32px, 5vw, 64px) !important;
}

.gsrt-location iframe {
  width: 100%;
  min-height: 320px;
  filter: none !important;
}

.gsrt-location iframe + div,
.gsrt-location iframe {
  border-radius: var(--gsrt-radius-card);
}

/* Footer and persistent booking action -------------------------------- */
.gsrt-theme-v3 #book {
  color: #fff !important;
  background: rgba(18, 50, 38, .97) !important;
  border-top-color: rgba(255, 255, 255, .14) !important;
}

.gsrt-theme-v3 #book a[href="/room-list"] {
  color: var(--gsrt-green-950) !important;
  background: #fff !important;
  border-color: #fff !important;
}

.gsrt-theme-v3 .gsrt-site-footer {
  color: rgba(255, 255, 255, .78) !important;
  background: #0d271d !important;
  border-top: 1px solid rgba(255, 255, 255, .1) !important;
}

.gsrt-site-footer p,
.gsrt-site-footer a {
  color: rgba(255, 255, 255, .78) !important;
  font-size: 14px !important;
  line-height: 1.7 !important;
}

.gsrt-site-footer a:hover {
  color: #fff !important;
}

/* Inner marketing pages inherit the corrected shell and readable type. */
.gsrt-inner-page main section:first-child {
  padding-block: 0 !important;
}

.gsrt-inner-page main section:not(:first-child) {
  color: var(--gsrt-ink);
  background: var(--gsrt-ivory) !important;
}

.gsrt-inner-page main section:not(:first-child) h1,
.gsrt-inner-page main section:not(:first-child) h2,
.gsrt-inner-page main section:not(:first-child) h3 {
  color: var(--gsrt-green-900) !important;
}

.gsrt-inner-page main section:not(:first-child) p,
.gsrt-inner-page main section:not(:first-child) li {
  color: var(--gsrt-muted) !important;
}

@media (max-width: 1023px) {
  .gsrt-site-nav > div:first-child {
    width: calc(100% - 40px);
  }

  .gsrt-site-nav > div:nth-child(2) a {
    color: #d8ded9 !important;
    font-size: 13px !important;
  }

  .gsrt-site-nav > div:nth-child(2) a[aria-current="page"] {
    color: #fff !important;
  }

  .gsrt-home .gsrt-hero {
    min-height: 720px;
  }

  .gsrt-location > div {
    grid-template-columns: minmax(230px, .8fr) minmax(0, 1.2fr) !important;
  }

  .gsrt-availability .gsrt-booking-fields {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .gsrt-availability .gsrt-booking-submit-field {
    grid-column: 1 / -1 !important;
  }
}

@media (max-width: 767px) {
  html {
    scroll-padding-top: 70px;
  }

  body.gsrt-theme-v3 {
    font-size: 15px;
  }

  .gsrt-site-nav > div:first-child {
    width: calc(100% - 32px);
    height: 68px !important;
  }

  .gsrt-home section:not(.gsrt-hero) {
    padding: 56px 20px !important;
  }

  .gsrt-home .gsrt-hero {
    min-height: 0;
    padding-bottom: 48px !important;
  }

  .gsrt-hero > video + div {
    background: linear-gradient(180deg, rgba(8, 29, 20, .83) 0%, rgba(8, 29, 20, .7) 62%, rgba(8, 29, 20, .48) 100%) !important;
  }

  .gsrt-hero h1 {
    max-width: 11ch;
    font-size: clamp(40px, 13vw, 56px) !important;
  }

  .gsrt-hero p {
    font-size: 15px !important;
  }

  .gsrt-home .gsrt-availability {
    margin-top: 20px;
    padding: 20px !important;
    border-radius: 18px !important;
  }

  .gsrt-availability .gsrt-booking-fields {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .gsrt-availability .gsrt-booking-submit-field {
    grid-column: auto !important;
  }

  .gsrt-availability > div:last-child {
    grid-template-columns: 1fr !important;
  }

  .gsrt-availability > div:last-child > * {
    width: 100%;
  }

  .gsrt-dining [role="tablist"] {
    display: flex !important;
    max-width: 100%;
    padding-bottom: 6px;
    overflow-x: auto;
    scrollbar-width: thin;
  }

  .gsrt-dining [role="tab"] {
    flex: 0 0 auto;
    white-space: nowrap;
  }

  .gsrt-location > div {
    display: flex !important;
    flex-direction: column !important;
  }

  .gsrt-location iframe {
    min-height: 280px;
  }

  .gsrt-theme-v3 #book {
    padding: 10px 12px !important;
  }
}

@media (max-width: 430px) {
  .gsrt-home section:not(.gsrt-hero) {
    padding-inline: 18px !important;
  }

  .gsrt-home section:not(.gsrt-hero):not(.gsrt-testimonials) h2 {
    font-size: 34px !important;
  }

  .gsrt-surroundings li {
    padding: 18px !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .gsrt-theme-v3 *,
  .gsrt-theme-v3 *::before,
  .gsrt-theme-v3 *::after {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}

/* The cloned bundle places its broad white-theme fixes in cascade layers and
   marks them important. Important layer order is reversed, so these focused
   corrections join its earliest layer and safely supersede those rules. */
@layer properties {
  body.gsrt-theme-v3.gsrt-home .gsrt-hero p {
    opacity: 1 !important;
    filter: none !important;
    transform: none !important;
  }

  body.gsrt-theme-v3 .gsrt-site-nav {
    color: var(--gsrt-ink) !important;
    background: rgba(255, 254, 251, .96) !important;
  }

  body.gsrt-theme-v3 .gsrt-site-nav a[href]:not([href="/room-list"]) {
    color: #4b5751 !important;
  }

  body.gsrt-theme-v3 .gsrt-site-nav > div:first-child > a span {
    color: var(--gsrt-green-900) !important;
  }

  body.gsrt-theme-v3 .gsrt-site-nav a[aria-current="page"]:not([href="/room-list"]),
  body.gsrt-theme-v3 .gsrt-site-nav a[href]:not([href="/room-list"]):hover {
    color: var(--gsrt-green-800) !important;
  }

  body.gsrt-theme-v3 .gsrt-site-nav a[href="/room-list"] {
    color: #fff !important;
    background: var(--gsrt-green-800) !important;
    border-color: var(--gsrt-green-800) !important;
  }

  body.gsrt-theme-v3 .gsrt-site-nav a[href="/room-list"] *,
  body.gsrt-home :where(button, a[role="button"]) * {
    color: inherit !important;
  }

  body.gsrt-home .gsrt-hero {
    color: #fff !important;
    background: var(--gsrt-green-950) !important;
  }

  body.gsrt-home .gsrt-hero h1,
  body.gsrt-home .gsrt-hero h1 span {
    color: #fff !important;
  }

  body.gsrt-home .gsrt-hero p {
    color: rgba(255, 255, 255, .9) !important;
  }

  body.gsrt-home .gsrt-hero a[href="/room-list"],
  body.gsrt-home .gsrt-hero a[href="/rooms"] {
    color: #fff !important;
    background: var(--gsrt-green-700) !important;
    border-color: rgba(255, 255, 255, .4) !important;
  }

  body.gsrt-home .gsrt-availability {
    color: var(--gsrt-ink) !important;
    background: rgba(255, 254, 251, .98) !important;
  }

  body.gsrt-home .gsrt-availability :where(button, select, input) {
    color: var(--gsrt-ink) !important;
    background: #fff !important;
  }

  body.gsrt-home .gsrt-availability > div:first-child :where(p, span),
  body.gsrt-home .gsrt-availability label,
  body.gsrt-home .gsrt-availability [class*="uppercase"] {
    color: var(--gsrt-muted) !important;
  }

  body.gsrt-home .gsrt-availability button[type="submit"],
  body.gsrt-home .gsrt-availability > div:last-child > button:last-child {
    color: #fff !important;
    background: var(--gsrt-green-800) !important;
    border-color: var(--gsrt-green-800) !important;
  }

  body.gsrt-home .gsrt-comfort,
  body.gsrt-home .gsrt-surroundings {
    color: var(--gsrt-ink) !important;
    background: var(--gsrt-ivory) !important;
  }

  body.gsrt-home .gsrt-unforgettable,
  body.gsrt-home .gsrt-location {
    color: var(--gsrt-ink) !important;
    background: var(--gsrt-surface) !important;
  }

  body.gsrt-home .gsrt-living,
  body.gsrt-home .gsrt-facilities {
    color: var(--gsrt-ink) !important;
    background: var(--gsrt-sage) !important;
  }

  body.gsrt-home .gsrt-dining {
    color: var(--gsrt-ink) !important;
    background: #f3eee4 !important;
  }

  body.gsrt-home section:not(.gsrt-hero):not(.gsrt-testimonials) :where(h2, h3, h4) {
    color: var(--gsrt-green-900) !important;
  }

  body.gsrt-home section:not(.gsrt-hero):not(.gsrt-testimonials) :where(p, blockquote, li) {
    color: var(--gsrt-muted) !important;
  }

  body.gsrt-home section .gsrt-image-card :where(h3, h4, p, span) {
    color: #fff !important;
  }

  body.gsrt-home .gsrt-dining [role="tab"][aria-selected="true"] {
    color: #fff !important;
    background: var(--gsrt-green-800) !important;
  }

  body.gsrt-home .gsrt-testimonials,
  body.gsrt-home .gsrt-testimonials :where(h2, h3, blockquote) {
    color: #fff !important;
    background-color: var(--gsrt-green-950) !important;
  }

  body.gsrt-home .gsrt-testimonials :where(p, figcaption) {
    color: rgba(255, 255, 255, .78) !important;
  }

  body.gsrt-theme-v3 #book {
    color: #fff !important;
    background: rgba(18, 50, 38, .97) !important;
  }

  body.gsrt-theme-v3 #book :where(p, span) {
    color: rgba(255, 255, 255, .82) !important;
  }

  body.gsrt-theme-v3 #book a[href="/room-list"],
  body.gsrt-theme-v3 #book a[href="/room-list"] * {
    color: var(--gsrt-green-950) !important;
    background-color: #fff !important;
    border-color: #fff !important;
  }

  body.gsrt-theme-v3 .gsrt-site-footer {
    color: rgba(255, 255, 255, .78) !important;
    background: #0d271d !important;
  }

  body.gsrt-theme-v3 .gsrt-site-footer :where(p, a) {
    color: rgba(255, 255, 255, .78) !important;
  }

  @media (max-width: 900px) {
    body.gsrt-home .gsrt-availability > div:last-child {
      grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    body.gsrt-home .gsrt-availability > div:last-child > button:last-child {
      grid-column: 1 / -1 !important;
    }
  }

  @media (max-width: 600px) {
    body.gsrt-home .gsrt-availability > div:last-child {
      grid-template-columns: minmax(0, 1fr) !important;
    }

    body.gsrt-home .gsrt-availability > div:last-child > button:last-child {
      grid-column: auto !important;
    }
  }
}

/* Homepage readability, facility-card and footer refinement ------------
   This final block implements the focused readability specification. It is
   intentionally scoped to the cloned public theme and does not alter booking
   fields, room data, routes, or backend-provided values. */
body.gsrt-theme-v3 {
  --gsrt-text-primary: #17201c;
  --gsrt-text-secondary: #56635d;
  --gsrt-text-muted: #6f7b74;
  --gsrt-text-on-dark: #f8faf7;
  --gsrt-text-on-dark-secondary: #d2ddd6;
  --gsrt-surface-soft-green: #edf4ee;
  --gsrt-border-strong: #b9c7bd;
  --gsrt-reservation-bar-height: 96px;
}

body.gsrt-theme-v3 .gsrt-static-footer-shell {
  padding-bottom: calc(var(--gsrt-reservation-bar-height) + env(safe-area-inset-bottom));
}

body.gsrt-theme-v3 .gsrt-hero h1 {
  text-shadow: none !important;
}

body.gsrt-theme-v3 .gsrt-availability .gsrt-booking-date-field::after {
  opacity: 1;
}

/* The cloned Reveal component leaves off-screen copy at opacity:0 until an
   observer runs. Meaningful text must remain readable even when that observer
   is delayed, disabled, or reduced-motion is requested. */
body.gsrt-home section:not(.gsrt-hero) :where(h1, h2, h3, h4, p, blockquote, figcaption, li, a, button)[style*="opacity: 0"],
body.gsrt-home section:not(.gsrt-hero) :where(h1, h2, h3, h4, p, blockquote, figcaption, li, a, button)[style*="filter: blur"] {
  opacity: 1 !important;
  filter: none !important;
  transform: none !important;
}

body.gsrt-theme-v3 .gsrt-static-footer-shell .gsrt-theme-footer__main {
  grid-template-columns: minmax(0, 1.35fr) minmax(150px, .8fr) minmax(250px, 1.15fr) minmax(160px, .8fr);
  gap: 56px;
}

body.gsrt-theme-v3 .gsrt-static-footer-shell .gsrt-footer-payment__logos {
  min-width: 0;
}

body.gsrt-theme-v3 .gsrt-static-footer-shell .gsrt-footer-payment__logos img {
  display: block;
  width: min(100%, 980px);
  height: auto;
  max-height: none;
  object-fit: contain;
}

body.gsrt-theme-v3 .gsrt-static-footer-shell .gsrt-v3-footer__identity small,
body.gsrt-theme-v3 .gsrt-static-footer-shell address,
body.gsrt-theme-v3 .gsrt-static-footer-shell p {
  color: #c7d2cb !important;
  font-size: 14px !important;
}

body.gsrt-theme-v3 .gsrt-static-footer-shell h3 {
  color: #fff !important;
  font-family: "Plus Jakarta Sans", Arial, sans-serif;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: .025em;
}

body.gsrt-theme-v3 .gsrt-static-footer-shell a {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  color: #d5ded8 !important;
  font-size: 14px !important;
  line-height: 1.55;
  text-underline-offset: 4px;
}

body.gsrt-theme-v3 .gsrt-static-footer-shell a:hover,
body.gsrt-theme-v3 .gsrt-static-footer-shell a:focus-visible {
  color: #fff !important;
  text-decoration: underline;
}

body.gsrt-theme-v3 .gsrt-static-footer-shell li + li {
  margin-top: 0;
}

.gsrt-footer-contact {
  display: grid;
  gap: 20px;
  margin: 0;
}

.gsrt-footer-contact__item {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  align-items: start;
  gap: 12px;
}

.gsrt-footer-contact__icon {
  display: inline-flex;
  width: 42px;
  height: 42px;
  align-items: center;
  justify-content: center;
  color: #d9eee1;
  background: rgba(255, 255, 255, .07);
  border: 1px solid rgba(255, 255, 255, .14);
  border-radius: 50%;
}

.gsrt-footer-contact__icon svg {
  width: 20px;
  height: 20px;
}

.gsrt-footer-contact__item > div {
  min-width: 0;
}

.gsrt-footer-contact__label {
  display: block;
  margin-bottom: 2px;
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .06em;
  line-height: 1.45;
  text-transform: uppercase;
}

body.gsrt-theme-v3 .gsrt-static-footer-shell .gsrt-footer-contact__item a {
  display: flex;
  width: fit-content;
  min-height: 34px;
  max-width: 100%;
}

.gsrt-footer-contact__email {
  overflow-wrap: anywhere;
  word-break: break-word;
}

body.gsrt-theme-v3 .gsrt-static-footer-shell .gsrt-footer-facebook {
  margin-top: 12px;
}

body.gsrt-theme-v3 .gsrt-static-footer-shell .gsrt-theme-footer__bottom {
  align-items: center;
  border-top-color: rgba(255, 255, 255, .12);
}

body.gsrt-theme-v3 .gsrt-static-footer-shell .gsrt-theme-footer__bottom a {
  min-height: 44px;
}

@media (max-width: 1024px) {
  body.gsrt-theme-v3 .gsrt-static-footer-shell .gsrt-theme-footer__main {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 46px 54px;
  }
}

@media (max-width: 640px) {
  body.gsrt-theme-v3 {
    --gsrt-reservation-bar-height: 82px;
  }

  body.gsrt-theme-v3 .gsrt-static-footer-shell .gsrt-footer-payment {
    padding: 28px 20px 32px;
  }

  body.gsrt-theme-v3 .gsrt-static-footer-shell .gsrt-footer-payment__inner,
  body.gsrt-theme-v3 .gsrt-static-footer-shell .gsrt-theme-footer__main {
    grid-template-columns: minmax(0, 1fr);
  }

  body.gsrt-theme-v3 .gsrt-static-footer-shell .gsrt-theme-footer__main {
    width: min(100% - 40px, 1240px);
    padding: 48px 0 38px;
    gap: 42px;
  }

  .gsrt-footer-column--brand { order: 1; }
  .gsrt-footer-column--contact { order: 2; }
  .gsrt-footer-column--explore { order: 3; }
  .gsrt-footer-column--legal { order: 4; }

  body.gsrt-theme-v3 .gsrt-static-footer-shell .gsrt-theme-footer__bottom {
    display: grid;
    gap: 10px;
    padding: 24px 0;
    text-align: left;
  }

  body.gsrt-theme-v3 .gsrt-static-footer-shell .gsrt-theme-footer__bottom p:last-child {
    display: flex;
    flex-wrap: wrap;
    gap: 0 8px;
  }
}

@layer properties {
  body.gsrt-home section:not(.gsrt-hero):not(.gsrt-testimonials) :where(p, blockquote, li) {
    color: var(--gsrt-text-secondary) !important;
    opacity: 1 !important;
  }

  body.gsrt-home .gsrt-living .gsrt-curated-data-summary,
  body.gsrt-home .gsrt-living > div > div:first-child p,
  body.gsrt-home .gsrt-facilities > div > div:first-child p {
    color: var(--gsrt-text-secondary) !important;
    opacity: 1 !important;
  }

  body.gsrt-home .gsrt-living > div > div:first-child > a[role="button"] {
    color: #fff !important;
    background: var(--gsrt-green-800) !important;
    border-color: var(--gsrt-green-800) !important;
  }

  body.gsrt-home .gsrt-facilities li {
    min-height: 88px !important;
    margin-bottom: 10px;
    color: var(--gsrt-text-primary) !important;
    background: rgba(255, 255, 255, .82) !important;
    border: 1px solid var(--gsrt-border-strong) !important;
    border-radius: 14px !important;
    box-shadow: 0 8px 24px rgba(18, 50, 38, .055);
  }

  body.gsrt-home .gsrt-facilities li:hover,
  body.gsrt-home .gsrt-facilities li:focus-visible {
    background: #fff !important;
    border-color: var(--gsrt-green-700) !important;
  }

  body.gsrt-home .gsrt-facilities li > div {
    min-height: 86px;
    align-items: center !important;
    padding: 12px 16px !important;
    color: var(--gsrt-text-primary) !important;
  }

  body.gsrt-home .gsrt-facilities li > span:first-child {
    top: 14px;
    bottom: 14px;
    left: -1px;
    width: 3px;
    background: var(--gsrt-green-700) !important;
    border-radius: 3px;
  }

  body.gsrt-home .gsrt-facilities li > span:nth-child(2) {
    background: transparent !important;
  }

  body.gsrt-home .gsrt-facilities .gsrt-facility-icon {
    width: 48px !important;
    height: 48px !important;
    padding: 12px !important;
    color: var(--gsrt-green-700) !important;
    background: var(--gsrt-surface-soft-green) !important;
    border: 1px solid var(--gsrt-border) !important;
    border-radius: 50% !important;
    stroke-width: 1.8;
  }

  body.gsrt-home .gsrt-facilities li .min-w-0 > div:first-child {
    color: var(--gsrt-green-900) !important;
    font-size: 16px !important;
    line-height: 1.3 !important;
  }

  body.gsrt-home .gsrt-facilities li .min-w-0 > div:last-child {
    color: var(--gsrt-text-secondary) !important;
    font-size: 15px !important;
    line-height: 1.5 !important;
    opacity: 1 !important;
  }

  body.gsrt-home .gsrt-facilities li > div > span:last-child {
    color: var(--gsrt-green-700) !important;
    opacity: 1 !important;
  }

  body.gsrt-home .gsrt-dining > div > div:first-child :where(p, h2),
  body.gsrt-home .gsrt-surroundings > div > div:first-child :where(p, h2) {
    opacity: 1 !important;
    filter: none !important;
    transform: none !important;
  }

  body.gsrt-home .gsrt-testimonials :where(p, h2, h3, blockquote, figcaption) {
    opacity: 1 !important;
    filter: none !important;
    transform: none !important;
  }
}

/* Corrected homepage calendar and guest-review presentation. */
.gsrt-testimonial-layout {
  display: grid;
  grid-template-columns: minmax(250px, .62fr) minmax(0, 1fr);
  gap: clamp(44px, 7vw, 96px);
  align-items: center;
}

.gsrt-testimonial-heading {
  align-self: center;
  max-width: 390px !important;
  margin: 0 !important;
}

.gsrt-testimonial-carousel {
  min-width: 0;
}

.gsrt-testimonials figure {
  position: relative;
  max-width: none !important;
  min-height: 330px;
  margin: 0 auto !important;
  padding: clamp(34px, 4vw, 48px) !important;
  color: var(--gsrt-ink) !important;
  border-color: rgba(201, 163, 95, .34) !important;
  border-radius: 22px !important;
  background: #fffaf0 !important;
  box-shadow: 0 28px 65px rgba(5, 23, 15, .24);
}

.gsrt-testimonials .gsrt-quote-icon {
  width: 34px;
  height: 34px;
  margin-bottom: 20px;
  color: var(--gsrt-green-700);
  fill: rgba(44, 104, 75, .08);
}

.gsrt-testimonials figure > div[aria-label*="stars"] {
  gap: 5px !important;
}

.gsrt-testimonials figure > div[aria-label*="stars"] svg {
  width: 18px;
  height: 18px;
}

.gsrt-testimonials figure blockquote {
  margin-top: 20px !important;
  color: var(--gsrt-green-950) !important;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: clamp(23px, 2.1vw, 31px) !important;
  font-weight: 600 !important;
  line-height: 1.38 !important;
}

.gsrt-testimonials figure figcaption {
  align-items: center !important;
  margin-top: auto !important;
  padding-top: 22px !important;
  color: var(--gsrt-muted) !important;
  border-color: rgba(23, 63, 46, .13) !important;
}

.gsrt-testimonials figure figcaption span:first-child {
  color: var(--gsrt-green-900) !important;
  font-size: 16px !important;
}

.gsrt-testimonials figure figcaption span:last-child {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  color: var(--gsrt-muted) !important;
  font-size: 11px !important;
}

.gsrt-map-pin-icon {
  width: 14px;
  height: 14px;
  color: var(--gsrt-terracotta);
}

.gsrt-testimonial-carousel > div:last-child {
  margin-top: 20px !important;
}

.gsrt-testimonials button[aria-label^="Previous review"],
.gsrt-testimonials button[aria-label^="Next review"] {
  width: 44px !important;
  height: 44px !important;
  color: #fff !important;
  border-color: rgba(255, 255, 255, .3) !important;
}

.gsrt-testimonials button[aria-label^="Go to review"] {
  position: relative;
  width: 44px !important;
  height: 44px !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
}

.gsrt-testimonials button[aria-label^="Go to review"]::after {
  content: "";
  display: block;
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: rgba(255, 255, 255, .38);
  transition: width 180ms ease, background-color 180ms ease;
}

.gsrt-testimonials button[aria-label^="Go to review"][class*="w-8"]::after {
  width: 26px;
  background: var(--gsrt-gold);
}

/* The cloned calendar is a Radix popover rendered at the document root. */
body.gsrt-calendar-open [data-radix-popper-content-wrapper] {
  z-index: 1200 !important;
}

body.gsrt-calendar-open [role="dialog"] {
  width: min(340px, calc(100vw - 24px)) !important;
  padding: 16px !important;
  color: var(--gsrt-ink) !important;
  border: 1px solid var(--gsrt-border) !important;
  border-radius: 18px !important;
  background: #fffefb !important;
  box-shadow: 0 26px 70px rgba(5, 23, 15, .26) !important;
}

body.gsrt-calendar-open [role="dialog"] :where(button, div, span, th) {
  color: var(--gsrt-ink) !important;
}

body.gsrt-calendar-open [role="dialog"] button {
  min-width: 40px;
  min-height: 40px;
  border-radius: 50% !important;
}

body.gsrt-calendar-open [role="dialog"] button:not(:disabled):hover,
body.gsrt-calendar-open [role="dialog"] button[aria-selected="true"],
body.gsrt-calendar-open [role="dialog"] [data-selected-single="true"] button {
  color: #fff !important;
  background: var(--gsrt-green-800) !important;
}

body.gsrt-calendar-open [role="dialog"] button:disabled {
  color: #a4aaa6 !important;
  opacity: .58;
}

body.gsrt-calendar-open #book {
  z-index: 30 !important;
}

@media (max-width: 800px) {
  .gsrt-testimonial-layout {
    grid-template-columns: 1fr;
    gap: 34px;
  }

  .gsrt-testimonial-heading {
    max-width: 560px !important;
  }

  .gsrt-testimonials figure {
    min-height: 300px;
  }
}

@media (max-width: 480px) {
  .gsrt-testimonials figure {
    min-height: 320px;
    padding: 28px 24px !important;
  }

  .gsrt-testimonials figure blockquote {
    font-size: 22px !important;
  }
}

@layer properties {
  body.gsrt-home .gsrt-testimonials figure {
    color: var(--gsrt-ink) !important;
    background: #fffaf0 !important;
  }

  body.gsrt-home .gsrt-testimonials figure blockquote {
    color: var(--gsrt-green-950) !important;
    background: transparent !important;
  }

  body.gsrt-home .gsrt-testimonials figure figcaption,
  body.gsrt-home .gsrt-testimonials figure figcaption span:last-child {
    color: var(--gsrt-muted) !important;
  }

  body.gsrt-home .gsrt-testimonials figure figcaption span:first-child {
    color: var(--gsrt-green-900) !important;
  }

  body.gsrt-home .gsrt-testimonials button[aria-label^="Go to review"] {
    border: 0 !important;
    background: transparent !important;
  }

  body.gsrt-home .gsrt-testimonials button[aria-label^="Previous review"],
  body.gsrt-home .gsrt-testimonials button[aria-label^="Next review"] {
    color: #fff !important;
    border-color: rgba(255, 255, 255, .34) !important;
    background: transparent !important;
  }

  /* Final hydrated booking-form layout. The cloned React controls use broad
     important utilities, so keep these component rules in the same layer. */
  body.gsrt-home .gsrt-availability .gsrt-booking-fields {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(190px, 1fr)) minmax(200px, .85fr) !important;
    gap: 14px !important;
    align-items: stretch !important;
  }

  body.gsrt-home .gsrt-availability .gsrt-booking-date-field {
    min-height: 76px !important;
    padding: 13px 16px !important;
  }

  body.gsrt-home .gsrt-availability .gsrt-booking-date-field button[aria-haspopup="dialog"] {
    min-height: 34px !important;
    padding: 0 38px 0 0 !important;
    color: var(--gsrt-green-950) !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    font-family: "Cormorant Garamond", Georgia, serif !important;
    font-size: 19px !important;
    font-weight: 700 !important;
  }

  body.gsrt-home .gsrt-availability .gsrt-booking-submit-field {
    min-height: 76px !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  body.gsrt-home .gsrt-availability .gsrt-booking-submit-field > button {
    height: 100% !important;
    min-height: 76px !important;
    padding-inline: 24px !important;
    color: #fff !important;
    border: 1px solid var(--gsrt-green-800) !important;
    border-radius: 12px !important;
    background: var(--gsrt-green-800) !important;
  }

  @media (max-width: 1023px) {
    body.gsrt-home .gsrt-availability .gsrt-booking-fields {
      grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    body.gsrt-home .gsrt-availability .gsrt-booking-submit-field {
      grid-column: 1 / -1 !important;
    }
  }

  @media (max-width: 767px) {
    body.gsrt-home .gsrt-availability .gsrt-booking-fields {
      grid-template-columns: minmax(0, 1fr) !important;
    }

    body.gsrt-home .gsrt-availability .gsrt-booking-submit-field {
      grid-column: auto !important;
    }
  }
}

/* Keep the final overrides in the cloned Tailwind layer. Important rules in
   that layer otherwise outrank ordinary author styles even when loaded later. */
@layer properties {
  body.gsrt-theme-v3 .gsrt-full-brand-name {
    max-width: 230px !important;
    color: var(--gsrt-green-900) !important;
    font-size: clamp(14px, 1.25vw, 18px) !important;
    line-height: 1.05 !important;
    letter-spacing: .035em !important;
    text-transform: none !important;
    opacity: 1 !important;
  }

  body.gsrt-theme-v3 .gsrt-living .gsrt-curated-data-summary,
  body.gsrt-theme-v3 .gsrt-living > div > div:first-child p,
  body.gsrt-theme-v3 .gsrt-facilities > div > div:first-child p {
    color: #d4ddd7 !important;
    opacity: 1 !important;
  }

  body.gsrt-theme-v3 .gsrt-facilities li {
    min-height: 72px !important;
  }

  body.gsrt-theme-v3 .gsrt-facilities .gsrt-facility-icon {
    width: 44px !important;
    height: 44px !important;
    padding: 10px !important;
    color: #236846 !important;
    border: 1px solid rgba(255, 255, 255, .18) !important;
    border-radius: 12px !important;
    background: #eaf2ec !important;
    opacity: 1 !important;
  }

  body.gsrt-calendar-open [role="dialog"] .rdp-day_button {
    color: #26342d !important;
    border: 0 !important;
    border-radius: 10px !important;
    background: transparent !important;
    box-shadow: none !important;
    opacity: 1 !important;
  }

  body.gsrt-calendar-open [role="dialog"] td:not([data-disabled="true"]) .rdp-day_button:hover {
    color: #174f34 !important;
    background: #eaf2ec !important;
  }

  body.gsrt-calendar-open [role="dialog"] td[data-selected="true"] .rdp-day_button,
  body.gsrt-calendar-open [role="dialog"] .rdp-day_button[aria-selected="true"],
  body.gsrt-calendar-open [role="dialog"] .rdp-day_button[data-selected-single="true"] {
    color: #fff !important;
    background: var(--gsrt-green-800) !important;
  }

  body.gsrt-calendar-open [role="dialog"] td[data-disabled="true"] {
    opacity: 1 !important;
  }

  body.gsrt-calendar-open [role="dialog"] td[data-disabled="true"] .rdp-day_button {
    color: #8e9992 !important;
    cursor: not-allowed !important;
    background: #f1f3f1 !important;
    opacity: 1 !important;
  }

  body.gsrt-calendar-open [role="dialog"] td[data-outside="true"] .rdp-day_button {
    color: #b7c0ba !important;
    background: transparent !important;
  }

  body.gsrt-calendar-open [role="dialog"] td[data-selected="true"] .rdp-day_button,
  body.gsrt-calendar-open [role="dialog"] td[aria-selected="true"] .rdp-day_button,
  body.gsrt-calendar-open [role="dialog"] .rdp-day_button[data-selected-single="true"] {
    color: #fff !important;
    background: var(--gsrt-green-800) !important;
  }

  body.gsrt-calendar-open #book {
    pointer-events: none !important;
    opacity: 0 !important;
    transform: translateY(100%) !important;
  }

  @media (max-width: 640px) {
    body.gsrt-theme-v3 .gsrt-full-brand-name {
      max-width: 150px !important;
      font-size: 13px !important;
    }
  }
}

/* Final cascade placement for the new readability specification. */
@layer properties {
  body.gsrt-theme-v3.gsrt-home .gsrt-living .gsrt-curated-data-summary,
  body.gsrt-theme-v3.gsrt-home .gsrt-living > div > div:first-child p,
  body.gsrt-theme-v3.gsrt-home .gsrt-facilities > div > div:first-child p {
    color: var(--gsrt-text-secondary) !important;
    opacity: 1 !important;
  }

  body.gsrt-theme-v3.gsrt-home .gsrt-living > div > div:first-child > a[role="button"] {
    color: #fff !important;
    background: var(--gsrt-green-800) !important;
    border-color: var(--gsrt-green-800) !important;
  }

  body.gsrt-theme-v3.gsrt-home .gsrt-facilities li.gsrt-facility-card {
    min-height: 88px !important;
    margin-bottom: 10px;
    color: var(--gsrt-text-primary) !important;
    background: rgba(255, 255, 255, .82) !important;
    border: 1px solid var(--gsrt-border-strong) !important;
    border-radius: 14px !important;
    box-shadow: 0 8px 24px rgba(18, 50, 38, .055);
  }

  body.gsrt-theme-v3.gsrt-home .gsrt-facilities li.gsrt-facility-card:hover,
  body.gsrt-theme-v3.gsrt-home .gsrt-facilities li.gsrt-facility-card:focus-visible {
    background: #fff !important;
    border-color: var(--gsrt-green-700) !important;
  }

  body.gsrt-theme-v3.gsrt-home .gsrt-facilities li.gsrt-facility-card > div {
    min-height: 86px;
    align-items: center !important;
    padding: 12px 16px !important;
    color: var(--gsrt-text-primary) !important;
  }

  body.gsrt-theme-v3.gsrt-home .gsrt-facilities li.gsrt-facility-card > span:first-child {
    top: 14px;
    bottom: 14px;
    left: -1px;
    width: 3px;
    background: var(--gsrt-green-700) !important;
    border-radius: 3px;
  }

  body.gsrt-theme-v3.gsrt-home .gsrt-facilities li.gsrt-facility-card > span:nth-child(2) {
    background: transparent !important;
  }

  body.gsrt-theme-v3.gsrt-home .gsrt-facilities .gsrt-facility-icon {
    width: 48px !important;
    height: 48px !important;
    padding: 12px !important;
    color: var(--gsrt-green-700) !important;
    background: var(--gsrt-surface-soft-green) !important;
    border: 1px solid var(--gsrt-border) !important;
    border-radius: 50% !important;
    stroke-width: 1.8;
  }

  body.gsrt-theme-v3.gsrt-home .gsrt-comfort .gsrt-facility-icon {
    width: 48px !important;
    height: 48px !important;
    padding: 12px !important;
    flex: 0 0 48px;
    color: #17633f !important;
    background: #e7f2eb !important;
    border: 1px solid #b8d2c1 !important;
    border-radius: 50% !important;
    stroke: currentColor !important;
    stroke-width: 1.9 !important;
    opacity: 1 !important;
    filter: none !important;
    transition: color .25s ease, background-color .25s ease, border-color .25s ease, transform .25s ease;
  }

  body.gsrt-theme-v3.gsrt-home .gsrt-comfort .gsrt-comfort-card:hover .gsrt-facility-icon,
  body.gsrt-theme-v3.gsrt-home .gsrt-comfort .gsrt-comfort-card:focus-visible .gsrt-facility-icon {
    color: #fff !important;
    background: var(--gsrt-green-800) !important;
    border-color: var(--gsrt-green-800) !important;
    transform: translateY(-2px);
  }

  body.gsrt-theme-v3.gsrt-home .gsrt-comfort .gsrt-facility-icon :where(path, circle, rect, line, polyline) {
    stroke: currentColor !important;
    opacity: 1 !important;
  }

  body.gsrt-theme-v3.gsrt-home .gsrt-facilities li.gsrt-facility-card .min-w-0 > div:first-child {
    color: var(--gsrt-green-900) !important;
    font-size: 16px !important;
    line-height: 1.3 !important;
  }

  body.gsrt-theme-v3.gsrt-home .gsrt-facilities li.gsrt-facility-card .min-w-0 > div:last-child {
    color: var(--gsrt-text-secondary) !important;
    font-size: 15px !important;
    line-height: 1.5 !important;
    opacity: 1 !important;
  }

  body.gsrt-theme-v3.gsrt-home .gsrt-facilities li.gsrt-facility-card > div > span:last-child {
    color: var(--gsrt-green-700) !important;
    opacity: 1 !important;
  }

  body.gsrt-theme-v3 .gsrt-static-footer-shell h3,
  body.gsrt-theme-v3 .gsrt-static-footer-shell .gsrt-footer-contact__label {
    color: #fff !important;
  }

  body.gsrt-theme-v3 .gsrt-static-footer-shell :where(p, address, a) {
    color: #d5ded8 !important;
  }

  @media (max-width: 640px) {
    body.gsrt-theme-v3 #book > div > div:last-child {
      display: grid !important;
      width: 100% !important;
      grid-template-columns: .78fr 1.15fr 1fr;
      gap: 6px !important;
    }

    body.gsrt-theme-v3 #book > div > div:last-child > a {
      display: inline-flex !important;
      width: auto !important;
      min-width: 0 !important;
      min-height: 52px !important;
      padding: 8px 7px !important;
      gap: 5px !important;
      font-size: 9px !important;
      letter-spacing: .08em !important;
      white-space: nowrap;
    }

    body.gsrt-theme-v3 #book > div > div:last-child > a svg {
      width: 17px !important;
      height: 17px !important;
    }
  }

  @media (min-width: 641px) and (max-width: 900px) {
    body.gsrt-theme-v3 #book > div > div:first-child {
      display: none !important;
    }

    body.gsrt-theme-v3 #book > div > div:last-child {
      display: grid !important;
      width: 100% !important;
      grid-template-columns: .8fr 1.1fr 1fr;
      gap: 10px !important;
    }

    body.gsrt-theme-v3 #book > div > div:last-child > a {
      display: inline-flex !important;
      width: auto !important;
      min-width: 0 !important;
      min-height: 54px !important;
      padding: 10px 14px !important;
      font-size: 10px !important;
      letter-spacing: .12em !important;
    }
  }
}

/* The homepage section foundation also matches the shared payment section.
   Keep that global footer banner on the same compact row used by inner pages. */
body.gsrt-home .gsrt-static-footer-shell .gsrt-footer-payment {
  padding: 24px !important;
}

body.gsrt-home .gsrt-static-footer-shell .gsrt-footer-payment h2 {
  font-size: 25px !important;
  line-height: 1.1 !important;
}

/* Gallery lightbox ---------------------------------------------------- */
body.gsrt-gallery-lightbox-open {
  overflow: hidden;
}

.gsrt-gallery-lightbox,
.gsrt-gallery-lightbox[hidden] {
  position: fixed;
  inset: 0;
  z-index: 1200;
  display: grid;
  place-items: center;
  padding: clamp(18px, 4vw, 52px);
}

.gsrt-gallery-lightbox[hidden] {
  display: none !important;
}

.gsrt-gallery-lightbox__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(7, 13, 10, .88);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
}

.gsrt-gallery-lightbox__panel {
  position: relative;
  z-index: 1;
  display: flex;
  width: min(1120px, 100%);
  max-height: min(900px, 100%);
  flex-direction: column;
  align-items: center;
  gap: 14px;
  padding: clamp(18px, 3vw, 34px);
  border: 1px solid rgba(216, 181, 106, .45);
  border-radius: 22px;
  background: rgba(18, 50, 38, .96);
  box-shadow: 0 30px 100px rgba(0, 0, 0, .42);
}

.gsrt-gallery-lightbox__close,
.gsrt-gallery-lightbox__nav {
  position: absolute;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  min-height: 44px;
  padding: 0;
  border: 1px solid rgba(216, 181, 106, .58);
  border-radius: 999px;
  color: #173f2e;
  background: #f8f4eb;
  font-family: Arial, sans-serif;
  font-size: 28px;
  line-height: 1;
  cursor: pointer;
  transition: color .2s ease, background-color .2s ease, transform .2s ease;
}

.gsrt-gallery-lightbox__close:hover,
.gsrt-gallery-lightbox__nav:hover:not(:disabled),
.gsrt-gallery-lightbox__close:focus-visible,
.gsrt-gallery-lightbox__nav:focus-visible {
  color: #fff;
  background: #c9a35f;
  transform: translateY(-1px);
}

.gsrt-gallery-lightbox__close {
  top: 14px;
  right: 14px;
  font-size: 30px;
}

.gsrt-gallery-lightbox__stage {
  display: grid;
  width: 100%;
  min-height: 0;
  grid-template-columns: 48px minmax(0, 1fr) 48px;
  align-items: center;
  gap: clamp(10px, 2vw, 24px);
}

.gsrt-gallery-lightbox__nav {
  position: static;
  flex: 0 0 auto;
}

.gsrt-gallery-lightbox__nav:disabled {
  cursor: default;
  opacity: .42;
}

.gsrt-gallery-lightbox__figure {
  display: flex;
  min-width: 0;
  max-height: calc(100vh - 170px);
  margin: 0;
  flex-direction: column;
  align-items: center;
  gap: 12px;
}

.gsrt-gallery-lightbox__image {
  display: block;
  width: auto;
  max-width: 100%;
  height: auto;
  max-height: calc(100vh - 230px);
  border-radius: 12px;
  object-fit: contain;
  box-shadow: 0 16px 60px rgba(0, 0, 0, .34);
}

.gsrt-gallery-lightbox__caption {
  max-width: 100%;
  color: #f8f4eb !important;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: clamp(18px, 2vw, 26px);
  font-style: italic;
  line-height: 1.2;
  text-align: center;
}

.gsrt-gallery-lightbox__counter {
  margin: 0;
  color: #d8b56a !important;
  font-family: "Plus Jakarta Sans", Arial, sans-serif;
  font-size: 11px;
  letter-spacing: .2em;
  line-height: 1.3;
  text-transform: uppercase;
}

/* The cloned dining page uses a near-black utility hover background but
   inherits the inner-page dark-text correction. Keep hovered menu rows
   intentionally green/gold so every label and description remains legible. */
body.gsrt-dining-menu-page .gsrt-dining-menu-item:hover,
body.gsrt-dining-menu-page .gsrt-dining-menu-item:focus-visible {
  color: #f8faf7 !important;
  background: #173f2e !important;
  border-left-color: #d8b56a !important;
  outline: none;
}

body.gsrt-dining-menu-page .gsrt-dining-menu-item:hover h4,
body.gsrt-dining-menu-page .gsrt-dining-menu-item:focus-visible h4 {
  color: #d8b56a !important;
}

body.gsrt-dining-menu-page .gsrt-dining-menu-item:hover p,
body.gsrt-dining-menu-page .gsrt-dining-menu-item:focus-visible p {
  color: #e2ebe4 !important;
  opacity: 1 !important;
}

body.gsrt-dining-menu-page .gsrt-dining-menu-item:hover [aria-hidden="true"],
body.gsrt-dining-menu-page .gsrt-dining-menu-item:focus-visible [aria-hidden="true"] {
  border-color: rgba(226, 235, 228, .5) !important;
}

@media (max-width: 640px) {
  body.gsrt-home .gsrt-static-footer-shell .gsrt-footer-payment {
    padding: 28px 20px 32px !important;
  }

  .gsrt-gallery-lightbox {
    padding: 12px;
  }

  .gsrt-gallery-lightbox__panel {
    padding: 16px 10px 20px;
    border-radius: 16px;
  }

  .gsrt-gallery-lightbox__stage {
    grid-template-columns: 38px minmax(0, 1fr) 38px;
    gap: 6px;
  }

  .gsrt-gallery-lightbox__close,
  .gsrt-gallery-lightbox__nav {
    width: 38px;
    height: 38px;
    min-height: 38px;
  }

  .gsrt-gallery-lightbox__image {
    max-height: calc(100vh - 190px);
  }
}

/* Mobile readability --------------------------------------------------
   The exported theme uses 9-11px utility labels throughout the public
   pages. At phone widths those labels become difficult to read, especially
   over photography and the dark green homepage panels. Keep the editorial
   scale on larger screens and enforce a practical floor on mobile. */
@layer properties {
  @media (max-width: 767px) {
    body.gsrt-theme-v3 {
      -webkit-text-size-adjust: 100%;
      text-size-adjust: 100%;
    }

    body.gsrt-theme-v3 main :where(
      .text-\[9px\],
      .text-\[10px\],
      .text-\[11px\]
    ) {
      font-size: 12px !important;
      line-height: 1.55 !important;
      letter-spacing: min(.18em, 2px) !important;
    }

    body.gsrt-theme-v3 main .text-xs {
      font-size: 13px !important;
      line-height: 1.55 !important;
    }

    body.gsrt-theme-v3 main p,
    body.gsrt-theme-v3 main blockquote,
    body.gsrt-theme-v3 main figcaption {
      font-size: max(15px, 1rem) !important;
    }

    body.gsrt-theme-v3 .gsrt-hero p {
      font-size: 16px !important;
      line-height: 1.72 !important;
    }

    body.gsrt-theme-v3 .gsrt-hero .inline-flex.items-center.rounded-full > span {
      letter-spacing: .1em !important;
      white-space: nowrap;
    }

    body.gsrt-theme-v3 .gsrt-hero :where(
      .text-leaf,
      .text-stone-400,
      .text-stone-500,
      [class*="text-white/"],
      [class*="text-cream/"]
    ) {
      color: #e1e9e4 !important;
      opacity: 1 !important;
      text-shadow: 0 1px 3px rgba(0, 0, 0, .72);
    }

    body.gsrt-theme-v3 #book > div > div:last-child > a {
      min-height: 54px !important;
      font-size: 12px !important;
      line-height: 1.25 !important;
      letter-spacing: .06em !important;
    }

    body.gsrt-theme-v3 .gsrt-static-footer-shell :where(
      p,
      address,
      a,
      small
    ) {
      font-size: 14px !important;
      line-height: 1.65 !important;
    }

    body.gsrt-theme-v3 .gsrt-static-footer-shell .gsrt-footer-payment__eyebrow,
    body.gsrt-theme-v3 .gsrt-static-footer-shell .gsrt-footer-contact__label {
      font-size: 12px !important;
      line-height: 1.5 !important;
    }
  }
}

/* Estate mobile fallback: targets permanent markup, not JS-added classes. */
@media screen and (max-width: 1024px) {
  body.gsrt-theme-v3 #estate {
    padding: 48px clamp(16px, 4vw, 28px) !important;
  }

  body.gsrt-theme-v3 #estate > div,
  body.gsrt-theme-v3 #estate > div > div,
  body.gsrt-theme-v3 #estate > div > div > div {
    min-width: 0 !important;
    max-width: 100% !important;
  }

  body.gsrt-theme-v3 #estate > div > .grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
  }

  body.gsrt-theme-v3 #estate > div > .grid:last-child {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media screen and (max-width: 767px) {
  body.gsrt-theme-v3 #estate > div > .grid:last-child {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  body.gsrt-theme-v3 #estate h2 {
    font-size: clamp(32px, 9vw, 42px) !important;
    line-height: 1.1 !important;
  }

  body.gsrt-theme-v3 #estate > div > .grid:first-child p {
    color: #33463c !important;
    font-size: 16px !important;
    font-weight: 500 !important;
    line-height: 1.7 !important;
  }

  body.gsrt-theme-v3 #estate > div > .grid:nth-child(2) > div:first-child {
    height: clamp(430px, 120vw, 540px) !important;
  }

  body.gsrt-theme-v3 #estate > div > .grid:nth-child(2) > div:first-child > div:nth-of-type(1) {
    background: linear-gradient(to top, rgba(0, 0, 0, .96), rgba(0, 0, 0, .66) 52%, rgba(0, 0, 0, .2)) !important;
    opacity: 1 !important;
  }

  body.gsrt-theme-v3 #estate > div > .grid:nth-child(2) > div:first-child > div:last-child {
    padding: 22px !important;
    text-shadow: 0 2px 5px rgba(0, 0, 0, .95) !important;
  }

  body.gsrt-theme-v3 #estate > div > .grid:nth-child(2) > div:first-child h3 {
    color: #fff !important;
    font-size: clamp(29px, 8vw, 38px) !important;
    line-height: 1.1 !important;
  }

  body.gsrt-theme-v3 #estate > div > .grid:nth-child(2) > div:first-child :where(p, .font-mono) {
    color: #fff !important;
    font-size: 16px !important;
    font-weight: 600 !important;
    line-height: 1.65 !important;
    opacity: 1 !important;
  }

  body.gsrt-theme-v3 #estate .gsrt-comfort-card {
    min-height: 0 !important;
    padding: 18px !important;
    color: #173f2e !important;
    background: #fff !important;
    border: 1px solid rgba(23, 63, 46, .2) !important;
    border-radius: 14px !important;
  }

  body.gsrt-theme-v3 #estate .gsrt-comfort-card h4 {
    color: #173f2e !important;
    font-size: 20px !important;
  }

  body.gsrt-theme-v3 #estate .gsrt-comfort-card p {
    color: #33463c !important;
    font-size: 16px !important;
    font-weight: 500 !important;
    line-height: 1.6 !important;
    opacity: 1 !important;
  }
}

/* Mobile scroll recovery. Avoid putting an overflow container on both html
   and body: several Android WebViews then treat the document as a fixed
   viewport. Leave the document as the scroll container and permit both-axis
   panning after pinch zoom. */
@media screen and (max-width: 1024px) {
  html {
    height: auto !important;
    min-height: 100% !important;
    overflow-x: visible !important;
    overflow-y: auto !important;
    touch-action: pan-x pan-y pinch-zoom;
  }

  body.gsrt-theme-v3 {
    position: static !important;
    width: 100% !important;
    height: auto !important;
    min-height: 100% !important;
    overflow-x: visible !important;
    overflow-y: visible !important;
    touch-action: pan-x pan-y pinch-zoom;
    -webkit-overflow-scrolling: touch;
  }

  body.gsrt-theme-v3 > main[data-site-main] {
    width: 100% !important;
    max-width: none !important;
    overflow-x: visible !important;
    overflow-y: visible !important;
  }

  body.gsrt-theme-v3.gsrt-menu-open,
  body.gsrt-theme-v3.gsrt-gallery-lightbox-open {
    overflow: hidden !important;
  }
}

/* Pool-card headline contrast. Target the nested italic utility directly;
   its exported `text-stone-300` rule otherwise overrides the white h3. */
@media screen and (max-width: 1024px) {
  body.gsrt-theme-v3 #estate > div > .grid:nth-child(2) > div:first-child h3,
  body.gsrt-theme-v3 #estate > div > .grid:nth-child(2) > div:first-child h3 > span,
  body.gsrt-theme-v3 #estate h3 .italic.text-stone-300 {
    color: #fff !important;
    opacity: 1 !important;
    -webkit-text-fill-color: #fff !important;
    text-shadow: none !important;
    box-shadow: none !important;
    background: none !important;
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
  }

  body.gsrt-theme-v3 #estate > div > .grid:nth-child(2) > div:first-child h3 {
    position: relative;
    z-index: 2;
    max-width: 680px;
    padding: 0;
    margin-inline: 0;
    font-size: clamp(30px, 5.2vw, 46px) !important;
    font-weight: 700 !important;
    line-height: 1.08 !important;
    background: transparent !important;
    box-shadow: none !important;
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
    border-radius: 0;
  }
}

/* The pool sentence sits directly on the photograph: no local badge,
   backdrop, glow or shaded box behind either text fragment. */
body.gsrt-theme-v3 #estate .gsrt-pool-headline-accent {
  color: #ffd166 !important;
  opacity: 1 !important;
  -webkit-text-fill-color: #ffd166 !important;
  font-family: "Cormorant Garamond", Georgia, serif !important;
  font-style: normal !important;
  font-weight: 700 !important;
}

body.gsrt-theme-v3 #estate h3:has(.gsrt-pool-headline-accent),
body.gsrt-theme-v3 #estate h3:has(.gsrt-pool-headline-accent) > span {
  background: none !important;
  box-shadow: none !important;
  text-shadow: none !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
}

/* Final mobile color ownership: this must outrank the earlier generic
   `h3 > span { color: white }` readability rule. */
body.gsrt-theme-v3.gsrt-home #estate > div > .grid:nth-child(2) > div:first-child h3 > span.gsrt-pool-headline-accent,
body.gsrt-theme-v3 #estate h3 > span.gsrt-pool-headline-accent {
  color: #ffd166 !important;
  -webkit-text-fill-color: #ffd166 !important;
  opacity: 1 !important;
  font-family: "Cormorant Garamond", Georgia, serif !important;
  font-style: normal !important;
  font-weight: 700 !important;
}

/* Match the facilities pool-preview title to the established pool headline. */
body.gsrt-theme-v3.gsrt-home .gsrt-facilities .gsrt-facility-pool-title {
  color: #fff !important;
  text-shadow: none !important;
}

body.gsrt-theme-v3.gsrt-home .gsrt-facilities .gsrt-facility-pool-title > span {
  color: #ffd166 !important;
  -webkit-text-fill-color: #ffd166 !important;
  font-style: normal !important;
  font-weight: 700 !important;
}

body.gsrt-theme-v3.gsrt-home .gsrt-facilities .gsrt-facility-pool-title > em {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  font-family: "Cormorant Garamond", Georgia, serif !important;
  font-style: italic !important;
  font-weight: 500 !important;
}

/* The two comfort columns share one desktop row. Let the photographic pool
   card stretch when the copy cards need more than their exported 460px. */
@media screen and (min-width: 1025px) {
  body.gsrt-theme-v3.gsrt-home .gsrt-comfort > div > .grid:nth-child(2) {
    align-items: stretch !important;
  }

  body.gsrt-theme-v3.gsrt-home .gsrt-comfort > div > .grid:nth-child(2) > div:first-child {
    height: auto !important;
    min-height: 460px !important;
    align-self: stretch !important;
  }

  body.gsrt-theme-v3.gsrt-home .gsrt-comfort > div > .grid:nth-child(2) > div:last-child {
    align-self: stretch !important;
    grid-template-rows: repeat(2, minmax(0, 1fr)) !important;
  }
}

/* Seminar facts remain animated, but are readable before and during hover. */
body.gsrt-theme-v3.gsrt-home .gsrt-unforgettable .gsrt-seminar-facts {
  opacity: .72 !important;
  background: rgba(23, 63, 46, .12) !important;
  border: 1px solid rgba(23, 63, 46, .16);
}

body.gsrt-theme-v3.gsrt-home .gsrt-unforgettable .group:hover .gsrt-seminar-facts {
  opacity: 1 !important;
}

body.gsrt-theme-v3.gsrt-home .gsrt-unforgettable .gsrt-seminar-facts > div {
  background: rgba(247, 250, 247, .96) !important;
}

body.gsrt-theme-v3.gsrt-home .gsrt-unforgettable .gsrt-seminar-facts > div > div:first-child {
  color: #52645a !important;
  -webkit-text-fill-color: #52645a !important;
  opacity: 1 !important;
}

body.gsrt-theme-v3.gsrt-home .gsrt-unforgettable .gsrt-seminar-facts > div > div:last-child {
  color: #173f2e !important;
  -webkit-text-fill-color: #173f2e !important;
  font-weight: 650 !important;
  opacity: 1 !important;
}

/* Dining dish names and indices need dark ink on the light dining panel. */
body.gsrt-theme-v3.gsrt-home .gsrt-dining .gsrt-dining-dish-list {
  border-top-color: rgba(23, 63, 46, .48) !important;
}

body.gsrt-theme-v3.gsrt-home .gsrt-dining .gsrt-dining-dish-list > li {
  color: #234b38 !important;
  -webkit-text-fill-color: #234b38 !important;
  font-weight: 600 !important;
  opacity: 1 !important;
}

body.gsrt-theme-v3.gsrt-home .gsrt-dining .gsrt-dining-dish-list > li > span {
  color: #5e7167 !important;
  -webkit-text-fill-color: #5e7167 !important;
  font-weight: 800 !important;
  opacity: 1 !important;
}

/* Estate phone/tablet containment and overlay-copy readability. */
@media screen and (max-width: 1024px) {
  body.gsrt-theme-v3 #estate {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: hidden;
  }

  body.gsrt-theme-v3 #estate > div {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-inline: auto !important;
  }

  body.gsrt-theme-v3 #estate h2,
  body.gsrt-theme-v3 #estate h2 > span {
    width: 100% !important;
    max-width: 100% !important;
    white-space: normal !important;
    overflow-wrap: anywhere;
    word-break: normal;
  }

  body.gsrt-theme-v3 #estate h2 {
    font-size: clamp(32px, 5.2vw, 44px) !important;
    line-height: 1.1 !important;
  }

  body.gsrt-theme-v3 #estate > div > .grid:first-child p {
    width: 100% !important;
    max-width: 680px !important;
    white-space: normal !important;
    overflow-wrap: anywhere;
    color: #33463c !important;
    font-size: 16px !important;
    line-height: 1.7 !important;
  }

  body.gsrt-theme-v3 #estate > div > .grid:nth-child(2) > div:first-child > div:nth-of-type(1) {
    background: linear-gradient(to top, rgba(0, 0, 0, .94) 0%, rgba(0, 0, 0, .58) 48%, rgba(0, 0, 0, .12) 100%) !important;
    opacity: 1 !important;
  }

  body.gsrt-theme-v3 #estate > div > .grid:nth-child(2) > div:first-child > div:last-child > p {
    position: relative;
    z-index: 2;
    max-width: 620px !important;
    color: #f7f4ec !important;
    -webkit-text-fill-color: #f7f4ec !important;
    font-size: 16px !important;
    font-weight: 600 !important;
    line-height: 1.65 !important;
    opacity: 1 !important;
    text-shadow: 0 1px 3px rgba(0, 0, 0, .9) !important;
  }
}

body.gsrt-theme-v3 .gsrt-numeric-heading {
  display: inline-block;
  font-family: "Plus Jakarta Sans", Arial, sans-serif !important;
  font-variant-numeric: tabular-nums lining-nums;
  font-feature-settings: "tnum" 1, "lnum" 1;
  color: #173f2e !important;
  -webkit-text-fill-color: #173f2e !important;
  font-size: .8em !important;
  font-style: normal !important;
  font-weight: 700 !important;
  letter-spacing: -.035em;
  line-height: 1 !important;
  vertical-align: baseline;
}

/* Header brand hierarchy --------------------------------------------- */
body.gsrt-theme-v3 .gsrt-site-nav .gsrt-full-brand-name {
  font-weight: 700 !important;
  -webkit-text-stroke: .12px currentColor;
}

body.gsrt-theme-v3 .gsrt-site-nav a[href="/"] .font-mono,
body.gsrt-theme-v3 .gsrt-site-nav a[href$="/index.html"] .font-mono {
  color: var(--gsrt-green-700) !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  opacity: 1 !important;
}

@media screen and (max-width: 640px) {
  body.gsrt-theme-v3 .gsrt-site-nav .gsrt-full-brand-name {
    font-size: 14px !important;
    line-height: 1.08 !important;
  }

  body.gsrt-theme-v3 .gsrt-site-nav a[href="/"] .font-mono,
  body.gsrt-theme-v3 .gsrt-site-nav a[href$="/index.html"] .font-mono {
    font-size: 10px !important;
    line-height: 1.2 !important;
    letter-spacing: .28em !important;
  }
}

/* Numeric typography -------------------------------------------------
   Dates, tariffs, counts and ordered markers use a crisp tabular sans face
   while editorial headings retain Cormorant Garamond. */
body.gsrt-theme-v3 :where(
  .gsrt-booking-date-field input,
  .gsrt-booking-date-field button,
  .gsrt-availability input,
  .gsrt-availability select,
  [data-gsrt-home-price-target="true"],
  [aria-label*="slide" i],
  [aria-label*="review" i]
) {
  font-family: "Plus Jakarta Sans", Arial, sans-serif !important;
  font-variant-numeric: tabular-nums lining-nums;
  font-feature-settings: "tnum" 1, "lnum" 1;
  font-weight: 600 !important;
}

body.gsrt-theme-v3 #estate :where(
  .font-mono.text-\[10px\],
  .font-mono.text-xs
) {
  font-family: "Plus Jakarta Sans", Arial, sans-serif !important;
  font-variant-numeric: tabular-nums lining-nums;
  font-feature-settings: "tnum" 1, "lnum" 1;
}

@media screen and (max-width: 1024px) {
  body.gsrt-theme-v3 :where(
    .gsrt-booking-date-field input,
    .gsrt-booking-date-field button,
    .gsrt-availability input,
    .gsrt-availability select,
    [data-gsrt-home-price-target="true"]
  ) {
    font-size: max(15px, 1rem) !important;
    letter-spacing: .02em !important;
  }
}

/* Deep mobile typography ---------------------------------------------
   Phone displays and compressed screenshots make 300/400 weights appear
   washed out. Strengthen type without flattening the visual hierarchy or
   changing the established light-on-dark color treatment. */
@media screen and (max-width: 1024px) {
  body.gsrt-theme-v3 {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
  }

  body.gsrt-theme-v3 main :where(p, li, blockquote, figcaption, address, dd) {
    font-weight: 500 !important;
  }

  body.gsrt-theme-v3 main :where(h1, h2, h3, h4, h5, h6) {
    font-weight: 700 !important;
  }

  body.gsrt-theme-v3 main :where(
    label,
    button,
    [role="button"],
    [class*="uppercase"],
    .font-mono
  ) {
    font-weight: 600 !important;
  }

  body.gsrt-theme-v3 main :where(
    .font-light,
    .font-extralight,
    .font-thin
  ) {
    font-weight: 500 !important;
  }

  body.gsrt-theme-v3 main :where(
    .font-normal,
    .font-medium
  ) {
    font-weight: 500 !important;
  }

  body.gsrt-theme-v3 main :where(p, li, blockquote) {
    letter-spacing: .005em;
  }
  


/* Improve hero text visibility */
}
.gsrt-hero dt.text-white {
    color: #ffffff !important;
    text-shadow: 0 1px 4px rgba(0, 0, 0, 0.65);
}

.gsrt-hero dd[class*="text-white"] {
    color: rgba(255, 255, 255, 0.88) !important;
    text-shadow: 0 1px 4px rgba(0, 0, 0, 0.75);
}

.gsrt-hero span.text-white,
.gsrt-hero span[class*="text-white"] {
    color: #ffffff !important;
    text-shadow: 0 1px 4px rgba(0, 0, 0, 0.65);
}

/* Make the badges readable over bright images */
.gsrt-hero .bg-white\/10 {
    background-color: rgba(14, 45, 32, 0.78) !important;
    border-color: rgba(255, 255, 255, 0.35) !important;
}
/* Final hero contrast override */
html body.gsrt-theme-v3 .gsrt-hero dt.text-white {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}

html body.gsrt-theme-v3 .gsrt-hero dd[class*="text-white"] {
    color: rgba(255, 255, 255, 0.90) !important;
    -webkit-text-fill-color: rgba(255, 255, 255, 0.90) !important;
}

html body.gsrt-theme-v3 .gsrt-hero span.text-white,
html body.gsrt-theme-v3 .gsrt-hero span[class*="text-white"] {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}
/* Match hero statistics with booking button typography */
html body.gsrt-theme-v3 .gsrt-hero dt.text-white {
    font-family: "Plus Jakarta Sans", Inter, Arial, sans-serif !important;
    font-size: 22px !important;
    font-weight: 600 !important;
    line-height: 1 !important;
    letter-spacing: -0.02em !important;
}

html body.gsrt-theme-v3 .gsrt-hero dd[class*="text-white"] {
    font-family: "Plus Jakarta Sans", Inter, Arial, sans-serif !important;
    font-weight: 600 !important;
    letter-spacing: 0.08em !important;
}
}