/* Prefer complete phrases; headings stay balanced across desktop and phones. */
h1, h2, .directions-heading h3 { text-wrap: balance; }
.section-description,
.event-description,
.event-note,
.price-caption,
.terms-foot,
.faq-list details>p { text-wrap: pretty; }
.membership-intro>span { display: block; }
.membership-intro .phrase { display: inline-block; }
.membership-intro .intro-scope { margin-top: 5px; }

.directions-block { margin-top: 56px; padding-top: 40px; }
.directions-heading h3 { font: 400 30px/1.35 var(--title); }
.directions-heading>p { margin-top: 12px; color: #b8b8af; font-size: 14px; }
.building-note { margin: 28px auto; display: flex; align-items: center; justify-content: center; gap: 18px; flex-wrap: wrap; }
.building-note>span { color: #b8b8af; font-size: 13px; }
.building-note>span:first-child { color: #e3e3da; }
.building-note>strong { color: var(--yellow); font-size: 22px; line-height: 1.5; }
.directions-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.route-card { display: flex; flex-direction: column; align-items: center; padding: 26px 20px; background: #151512; border: 1px solid #3b3b32; border-radius: 8px; }
.route-label { color: var(--yellow); font-size: 12px; font-weight: 700; }
.route-card h4 { margin: 8px 0 20px; font-size: 20px; line-height: 1.5; }
.route-description { color: #c2c2b9; font-size: 14px; line-height: 1.9; margin-bottom: 26px; text-wrap: pretty; }
.route-description>span { display: block; }
.bus-list { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; list-style: none; padding: 0; margin: 0 0 26px; }
.bus-list>li { font-size: 14px; font-weight: 700; line-height: 1.4; padding: 7px 12px; border: 1px solid #5a5a44; border-radius: 5px; color: #e6e6d9; background: #222218; }
.route-arrival { margin-top: auto; padding-top: 18px; width: 100%; border-top: 1px solid var(--line); }
.route-arrival>strong { font-size: 16px; color: var(--yellow); }
.route-arrival>span { display: block; font-size: 14px; margin-top: 4px; color: #c2c2b9; }
@media(max-width:1000px) {
  .directions-grid { gap: 12px; }
  .route-card { padding: 24px 14px; }
  .route-card h4 { font-size: 18px; }
}
@media(max-width:640px) {
  .membership-intro { line-height: 1.9; }
  .membership-intro .phrase { display: block; }
  .membership-intro .intro-scope { margin-top: 10px; }
  .directions-block { margin-top: 36px; padding-top: 30px; }
  .directions-heading h3 { font-size: 27px; }
  .directions-heading>p { font-size: 14px; line-height: 1.8; }
  .building-note { display: block; margin-block: 24px; }
  .building-note>span, .building-note>strong { display: block; }
  .building-note>strong { margin: 5px 0; font-size: 23px; }
  .building-note>span:last-child { font-size: 13px; }
  .directions-grid { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .route-card { padding: 24px 18px; }
  .route-card h4 { font-size: 20px; margin-bottom: 16px; }
  .route-description { font-size: 14px; margin-bottom: 20px; }
  .bus-list { margin-bottom: 20px; }
}

.directions-welcome { display: inline-block; }
.welcome-heart { font-size: 18px; vertical-align: -1px; }
.route-label { display: inline-flex; align-items: center; gap: 7px; }
.route-icon { font-size: 18px; line-height: 1; }
