/* Editorial card treatment for amenities and signature moments. */
.facility-grid {
  counter-reset: facility;
  border: 0;
  gap: 12px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 48px;
}

.facility-grid span {
  align-items: center;
  background: rgba(255, 255, 255, .055);
  border: 1px solid rgba(255, 255, 255, .16);
  display: flex;
  font-family: var(--serif);
  font-size: clamp(19px, 1.7vw, 25px);
  line-height: 1.18;
  min-height: 108px;
  padding: 25px 26px;
  cursor: default;
  position: relative;
  transition: background-color .32s ease, border-color .32s ease, box-shadow .32s ease, transform .32s cubic-bezier(.2,.8,.2,1);
}

.facility-grid span::before {
  color: rgba(255, 255, 255, .52);
  content: counter(facility, decimal-leading-zero);
  counter-increment: facility;
  font-family: var(--mono);
  font-size: 9px;
  letter-spacing: .1em;
  margin: 0 17px 0 0;
  padding: 0;
}

.facility-grid span:hover {
  background: rgba(255, 255, 255, .12);
  border-color: rgba(226, 208, 155, .72);
  box-shadow: 0 16px 26px rgba(0, 0, 0, .18);
  transform: translateY(-6px);
}

.facility-grid span::after {
  color: var(--gold);
  content: '↗';
  font-family: var(--mono);
  font-size: 15px;
  margin-left: auto;
  opacity: 0;
  transform: translate(-5px, 5px);
  transition: opacity .28s ease, transform .28s cubic-bezier(.2,.8,.2,1);
}

.facility-grid span:hover::after { opacity: 1; transform: translate(0, 0); }

/* A gentle, consistent response for every booking or call-to-action button. */
.button {
  box-shadow: 0 0 0 rgba(0, 0, 0, 0);
  transition: background-color .28s ease, border-color .28s ease, color .28s ease, box-shadow .28s ease, transform .28s cubic-bezier(.2,.8,.2,1);
}

.button:hover,
.button:focus-visible {
  box-shadow: 0 12px 24px rgba(0, 0, 0, .18);
  transform: translateY(-3px) scale(1.025);
}

.button span { transition: transform .28s cubic-bezier(.2,.8,.2,1); }
.button:hover span,
.button:focus-visible span { transform: translate(3px, -3px); }

.text-link { transition: border-color .28s ease, color .28s ease, transform .28s cubic-bezier(.2,.8,.2,1); }
.text-link span { transition: transform .28s cubic-bezier(.2,.8,.2,1); }
.text-link:hover,
.text-link:focus-visible { transform: translateY(-2px); }
.text-link:hover span,
.text-link:focus-visible span { transform: translateY(4px); }

.facility-note { margin-top: 16px; }

.signature-experiences__grid {
  gap: 14px;
  margin-top: 48px;
}

.signature-experience,
.signature-experience:nth-child(3n),
.signature-experience:nth-last-child(-n + 3) {
  background-color: #fff;
  border: 1px solid rgba(21, 51, 43, .18);
  box-shadow: 0 12px 28px rgba(11, 36, 29, .055);
  min-height: 258px;
}

.signature-experience > div { padding: 2px; }
.signature-experience h3 { font-size: clamp(26px, 2.15vw, 32px); margin-top: 38px; }
.signature-experience p { max-width: 31ch; }
.signature-experience:hover,
.signature-experience:focus-visible {
  border-color: rgba(255, 255, 255, .56);
  box-shadow: 0 18px 36px rgba(11, 36, 29, .14);
}

@media (max-width: 760px) {
  .facility-grid { gap: 9px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .facility-grid span { font-size: 18px; min-height: 88px; padding: 18px 14px; }
  .facility-grid span::before { margin-right: 10px; }
  .signature-experiences__grid { gap: 11px; }
  .signature-experience,
  .signature-experience:nth-child(3n),
  .signature-experience:nth-last-child(-n + 3) { border-bottom: 1px solid rgba(21, 51, 43, .18); }
  .facility-grid span:hover { transform: none; }
}

@media (prefers-reduced-motion: reduce) {
  .facility-grid span, .facility-grid span::after, .button, .button span, .text-link, .text-link span { transition: none; }
  .facility-grid span:hover, .button:hover, .button:focus-visible, .text-link:hover, .text-link:focus-visible { transform: none; }
}
