.first-visit { background: #f8f1e5; color: #3e2730; }
.first-visit .wrap { padding-block: clamp(34px, 6vw, 80px); }
.first-visit h1, .first-visit h2, .first-visit h3 { font-family: Georgia, serif; }
.first-visit h1 { font-size: clamp(48px, 7vw, 96px); line-height: 1.02; }
.first-visit h2 { font-size: clamp(34px, 4vw, 53px); line-height: 1.12; }
.first-visit h3 { font-size: 27px; line-height: 1.15; }
.first-visit .eyebrow { margin-bottom: 19px; color: #782439; }
.first-visit .actions { margin-top: 24px; }
.first-visit .textlink { font-size: 14px; text-decoration: underline; text-underline-offset: 4px; }
.visit-intro, .visit-planning, .visit-book { display: grid; grid-template-columns: 1.15fr 1fr; gap: clamp(30px, 6vw, 90px); align-items: center; }
.visit-intro figure { margin: 0; text-align: center; }
.visit-intro img { height: clamp(290px, 36vw, 450px); width: 100%; object-fit: contain; background: #eee1d0; }
.visit-intro figcaption { font-size: 12px; margin-top: 8px; }
.visit-lead { margin-top: 22px; font-size: 18px; }
.visit-choices, .visit-planning, .visit-book { border-top: 1px solid #d8c5ac; }
.visit-choice-grid { margin-top: 24px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.visit-choice-grid article { display: flex; flex-direction: column; gap: 12px; padding: 22px; background: #fffbf3; border: 1px solid #e4d4bd; }
.visit-choice-grid a, .visit-phone { color: #782439; font-weight: 700; text-decoration: underline; text-underline-offset: 4px; }
.visit-choice-grid a { margin-top: auto; font-size: 14px; }
.visit-all { display: inline-block; margin-top: 20px; }
.visit-planning { align-items: start; }
.visit-planning dl { margin: 22px 0 0; }
.visit-planning dt { color: #782439; font-weight: 700; }
.visit-planning dd { margin: 4px 0 18px; }
.visit-address { padding: clamp(22px, 4vw, 42px); background: #efe1cc; }
.visit-address address { font-style: normal; margin: 17px 0; }
.visit-address .actions { margin-bottom: 20px; }
.visit-book > div p { margin-top: 18px; }
.first-visit :focus-visible { outline: 3px solid #a53e33; outline-offset: 4px; }
@media (max-width: 1000px) {
  .visit-choice-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
  .visit-intro, .visit-planning, .visit-book { grid-template-columns: 1fr; }
  .first-visit .wrap { padding-inline: 22px; }
  .first-visit header nav { display: none; }
  .first-visit .brand-location { display: none; }
}
@media (max-width: 480px) {
  .visit-choice-grid { grid-template-columns: 1fr; }
}
