/* Key facts strip — styles for the "Key facts" HTML Block (Elementor).
   Hooked to CSS classes set on the block's containers and widgets.
   Colours: */
.elementor .e-con.qst-facts {
  --qst-f-bg: #f2f4f3;
  --qst-f-ink: #0a0a0a;
  --qst-f-muted: rgba(10,10,10,0.66);
  --qst-f-line: rgba(10,10,10,0.16);
  --qst-f-accent: #c8102e;
  display: flex;
  flex-direction: column;
  gap: 0;
  background: var(--qst-f-bg);
  color: var(--qst-f-ink);
  padding: clamp(3rem, 9vh, 6.5rem) clamp(1.25rem, 3.6vw, 4.5rem) clamp(2.2rem, 6vh, 4.5rem);
}
.qst-facts .elementor-widget { margin: 0; width: 100%; }

/* ── Statement ── */
.elementor .e-con.qst-facts__head { display: flex; flex-direction: column; gap: 0; padding: 0; max-width: 62rem; }
.qst-facts .qst-facts__eyebrow .elementor-heading-title {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 1rem;
  font-family: inherit;
  font-size: clamp(0.7rem, 0.9vw, 0.88rem);
  font-weight: 800;
  line-height: 1.3;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--qst-f-ink);
}
.qst-facts .qst-facts__eyebrow .elementor-heading-title::before {
  content: "";
  width: 12px;
  height: 12px;
  background: var(--qst-f-ink);
  box-shadow: inset 0 0 0 3px var(--qst-f-accent);
}
.qst-facts .qst-facts__title .elementor-heading-title {
  margin: 0;
  padding: 0;
  font-family: 'Bebas Neue', sans-serif;
  font-weight: 400;
  font-size: clamp(2.6rem, 6.4vw, 7rem);
  line-height: 0.9;
  letter-spacing: 0.005em;
  text-transform: uppercase;
  text-wrap: balance;
  color: var(--qst-f-ink);
}
.qst-facts .qst-facts__mark {                     /* highlighter stroke under the key words */
  background: linear-gradient(transparent 80%, var(--qst-f-accent) 80%, var(--qst-f-accent) 95%, transparent 95%) no-repeat 0 0 / 100% 100%;
  padding: 0 0.06em;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}

/* ── Fact cells ── */
.elementor .e-con.qst-facts__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0;
  width: 100%;
  margin-top: clamp(2rem, 6vh, 4rem);
  padding: 0;
  border-top: 2px solid var(--qst-f-ink);
  border-bottom: 1px solid var(--qst-f-line);
}
.elementor .e-con.qst-facts__item {
  position: relative;
  box-sizing: border-box;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
  width: 100%;
  padding: clamp(1.4rem, 3.4vh, 2.4rem) clamp(1rem, 1.8vw, 2rem) clamp(1.6rem, 4vh, 2.6rem);
  border-left: 1px solid var(--qst-f-line);
  transition: background-color 0.3s ease;
}
.elementor .e-con.qst-facts__item:first-child { border-left: 0; padding-left: 0; }
.elementor .e-con.qst-facts .e-con.qst-facts__item::before {   /* accent bar that draws across the top on hover (Elementor's ::before reset) */
  content: "";
  display: block;
  position: absolute;
  inset: -2px 0 auto 0;
  width: auto;
  height: 6px;
  opacity: 1;
  background: var(--qst-f-accent);
  border-radius: 0;
  transform: scaleX(0);
  transform-origin: 0 50%;
  transition: transform 0.45s cubic-bezier(0.2, 0.8, 0.2, 1);
}
.elementor .e-con.qst-facts .e-con.qst-facts__item:hover::before { transform: scaleX(1); }
.elementor .e-con.qst-facts__item:hover { background: rgba(10,10,10,0.035); }

.qst-facts .qst-facts__num .elementor-heading-title {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 0 0.5rem;
  margin: 0 0 0.9rem;
  padding: 0;
  font-family: 'Bebas Neue', sans-serif;
  font-weight: 400;
  font-size: clamp(3.4rem, 6.6vw, 7.2rem);
  line-height: 0.82;
  letter-spacing: 0;
  font-variant-numeric: tabular-nums;
  color: var(--qst-f-ink);
}
.qst-facts .qst-facts__unit {
  font-family: inherit;
  font-size: clamp(1rem, 1.5vw, 1.6rem);
  line-height: 1;
  letter-spacing: 0.04em;
  color: var(--qst-f-muted);
}
.qst-facts .qst-facts__label .elementor-heading-title {
  margin: 0 0 0.45rem;
  padding: 0;
  font-family: inherit;
  font-size: clamp(0.92rem, 1.15vw, 1.2rem);
  font-weight: 900;
  line-height: 1.25;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--qst-f-ink);
}
.qst-facts .qst-facts__text,
.qst-facts .qst-facts__text p {
  margin: 0;
  max-width: 24em;
  font-size: clamp(0.92rem, 1.05vw, 1.05rem);
  line-height: 1.55;
  color: var(--qst-f-muted);
}
.qst-facts .qst-facts__note,
.qst-facts .qst-facts__note p {
  margin: 0;
  font-size: 0.8rem;
  line-height: 1.5;
  color: var(--qst-f-muted);
}
.qst-facts .qst-facts__note { margin-top: 1.1rem; }

/* ── Reveal when scrolled into view (facts.js adds .is-js, then .is-in) ── */
.qst-facts.is-js .qst-facts__head,
.qst-facts.is-js .qst-facts__item > *,
.qst-facts.is-js .qst-facts__note {
  opacity: 0;
  transform: translateY(22px);
  transition: opacity 0.6s ease, transform 0.7s cubic-bezier(0.2, 0.8, 0.2, 1);
  transition-delay: calc(var(--i, 0) * 90ms);
}
.qst-facts.is-js.is-in .qst-facts__head,
.qst-facts.is-js.is-in .qst-facts__item > *,
.qst-facts.is-js.is-in .qst-facts__note { opacity: 1; transform: none; }
.qst-facts.is-js .qst-facts__grid { clip-path: inset(0 100% 0 0); transition: clip-path 0.9s cubic-bezier(0.2, 0.8, 0.2, 1) 0.15s; }
.qst-facts.is-js.is-in .qst-facts__grid { clip-path: inset(-10px 0 0 0); }   /* the rule draws in from the left */

@media (max-width: 1024px) {
  .elementor .e-con.qst-facts__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .elementor .e-con.qst-facts__item:nth-child(odd) { border-left: 0; padding-left: 0; }
  .elementor .e-con.qst-facts__item:nth-child(n+3) { border-top: 1px solid var(--qst-f-line); }
}
@media (max-width: 560px) {
  .elementor .e-con.qst-facts__grid { grid-template-columns: 1fr; }
  .elementor .e-con.qst-facts__item { border-left: 0; padding-left: 0; }
  .elementor .e-con.qst-facts__item:nth-child(n+2) { border-top: 1px solid var(--qst-f-line); }
}
@media (prefers-reduced-motion: reduce) {
  .qst-facts.is-js .qst-facts__head, .qst-facts.is-js .qst-facts__item > *, .qst-facts.is-js .qst-facts__note, .qst-facts.is-js .qst-facts__grid,
  .elementor .e-con.qst-facts .e-con.qst-facts__item::before { transition: none; }
}
