.site-visit {
  position: relative;
  padding: 130px 8vw 110px;
  overflow: hidden;
  background: #f4efe4;
  color: #070707;
}

.site-visit-heading {
  display: flex;
  justify-content: space-between;
  gap: 50px;
  align-items: flex-start;
  margin-bottom: 78px;
}

.site-visit .eyebrow { color: #8c692c; }
.site-visit h2 {
  margin: 0;
  font: 500 clamp(57.6px, 7.2vw, 113.6px)/.8 "Josefin Sans", Arial, sans-serif;
  letter-spacing: .035em;
  text-transform: uppercase;
}
.site-visit h2 em { color: #9a742f; font-style: normal; }

.site-visit-grid {
  display: grid;
  grid-template-columns: 1.15fr 1fr 1fr;
  gap: 50px;
  padding-top: 28px;
  border-top: 1px solid rgba(0,0,0,.3);
}

.site-visit-block h3 {
  margin: 0 0 22px;
  color: #8c692c;
  font: 600 24px/1 "Josefin Sans", Arial, sans-serif;
  text-transform: uppercase;
}

.site-visit-block p { margin: 0; font-size: 17px; line-height: 1.75; }
.site-visit-block a { color: inherit; }
.site-visit-block > a {
  display: inline-block;
  margin-top: 24px;
  padding-bottom: 7px;
  border-bottom: 1px solid #8c692c;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: .08em;
  text-decoration: none;
}

.site-hours p { display: grid; grid-template-columns: 1fr auto; gap: 12px 20px; }
.site-hours span { color: #39352f; }
.site-hours b { font-weight: 600; }

.social-buttons { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 24px; }
.social-buttons a {
  width: 50px;
  height: 50px;
  display: grid;
  place-items: center;
  border: 1px solid #8c692c;
  text-decoration: none;
  transition: background .25s ease, color .25s ease;
}
.social-buttons img {
  width: 22px;
  height: 22px;
  display: block;
}
.social-buttons a:hover,
.social-buttons a:focus-visible { background: #c7a35a; }
.social-buttons a:focus-visible { outline: 2px solid #c7a35a; outline-offset: 3px; }

.visit-reserve {
  display: inline-flex;
  align-items: center;
  gap: 20px;
  margin-top: 70px;
  padding: 19px 25px;
  background: #c7a35a;
  color: #070707;
  font-size: 15px;
  font-weight: 600;
  letter-spacing: .1em;
  text-decoration: none;
  transition: background .25s ease, transform .25s ease;
}
.visit-reserve:hover,
.visit-reserve:focus-visible { background: #e1c982; transform: translateY(-3px); }
.visit-reserve:focus-visible { outline: 2px solid #8c692c; outline-offset: 3px; }
.visit-reserve span { font-size: 22px; }

@media (max-width: 900px) {
  .site-visit { padding: 95px 7vw 85px; }
  .site-visit-heading { display: block; margin-bottom: 58px; }
  .site-visit-heading .eyebrow { margin-bottom: 32px; }
  .site-visit h2 { font-size: 56px; }
  .site-visit-grid { grid-template-columns: 1fr 1fr; }
  .site-visit-block:last-child { grid-column: 1 / -1; }
}

@media (max-width: 600px) {
  .site-visit { padding: 78px 7vw 70px; }
  .site-visit h2 { font-size: 44.8px; }
  .site-visit-grid { grid-template-columns: 1fr; gap: 42px; }
  .site-visit-block:last-child { grid-column: 1; }
  .site-hours p { grid-template-columns: 1fr; gap: 5px; }
  .site-hours b { margin-bottom: 9px; }
  .visit-reserve { width: 100%; justify-content: center; margin-top: 52px; }
}

@media (prefers-reduced-motion: reduce) {
  .social-buttons a,
  .visit-reserve { transition: none; }
}
