/* Selected A2 journey: integrated into the EU index, using existing brand tokens. */
.euj { padding:42px 0 35px; background:color-mix(in srgb,var(--paper-sunk) 38%,var(--paper)); }
.euj-heading { display:flex; align-items:center; justify-content:space-between; gap:25px; margin-bottom:14px; }
.euj-heading h2 { margin:0 0 10px; font:600 clamp(28px,3.1vw,39px)/1.1 var(--font-display); }
.euj-heading p { color:var(--ink-3); font-size:15px; line-height:1.55; margin:0; }
.euj-stepper { display:flex; gap:7px; flex:none; }
.euj-stepper button { width:44px; height:44px; border:1px solid var(--line-strong); border-radius:50%; display:grid; place-items:center; background:transparent; color:var(--ink); cursor:pointer; transition:background .2s,border-color .2s; }
.euj-stepper button:disabled { opacity:.3; cursor:default; }
.euj-stepper button:hover:not(:disabled) { border-color:var(--ink); background:var(--paper-sunk); }
.euj-stepper svg,.euj-undated-link svg { width:26px; height:24px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; flex:none; }
.euj button,.euj a { -webkit-tap-highlight-color:transparent; }
.euj button:focus-visible,.euj a:focus-visible { outline:2px solid var(--red-ink); outline-offset:4px; }
.euj-scroll { overflow-x:auto; padding:8px 5px 13px; margin:0 -5px; scrollbar-width:thin; scrollbar-color:var(--line-strong) transparent; overscroll-behavior-x:contain; }
.euj-rail { position:relative; min-width:1120px; height:300px; isolation:isolate; }
.euj-curve { position:absolute; inset:0; width:100%; height:300px; fill:none; pointer-events:none; overflow:visible; }
.euj-curve__base { stroke:var(--line-strong); stroke-width:1.5; vector-effect:non-scaling-stroke; }
.euj-curve__trace { stroke:var(--red); stroke-width:2; stroke-linecap:round; stroke-dasharray:34 966; animation:euj-path-trace 8s linear infinite; vector-effect:non-scaling-stroke; }
.euj-milestone { text-align:center; text-decoration:none; position:absolute; left:var(--x); top:calc(var(--y) - 58px); transform:translateX(-50%); width:140px; display:grid; grid-template-rows:42px 32px auto; justify-items:center; align-items:center; padding:0 4px; border:0; background:transparent; color:var(--ink-3); cursor:pointer; z-index:1; }
.euj-milestone__year { display:grid; align-items:center; padding:0 12px; height:38px; border-radius:22px; font:600 25px/1 var(--font-display); transition:color .25s,background .25s; }
.euj-node { display:block; width:10px; height:10px; border:1.5px solid var(--ink-4); border-radius:50%; background:var(--paper-sunk); transition:background .25s,box-shadow .25s,transform .25s; }
.euj-milestone__title { font-size:12px; line-height:1.45; max-width:132px; margin-top:5px; overflow-wrap:anywhere; }
.euj-milestone.is-highlighted { color:var(--ink); }
.euj-milestone.is-highlighted .euj-milestone__year { background:var(--red-ink); color:white; }
.euj-milestone.is-highlighted .euj-node { background:var(--red); border-color:var(--red); box-shadow:0 0 0 5px var(--paper),0 0 0 6px var(--red-ink); }
.euj-milestone:hover .euj-node { transform:scale(1.2); }
.euj-milestone:hover:not(.is-highlighted) .euj-milestone__year { color:var(--red-ink); }
.euj-undated { display:grid; grid-template-columns:25% minmax(0,1fr); align-items:center; gap:35px; border-top:1px solid var(--line); padding-top:14px; margin-top:10px; }
.euj-undated>span { font-size:12px; color:var(--ink-3); }
.euj-undated-link { text-decoration:none; width:100%; display:flex; justify-content:space-between; align-items:center; gap:20px; min-height:44px; padding:5px 0; background:none; border:0; color:var(--ink-2); text-align:left; font:400 13px/1.5 var(--font-sans); cursor:pointer; }
.euj-undated-link:hover { color:var(--red-ink); }
.euj:not(.is-visible) *, .euj:not(.is-visible) *::before, .euj:not(.is-visible) *::after,
.euj-page-hidden .euj *, .euj-page-hidden .euj *::before, .euj-page-hidden .euj *::after { animation-play-state:paused!important; }
@keyframes euj-path-trace { from{stroke-dashoffset:0} to{stroke-dashoffset:-1000} }
@media(max-width:650px) {
  .euj { padding:28px 0 25px; }
  .euj-heading { gap:12px; align-items:flex-start; margin-bottom:10px; }
  .euj-heading h2 { font-size:29px; }
  .euj-heading p { font-size:14px; }
  .euj-stepper { gap:5px; margin-top:3px; }
  .euj-rail { min-width:1060px; height:240px; }
  .euj-curve { height:240px; }
  .euj-milestone { width:128px; top:calc(var(--y) * .8 - 58px); }
  .euj-milestone__title { max-width:120px; }
  .euj-undated { grid-template-columns:1fr; gap:5px; padding-top:13px; margin-top:8px; }
}
@media(prefers-reduced-motion:reduce) {
  .euj *, .euj *::before, .euj *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
  .euj-curve__trace { display:none; }
}

