/* EFI Archive 0.5.3: the documentary page's timeline (enqueued on that page only, after efi-archive.css).
   Every selector starts .efia-root.efia-root (0,2,0 or more), above the Elementor kit's .elementor-kit-6 a / button
   rules (0,1,1) and Astra's button rules; no body-class or kit selectors and no !important.
   Colours (all on white unless stated): navy #171754 16.9:1, text #4B4F58 8.1:1, grey #62666E 5.8:1, purple #4F4FAA
   6.9:1 (5.9:1 on mist #EDF0F7), white on navy 16.9:1, white on purple 6.9:1; focus ring purple 3px, 6.9:1 on white. */

/* ---- the list: with and without JavaScript ---- */
.efia-root.efia-root .efia-tl__head { margin: .15em 0 .2em; font-size: 18px; line-height: 1.35; color: var(--efia-navy); }
.efia-root.efia-root .efia-tl__head:focus { outline: 3px solid var(--efia-purple); outline-offset: 2px; }
.efia-root.efia-root .efia-tl__head:focus:not(:focus-visible) { outline: none; }
.efia-root.efia-root .efia-tl__ph { font-size: 12px; vertical-align: middle; font-weight: 700; }
.efia-root.efia-root .efia-tl__kind { margin: 0 0 0 6px; vertical-align: 1px; }
.efia-root.efia-root .efia-tl__fig { margin: .7em 0 0; max-width: 100%; }
.efia-root.efia-root .efia-tl__fig picture { display: block; }
.efia-root.efia-root .efia-tl__fig img { display: block; max-width: 100%; height: auto; border: 1px solid #C9CFDC; border-radius: 4px; background: var(--efia-mist); }
/* 0.5.4: optional second image (portrait) beside the page crop; wraps under it on narrow screens */
.efia-root.efia-root .efia-tl__figs { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 12px 16px; margin: .7em 0 0; }
.efia-root.efia-root .efia-tl__figs > .efia-tl__fig { margin: 0; }
.efia-root.efia-root .efia-tl__figs > .efia-tl__fig:first-child { flex: 1 1 280px; min-width: 0; }
.efia-root.efia-root .efia-tl__fig--person { flex: 0 0 auto; max-width: 200px; }
.efia-root.efia-root .efia-tl__credit { margin: .3em 0 0; font-size: 13px; line-height: 1.4; color: #62666E; }
/* 0.5.5: People-section thumbnail beside a person's entry (the text column keeps its width; no JS needed) */
.efia-root.efia-root .efia-eug__entry--thumb { display: grid; grid-template-columns: 74px minmax(0, 1fr); gap: 0 14px; align-items: start; }
.efia-root.efia-root .efia-eug__thumb { display: block; width: 74px; }
.efia-root.efia-root .efia-eug__thumb img { display: block; box-sizing: content-box; max-width: 72px; height: auto; border: 1px solid #C9CFDC; border-radius: 3px; background: var(--efia-mist); }
.efia-root.efia-root .efia-eug__entry .efia-eug__credit { margin: .2em 0 0; font-size: 13px; line-height: 1.4; color: #62666E; }
.efia-root.efia-root .efia-tl > li[hidden], .efia-root.efia-root .efia-tlx-on .efia-tl > li[hidden] { display: none; }

/* ---- interactive controls (built by efi-archive-timeline.js) ---- */
.efia-root.efia-root .efia-tlx { margin: 0 0 14px; }
.efia-root.efia-root .efia-tlx__filters { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0 0 8px; }
.efia-root.efia-root .efia-tlx__flabel { font-weight: 700; color: var(--efia-navy); margin-right: 2px; }
.efia-root.efia-root .efia-tlx__hint { margin: 0 0 10px; font-size: 14px; line-height: 1.5; color: #62666E; }
.efia-root.efia-root .efia-tlx button.efia-tlx__chip,
.efia-root.efia-root .efia-tlx button.efia-tlx__nav { font: inherit; font-size: 15px; font-weight: 700; font-style: normal; line-height: 1.3; letter-spacing: normal; text-transform: none; padding: 6px 14px; margin: 0; border: 2px solid var(--efia-navy); border-radius: 50px; box-shadow: none; text-shadow: none; cursor: pointer; background: #fff; color: var(--efia-navy); }
.efia-root.efia-root .efia-tlx button.efia-tlx__chip[aria-pressed="true"] { background: var(--efia-navy); color: #fff; }
.efia-root.efia-root .efia-tlx button.efia-tlx__chip[aria-pressed="false"] .efia-tlx__check { visibility: hidden; }
.efia-root.efia-root .efia-tlx button.efia-tlx__chip[aria-pressed="false"] { text-decoration: line-through; text-decoration-thickness: 2px; }
.efia-root.efia-root .efia-tlx button.efia-tlx__chip:hover, .efia-root.efia-root .efia-tlx button.efia-tlx__nav:hover { background: var(--efia-mist); color: var(--efia-navy); border-color: var(--efia-navy); }
.efia-root.efia-root .efia-tlx button.efia-tlx__chip[aria-pressed="true"]:hover { background: var(--efia-purple); color: #fff; border-color: var(--efia-navy); }
.efia-root.efia-root .efia-tlx button.efia-tlx__chip:focus, .efia-root.efia-root .efia-tlx button.efia-tlx__nav:focus { outline: 3px solid var(--efia-purple); outline-offset: 2px; border-color: var(--efia-navy); }
.efia-root.efia-root .efia-tlx button.efia-tlx__chip:focus:not(:focus-visible), .efia-root.efia-root .efia-tlx button.efia-tlx__nav:focus:not(:focus-visible) { outline: none; }
.efia-root.efia-root .efia-tlx button.efia-tlx__chip:not(:hover):focus { background: #fff; color: var(--efia-navy); }
.efia-root.efia-root .efia-tlx button.efia-tlx__chip[aria-pressed="true"]:not(:hover):focus { background: var(--efia-navy); color: #fff; }
.efia-root.efia-root .efia-tlx button.efia-tlx__nav:not(:hover):focus { background: #fff; color: var(--efia-navy); }
.efia-root.efia-root .efia-tlx button.efia-tlx__nav[aria-disabled="true"],
.efia-root.efia-root .efia-tlx button.efia-tlx__nav[aria-disabled="true"]:hover,
.efia-root.efia-root .efia-tlx button.efia-tlx__nav[aria-disabled="true"]:focus { background: #fff; color: #62666E; border-color: #62666E; cursor: default; }
.efia-root.efia-root .efia-tlx__bar { display: flex; align-items: center; gap: 8px; }
.efia-root.efia-root .efia-tlx button.efia-tlx__nav { flex: 0 0 auto; white-space: nowrap; }
.efia-root.efia-root .efia-tlx__bar.is-empty { display: none; }
.efia-root.efia-root .efia-tlx__viewport { flex: 1 1 auto; min-width: 0; overflow-x: auto; overflow-y: hidden; overscroll-behavior-x: contain; cursor: grab; border: 1px solid #C9CFDC; border-radius: 8px; background: #fff; scrollbar-width: thin; }
.efia-root.efia-root .efia-tlx__viewport.is-dragging { cursor: grabbing; user-select: none; }
.efia-root.efia-root .efia-tlx__rail { display: flex; width: max-content; padding: 8px 12px 6px 0; }
.efia-root.efia-root .efia-tlx__decade { position: relative; display: flex; align-items: flex-start; min-width: 88px; padding: 30px 10px 4px 12px; border-left: 2px solid #62666E; }
.efia-root.efia-root .efia-tlx__decade::after { content: ""; position: absolute; left: 0; right: 0; top: 47px; height: 3px; background: var(--efia-sky); z-index: 0; }
.efia-root.efia-root .efia-tlx__tick { position: absolute; top: 4px; left: 8px; font-size: 14px; font-weight: 700; line-height: 1.4; color: var(--efia-navy); }
.efia-root.efia-root .efia-tlx__decade--empty .efia-tlx__tick { color: #62666E; font-weight: 400; }
.efia-root.efia-root .efia-tlx__stop { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: center; gap: 6px; min-width: 44px; padding: 6px 4px 5px; margin: 0 1px; border-radius: 6px; font-size: 13px; line-height: 1.2; color: var(--efia-text); background: transparent; cursor: pointer; user-select: none; }
.efia-root.efia-root .efia-tlx__stop[hidden] { display: none; }
.efia-root.efia-root .efia-tlx__stop:hover { background: var(--efia-mist); color: var(--efia-navy); }
.efia-root.efia-root .efia-tlx__stop.is-active { background: var(--efia-navy); color: #fff; font-weight: 700; }
.efia-root.efia-root .efia-tlx__stop:focus { outline: 3px solid var(--efia-purple); outline-offset: 2px; }
.efia-root.efia-root .efia-tlx__stop:focus:not(:focus-visible) { outline: none; }
.efia-root.efia-root .efia-tlx__dot { display: block; width: 14px; height: 14px; border-radius: 50%; box-sizing: border-box; background: var(--efia-purple); border: 2px solid #fff; box-shadow: 0 0 0 1px var(--efia-purple); }
.efia-root.efia-root .efia-tlx__stop--aft .efia-tlx__dot { border-radius: 2px; transform: rotate(45deg) scale(.9); background: var(--efia-link-green); box-shadow: 0 0 0 1px var(--efia-link-green); }
.efia-root.efia-root .efia-tlx__stop--context .efia-tlx__dot { background: #fff; border: 3px solid var(--efia-purple); box-shadow: none; }
.efia-root.efia-root .efia-tlx__stop.is-active .efia-tlx__dot { border-color: #fff; box-shadow: 0 0 0 2px #fff; }
.efia-root.efia-root .efia-tlx__empty { margin: 0 0 1em; padding: 10px 14px; border-left: 4px solid var(--efia-purple); background: var(--efia-mist); color: var(--efia-navy); }

/* ---- cards: on wider screens only the selected stop's list item is shown, as its card ---- */
.efia-root.efia-root .efia-tlx-on .efia-tl { border-left: 0; }
.efia-root.efia-root .efia-tlx-on .efia-tl__entry { padding: 16px 18px; margin: 0 0 12px; border: 1px solid #C9CFDC; border-left: 4px solid var(--efia-purple); border-radius: 8px; background: #fff; }
.efia-root.efia-root .efia-tlx-on .efia-tl__entry--aft { border-left-color: var(--efia-link-green); }
.efia-root.efia-root .efia-tlx-on .efia-tl__entry::before { display: none; }
@media (min-width: 601px) {
	.efia-root.efia-root .efia-tlx-on .efia-tl > li:not(.is-active) { display: none; }
	.efia-root.efia-root .efia-tlx-on .efia-tl__entry.is-active:not([hidden]) { min-height: 12em; }
}
/* ---- phones: no rail; the list itself is a vertical, swipeable (scroll-snapping) list ---- */
@media (max-width: 600px) {
	.efia-root.efia-root .efia-tlx__bar, .efia-root.efia-root .efia-tlx__hint { display: none; }
	.efia-root.efia-root .efia-tlx-on .efia-tl { max-height: 78vh; overflow-y: auto; overscroll-behavior-y: contain; scroll-snap-type: y proximity; padding: 2px; border: 1px solid #C9CFDC; border-radius: 8px; }
	.efia-root.efia-root .efia-tlx-on .efia-tl:focus { outline: 3px solid var(--efia-purple); outline-offset: 2px; }
	.efia-root.efia-root .efia-tlx-on .efia-tl:focus:not(:focus-visible) { outline: none; }
	.efia-root.efia-root .efia-tlx-on .efia-tl__entry { scroll-snap-align: start; margin: 0 0 8px; }
}
/* ---- motion: transitions and smooth scrolling only for users who have not asked for reduced motion ---- */
@media (prefers-reduced-motion: no-preference) {
	.efia-root.efia-root .efia-tlx__viewport, .efia-root.efia-root .efia-tlx-on .efia-tl { scroll-behavior: smooth; }
	.efia-root.efia-root .efia-tlx__stop, .efia-root.efia-root .efia-tlx button.efia-tlx__chip, .efia-root.efia-root .efia-tlx button.efia-tlx__nav { transition: background-color .15s, color .15s; }
}
@media (prefers-reduced-motion: reduce) {
	.efia-root.efia-root .efia-tlx__viewport, .efia-root.efia-root .efia-tlx-on .efia-tl { scroll-behavior: auto; }
	.efia-root.efia-root .efia-tlx__stop, .efia-root.efia-root .efia-tlx button.efia-tlx__chip, .efia-root.efia-root .efia-tlx button.efia-tlx__nav { transition: none; }
}
