/* Independent behaviour additions; original page CSS and typography remain intact. */
.x [hidden] { display: none !important; }
.x .migration-event-toggle, .x .migration-more-events {
  font: inherit; background: none; border: 0; padding: 0; cursor: pointer;
}
.x .migration-event-toggle:focus-visible, .x .migration-more-events:focus-visible,
.migration-gallery button:focus-visible { outline: 3px solid #607e99; outline-offset: 4px; }
.x .migration-event-description:not([data-mobile-description]):not(.is-expanded) {
  display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
.migration-pdf-preview { display: block; width: 100%; height: auto; max-width: 1100px; margin: 0 auto; }
.migration-audio-player { width: min(100%, 600px) !important; height: 90px !important; display: block !important; margin: 0 auto; border: 0; }
.migration-gallery { position: relative; }
.migration-gallery-track {
  display: flex; align-items: center; gap: 5px; overflow-x: auto; scroll-snap-type: x mandatory;
  scrollbar-width: thin; padding-bottom: 10px; overscroll-behavior-x: contain;
}
.migration-gallery-track::before, .migration-gallery-track::after { content: ""; flex: 0 0 35%; }
.migration-gallery-photo { flex: 0 0 auto; height: min(600px, 70vh); border: 0; padding: 0; background: transparent; scroll-snap-align: center; cursor: zoom-in; opacity: .35; transition: opacity .15s; }
.migration-gallery-photo.is-selected { opacity: 1; }
.migration-gallery-photo img { display: block; height: 100%; width: auto; max-width: 88vw; object-fit: contain; }
.migration-gallery-thumbs { display: flex; justify-content: flex-start; gap: 5px; margin: 15px auto 0; padding: 5px 0; overflow-x: auto; max-width: 100%; }
.migration-gallery-thumbs button { flex: 0 0 auto; padding: 0; border: 2px solid transparent; background: transparent; opacity: .65; cursor: pointer; }
.migration-gallery-thumbs button[aria-pressed="true"] { border-color: #111; opacity: 1; }
.migration-gallery-thumbs img { display: block; width: 60px; height: 75px; object-fit: cover; }
.migration-gallery-arrow { position: absolute; top: min(280px, 32vh); border: 0; border-radius: 50%; width: 44px; height: 44px; font: 32px/1 Arial,sans-serif; color: #fff; background: #111b; cursor: pointer; }
.migration-gallery-arrow.previous { left: 8px; }
.migration-gallery-arrow.next { right: 8px; }
.migration-gallery-pause { display: block; margin: 12px auto 0; padding: 6px 12px; border: 1px solid #777; border-radius: 4px; color: #111; background: transparent; font: inherit; font-size: 13px; cursor: pointer; }
.migration-gallery-pause:disabled { opacity: .65; cursor: default; }
.migration-lightbox { padding: 0; border: 0; background: #101010; color: white; width: 100vw; height: 100dvh; max-width: 100vw; max-height: 100dvh; }
.migration-lightbox::backdrop { background: #000e; }
.migration-lightbox[open] { display: flex; flex-direction: column; align-items: center; justify-content: center; }
.migration-lightbox img { width: calc(100% - 100px); height: calc(100% - 95px); object-fit: contain; }
.migration-lightbox button { position: absolute; border: 1px solid #fff6; border-radius: 50%; width: 44px; height: 44px; color: white; background: #222; cursor: pointer; font: 27px/1 Arial,sans-serif; }
.migration-lightbox button[data-close] { top: 15px; right: 15px; }
.migration-lightbox button[data-prev] { top: 50%; left: 10px; }
.migration-lightbox button[data-next] { top: 50%; right: 10px; }
.migration-lightbox p { margin: 8px; font: 14px/1.4 Arial,sans-serif; }
.x .migration-contact-status { padding: 12px; margin: 0 0 24px; border: 1px solid #888; background: #f5f5f5; font-size: 14px; line-height: 1.5; color: #222; }
.x .migration-contact-status[data-state="error"] { border-color: #9b2929; }
.x .migration-contact-status[data-state="accepted"] { border-color: #397344; }
.x .migration-field-error { margin: 6px 0 0; color: #9b2929; font-size: 14px; line-height: 1.4; }
.x .migration-contact [aria-invalid="true"] { border-color: #9b2929; }
.x .migration-contact [data-contact-submit]:disabled { opacity: .65; cursor: wait; }
.x .migration-contact-trap { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); clip-path: inset(50%); white-space: nowrap; }
.x .migration-contact label { top: 5px !important; font-size: 12px !important; transform: none !important; }
.x .migration-contact input:not([name="website"]) { padding-top: 24px !important; }
.migration-media-shell { position: relative; }
.migration-media-shell--audio { width: min(100%, 600px); height: 90px; margin: 0 auto; }
.migration-media-gate { position: absolute; inset: 0; max-height: 620px; box-sizing: border-box; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; padding: 8px; overflow: auto; background: #111; color: #fff; text-align: center; font: 13px/1.3 'Open Sans', arial, sans-serif; }
.migration-media-gate p { margin: 0; max-width: 38em; }
.migration-media-gate a { color: #fff; text-decoration: underline; }
.migration-media-gate button, .migration-media-unload { border: 1px solid #eee; border-radius: 4px; padding: 7px 12px; background: #222; color: #fff; font: inherit; cursor: pointer; }
.migration-media-gate button:focus-visible, .migration-media-gate a:focus-visible, .migration-media-unload:focus-visible { outline: 3px solid #b5d7f5; outline-offset: 3px; }
.migration-media-gate--audio { flex-direction: row; flex-wrap: wrap; gap: 4px 8px; padding: 4px 8px; font-size: 11px; }
.migration-media-gate--audio p { flex-basis: 100%; }
.migration-media-gate--audio button { padding: 4px 9px; }
.migration-media-unload { position: absolute; top: 6px; right: 6px; z-index: 1; background: #111d; font: 11px/1.3 'Open Sans', arial, sans-serif; padding: 4px 7px; }
@media (prefers-reduced-motion: reduce) { .migration-gallery-photo { transition: none; } }