/* Programme filters share one predictable footprint, including long locales. */
.pg-eu .eul__chips {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:6px;
  max-width:760px;
  margin-bottom:24px;
}
.pg-eu .eul-filter {
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1fr) 20px;
  grid-template-rows:auto auto;
  align-content:center;
  align-items:center;
  column-gap:6px;
  row-gap:2px;
  min-width:0;
  min-height:56px;
  padding:7px 10px;
  border:1px solid var(--line-strong);
  border-radius:9px;
  background:transparent;
  color:var(--ink-2);
  font:500 14px/1.2 var(--font-sans);
  text-align:left;
  cursor:pointer;
  -webkit-tap-highlight-color:transparent;
  transition:background .2s,border-color .2s,color .2s;
}
.eul-filter__name {
  display:flex;
  align-items:center;
  gap:6px;
  grid-column:1;
  grid-row:1;
  min-width:0;
  overflow-wrap:anywhere;
}
.eul-filter__detail {
  grid-column:1 / -1;
  grid-row:2;
  padding-left:14px;
  color:var(--ink-3);
  font-size:11.5px;
  font-weight:400;
  line-height:1.3;
  overflow-wrap:anywhere;
}
.pg-eu .eul-filter__count {
  grid-column:2;
  grid-row:1;
  display:grid;
  place-items:center;
  width:20px;
  height:20px;
  border-radius:50%;
  background:color-mix(in srgb,var(--ink) 6%,transparent);
  color:var(--ink-2);
  font-size:11px;
  font-weight:600;
  opacity:1;
}
.eul-filter__all { display:grid; grid-template-columns:repeat(2,4px); gap:2px; flex:none; width:10px; }
.eul-filter__all i { display:block; width:4px; height:4px; border:1px solid currentColor; border-radius:1px; }
.pg-eu .eul-filter[data-eul-filter="all"] .eul-filter__name,
.pg-eu .eul-filter[data-eul-filter="all"] .eul-filter__count { grid-row:1 / -1; }
.pg-eu .eul-filter.is-active { color:#fff; background:var(--red-ink); border-color:var(--red-ink); }
.pg-eu .eul-filter.is-active .eul-filter__detail { color:rgba(255,255,255,.86); }
.pg-eu .eul-filter.is-active .eul-filter__count { color:#fff; background:rgba(255,255,255,.18); opacity:1; }
.pg-eu .eul-filter.is-active .tml__dot { background:currentColor; }
.pg-eu .eul-filter:active { transform:none; }
.pg-eu .eul-filter:focus-visible { outline:2px solid var(--red-ink); outline-offset:3px; }
@media(hover:hover) {
  .pg-eu .eul-filter:not(.is-active):hover { background:var(--paper-sunk); border-color:var(--ink-4); color:var(--ink); }
}
@media(max-width:760px) {
  .pg-eu .eul__chips { grid-template-columns:repeat(2,minmax(0,1fr)); margin-bottom:22px; }
  .pg-eu .eul-filter { min-height:54px; font-size:13px; }
}
@media(max-width:360px) {
  .pg-eu .eul-filter { padding:7px 9px; column-gap:4px; font-size:12.5px; }
  .eul-filter__name { gap:5px; }
  .eul-filter__detail { padding-left:13px; font-size:11px; }
}
@media(prefers-reduced-motion:reduce) {
  .pg-eu .eul-filter { transition:none; }
}
