.compact-contact-hero {
  padding: 70px 0 78px;
}

.compact-contact-hero h1 { margin-bottom: 16px; }

.visit-section { padding: 32px 0 90px; }

.visit-layout {
  display: grid;
  grid-template-columns: minmax(380px, .82fr) minmax(0, 1.18fr);
  gap: 26px;
  align-items: start;
}

.visit-layout .enquiry-card { padding: 38px; border-radius: 16px; }
.directions-panel { min-width: 0; padding: 28px; background: #f4eee4; border-radius: 16px; box-shadow: var(--shadow); }
.directions-heading { display: flex; align-items: start; justify-content: space-between; gap: 20px; margin-bottom: 20px; }
.directions-heading h2 { margin: 5px 0 10px; font-size: clamp(1.7rem, 3vw, 2.5rem); }
.directions-heading p { margin-bottom: 0; color: #655e54; }
.directions-heading a { flex: 0 0 auto; color: #9d342a; font-size: .75rem; font-weight: 700; }

.direction-step { margin: 0 0 18px; overflow: hidden; background: white; border: 1px solid #d3c8b8; border-radius: 12px; }
.direction-step img { display: block; width: 100%; max-width: 100%; height: 280px; object-fit: cover; }
.direction-step.route-image img { height: 360px; object-fit: contain; background: #d8d1c6; }
.direction-step figcaption { display: grid; grid-template-columns: 34px 1fr; gap: 10px; align-items: start; padding: 14px 16px; }
.direction-step figcaption b { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: #b83a2e; color: white; }
.direction-step figcaption span { display: grid; color: #6a6258; font-size: .76rem; }
.direction-step figcaption strong { color: #211f1c; font-size: .86rem; }

.dojo-note { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 8px; }
.dojo-note > div { padding: 18px; border-radius: 10px; background: #20231f; color: white; }
.dojo-note strong { font-size: .82rem; }
.dojo-note p { margin: 5px 0 0; color: #bcc4bf; font-size: .73rem; }
.lost-link { display: block; margin-top: 12px; padding: 13px; border-radius: 10px; background: #e4d8c7; color: #8e3028; text-align: center; text-decoration: none; font-weight: 700; font-size: .78rem; }

.contact-details { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 30px; padding-top: 24px; border-top: 1px solid var(--line); }
.contact-details > div { display: grid; }
.contact-details small { color: var(--muted); text-transform: uppercase; letter-spacing: .08em; }
.contact-details a { font-size: .8rem; }

@media (max-width: 950px) {
  .visit-layout { grid-template-columns: 1fr; }
  .directions-panel { order: -1; }
  .visit-layout .enquiry-card { padding: 36px; }
}

@media (max-width: 600px) {
  body { overflow-x: hidden; }
  .compact-contact-hero { padding: 48px 0 58px; }
  .compact-contact-hero h1 { font-size: clamp(2.65rem, 14vw, 3.5rem); line-height: 1.03; }
  .visit-section { padding-top: 24px; }
  .visit-layout { width: 100%; min-width: 0; }
  .directions-panel, .visit-layout .enquiry-card { min-width: 0; padding: 20px; border-radius: 12px; }
  .directions-heading { min-width: 0; flex-direction: column; }
  .directions-heading h2, .directions-heading p { overflow-wrap: anywhere; }
  .direction-step img { height: 220px; }
  .direction-step.route-image img { height: 390px; }
  .dojo-note, .contact-details { grid-template-columns: 1fr; }
  .choice-row { flex-wrap: wrap; }
}
