/* Hektor tokens also follow the theme's light/dark switch. */
.fo-timeline {
  --fo-tl-accent: var(--tt-main-color, #9d2e13);
  --fo-tl-background: var(--tt-accent-bg-color, #f1efe9);
  --fo-tl-text: var(--tt-text-color, #16171a);
  --fo-tl-border: var(--tt-border-color, #16171a);
  --fo-tl-shadow: var(--tt-shadow-color, #16171a);
  --fo-tl-gap: 48px;
  --fo-tl-padding: clamp(22px, 3vw, 40px);
  --fo-tl-radius: 20px;
  --fo-tl-marker: 48px;
  --fo-tl-gutter: clamp(24px, 4vw, 56px);
  list-style: none;
  margin: 0;
  padding: 0 8px 8px 0;
  color: var(--fo-tl-text);
  font-family: var(--tt-body-font, inherit);
}
.fo-timeline, .fo-timeline * { box-sizing: border-box; }
.fo-timeline .fo-timeline__item {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) var(--fo-tl-marker) minmax(0, 1fr);
  column-gap: var(--fo-tl-gutter);
  padding: 0 0 var(--fo-tl-gap);
  margin: 0;
  list-style: none;
}
.fo-timeline__item::before {
  content: "";
  position: absolute;
  top: 24px;
  bottom: -24px;
  left: calc(50% - 1px);
  width: 2px;
  background: var(--fo-tl-border);
}
.fo-timeline .fo-timeline__item:last-child { padding-bottom: 0; }
.fo-timeline__item:last-child::before { display: none; }
.fo-timeline__marker {
  position: relative;
  z-index: 1;
  grid-column: 2;
  grid-row: 1;
  display: grid;
  place-items: center;
  width: var(--fo-tl-marker);
  height: var(--fo-tl-marker);
  background: var(--fo-tl-background);
  color: var(--fo-tl-text);
  border: 2px solid var(--fo-tl-border);
  border-radius: 50%;
  font-size: 14px;
  font-weight: 700;
}
.fo-timeline__card {
  position: relative;
  grid-column: 1;
  grid-row: 1;
  min-width: 0;
  align-self: start;
  background: var(--fo-tl-background);
  border: 2px solid var(--fo-tl-border);
  border-radius: var(--fo-tl-radius);
  transition: transform .25s ease;
}
.fo-timeline__card::before {
  content: "";
  position: absolute;
  top: 21px;
  left: 100%;
  width: calc(var(--fo-tl-gutter) + 2px);
  height: 2px;
  background: var(--fo-tl-border);
}
.fo-timeline--alternate .fo-timeline__item:nth-child(even) .fo-timeline__card { grid-column: 3; }
.fo-timeline--alternate .fo-timeline__item:nth-child(even) .fo-timeline__card::before { left: auto; right: 100%; }
.fo-timeline--shadow .fo-timeline__card { box-shadow: 6px 7px 0 -2px var(--fo-tl-shadow); }
.fo-timeline__body { padding: var(--fo-tl-padding); overflow-wrap: anywhere; }
.fo-timeline .fo-timeline__date { margin: 0 0 14px; font-size: 12px; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; color: var(--fo-tl-text); }
.fo-timeline__date::before { content: ""; display: inline-block; width: 8px; height: 8px; margin-inline-end: 10px; background: var(--fo-tl-accent); border-radius: 50%; }
.fo-timeline .fo-timeline__title { margin: 0 0 18px; font-size: clamp(24px, 3vw, 40px); line-height: 1.12; letter-spacing: -.035em; color: var(--fo-tl-text); }
.fo-timeline__description { font-size: 16px; line-height: 1.7; }
.fo-timeline__description > :last-child { margin-bottom: 0; }
.fo-timeline .fo-timeline__image { display: block; width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: cover; border-radius: max(0px, calc(var(--fo-tl-radius) - 2px)) max(0px, calc(var(--fo-tl-radius) - 2px)) 0 0; }
.fo-timeline .fo-timeline__link { display: inline-flex; align-items: center; gap: 18px; margin-top: 24px; padding: 4px 0; color: var(--fo-tl-text); font-size: 14px; font-weight: 700; text-decoration: underline; text-underline-offset: 5px; }
.fo-timeline .fo-timeline__link:hover { color: var(--fo-tl-accent); }
.fo-timeline a:focus-visible { outline: 2px solid var(--fo-tl-text); outline-offset: 6px; }
.fo-timeline--left .fo-timeline__item { grid-template-columns: var(--fo-tl-marker) minmax(0, 1fr); }
.fo-timeline--left .fo-timeline__item::before { left: 23px; }
.fo-timeline--left .fo-timeline__marker { grid-column: 1; }
.fo-timeline--left .fo-timeline__card { grid-column: 2; }
.fo-timeline--left .fo-timeline__card::before { left: auto; right: 100%; }
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .fo-timeline__card:hover { transform: translateY(-3px); }
}
@media (max-width: 767px) {
  .fo-timeline { --fo-tl-gutter: 20px; }
  .fo-timeline .fo-timeline__item { grid-template-columns: var(--fo-tl-marker) minmax(0, 1fr); }
  .fo-timeline .fo-timeline__item::before { left: 23px; }
  .fo-timeline .fo-timeline__marker { grid-column: 1; }
  .fo-timeline .fo-timeline__item .fo-timeline__card,
  .fo-timeline--alternate .fo-timeline__item:nth-child(even) .fo-timeline__card { grid-column: 2; }
  .fo-timeline .fo-timeline__item .fo-timeline__card::before { left: auto; right: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .fo-timeline__card { transition: none; }
}
