/* Feasibility Study page: "What's in your study" and the one-column sample (3 Nov 2026). */
.fsz-report { padding: clamp(56px, 7vw, 96px) 0; }
.fsz-report .bl-steps { margin-top: 28px; }
.fsz-sample__grid--solo { grid-template-columns: minmax(0,1fr); }
.fsz-sample__grid--solo .fsz-story { grid-template-columns: repeat(3, minmax(0,1fr)); }
.fsz-sample__grid--solo .fsz-sample__read { text-align: left; }
@media (max-width: 899px) { .fsz-sample__grid--solo .fsz-story, .fsz-report .bl-steps--3 { grid-template-columns: minmax(0,1fr); } }
/* How the study runs as a timeline (Kristian, 4 Nov 2026, after the Klarheit Timeline 02 layout): intro on the left
   stays in view, the four weeks run down a line on the right as ink cards that settle in as they scroll up. */
html body main#main .st-tl { margin: 0; padding: clamp(56px, 7vw, 104px) 0; border-radius: 0; background: #FAFAF8; }
.st-tl__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(32px, 5vw, 72px); align-items: start; }
.st-tl__intro { position: sticky; top: 120px; }
.st-tl__eyebrow { margin: 0 0 18px; padding-bottom: 14px; border-bottom: 1px solid #E5E5E2; font: 500 12px/1.2 'IBM Plex Mono', ui-monospace, monospace; letter-spacing: 0.08em; text-transform: uppercase; color: #232A31; }
.st-tl__intro .fsz-h2 { margin: 0; }
.st-tl__note { margin: 18px 0 0; font-size: 16px; line-height: 1.6; color: #232A31; }
.st-tl__note strong { color: #232A31; }
.st-tl__intro .fs-cta { margin-top: 28px; }
.st-tl__list { position: relative; margin: 0; padding: 0 0 0 44px; list-style: none; }
.st-tl__list::before { content: ""; position: absolute; top: 0; bottom: 0; left: 8px; width: 2px; background: #E5E5E2; }
.st-tl__item { position: relative; }
.st-tl__item + .st-tl__item { margin-top: 14px; }
.st-tl__dot { position: absolute; top: 50%; left: -43px; width: 16px; height: 16px; margin-top: -8px; border: 3px solid #1B3A5B; border-radius: 50%; background: #FAFAF8; }
.st-tl__card { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "title when" "body body" "items items" "who who"; gap: 0 20px; min-height: 220px; padding: clamp(24px, 3vw, 36px); border-radius: 22px; background: #232A31; color: #FAFAF8; }
.st-tl__when { grid-area: when; margin: 6px 0 0; font: 500 13px/1.2 'IBM Plex Mono', ui-monospace, monospace; letter-spacing: 0.08em; text-transform: uppercase; color: #AFC4DD; }
.st-tl__title { grid-area: title; margin: 0; font-family: 'Fraunces', Georgia, serif; font-weight: 500; font-size: clamp(26px, 2.8vw, 38px); line-height: 1.1; color: #FAFAF8; }
.st-tl__body { grid-area: body; align-self: end; max-width: 62ch; margin: 36px 0 0; font-size: 15.5px; line-height: 1.55; color: #E5E5E2; }
.st-tl__who { grid-area: who; justify-self: start; margin: 14px 0 0; font: 600 14px/1.45 'Source Sans 3', system-ui, sans-serif; letter-spacing: 0; text-transform: none; color: #AFC4DD; }
/* Scroll motion (Kristian, 4 Nov 2026): the line fills as you scroll and each week lights up when the fill
   reaches its dot. Before that it is greyed out. Only with JS on (.st-tl--live), so the cards still read without it. */
.st-tl__fill { position: absolute; top: 0; left: 8px; width: 2px; height: 0; background: #1B3A5B; }
.st-tl--live .st-tl__card, .st-tl--live .st-tl__dot { transition: background-color 300ms ease, color 300ms ease, border-color 300ms ease; }
.st-tl--live .st-tl__item:not(.is-on) .st-tl__card { background: #E5E5E2; }
.st-tl--live .st-tl__item:not(.is-on) :is(.st-tl__title, .st-tl__body, .st-tl__when, .st-tl__who) { color: #232A31; }
.st-tl--live .st-tl__item:not(.is-on) .st-tl__dot { border-color: #E5E5E2; }
.st-tl--live .st-tl__item.is-on .st-tl__dot { border-color: #AFC4DD; background: #AFC4DD; }
@media (prefers-reduced-motion: reduce) { .st-tl--live .st-tl__card, .st-tl--live .st-tl__dot { transition: none; } }
@media (max-width: 899px) {
  .st-tl__fill { left: 7px; }
  .st-tl__grid { grid-template-columns: minmax(0, 1fr); }
  .st-tl__intro { position: static; }
  .st-tl__list { padding-left: 32px; }
  .st-tl__list::before { left: 7px; }
  .st-tl__dot { left: -32px; }
  .st-tl__card { min-height: 0; }
  .st-tl__body { margin-top: 20px; }
}
/* Everything included, moved into the timeline (Kristian, 4 Nov 2026): price on the left, the included items inside the week cards. */
.st-tl__intro .fsz-h2 { padding-bottom: 18px; border-bottom: 1px solid #E5E5E2; }
.st-tl__fee { margin: 22px 0 0; font-family: 'Fraunces', Georgia, serif; font-weight: 500; font-size: clamp(40px, 4.4vw, 56px); line-height: 1; color: #1B3A5B; }
.st-tl__fee span { font-size: 0.42em; color: #232A31; }
.st-tl__for { margin: 10px 0 0; font-size: 15.5px; color: #232A31; }
.st-tl__note a { color: #232A31; }
.st-tl__items { grid-area: items; margin: 18px 0 0; padding: 0; list-style: none; }
.st-tl__items li + li { border-top: 1px solid rgba(250, 250, 248, 0.16); }
.st-tl__items summary { display: flex; align-items: center; gap: 10px; padding: 11px 0; cursor: pointer; list-style: none; font-weight: 600; font-size: 15.5px; color: #FAFAF8; }
.st-tl__items summary::-webkit-details-marker { display: none; }
.st-tl__items summary span { flex: 1; }
.st-tl__tick { flex: none; color: #AFC4DD; }
.st-tl__chev { flex: none; color: #AFC4DD; transition: transform 200ms ease; }
.st-tl__items details[open] .st-tl__chev { transform: rotate(180deg); }
.st-tl__items details p { margin: 0 0 12px 26px; font-size: 15px; line-height: 1.55; color: #E5E5E2; }
.st-tl--live .st-tl__item:not(.is-on) :is(.st-tl__items summary, .st-tl__items details p, .st-tl__tick, .st-tl__chev) { color: #232A31; }
.st-tl--live .st-tl__item:not(.is-on) .st-tl__items li + li { border-top-color: rgba(35, 42, 49, 0.14); }
.st-tl__card:has(.st-tl__items) { min-height: 0; }
.st-tl__card:has(.st-tl__items) .st-tl__body { margin-top: 20px; }
/* Hero results card (Kristian, 4 Nov 2026): the sample study's top three, then the total. */
.fs-roi { display: flex; flex-direction: column; justify-content: center; gap: 0; padding: clamp(24px, 3vw, 32px) clamp(20px, 2.6vw, 28px) 20px; }
.fs-roi__label { margin: 0; font: 500 12px/1.4 'IBM Plex Mono', ui-monospace, monospace; color: #AFC4DD; }
.fs-roi__rows { margin: 18px 0 0; padding: 0; list-style: none; }
.fs-roi__row { display: grid; grid-template-columns: auto minmax(0, 1fr); grid-template-areas: "rank name" "rank nums"; gap: 4px 12px; padding: 14px 0; border-top: 1px solid rgba(250, 250, 248, 0.16); }
.fs-roi__rank { grid-area: rank; font: 500 13px/1.6 'IBM Plex Mono', ui-monospace, monospace; color: #AFC4DD; }
.fs-roi__name { grid-area: name; font: 500 19px/1.25 'Fraunces', Georgia, serif; color: #FAFAF8; }
.fs-roi__set, .fs-roi__back { font: 500 13.5px/1.4 'IBM Plex Mono', ui-monospace, monospace; }
.fs-roi__set { grid-area: nums; color: #E5E5E2; }
.fs-roi__back { grid-area: nums; justify-self: end; color: #AFC4DD; font-weight: 600; }
.fs-roi__more { margin: 6px 0 0; padding-top: 12px; border-top: 1px solid rgba(250, 250, 248, 0.16); font-size: 13.5px; color: #E5E5E2; }
.fs-roi__total { margin-top: 18px; padding: 16px 18px; border: 1px solid #AFC4DD; border-radius: 14px; background: rgba(175, 196, 221, 0.2); }
.fs-roi__big { margin: 0; font: 500 20px/1.3 'Fraunces', Georgia, serif; color: #FAFAF8; }
.fs-roi__small { margin: 8px 0 0; font-size: 14.5px; line-height: 1.45; color: #AFC4DD; }
.fs-roi .fs-answer__foot { margin-top: 14px; }
/* Audit S3 (5 Nov 2026): small print on the results card reads at phone size. */
@media (max-width: 640px) {
  .fs-roi__set, .fs-roi__back { font-size: 15px; }
  .fs-roi__rank, .fs-roi__label, .fs-roi__more { font-size: 14px; }
}
.fs-roi[data-phase="play"] :is(.fs-roi__row, .fs-roi__more, .fs-roi__total) { opacity: 0.12; transform: translateY(6px); transition: opacity 420ms ease, transform 420ms ease; }
.fs-roi[data-phase="play"] :is(.fs-roi__row, .fs-roi__more, .fs-roi__total).is-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .fs-roi[data-phase="play"] :is(.fs-roi__row, .fs-roi__more, .fs-roi__total) { transition: none; } }
@media (max-width: 639px) { .fs-roi__name { font-size: 17px; } .fs-roi__big { font-size: 18px; } }
.st-tl__credit { margin: 14px 0 0; padding: 12px 14px; border-left: 3px solid #AFC4DD; background: #AFC4DD; font-size: 15px; line-height: 1.5; color: #232A31; }
