/* Visit hub. Shared hours/status, native links and FAQ; no page JavaScript. */
@layer components {
  .mp-visit { --_visit-light: var(--mp-white); --_visit-hover: var(--mp-green-text); --_visit-muted: var(--mp-grey); --mp-color-text-2: color-mix(in srgb, var(--mp-color-text) 80%, var(--mp-color-surface)); }
  .mp-visit > * { grid-column: wide; }
  .mp-visit .mp-ride-plan { --mp-color-surface-2: var(--mp-white); }
  .mp-visit p { max-inline-size: none; }
  .mp-visit .mp-btn { max-inline-size: 100%; white-space: normal; text-align: center; }
  .mp-prose > .mp-visit--opening { padding-block: var(--mp-space-m) var(--mp-space-xl); }
  .mp-visit__opening { isolation: isolate; }
  .mp-visit__intro { position: relative; margin-block-start: calc(-1 * var(--mp-space-2xl)); min-inline-size: 0; }
  .mp-visit__intro .mp-hero { min-block-size: 0; margin: 0; border-radius: 0; background: none; color: inherit; overflow: visible; }
  .mp-visit .mp-visit__intro .mp-hero__body { padding: 0; background: none; }
  .mp-visit .mp-visit__intro .mp-hero__title { font-size: var(--mp-fs-display-xl); max-inline-size: none; }
  .mp-visit__intro .mp-hero__lede { max-inline-size: 38em; color: var(--mp-color-text-2); }
  .mp-visit__intro .mp-hero__body > .mp-eyebrow { color: var(--mp-color-text); }
  .mp-visit__intro .mp-hero__actions { margin-block-start: var(--mp-space-s); }
  .mp-visit__photo { margin: 0; min-inline-size: 0; }
  .mp-visit__image { display: block; inline-size: 100%; block-size: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--mp-radius-lg); }
  .mp-visit__photo--hero { position: relative; }
  .mp-visit__photo--hero::after { content: ''; position: absolute; inset: 0; background: linear-gradient(to bottom, transparent 48%, color-mix(in srgb, var(--mp-color-surface) 75%, transparent) 78%, var(--mp-color-surface)); pointer-events: none; }
  .mp-visit__photo--hero .mp-visit__image { aspect-ratio: 1; object-position: 50% 0%; }
  /* Phone (Nick 2026-11-05): the panorama breaks out to the screen edges, square and flush under
     the header; the intro stays on the page gutter, a gutter in from the photo's edge. */
  @media (width < 48rem) {
    .mp-prose > .mp-visit--opening { padding-block-start: 0; }
    .mp-visit__photo.mp-visit__photo--hero { margin-inline: calc(-1 * var(--mp-gutter)); } /* over .mp-visit__photo's margin: 0 */
    .mp-visit__photo--hero .mp-visit__image { border-radius: 0; }
  }
  .mp-visit__facts { display: grid; gap: var(--mp-space-m); padding-block: var(--mp-space-m); border-block: var(--mp-border) solid var(--mp-color-line); }
  .mp-visit--opening > .mp-visit__facts { margin-block-start: var(--mp-space-l); }
  .mp-visit__facts > div { display: grid; gap: var(--mp-space-3xs); }
  .mp-visit__facts strong { font: var(--mp-weight-ui) var(--mp-fs-lead) / var(--mp-lh-snug) var(--mp-font-ui); }
  .mp-visit__facts span { font-size: var(--mp-fs-sm); color: var(--mp-color-text-2); }
  .mp-visit__label { text-transform: uppercase; letter-spacing: var(--mp-track-caps); font-weight: var(--mp-weight-ui); }
  .mp-visit__nav { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--mp-border); border: var(--mp-border) solid var(--mp-color-line); border-radius: var(--mp-radius-md); overflow: hidden; background: var(--mp-color-line); }
  .mp-visit--opening > .mp-visit__nav { margin-block-start: var(--mp-space-m); }
  .mp-visit__nav a { display: flex; align-items: center; justify-content: space-between; gap: var(--mp-space-xs); padding: var(--mp-space-s); min-block-size: var(--mp-tap); background: var(--mp-ink); color: var(--_visit-light); font-weight: var(--mp-weight-ui); font-size: var(--mp-fs-sm); text-decoration: none; }
  .mp-visit__nav a:hover, .mp-visit__nav a:focus-visible { background: var(--_visit-hover); }
  .mp-visit__nav a:focus-visible { outline-color: var(--_visit-light); outline-offset: calc(-1 * var(--mp-space-3xs)); }
  .mp-visit__head { display: grid; gap: var(--mp-space-m); margin-block-end: var(--mp-space-l); }
  .mp-visit__head p { margin: 0; }
  .mp-visit__head .mp-eyebrow { margin-block-end: var(--mp-space-xs); }
  .mp-visit__title { margin: 0; font-size: var(--mp-fs-display-m); }
  .mp-visit__lede { font-size: var(--mp-fs-lead); color: var(--mp-color-text-2); }
  .mp-visit__choices { display: grid; gap: var(--mp-space-m); }
  .mp-visit__choice { display: flex; flex-direction: column; align-items: start; min-inline-size: 0; padding: var(--mp-space-m); background: var(--_visit-light); border: var(--mp-border) solid var(--mp-color-line); border-radius: var(--mp-radius-lg); }
  .mp-visit__choice h3, .mp-visit__checklist h3, .mp-visit__arrival h3 { font-size: var(--mp-fs-display-xs); margin: 0; }
  .mp-visit__choice .mp-eyebrow { margin-block: 0 var(--mp-space-xs); }
  .mp-visit__choice p { margin-block: var(--mp-space-s) 0; }
  .mp-visit__choice > .mp-visit__link { margin-block-start: auto; padding-block-start: var(--mp-space-m); }
  .mp-visit__rate strong { font: var(--mp-weight-display) var(--mp-fs-display-2xs) / var(--mp-lh-tight) var(--mp-font-display); }
  .mp-visit__note { font-size: var(--mp-fs-sm); color: var(--mp-color-text-2); }
  .mp-visit__link { display: inline-flex; align-items: center; min-block-size: var(--mp-tap); font-weight: var(--mp-weight-ui); text-underline-offset: .22em; }
  .mp-visit__more { margin-block: var(--mp-space-l) 0; }
  .mp-visit__practical { display: grid; gap: var(--mp-space-s) var(--mp-space-xl); border-block-start: var(--mp-border) solid var(--mp-color-line); padding-block-start: var(--mp-space-l); }
  .mp-visit__practical p { margin: 0; }
  .mp-visit__feature { display: grid; align-items: center; gap: var(--mp-space-l) var(--mp-space-xl); }
  .mp-visit__copy { display: grid; gap: var(--mp-space-s); min-inline-size: 0; }
  .mp-visit__copy > * { margin: 0; }
  .mp-visit__address { font-style: normal; font-size: var(--mp-fs-lead); line-height: var(--mp-lh-body); }
  .mp-visit__actions { display: flex; flex-wrap: wrap; gap: var(--mp-space-xs); }
  .mp-visit__map { background: var(--_visit-light); color: var(--mp-ink); padding: var(--mp-space-s); border-radius: var(--mp-radius-lg); min-inline-size: 0; }
  .mp-visit__map .mp-visit__image { aspect-ratio: auto; object-fit: contain; }
  .mp-visit__map p { margin: var(--mp-space-s) var(--mp-space-xs) var(--mp-space-xs); font-size: var(--mp-fs-sm); }
  .mp-visit__map a { color: inherit; }
  .mp-visit__checklist { display: grid; gap: var(--mp-space-l); }
  .mp-visit__checklist article { border-block-start: var(--mp-border) solid var(--mp-color-line); padding-block-start: var(--mp-space-m); }
  .mp-visit__number { display: block; margin-block-end: var(--mp-space-s); color: var(--mp-color-accent-text); font: var(--mp-weight-display) var(--mp-fs-display-xs) / var(--mp-lh-tight) var(--mp-font-display); }
  .mp-visit__checklist p { margin-block: var(--mp-space-xs); }
  .mp-visit > .mp-visit__arrival { margin-block-start: var(--mp-space-xl); }
  .mp-visit__arrival { display: grid; gap: var(--mp-space-l); padding: var(--mp-space-l); border-radius: var(--mp-radius-lg); background: var(--_visit-muted); }
  .mp-visit__arrival p { margin-block: 0 var(--mp-space-s); }
  .mp-visit__arrival p:last-child { margin-block-end: 0; }
  .mp-visit__amenities { display: grid; gap: var(--mp-space-l); padding-block-start: var(--mp-space-l); border-block-start: var(--mp-border) solid var(--mp-color-line); }
  .mp-visit > .mp-visit__amenities { margin-block-start: var(--mp-space-xl); }
  .mp-visit__amenities h3 { font-size: var(--mp-fs-display-2xs); margin: 0; }
  .mp-visit__amenities p { margin-block: var(--mp-space-xs) 0; }
  @media (min-width: 48rem) {
    .mp-visit__photo--hero .mp-visit__image { aspect-ratio: 3; }
    .mp-visit__intro { margin-block-start: calc(-1 * var(--mp-space-3xl)); padding-inline: var(--mp-space-l); }
    .mp-visit__facts, .mp-visit__amenities { grid-template-columns: repeat(3,minmax(0,1fr)); }
    .mp-visit__nav { grid-template-columns: repeat(3,minmax(0,1fr)); }
    .mp-visit__checklist { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .mp-visit__practical { grid-template-columns: repeat(2,minmax(0,1fr)); }
  }
  @media (min-width: 64rem) {
    .mp-visit__choices { grid-template-columns: repeat(3,minmax(0,1fr)); }
    .mp-visit__feature { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .mp-visit__head { grid-template-columns: 1.1fr 1fr; align-items: end; }
    .mp-visit__arrival { grid-template-columns: 1fr 1.4fr; }
    .mp-visit__nav { grid-template-columns: repeat(6,minmax(0,1fr)); }
  }
}
@layer schemes {
  .mp-visit__intro .mp-hero { background: none; color-scheme: light; --mp-color-surface: var(--mp-white); --mp-color-surface-2: var(--mp-tint); --mp-color-text: var(--mp-ink); --mp-color-text-2: var(--mp-ink-2); --mp-color-accent-text: var(--mp-green-text); --mp-color-line: var(--mp-hairline); --mp-color-line-strong: var(--mp-stone); --mp-color-line-hover: var(--mp-ink); --mp-color-focus: var(--mp-ink); }
}
