/**
 * Feels Like Friday Site Core
 * Version: 0.1.43
 * Scope: explicit .flf-* classes only; no Elementor-generated IDs.
 */

:root {
  --flf-ink: #000000;
  --flf-ink-soft: #12141e;
  --flf-paper: #fdfdfb;
  --flf-warm-paper: #f8f7f2;
  --flf-white: #ffffff;
  --flf-yellow: #fce176;
  --flf-yellow-deep: #fed960;
  --flf-yellow-tint: #fef7d6;
  --flf-blue: #89dcf6;
  --flf-blue-tint: #e7f8fd;
  --flf-muted: #5d5d59;
  --flf-line: #d8d8d2;
  --flf-error: #b42318;
  --flf-container: 1240px;
  --flf-reading: 720px;
  --flf-gutter: clamp(1.25rem, 5vw, 4rem);
  --flf-section-space: clamp(4.75rem, 9vw, 9rem);
  --flf-gap: clamp(1.25rem, 3vw, 2.5rem);
  --flf-radius-sm: 8px;
  --flf-radius: 18px;
  --flf-radius-lg: 24px;
  --flf-shadow-offset: clamp(0.5rem, 1.25vw, 1.125rem);
  --flf-display: "League Spartan", "Arial Black", Arial, sans-serif;
  --flf-body: Inter, Arial, Helvetica, sans-serif;
  --flf-ease: cubic-bezier(0.22, 1, 0.36, 1);
}

/* --------------------------------------------------------------------------
   Scoped reset and shell
   -------------------------------------------------------------------------- */

.flf-site,
.flf-header,
.flf-footer,
.flf-sticky-cta,
.flf-review-form {
  color: var(--flf-ink);
  font-family: var(--flf-body);
  line-height: 1.62;
  text-rendering: optimizeLegibility;
}

.flf-site,
.flf-site *,
.flf-site *::before,
.flf-site *::after,
.flf-header,
.flf-header *,
.flf-header *::before,
.flf-header *::after,
.flf-footer,
.flf-footer *,
.flf-footer *::before,
.flf-footer *::after,
.flf-sticky-cta,
.flf-sticky-cta *,
.flf-review-form,
.flf-review-form *,
.flf-review-form *::before,
.flf-review-form *::after {
  box-sizing: border-box;
}

.flf-site {
  min-width: 0;
  background: var(--flf-paper);
  font-size: clamp(1rem, 0.35vw + 0.92rem, 1.125rem);
}

.flf-site img,
.flf-header img,
.flf-footer img {
  display: block;
  max-width: 100%;
  height: auto;
}

.flf-site :where(h1, h2, h3, h4, p, li, blockquote, a, span),
.flf-header :where(a, span),
.flf-footer :where(a, p, li, span) {
  overflow-wrap: break-word;
  word-break: normal;
}

.flf-site :is(h1, h2, h3),
.flf-review-form h2 {
  margin: 0;
  color: inherit;
  font-family: var(--flf-display);
  font-weight: 800;
  letter-spacing: -0.045em;
  line-height: 0.99;
}

.flf-site :where(p, ul, ol, blockquote),
.flf-review-form :where(p, ul) {
  margin-top: 0;
}

.flf-site :where(a),
.flf-header :where(a),
.flf-footer :where(a) {
  color: inherit;
  text-decoration-thickness: 0.1em;
  text-underline-offset: 0.2em;
}

.flf-container {
  width: min(var(--flf-container), calc(100% - (var(--flf-gutter) * 2)));
  margin-inline: auto;
}

.flf-reading {
  width: min(100%, var(--flf-reading));
}

.flf-site--has-sticky-cta {
  padding-bottom: calc(5.25rem + env(safe-area-inset-bottom, 0px));
}

.flf-section {
  position: relative;
  isolation: isolate;
  padding-block: var(--flf-section-space);
}

.flf-section--paper { background: var(--flf-paper); }
.flf-section--warm { background: var(--flf-warm-paper); }
.flf-section--ink { background: var(--flf-ink); color: var(--flf-paper); }
.flf-section--yellow { background: var(--flf-yellow); }
.flf-section--blue { background: var(--flf-blue); }
.flf-section--blue-tint { background: var(--flf-blue-tint); }

.flf-section__heading {
  max-width: 920px;
  font-size: clamp(2.6rem, 6vw, 4.875rem);
}

.flf-section__lead {
  max-width: 760px;
  margin: 1.5rem 0 0;
  color: var(--flf-muted);
  font-size: clamp(1.0625rem, 0.6vw + 0.95rem, 1.3125rem);
  line-height: 1.55;
}

.flf-section--ink .flf-section__lead,
.flf-on-dark .flf-section__lead {
  color: rgba(253, 253, 251, 0.76);
}

.flf-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.65rem;
  margin-bottom: clamp(1.1rem, 2vw, 1.65rem);
  font-size: 0.75rem;
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}

.flf-eyebrow::before {
  width: 1.75rem;
  height: 0.32rem;
  flex: 0 0 auto;
  border-radius: 999px;
  background: var(--flf-yellow);
  content: "";
}

.flf-eyebrow--blue::before { background: var(--flf-blue); }
.flf-eyebrow--light { color: var(--flf-paper); }

.flf-split-heading {
  display: grid;
  align-items: end;
  gap: clamp(1.75rem, 6vw, 5rem);
}

/* --------------------------------------------------------------------------
   Controls and focus
   -------------------------------------------------------------------------- */

.flf-button,
.flf-site .flf-button,
.flf-header .flf-button,
.flf-footer .flf-button {
  display: inline-flex;
  min-height: 3.25rem;
  max-width: 100%;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  border: 2px solid var(--flf-ink);
  border-radius: var(--flf-radius-sm);
  background: var(--flf-yellow);
  padding: 0.85rem 1.4rem 0.78rem;
  color: var(--flf-ink);
  font-size: 0.8125rem;
  font-weight: 800;
  line-height: 1.15;
  letter-spacing: 0.055em;
  text-align: center;
  text-decoration: none;
  text-transform: uppercase;
  transition: background-color 180ms ease, color 180ms ease, transform 180ms ease;
}

.flf-button:hover { background: var(--flf-yellow-deep); }
.flf-button:active { transform: translateY(1px); }
.flf-button--dark { background: var(--flf-ink); color: var(--flf-white); }
.flf-button--dark:hover { background: var(--flf-ink-soft); }
.flf-button--outline-light {
  border-color: rgba(255, 255, 255, 0.78);
  background: transparent;
  color: var(--flf-white);
}
.flf-button--outline-light:hover { background: var(--flf-paper); color: var(--flf-ink); }

.flf-text-link {
  display: inline-flex;
  min-height: 2.75rem;
  align-items: center;
  gap: 0.625rem;
  border-bottom: 2px solid currentColor;
  color: inherit;
  font-size: 0.8125rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  line-height: 1.2;
  text-decoration: none;
  text-transform: uppercase;
}

.flf-site :where(a, button, input, textarea, select, [tabindex]):focus-visible,
.flf-header :where(a, button, [tabindex]):focus-visible,
.flf-footer :where(a, button, [tabindex]):focus-visible,
.flf-sticky-cta :where(a, button):focus-visible,
.flf-review-form :where(button, input, textarea):focus-visible {
  outline: 3px solid var(--flf-yellow);
  outline-offset: 3px;
  box-shadow: 0 0 0 6px var(--flf-ink);
}

.flf-site :where([id]) { scroll-margin-top: 7rem; }

.flf-skip-link {
  position: fixed;
  z-index: 2000;
  top: 0.75rem;
  left: 0.75rem;
  transform: translateY(-180%);
  border: 3px solid var(--flf-ink);
  border-radius: var(--flf-radius-sm);
  background: var(--flf-yellow);
  padding: 0.8rem 1rem;
  color: var(--flf-ink);
  font-weight: 800;
  text-decoration: none;
  transition: transform 160ms ease;
}

.flf-skip-link:focus {
  transform: translateY(0);
}

.flf-main {
  display: block !important;
  width: 100%;
}

/* --------------------------------------------------------------------------
   Theme Builder header and footer
   -------------------------------------------------------------------------- */

.flf-header {
  position: relative;
  z-index: 100;
  min-height: 5rem;
  border-bottom: 1px solid rgba(0, 0, 0, 0.12);
  background: var(--flf-paper);
}

.flf-header--sticky {
  position: sticky;
  top: 0;
}

.flf-header__inner {
  display: grid;
  min-height: inherit;
  grid-template-columns: minmax(7rem, 10rem) 1fr auto;
  align-items: center;
  gap: clamp(0.75rem, 2.5vw, 2rem);
}

.flf-header__logo {
  display: inline-flex;
  width: clamp(7.25rem, 12vw, 9.5rem);
  align-items: center;
}

.flf-header__logo img {
  width: 100%;
  object-fit: contain;
}

.flf-header__nav {
  display: flex !important;
  flex-wrap: wrap;
  justify-content: center;
  gap: clamp(0.85rem, 2vw, 1.7rem);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}

.flf-header__nav :where(a) {
  display: inline-flex;
  min-height: 2.75rem;
  align-items: center;
  text-decoration: none;
}

.flf-header__actions {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.flf-header__menu-toggle {
  display: none !important;
  width: 2.75rem;
  min-width: 2.75rem;
  height: 2.75rem;
  align-items: center;
  justify-content: center;
  border: 2px solid var(--flf-ink);
  border-radius: var(--flf-radius-sm);
  background: transparent;
  color: var(--flf-ink);
}

.flf-footer {
  padding: clamp(3.75rem, 7vw, 4.8rem) 0 2.6rem;
  background: var(--flf-ink);
  color: var(--flf-white);
}

.flf-footer__top {
  display: grid;
  gap: clamp(2.25rem, 6vw, 4.25rem);
}

.flf-footer__brand img {
  width: min(10rem, 100%);
  background: var(--flf-paper);
}

.flf-footer__brand p {
  max-width: 30rem;
  margin: 1.5rem 0 0;
  color: rgba(255, 255, 255, 0.67);
}

.flf-footer__heading {
  margin: 0;
  font-family: var(--flf-body);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.flf-footer__links {
  display: grid;
  gap: 0.55rem;
  margin-top: 1.1rem;
  color: rgba(255, 255, 255, 0.72);
  font-size: 0.9rem;
}

.flf-footer__links a { min-height: 2.25rem; text-decoration: underline; text-decoration-color: transparent; }
.flf-footer__links a:hover { text-decoration-color: currentColor; }

.flf-footer__bottom {
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
  margin-top: clamp(3rem, 6vw, 4rem);
  border-top: 1px solid rgba(255, 255, 255, 0.18);
  padding-top: 1.4rem;
  color: rgba(255, 255, 255, 0.53);
  font-size: 0.72rem;
  letter-spacing: 0.04em;
}

/* --------------------------------------------------------------------------
   Dark and light heroes
   -------------------------------------------------------------------------- */

.flf-hero {
  position: relative;
  isolation: isolate;
  overflow: clip;
}

.flf-hero__media {
  position: relative;
  min-height: clamp(18rem, 82vw, 25rem);
  overflow: hidden;
  background: var(--flf-ink-soft);
}

.flf-hero__media img,
.flf-hero__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: var(--flf-focal-x, 50%) var(--flf-focal-y, 50%);
}

.flf-hero__veil {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.flf-hero__inner {
  position: relative;
  z-index: 3;
}

.flf-hero__copy {
  min-width: 0;
  padding-block: clamp(3.25rem, 8vw, 6rem);
}

.flf-hero h1 {
  max-width: 12ch;
  font-size: clamp(3.45rem, 11vw, 7rem);
}

.flf-hero__lead {
  max-width: 42rem;
  margin: clamp(1.35rem, 3vw, 2.15rem) 0 0;
  font-size: clamp(1.0625rem, 0.7vw + 0.9rem, 1.3125rem);
  line-height: 1.58;
}

.flf-hero__actions {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.8rem;
  margin-top: clamp(1.5rem, 3vw, 2.1rem);
}

.flf-hero__meta {
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.flf-hero--dark {
  background: var(--flf-ink);
  color: var(--flf-white);
}

.flf-hero--dark .flf-hero__media::after {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0.02), rgba(0, 0, 0, 0.2) 72%, #000 100%);
  content: "";
}

.flf-hero--dark .flf-hero__lead { color: rgba(255, 255, 255, 0.84); }
.flf-hero--dark .flf-hero__meta { color: rgba(255, 255, 255, 0.71); }
.flf-hero--dark .flf-hero__accent { color: var(--flf-yellow); }

.flf-hero--light {
  background: var(--flf-warm-paper);
  color: var(--flf-ink);
}

.flf-hero--light .flf-hero__lead { color: var(--flf-muted); }

.flf-spotlight {
  --flf-spotlight-x: 0px;
  --flf-spotlight-y: 0px;
  position: absolute;
  z-index: 2;
  width: clamp(10rem, 24vw, 21.25rem);
  aspect-ratio: 1;
  border-radius: 50%;
  background: var(--flf-yellow);
  opacity: 0.94;
  pointer-events: none;
  transform: translate3d(var(--flf-spotlight-x), var(--flf-spotlight-y), 0);
  transition: transform 320ms var(--flf-ease), opacity 320ms ease;
  will-change: transform;
}

.flf-spotlight--blue { background: var(--flf-blue); }

/* --------------------------------------------------------------------------
   Recognition and question lists
   -------------------------------------------------------------------------- */

.flf-recognition {
  position: relative;
  overflow: clip;
}

.flf-recognition__grid {
  display: grid;
  gap: clamp(2.5rem, 7vw, 6.25rem);
}

.flf-question-list {
  border-top: 2px solid var(--flf-ink);
}

.flf-question {
  display: grid;
  grid-template-columns: 2.4rem minmax(0, 1fr);
  align-items: start;
  gap: 0.8rem;
  border-bottom: 1px solid var(--flf-line);
  padding: 1.4rem 0;
  font-family: var(--flf-display);
  font-size: clamp(1.2rem, 1.3vw + 0.95rem, 1.6rem);
  font-weight: 700;
  letter-spacing: -0.03em;
  line-height: 1.22;
}

.flf-question__index {
  display: grid;
  width: 2.2rem;
  height: 2.2rem;
  place-items: center;
  border-radius: 50%;
  background: var(--flf-yellow);
  font-family: var(--flf-body);
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0;
}

.flf-question--blue .flf-question__index { background: var(--flf-blue); }

.flf-recognition__close {
  max-width: 51rem;
  margin: clamp(2.5rem, 5vw, 4rem) 0 0 auto;
  font-size: clamp(1.1rem, 0.6vw + 1rem, 1.45rem);
  line-height: 1.52;
}

/* --------------------------------------------------------------------------
   Blindspot Gap timeline
   -------------------------------------------------------------------------- */

.flf-gap__intro {
  display: grid;
  align-items: end;
  gap: clamp(1.75rem, 6vw, 4.5rem);
}

.flf-gap__timeline {
  position: relative;
  display: grid;
  gap: 0;
  margin-top: clamp(3rem, 6vw, 5.2rem);
}

.flf-gap__timeline::before {
  position: absolute;
  z-index: -1;
  top: 3.25rem;
  bottom: 3.25rem;
  left: 2.9rem;
  width: 2px;
  background: var(--flf-ink);
  content: "";
}

.flf-gap__step {
  display: grid;
  min-height: 8.75rem;
  grid-template-columns: 5.8rem minmax(0, 1fr);
  align-items: center;
  gap: 1.25rem;
}

.flf-gap__icon {
  display: grid;
  width: 5.8rem;
  height: 5.8rem;
  place-items: center;
  border: 3px solid var(--flf-ink);
  border-radius: 50%;
  background: var(--flf-yellow);
  color: var(--flf-ink);
}

.flf-gap__step--story .flf-gap__icon,
.flf-gap__step--evidence .flf-gap__icon { background: var(--flf-blue); }

.flf-gap__step--gap .flf-gap__icon {
  border-style: dashed;
  background: var(--flf-ink);
  color: var(--flf-yellow);
}

.flf-gap__icon :where(svg) {
  width: 44%;
  height: 44%;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 2.2;
}

.flf-gap__step h3 { font-size: clamp(1.25rem, 1.4vw, 1.5rem); letter-spacing: -0.03em; }
.flf-gap__step p { max-width: 24rem; margin: 0.45rem 0 0; color: var(--flf-muted); font-size: 0.95rem; line-height: 1.48; }

.flf-gap__closer {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1.25rem;
  margin-top: clamp(2.5rem, 5vw, 4.75rem);
  border-top: 1px solid var(--flf-line);
  padding-top: 1.8rem;
}

.flf-gap__closer p { max-width: 48rem; margin: 0; font-size: clamp(1.05rem, 0.5vw + 1rem, 1.3rem); }

/* --------------------------------------------------------------------------
   Customer cards
   -------------------------------------------------------------------------- */

.flf-customer-grid {
  display: grid;
  gap: 1.35rem;
  margin-top: clamp(3rem, 6vw, 4.75rem);
}

.flf-customer-card {
  position: relative;
  min-height: clamp(27rem, 120vw, 33rem);
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.28);
  border-radius: var(--flf-radius);
  background: var(--flf-ink-soft);
  color: var(--flf-white);
}

.flf-customer-card__media,
.flf-customer-card__media img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: var(--flf-focal-x, 50%) var(--flf-focal-y, 50%);
}

.flf-customer-card__veil {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0.04) 20%, rgba(0, 0, 0, 0.94) 88%);
}

.flf-customer-card__body {
  position: absolute;
  z-index: 2;
  right: clamp(1.4rem, 4vw, 2rem);
  bottom: clamp(1.35rem, 4vw, 1.9rem);
  left: clamp(1.4rem, 4vw, 2rem);
}

.flf-customer-card__index {
  display: grid;
  width: 2.15rem;
  height: 2.15rem;
  margin-bottom: 1rem;
  place-items: center;
  border-radius: 50%;
  background: var(--flf-yellow);
  color: var(--flf-ink);
  font-size: 0.68rem;
  font-weight: 800;
}

.flf-customer-card--blue .flf-customer-card__index { background: var(--flf-blue); }
.flf-customer-card--paper .flf-customer-card__index { background: var(--flf-paper); }
.flf-customer-card h3 { font-size: clamp(2rem, 3.5vw, 2.35rem); }
.flf-customer-card p { margin: 1rem 0 1.3rem; color: rgba(255, 255, 255, 0.8); font-size: 1rem; line-height: 1.55; }
.flf-customer-card .flf-text-link { color: var(--flf-yellow); }

/* --------------------------------------------------------------------------
   Offer panel / Clarity Session
   -------------------------------------------------------------------------- */

.flf-offer {
  display: grid;
  overflow: hidden;
  border: 3px solid var(--flf-ink);
  border-radius: var(--flf-radius-lg);
  background: var(--flf-paper);
  box-shadow: var(--flf-shadow-offset) var(--flf-shadow-offset) 0 var(--flf-ink);
}

.flf-offer__content {
  display: flex;
  min-width: 0;
  flex-direction: column;
  justify-content: center;
  padding: clamp(2.6rem, 7vw, 4.5rem) clamp(1.6rem, 5vw, 3.9rem);
}

.flf-offer__content h2 { font-size: clamp(3rem, 6.5vw, 4.8rem); }
.flf-offer__content > p { margin: 1.7rem 0 0; color: var(--flf-muted); font-size: clamp(1.05rem, 0.5vw + 1rem, 1.2rem); }

.flf-offer__list {
  display: grid;
  gap: 0.8rem;
  margin: 1.4rem 0 2rem;
  padding: 0;
  list-style: none;
}

.flf-offer__list li {
  display: grid;
  grid-template-columns: 1.5rem minmax(0, 1fr);
  gap: 0.65rem;
  font-size: 0.95rem;
  font-weight: 700;
  line-height: 1.45;
}

.flf-offer__list li::before {
  display: grid;
  width: 1.45rem;
  height: 1.45rem;
  place-items: center;
  border-radius: 50%;
  background: var(--flf-blue);
  content: "✓";
  font-size: 0.75rem;
}

.flf-offer__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1.25rem;
}

.flf-offer__price {
  display: flex;
  flex-direction: column;
  line-height: 1.12;
}

.flf-offer__price strong { font-family: var(--flf-display); font-size: 1.5rem; letter-spacing: -0.03em; }
.flf-offer__price span { margin-top: 0.25rem; color: var(--flf-muted); font-size: 0.65rem; font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase; }

.flf-offer__media {
  position: relative;
  min-height: clamp(22rem, 90vw, 31rem);
  overflow: hidden;
  background: var(--flf-ink-soft);
}

.flf-offer__media img { width: 100%; height: 100%; object-fit: cover; object-position: var(--flf-focal-x, 56%) var(--flf-focal-y, 50%); }
.flf-offer__caption { position: absolute; right: 0; bottom: 0; left: 0; background: var(--flf-ink); padding: 1.2rem 1.5rem; color: var(--flf-yellow); font-size: 0.7rem; font-weight: 800; letter-spacing: 0.14em; text-align: center; text-transform: uppercase; }

/* --------------------------------------------------------------------------
   Process
   -------------------------------------------------------------------------- */

.flf-process {
  display: grid;
  margin-top: clamp(3rem, 6vw, 4.5rem);
  border-top: 2px solid var(--flf-ink);
  border-bottom: 2px solid var(--flf-ink);
}

.flf-process__step {
  min-height: 16rem;
  padding: clamp(2rem, 4vw, 2.65rem) clamp(1.25rem, 4vw, 2.4rem);
}

.flf-process__step + .flf-process__step { border-top: 1px solid var(--flf-line); }

.flf-process__index {
  display: grid;
  width: 2.75rem;
  height: 2.75rem;
  place-items: center;
  border-radius: 50%;
  background: var(--flf-yellow);
  font-size: 0.75rem;
  font-weight: 800;
}

.flf-process__step--blue .flf-process__index { background: var(--flf-blue); }
.flf-process__step h3 { margin-top: 1.8rem; font-size: clamp(1.65rem, 2.3vw, 1.95rem); }
.flf-process__step p { margin: 1rem 0 0; color: var(--flf-muted); font-size: 1rem; }

/* --------------------------------------------------------------------------
   Proof, testimonials and logos
   -------------------------------------------------------------------------- */

.flf-proof-grid {
  display: grid;
  gap: 1.5rem;
  margin-top: clamp(3.25rem, 6vw, 4.25rem);
}

.flf-testimonial {
  position: relative;
  display: flex;
  min-height: 31rem;
  flex-direction: column;
  justify-content: space-between;
  overflow: hidden;
  border-radius: var(--flf-radius);
  background: var(--flf-ink);
  padding: clamp(2.5rem, 6vw, 3.6rem) clamp(1.7rem, 5vw, 3.25rem) clamp(2rem, 5vw, 2.9rem);
  color: var(--flf-white);
}

.flf-testimonial::before {
  position: absolute;
  top: -3.5rem;
  right: 0.5rem;
  color: rgba(252, 225, 118, 0.17);
  content: "“";
  font-family: Georgia, serif;
  font-size: clamp(15rem, 30vw, 21rem);
  line-height: 1;
}

.flf-testimonial__chip {
  position: relative;
  align-self: flex-start;
  border-radius: 999px;
  background: var(--flf-yellow);
  padding: 0.55rem 0.85rem 0.48rem;
  color: var(--flf-ink);
  font-size: 0.65rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.flf-testimonial blockquote {
  position: relative;
  margin: 3rem 0 0;
  font-family: var(--flf-display);
  font-size: clamp(2rem, 4.5vw, 2.65rem);
  font-weight: 800;
  letter-spacing: -0.04em;
  line-height: 1.17;
}

.flf-testimonial cite {
  display: block;
  margin-top: 1.5rem;
  color: rgba(255, 255, 255, 0.69);
  font-size: 0.8rem;
  font-style: normal;
  font-weight: 700;
}

.flf-proof-panel {
  border: 2px solid var(--flf-ink);
  border-radius: var(--flf-radius);
  background: var(--flf-paper);
  padding: clamp(2rem, 5vw, 2.75rem) clamp(1.25rem, 4vw, 2.4rem);
}

.flf-proof-panel__header {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1.25rem;
}

.flf-proof-panel__header h3 { max-width: 30rem; font-size: clamp(1.9rem, 3.2vw, 2.2rem); line-height: 1.08; }

.flf-proof-panel__mark {
  display: inline-block;
  border: 2px solid var(--flf-ink);
  background: var(--flf-yellow);
  padding: 0.5rem 0.65rem;
  font-size: 0.6rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.flf-logo-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
  margin-top: 2rem;
}

.flf-logo-card {
  display: grid;
  min-height: 6rem;
  place-items: center;
  border: 1px solid var(--flf-line);
  border-radius: 0.7rem;
  background: var(--flf-white);
  padding: 0.75rem;
}

.flf-logo-card img { width: 100%; max-width: 12rem; max-height: 4.5rem; object-fit: contain; }

.flf-proof-note {
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
  margin-top: 1.75rem;
  border-top: 1px solid var(--flf-line);
  padding-top: 1.4rem;
  color: var(--flf-muted);
  font-size: 0.8rem;
}

.flf-proof-note strong { color: var(--flf-ink); }

/* --------------------------------------------------------------------------
   Fit split
   -------------------------------------------------------------------------- */

.flf-fit {
  position: relative;
  overflow: clip;
}

.flf-fit__grid {
  display: grid;
  gap: 1.75rem;
  margin-top: clamp(2.75rem, 6vw, 4.4rem);
}

.flf-fit__card {
  border: 1px solid rgba(255, 255, 255, 0.28);
  border-radius: var(--flf-radius);
  padding: clamp(2rem, 5vw, 2.65rem) clamp(1.5rem, 4vw, 2.65rem);
  color: var(--flf-white);
}

.flf-fit__card--positive {
  border-color: var(--flf-yellow);
  background: rgba(252, 225, 118, 0.06);
}

.flf-fit__card h3 { font-size: clamp(1.75rem, 3vw, 2rem); }

.flf-fit__list {
  display: grid;
  gap: 1.1rem;
  margin: 1.8rem 0 0;
  padding: 0;
  list-style: none;
}

.flf-fit__list li {
  display: grid;
  grid-template-columns: 1.55rem minmax(0, 1fr);
  gap: 0.8rem;
  color: rgba(255, 255, 255, 0.8);
  font-size: 1rem;
  line-height: 1.48;
}

.flf-fit__list li::before {
  display: grid;
  width: 1.5rem;
  height: 1.5rem;
  place-items: center;
  border-radius: 50%;
  background: var(--flf-blue);
  color: var(--flf-ink);
  content: "—";
  font-size: 0.8rem;
  font-weight: 800;
}

.flf-fit__card--positive .flf-fit__list li::before { background: var(--flf-yellow); content: "+"; }

/* --------------------------------------------------------------------------
   Resources and editorial feature
   -------------------------------------------------------------------------- */

.flf-resources {
  display: grid;
  gap: 1.5rem;
}

.flf-resource-feature {
  position: relative;
  min-height: clamp(36rem, 145vw, 50rem);
  overflow: hidden;
  border-radius: var(--flf-radius);
  background: var(--flf-ink);
  color: var(--flf-white);
}

.flf-resource-feature__media,
.flf-resource-feature__media img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: var(--flf-focal-x, 50%) var(--flf-focal-y, 50%);
}

.flf-resource-feature::after {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0.03) 34%, rgba(0, 0, 0, 0.95) 93%);
  content: "";
}

.flf-resource-feature__content {
  position: absolute;
  z-index: 2;
  right: clamp(1.5rem, 5vw, 3.1rem);
  bottom: clamp(1.7rem, 5vw, 3rem);
  left: clamp(1.5rem, 5vw, 3.1rem);
}

.flf-resource-feature__content h2 { max-width: 36rem; font-size: clamp(2.7rem, 7vw, 3.9rem); }
.flf-resource-feature__content p { max-width: 36rem; margin: 1.25rem 0 1.5rem; color: rgba(255, 255, 255, 0.77); }

.flf-resource-stack { display: grid; gap: 1.5rem; }

.flf-resource-card {
  display: flex;
  min-height: 22rem;
  flex-direction: column;
  justify-content: space-between;
  border: 2px solid var(--flf-ink);
  border-radius: var(--flf-radius);
  padding: clamp(2rem, 5vw, 2.75rem) clamp(1.6rem, 4vw, 2.6rem);
}

.flf-resource-card--blue { background: var(--flf-blue); }
.flf-resource-card--yellow { background: var(--flf-yellow); }

.flf-resource-card__icon {
  display: grid;
  width: 4.25rem;
  height: 4.25rem;
  place-items: center;
  border: 2px solid var(--flf-ink);
  border-radius: 50%;
  background: var(--flf-paper);
  font-size: 1.8rem;
}

.flf-resource-card h3 { margin-top: 2rem; font-size: clamp(2.15rem, 4vw, 2.7rem); }
.flf-resource-card p { margin: 1rem 0 1.4rem; color: rgba(0, 0, 0, 0.7); }

/* --------------------------------------------------------------------------
   CTA bands and diagnostic teaser
   -------------------------------------------------------------------------- */

.flf-cta-band {
  position: relative;
  isolation: isolate;
  overflow: clip;
  padding-block: clamp(5rem, 10vw, 9rem);
}

.flf-cta-band--dark { background: var(--flf-ink); color: var(--flf-white); }
.flf-cta-band--yellow { background: var(--flf-yellow); color: var(--flf-ink); }
.flf-cta-band__content { position: relative; z-index: 3; max-width: 56rem; }
.flf-cta-band h2 { font-size: clamp(3.25rem, 8vw, 5.5rem); }
.flf-cta-band p { max-width: 42rem; margin: 1.6rem 0 1.8rem; font-size: clamp(1.05rem, 0.6vw + 1rem, 1.25rem); }
.flf-cta-band--dark p { color: rgba(255, 255, 255, 0.76); }

.flf-diagnostic-teaser {
  display: grid;
  align-items: center;
  gap: clamp(2.5rem, 7vw, 4.4rem);
  border: 3px solid var(--flf-ink);
  border-radius: var(--flf-radius-lg);
  background: var(--flf-paper);
  padding: clamp(2.6rem, 7vw, 4.3rem) clamp(1.6rem, 6vw, 4.4rem);
  box-shadow: var(--flf-shadow-offset) var(--flf-shadow-offset) 0 var(--flf-ink);
}

.flf-diagnostic-teaser h2 { max-width: 49rem; font-size: clamp(2.7rem, 6vw, 3.7rem); }
.flf-diagnostic-teaser p { max-width: 48rem; margin: 1.35rem 0 0; color: var(--flf-muted); }
.flf-diagnostic-teaser__meta { margin-top: 1.1rem; font-size: 0.7rem; font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase; }

.flf-diagnostic-teaser__actions {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1rem;
}

.flf-diagnostic-teaser__badge {
  display: grid;
  width: 6.5rem;
  height: 6.5rem;
  place-items: center;
  border: 3px dashed var(--flf-ink);
  border-radius: 50%;
  background: var(--flf-yellow);
  font-family: var(--flf-display);
  font-size: 2.5rem;
  font-weight: 800;
}

/* --------------------------------------------------------------------------
   Safely disabled private-review forms
   -------------------------------------------------------------------------- */

.flf-review-form {
  max-width: 62rem;
  margin-inline: auto;
  border: 3px solid var(--flf-ink);
  border-radius: var(--flf-radius-lg);
  background: var(--flf-paper);
  padding: clamp(1.5rem, 5vw, 3rem);
  box-shadow: 0.75rem 0.75rem 0 var(--flf-ink);
}

.flf-review-form__eyebrow {
  margin-bottom: 0.75rem;
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.flf-review-form h2 { font-size: clamp(2.3rem, 6vw, 3.6rem); }
.flf-review-form__header > p:last-child { max-width: 47rem; margin: 1rem 0 0; color: var(--flf-muted); }

.flf-review-form__notice {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  margin-top: 1.5rem;
  border: 2px solid var(--flf-ink);
  border-radius: var(--flf-radius-sm);
  background: var(--flf-blue-tint);
  padding: 0.9rem 1rem;
  font-size: 0.88rem;
}

.flf-review-form__grid {
  display: grid;
  gap: 1rem;
  margin-top: 1.5rem;
}

.flf-review-form__field {
  display: grid;
  gap: 0.45rem;
  min-width: 0;
}

.flf-review-form__field label { font-size: 0.85rem; font-weight: 800; }

.flf-review-form__control {
  width: 100%;
  min-height: 3.25rem;
  border: 2px solid #8b8b87;
  border-radius: var(--flf-radius-sm);
  background: #eeeeea;
  padding: 0.78rem 0.9rem;
  color: #565653;
  font: inherit;
  opacity: 1;
  -webkit-text-fill-color: #565653;
}

.flf-review-form__control--textarea { min-height: 8.5rem; resize: none; }
.flf-review-form__control::placeholder { color: #686864; opacity: 1; }
.flf-review-form__button { margin-top: 1.5rem; }
.flf-review-form__button:disabled { cursor: not-allowed; opacity: 0.7; transform: none; }

/* --------------------------------------------------------------------------
   Mobile sticky CTA
   -------------------------------------------------------------------------- */

.flf-sticky-cta {
  position: fixed;
  z-index: 999;
  right: 0;
  bottom: 0;
  left: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.55rem;
  border-top: 2px solid var(--flf-ink);
  background: rgba(253, 253, 251, 0.97);
  padding: 0.6rem max(0.75rem, env(safe-area-inset-right, 0px)) calc(0.6rem + env(safe-area-inset-bottom, 0px)) max(0.75rem, env(safe-area-inset-left, 0px));
  box-shadow: 0 -0.5rem 1.5rem rgba(18, 20, 30, 0.12);
}

.flf-sticky-cta .flf-button {
  min-height: 3rem;
  padding-inline: 0.65rem;
  font-size: 0.68rem;
}

/* --------------------------------------------------------------------------
   Progressive, fail-visible motion
   -------------------------------------------------------------------------- */

.flf-motion-enabled .flf-reveal:not(.is-revealed),
.flf-motion-enabled [data-flf-reveal]:not(.is-revealed) {
  opacity: 0;
  transform: translate3d(0, 1.25rem, 0);
}

.flf-motion-enabled .flf-reveal,
.flf-motion-enabled [data-flf-reveal] {
  transition: transform 620ms var(--flf-ease), opacity 520ms ease;
  transition-delay: var(--flf-reveal-delay, 0ms);
  will-change: transform, opacity;
}

.flf-motion-enabled .flf-reveal.is-revealed,
.flf-motion-enabled [data-flf-reveal].is-revealed {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

/* --------------------------------------------------------------------------
   Responsive system: 320px through 1440px+
   -------------------------------------------------------------------------- */

@media (min-width: 480px) {
  .flf-hero__actions { flex-direction: row; align-items: center; flex-wrap: wrap; }
  .flf-proof-panel__header { flex-direction: row; align-items: flex-end; justify-content: space-between; }
  .flf-proof-note { flex-direction: row; align-items: center; justify-content: space-between; }
  .flf-review-form__notice { flex-direction: row; justify-content: space-between; gap: 1rem; }
}

@media (min-width: 768px) {
  .flf-site--has-sticky-cta { padding-bottom: 0; }
  .flf-sticky-cta { display: none; }
  .flf-split-heading,
  .flf-gap__intro { grid-template-columns: minmax(0, 1.2fr) minmax(16rem, 0.8fr); }
  .flf-recognition__grid { grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr); }
  .flf-customer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .flf-customer-card { min-height: 31rem; }
  .flf-customer-card--wide { grid-column: 1 / -1; }
  .flf-offer { grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr); }
  .flf-offer__content { order: 1; }
  .flf-offer__media { order: 2; min-height: 37rem; }
  .flf-process { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .flf-process__step + .flf-process__step { border-top: 0; border-left: 1px solid var(--flf-line); }
  .flf-proof-grid { grid-template-columns: minmax(0, 0.78fr) minmax(0, 1.22fr); }
  .flf-fit__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .flf-resources { grid-template-columns: minmax(0, 1.08fr) minmax(0, 0.92fr); }
  .flf-resource-stack { grid-template-rows: repeat(2, minmax(0, 1fr)); }
  .flf-diagnostic-teaser { grid-template-columns: minmax(0, 1fr) auto; }
  .flf-diagnostic-teaser__actions { align-items: center; }
  .flf-review-form__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .flf-review-form__field--wide { grid-column: 1 / -1; }
  .flf-footer__top { grid-template-columns: minmax(0, 1.3fr) minmax(9rem, 0.7fr) minmax(9rem, 0.7fr); }
  .flf-footer__bottom { flex-direction: row; flex-wrap: wrap; justify-content: space-between; }
}

@media (min-width: 1025px) {
  .flf-header { min-height: 6.125rem; }
  .flf-hero--dark { min-height: clamp(46rem, 74vh, 53.125rem); }
  .flf-hero--dark .flf-hero__media { position: absolute; inset: 0 0 0 34%; min-height: 100%; }
  .flf-hero--dark .flf-hero__media::after { background: linear-gradient(90deg, #000 0%, rgba(0, 0, 0, 0.94) 10%, rgba(0, 0, 0, 0.4) 48%, rgba(0, 0, 0, 0.06) 78%); }
  .flf-hero--dark .flf-hero__inner { display: flex; min-height: clamp(46rem, 74vh, 53.125rem); align-items: center; }
  .flf-hero--dark .flf-hero__copy { max-width: 45rem; }
  .flf-hero--light .flf-hero__inner { display: grid; grid-template-columns: minmax(0, 1fr) minmax(24rem, 0.9fr); align-items: center; gap: clamp(3rem, 7vw, 6rem); }
  .flf-hero--light .flf-hero__media { min-height: 43rem; }
  .flf-gap__timeline { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1.1rem; }
  .flf-gap__timeline::before { top: 4.65rem; right: 9%; bottom: auto; left: 9%; width: auto; height: 2px; }
  .flf-gap__step { display: block; min-height: 0; text-align: center; }
  .flf-gap__icon { width: 9.25rem; height: 9.25rem; margin: 0 auto 1.6rem; }
  .flf-gap__step p { max-width: 12rem; margin: 0.7rem auto 0; }
  .flf-gap__closer { flex-direction: row; align-items: center; justify-content: space-between; }
  .flf-customer-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .flf-customer-card--wide { grid-column: auto; }
  .flf-fit__card { min-height: 26.5rem; }
}

@media (max-width: 1024px) {
  .flf-header__inner { grid-template-columns: 1fr auto auto; }
  .flf-header__nav { display: none !important; }
  .flf-header__menu-toggle { display: inline-flex !important; }
  .flf-header__actions .flf-button { min-height: 2.75rem; padding-inline: 0.8rem; font-size: 0.64rem; }
}

@media (max-width: 767px) {
  .flf-header__logo { width: 6.8rem; }
  .flf-header__actions .flf-button { display: none; }
  .flf-customer-card { min-height: 29rem; }
  .flf-offer__content { order: 2; }
  .flf-offer__media { order: 1; }
}

@media (max-width: 359px) {
  :root { --flf-gutter: 1rem; }
  .flf-section__heading { font-size: 2.35rem; }
  .flf-hero h1 { font-size: 3.15rem; }
  .flf-button { padding-inline: 0.9rem; font-size: 0.72rem; }
  .flf-logo-grid { grid-template-columns: 1fr; }
  .flf-sticky-cta { grid-template-columns: 1fr; }
  .flf-site--has-sticky-cta { padding-bottom: calc(8.4rem + env(safe-area-inset-bottom, 0px)); }
}

@media (min-width: 1280px) {
  .flf-customer-card { min-height: 33rem; }
  .flf-proof-grid { gap: 1.5rem; }
}

@media (min-width: 1440px) {
  :root { --flf-gutter: 4rem; }
}

@media (prefers-reduced-motion: reduce) {
  .flf-site *,
  .flf-site *::before,
  .flf-site *::after,
  .flf-header *,
  .flf-footer *,
  .flf-sticky-cta *,
  .flf-review-form * {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }

  .flf-motion-enabled .flf-reveal,
  .flf-motion-enabled [data-flf-reveal],
  .flf-spotlight {
    opacity: 1;
    transform: none;
  }
}

/* ========================================================================== 
   Participant-response feed

   The shortcode output is the source of truth for the response cards. These
   rules deliberately sit after Elementor's Text Editor compatibility layer so
   participant quotes remain pure white rather than inheriting its grey.
   ========================================================================== */

.flf-proof .flf-proof-grid {
  grid-template-columns: minmax(0, 1fr);
}

.flf-testimonial--feed {
  display: block;
  min-height: 0;
  overflow: visible;
  border-radius: 0;
  background: transparent;
  padding: 0;
  color: var(--flf-white);
}

.flf-testimonial--feed::before {
  display: none;
}

.flf-testimonial--feed > .elementor-element,
.flf-participant-feedback,
.flf-testimonial--feed .elementor-widget-container,
.flf-testimonial--feed .elementor-shortcode {
  width: 100%;
}

.flf-response-feed {
  width: 100%;
  color: var(--flf-white);
}

.flf-response-feed__header {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.9rem;
  margin-bottom: clamp(1.4rem, 3vw, 2rem);
}

.flf-response-feed__chip {
  width: fit-content;
  margin: 0;
  border: 2px solid var(--flf-ink);
  border-radius: 999px;
  background: var(--flf-yellow);
  padding: 0.6rem 0.9rem 0.52rem;
  color: var(--flf-ink) !important;
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  line-height: 1;
  text-transform: uppercase;
}

.flf-response-feed__count {
  display: flex;
  align-items: baseline;
  gap: 0.65rem;
  margin: 0;
  color: var(--flf-ink) !important;
  font-size: clamp(0.95rem, 1.4vw, 1.1rem);
  font-weight: 700;
  line-height: 1.35;
}

.flf-response-feed__count strong {
  color: var(--flf-ink);
  font-family: var(--flf-display);
  font-size: clamp(2rem, 4vw, 3.25rem);
  line-height: 0.8;
}

.flf-response-feed__list {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 1rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.flf-response-feed__item {
  min-width: 0;
}

.flf-response-feed__item[hidden] {
  display: none !important;
}

.flf-response-card {
  position: relative;
  display: flex;
  height: 100%;
  min-height: 17.5rem;
  flex-direction: column;
  overflow: hidden;
  border: 2px solid var(--flf-ink);
  border-radius: var(--flf-radius);
  background: var(--flf-ink);
  padding: clamp(1.4rem, 3vw, 2rem);
  color: var(--flf-white);
}

.flf-response-card::before {
  position: absolute;
  top: -2.6rem;
  right: 0.25rem;
  color: rgba(252, 225, 118, 0.15);
  content: "“";
  font-family: Georgia, serif;
  font-size: clamp(10rem, 22vw, 15rem);
  line-height: 1;
  pointer-events: none;
}

.flf-response-card__number {
  position: relative;
  z-index: 1;
  display: grid;
  width: 2.4rem;
  height: 2.4rem;
  place-items: center;
  border-radius: 50%;
  background: var(--flf-yellow);
  color: var(--flf-ink);
  font-family: var(--flf-display);
  font-size: 0.8rem;
  font-weight: 800;
  line-height: 1;
}

.flf-response-card__quote {
  position: relative;
  z-index: 1;
  margin: clamp(2.2rem, 5vw, 3.25rem) 0 0;
  padding: 0;
  border: 0;
}

.flf-response-card__quote p {
  margin: 0;
  color: #ffffff !important;
  font-family: var(--flf-display);
  font-size: clamp(1.45rem, 2.6vw, 2rem);
  font-weight: 700;
  letter-spacing: -0.025em;
  line-height: 1.22;
  text-wrap: pretty;
}

.flf-response-card__footer {
  position: relative;
  z-index: 1;
  margin-top: auto;
  padding-top: clamp(2rem, 5vw, 3.2rem);
}

.flf-response-card__footer cite {
  display: block;
  color: #ffffff !important;
  font-size: 0.82rem;
  font-style: normal;
  font-weight: 700;
  letter-spacing: 0.025em;
  line-height: 1.35;
}

.flf-response-feed__actions {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.9rem;
  margin-top: clamp(1.5rem, 4vw, 2.5rem);
}

.flf-response-feed__actions[hidden] {
  display: none !important;
}

.flf-response-feed__button {
  display: inline-flex;
  min-height: 3.5rem;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  border: 2px solid var(--flf-ink);
  border-radius: 0.75rem;
  background: var(--flf-yellow);
  padding: 0.85rem 1.1rem;
  color: var(--flf-ink);
  cursor: pointer;
  font: 800 0.78rem/1.15 var(--flf-body);
  letter-spacing: 0.055em;
  text-transform: uppercase;
  transition: background-color 180ms var(--flf-ease), transform 180ms var(--flf-ease);
}

.flf-response-feed__button:hover {
  background: var(--flf-yellow-deep);
  transform: translateY(-2px);
}

.flf-response-feed__button:focus-visible {
  outline: 3px solid var(--flf-ink);
  outline-offset: 4px;
}

.flf-response-feed__status {
  margin: 0;
  color: var(--flf-ink) !important;
  font-size: 0.82rem;
  font-weight: 700;
  line-height: 1.4;
}

.flf-response-feed__status:focus {
  outline: 3px solid var(--flf-ink);
  outline-offset: 4px;
}

.flf-response-feed__item.is-feed-new {
  animation: flf-response-enter 320ms var(--flf-ease) both;
}

@keyframes flf-response-enter {
  from {
    opacity: 0;
    transform: translateY(0.85rem);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@media (min-width: 680px) {
  .flf-response-feed__header,
  .flf-response-feed__actions {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
  }

  .flf-response-feed__list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .flf-response-feed__item--long {
    grid-column: span 2;
  }

  .flf-response-feed__item--long .flf-response-card {
    min-height: 0;
  }
}

@media (min-width: 1100px) {
  .flf-response-feed__list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .flf-response-feed__item--long {
    grid-column: span 2;
  }

  .flf-response-feed__item--long .flf-response-card__quote p {
    max-width: 38ch;
  }
}

@media (prefers-reduced-motion: reduce) {
  .flf-response-feed__item.is-feed-new {
    animation: none;
  }

  .flf-response-feed__button:hover {
    transform: none;
  }
}

/* --------------------------------------------------------------------------
   Home recognition: native-scroll quiet-question sequence
   -------------------------------------------------------------------------- */

.flf-recognition--scroll {
  overflow: visible;
  background: var(--flf-paper);
  padding-block: 0;
}

.flf-recognition--scroll .flf-quiet-shell {
  width: 100%;
  gap: 0;
}

.flf-quiet-intro {
  width: min(100%, 60rem);
  margin-inline: auto;
  padding-block: clamp(5rem, 13vw, 9rem);
  align-items: center;
  justify-content: center;
  text-align: center;
}

.flf-quiet-intro-copy {
  width: min(100%, 52rem);
  align-items: center;
}

.flf-quiet-title .elementor-heading-title {
  max-width: 17ch;
  margin-inline: auto;
  font-size: clamp(2.35rem, 5.5vw, 5.2rem);
  line-height: 0.98;
  text-wrap: balance;
}

.flf-quiet-kicker,
.flf-quiet-cue {
  color: var(--flf-muted);
  text-align: center;
}

.flf-quiet-kicker {
  margin-top: clamp(1.4rem, 3vw, 2.25rem);
  font-size: clamp(1rem, 1.1vw, 1.15rem);
}

.flf-quiet-cue {
  margin-top: 0.5rem;
  font-size: clamp(1rem, 1.3vw, 1.25rem);
}

.flf-quiet-cue::after {
  display: block;
  width: 1.1rem;
  height: 1.1rem;
  margin: 0.8rem auto 0;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  content: "";
  transform: rotate(45deg);
}

.flf-quiet-list {
  display: grid;
  width: min(100%, 48rem);
  margin: 0 auto;
  padding: 0;
  gap: clamp(2rem, 5vw, 3.5rem);
  list-style: none;
}

.flf-quiet-list-widget,
.flf-quiet-list-widget .elementor-widget-container {
  width: 100%;
}

.flf-quiet-step {
  min-width: 0;
  list-style: none;
}

.flf-quiet-question,
.flf-quiet-question .elementor-widget-container,
.flf-quiet-question p {
  margin: 0;
}

.flf-quiet-question {
  display: block;
  width: min(100%, 35rem);
  margin-inline: auto;
  color: #686865;
  font-family: var(--flf-body);
  font-size: clamp(1.65rem, 2.15vw, 2.15rem);
  font-weight: 400;
  letter-spacing: -0.025em;
  line-height: 1.4;
  text-align: center;
  text-wrap: balance;
}

.flf-quiet-close {
  width: min(100%, 50rem);
  margin: 0 auto;
  padding-block: clamp(6rem, 15vw, 11rem);
  align-items: center;
  text-align: center;
}

.flf-site .flf-recognition--scroll .flf-quiet-close .flf-quiet-reassurance {
  max-width: 26ch;
  margin-inline: auto;
  color: var(--flf-ink);
  font-family: var(--flf-display);
  font-size: clamp(2.6rem, 6vw, 4.875rem);
  font-weight: 800;
  letter-spacing: -0.045em;
  line-height: 0.99;
  text-align: center;
  text-wrap: balance;
}

.flf-quiet-close .flf-copy {
  max-width: 42rem;
  margin: clamp(1.75rem, 4vw, 3rem) auto 0;
  color: var(--flf-muted);
  font-size: clamp(1.05rem, 1.25vw, 1.3rem);
  line-height: 1.65;
}

.flf-recognition--scroll.flf-quiet-enhanced .flf-quiet-scene {
  opacity: 0;
  transition: opacity 340ms cubic-bezier(0.4, 0, 0.2, 1);
  will-change: opacity;
}

.flf-recognition--scroll.flf-quiet-enhanced .flf-quiet-scene.is-active {
  opacity: 1;
}

.flf-recognition--scroll.flf-quiet-enhanced .flf-quiet-intro {
  min-height: clamp(31rem, 72svh, 44rem);
  padding-block: 0;
}

.flf-recognition--scroll.flf-quiet-enhanced .flf-quiet-intro-copy {
  position: sticky;
  top: clamp(8rem, 22svh, 15rem);
}

.flf-recognition--scroll.flf-quiet-enhanced .flf-quiet-list {
  gap: clamp(2.5rem, 5svh, 3rem);
}

.flf-recognition--scroll.flf-quiet-enhanced .flf-quiet-step {
  min-height: clamp(15rem, 34svh, 20rem);
}

.flf-recognition--scroll.flf-quiet-enhanced .flf-quiet-question {
  position: sticky;
  top: clamp(10rem, 43svh, 24rem);
}

@media (max-width: 600px) {
  .flf-model-hero__map {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 0.72rem;
  }

  .flf-model-hero__node,
  .flf-model-hero__node--gap {
    min-height: 3.1rem;
    border-radius: 999px;
    padding: 0.38rem 0.8rem;
  }

  .flf-model-hero__node:not(:last-child)::after {
    top: calc(100% - 0.02rem);
    right: auto;
    left: 50%;
    width: 1rem;
    height: 0.72rem;
    content: "\2193";
    font-size: 0.72rem;
    line-height: 0.72rem;
    transform: translateX(-50%);
  }

  .flf-model-hero__node-label p {
    display: grid;
    grid-template-columns: 2.5rem minmax(0, 1fr);
    gap: 0.55rem;
    text-align: left;
  }

  .flf-model-hero__node-label span {
    display: grid;
    min-height: 1.8rem;
    place-items: center;
    border-right: 1px solid currentColor;
    font-size: 0.66rem;
  }

  .flf-model-hero__node-label strong {
    font-size: 0.86rem;
    line-height: 1.1;
  }
}

@media (max-width: 767px) {
  .flf-quiet-title .elementor-heading-title {
    max-width: 14ch;
    font-size: clamp(2.25rem, 10vw, 3rem);
  }

  .flf-quiet-question {
    max-width: 19ch;
    font-size: clamp(1.6rem, 7vw, 1.85rem);
  }

  .flf-quiet-close {
    padding-bottom: calc(7.5rem + env(safe-area-inset-bottom, 0px));
  }

  .flf-recognition--scroll.flf-quiet-enhanced .flf-quiet-intro {
    min-height: clamp(30rem, 70svh, 37rem);
  }

  .flf-recognition--scroll.flf-quiet-enhanced .flf-quiet-intro-copy {
    top: clamp(7.5rem, 19svh, 10rem);
  }

  .flf-recognition--scroll.flf-quiet-enhanced .flf-quiet-question {
    top: 43svh;
  }
}

@media (prefers-reduced-motion: reduce), (max-height: 639px) {
  .flf-recognition--scroll.flf-quiet-enhanced .flf-quiet-scene {
    min-height: auto;
    opacity: 1 !important;
    transition: none !important;
    will-change: auto;
  }

  .flf-recognition--scroll.flf-quiet-enhanced .flf-quiet-intro {
    padding-block: clamp(4rem, 10vw, 7rem);
  }

  .flf-recognition--scroll.flf-quiet-enhanced .flf-quiet-intro-copy,
  .flf-recognition--scroll.flf-quiet-enhanced .flf-quiet-question {
    position: static;
  }

  .flf-recognition--scroll.flf-quiet-enhanced .flf-quiet-list {
    gap: clamp(2rem, 5vw, 3.5rem);
  }
}

@media (forced-colors: active) {
  .flf-site :where(a, button, input, textarea, select, [tabindex]):focus-visible,
  .flf-header :where(a, button, [tabindex]):focus-visible,
  .flf-footer :where(a, button, [tabindex]):focus-visible,
  .flf-sticky-cta :where(a, button):focus-visible {
    outline: 3px solid Highlight;
    box-shadow: none;
  }

  .flf-button,
  .flf-gap__icon,
  .flf-logo-card,
  .flf-review-form__notice {
    border: 2px solid CanvasText;
  }
}

/* ==========================================================================
   Elementor generator contract

   The build generators attach the flat classes below to Elementor containers
   and widgets. This layer intentionally comes last so those stable classes,
   rather than Elementor IDs, remain the presentation contract.
   ========================================================================== */

.flf-header-template,
.flf-footer-template,
.flf-proof-template,
.flf-diagnostic-template,
.flf-section,
.flf-site-header,
.flf-site-footer,
.flf-mobile-action,
.flf-review-form {
  min-width: 0;
  color: var(--flf-ink);
  font-family: var(--flf-body);
  line-height: 1.62;
  text-rendering: optimizeLegibility;
}

.flf-header-template *,
.flf-header-template *::before,
.flf-header-template *::after,
.flf-footer-template *,
.flf-footer-template *::before,
.flf-footer-template *::after,
.flf-section *,
.flf-section *::before,
.flf-section *::after,
.flf-mobile-action *,
.flf-mobile-action *::before,
.flf-mobile-action *::after {
  box-sizing: border-box;
}

.flf-section img,
.flf-site-header img,
.flf-site-footer img {
  display: block;
  max-width: 100%;
  height: auto;
}

.flf-section :where(h1, h2, h3, h4, p, li, blockquote, a, span),
.flf-site-header :where(a, span),
.flf-site-footer :where(a, p, li, span) {
  overflow-wrap: break-word;
  word-break: normal;
}

.flf-site .flf-section :is(.elementor-heading-title, h1, h2, h3, h4),
.flf-site .flf-site-footer :is(.elementor-heading-title, h2, h3) {
  margin: 0;
  color: inherit;
  font-family: var(--flf-display);
  font-weight: 800;
  letter-spacing: -0.045em;
  line-height: 0.99;
}

.flf-section :where(.elementor-widget-text-editor, p, ul, ol, blockquote),
.flf-site-footer :where(.elementor-widget-text-editor, p) {
  margin-top: 0;
}

.flf-section :where(.elementor-widget-text-editor, .elementor-widget-heading, .elementor-widget-button),
.flf-site-header :where(.elementor-widget-image, .elementor-widget-nav-menu, .elementor-widget-button),
.flf-site-footer :where(.elementor-widget-image, .elementor-widget-text-editor, .elementor-widget-heading) {
  min-width: 0;
}

.flf-shell {
  width: min(var(--flf-container), calc(100% - (var(--flf-gutter) * 2)));
  max-width: none;
  margin-inline: auto;
  padding-inline: 0;
}

.flf-section {
  position: relative;
  isolation: isolate;
  overflow: clip;
  background: var(--flf-paper);
  padding-block: var(--flf-section-space);
}

.flf-section--dark {
  background: var(--flf-ink);
  color: var(--flf-white);
}

.flf-section--yellow { background: var(--flf-yellow); }
.flf-section--blue { background: var(--flf-blue); }
.flf-proof.flf-section--blue { background: var(--flf-blue-tint); }

.flf-display .elementor-heading-title,
.flf-display.elementor-widget-heading .elementor-heading-title {
  max-width: 13ch;
  font-size: clamp(3.25rem, 10vw, 7rem);
}

.flf-section-title .elementor-heading-title,
.flf-section-title.elementor-widget-heading .elementor-heading-title {
  max-width: 920px;
  font-size: clamp(2.6rem, 6vw, 4.875rem);
}

.flf-subheading .elementor-heading-title {
  font-size: clamp(1.55rem, 2.2vw, 2rem);
  line-height: 1.12;
}

.flf-copy,
.flf-copy .elementor-widget-container {
  max-width: var(--flf-reading);
}

.flf-copy :where(p, li),
.flf-copy.elementor-widget-text-editor,
.flf-copy .elementor-widget-container {
  font-size: clamp(1rem, 0.35vw + 0.94rem, 1.125rem);
  line-height: 1.62;
}

.flf-copy :where(p:last-child, ul:last-child, ol:last-child),
.flf-list :where(p:last-child, ul:last-child, ol:last-child) {
  margin-bottom: 0;
}

.flf-copy--large,
.flf-copy--large .elementor-widget-container {
  font-size: clamp(1.125rem, 0.7vw + 1rem, 1.375rem);
}

.flf-eyebrow {
  width: fit-content;
  max-width: 100%;
}

.flf-eyebrow::before {
  display: none;
  content: none;
}

.flf-eyebrow .elementor-widget-container {
  display: inline-flex;
  align-items: center;
  gap: 0.65rem;
  font-size: 0.75rem;
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}

.flf-eyebrow .elementor-widget-container::before {
  width: 1.75rem;
  height: 0.32rem;
  flex: 0 0 auto;
  border-radius: 999px;
  background: var(--flf-yellow);
  content: "";
}

.flf-section--dark .flf-eyebrow .elementor-widget-container::before,
.flf-section--blue .flf-eyebrow .elementor-widget-container::before,
.flf-offer .flf-eyebrow .elementor-widget-container::before {
  background: var(--flf-blue);
}

.flf-list ul {
  display: grid;
  gap: 0.8rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.flf-list li {
  position: relative;
  padding-left: 2.1rem;
}

.flf-list li::before {
  position: absolute;
  top: 0.1em;
  left: 0;
  display: grid;
  width: 1.45rem;
  height: 1.45rem;
  place-items: center;
  border-radius: 50%;
  background: var(--flf-blue);
  color: var(--flf-ink);
  content: "✓";
  font-size: 0.72rem;
  font-weight: 900;
}

.flf-scope-note {
  max-width: 42rem;
  border-left: 0.3rem solid var(--flf-blue);
  padding-left: 1rem;
  color: var(--flf-muted);
  font-size: 0.92rem;
}

.flf-review-note {
  display: inline;
  border-radius: 0.25rem;
  background: var(--flf-yellow-tint);
  padding: 0.08em 0.25em;
  color: var(--flf-ink);
}

.flf-standfirst,
.flf-standfirst .elementor-widget-container {
  max-width: 50rem;
  font-size: clamp(1.2rem, 0.9vw + 1rem, 1.55rem);
  font-weight: 650;
  line-height: 1.5;
}

.flf-privacy-note {
  max-width: 48rem;
  border-left: 0.3rem solid var(--flf-blue);
  padding-left: 1rem;
  color: var(--flf-muted);
  font-size: 0.88rem;
}

.flf-media-placeholder {
  display: grid;
  min-height: 18rem;
  place-items: center;
  border: 2px dashed var(--flf-ink);
  background: var(--flf-warm-paper);
}

.flf-responsive-image,
.flf-responsive-image .elementor-widget-container,
.flf-responsive-image a,
.flf-responsive-image img {
  width: 100%;
  height: 100%;
}

.flf-image--desktop { display: none; }
.flf-image--mobile { display: block; }
.flf-image--desktop:only-child { display: block; }

.flf-grid-2 {
  display: grid;
  min-width: 0;
  grid-template-columns: minmax(0, 1fr);
  gap: clamp(1.5rem, 4vw, 3rem);
}

/* Elementor button widgets keep the class on their wrapper. */
.elementor-widget-button.flf-button,
.elementor-widget-button.flf-button:hover {
  display: block;
  width: fit-content;
  min-height: 0;
  max-width: 100%;
  align-self: flex-start;
  border: 0;
  border-radius: 0;
  background: transparent;
  padding: 0;
  color: inherit;
  font: inherit;
  letter-spacing: normal;
  text-transform: none;
  transition: none;
}

.elementor-widget-button.flf-button .elementor-button {
  display: inline-flex;
  min-height: 3.25rem;
  max-width: 100%;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  border: 2px solid var(--flf-ink);
  border-radius: var(--flf-radius-sm);
  background: var(--flf-yellow);
  padding: 0.85rem 1.4rem 0.78rem;
  color: var(--flf-ink);
  font-family: var(--flf-body);
  font-size: 0.8125rem;
  font-weight: 800;
  line-height: 1.15;
  letter-spacing: 0.055em;
  text-align: center;
  text-decoration: none;
  text-transform: uppercase;
  transition: background-color 180ms ease, color 180ms ease, transform 180ms ease;
}

.elementor-widget-button.flf-button .elementor-button::after {
  content: "→";
  font-size: 1.15em;
  line-height: 1;
}

.elementor-widget-button.flf-button .elementor-button:hover {
  background: var(--flf-yellow-deep);
}

.elementor-widget-button.flf-button--primary .elementor-button {
  background: var(--flf-yellow);
  color: var(--flf-ink);
}

.elementor-widget-button.flf-button .elementor-button:active {
  transform: translateY(1px);
}

.elementor-widget-button.flf-button--dark .elementor-button {
  background: var(--flf-ink);
  color: var(--flf-white);
}

.elementor-widget-button.flf-button--dark .elementor-button:hover {
  background: var(--flf-ink-soft);
}

.elementor-widget-button.flf-button--secondary .elementor-button {
  background: var(--flf-paper);
  color: var(--flf-ink);
}

.elementor-widget-button.flf-button--text .elementor-button {
  min-height: 2.75rem;
  justify-content: flex-start;
  border: 0;
  border-bottom: 2px solid currentColor;
  border-radius: 0;
  background: transparent;
  padding: 0.45rem 0 0.25rem;
  color: inherit;
}

.elementor-widget-button.flf-button--text .elementor-button:hover {
  background: transparent;
  color: inherit;
}

.elementor-widget-text-editor.flf-review-action,
.elementor-widget-text-editor.flf-review-action:hover {
  display: flex;
  width: fit-content;
  min-height: 3.25rem;
  max-width: min(100%, 28rem);
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 0.3rem;
  align-self: flex-start;
  border: 2px dashed var(--flf-ink);
  border-radius: var(--flf-radius-sm);
  background: var(--flf-yellow-tint);
  padding: 0.75rem 1rem;
  color: inherit;
  font: inherit;
  letter-spacing: normal;
  text-transform: none;
  transition: none;
}

.flf-review-action--inactive {
  cursor: not-allowed;
}

.flf-review-action .elementor-widget-container {
  display: contents;
}

.flf-review-action-label {
  color: var(--flf-ink);
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  line-height: 1.2;
  text-transform: uppercase;
}

.flf-review-action-note {
  color: var(--flf-muted);
  font-size: 0.68rem;
  font-weight: 650;
  letter-spacing: normal;
  line-height: 1.35;
  text-transform: none;
}

.flf-review-action.flf-button--text .elementor-widget-container,
.flf-review-action--text .elementor-widget-container {
  min-height: 2.75rem;
  border: 0;
  border-bottom: 2px dashed currentColor;
  border-radius: 0;
  background: transparent;
  padding: 0.4rem 0 0.25rem;
}

.elementor-widget-text-editor.flf-review-action.flf-button--text,
.elementor-widget-text-editor.flf-review-action--text {
  min-height: 2.75rem;
  border: 0;
  border-bottom: 2px dashed currentColor;
  border-radius: 0;
  background: transparent;
  padding: 0.4rem 0 0.25rem;
}

.flf-review-action--primary .elementor-widget-container {
  background: var(--flf-yellow-tint);
}

.elementor-widget-text-editor.flf-review-action--primary {
  background: var(--flf-yellow-tint);
}

.flf-review-action--secondary .elementor-widget-container {
  border-style: solid;
  background: var(--flf-paper);
}

.elementor-widget-text-editor.flf-review-action--secondary {
  border-style: solid;
  background: var(--flf-paper);
}

.flf-section :where(a, button, input, textarea, select, [tabindex]):focus-visible,
.flf-site-header :where(a, button, [tabindex]):focus-visible,
.flf-site-footer :where(a, button, [tabindex]):focus-visible,
.flf-mobile-action :where(a, button):focus-visible {
  outline: 3px solid var(--flf-yellow);
  outline-offset: 3px;
  box-shadow: 0 0 0 6px var(--flf-ink);
}

/* Header and mobile action. */
.flf-header-template {
  position: sticky;
  z-index: 100;
  top: 0;
}

.flf-main {
  margin: 0 !important;
  padding: 0 !important;
  gap: 0 !important;
}

.flf-site-header {
  min-height: 5rem;
  border-bottom: 1px solid rgba(0, 0, 0, 0.12);
  background: var(--flf-paper);
}

.flf-header-inner {
  display: grid;
  min-height: 5rem;
  grid-template-columns: minmax(6.75rem, 1fr) auto;
  align-items: center;
  gap: clamp(0.75rem, 2.5vw, 2rem);
}

.flf-header-logo {
  width: clamp(7.25rem, 12vw, 9.5rem);
}

.flf-header-logo .elementor-widget-container,
.flf-header-logo img {
  width: 100%;
  max-height: 4.3rem;
  object-fit: contain;
  object-position: left center;
}

.flf-primary-nav {
  justify-self: end;
}

.flf-primary-nav .elementor-nav-menu--main .elementor-item {
  min-height: 2.75rem;
  padding-inline: clamp(0.45rem, 1.15vw, 0.9rem);
  color: var(--flf-ink);
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}

.flf-primary-nav .elementor-nav-menu--dropdown {
  border-top: 2px solid var(--flf-ink);
  background: var(--flf-paper);
}

.flf-primary-nav .elementor-nav-menu--dropdown .elementor-item {
  color: var(--flf-ink);
  font-size: 0.78rem;
  font-weight: 800;
}

.flf-primary-nav .elementor-menu-toggle {
  width: 2.75rem;
  height: 2.75rem;
  border: 2px solid var(--flf-ink);
  border-radius: var(--flf-radius-sm);
  background: transparent;
  color: var(--flf-ink);
}

.flf-header-cta { display: none !important; }

.flf-mobile-action {
  position: fixed;
  z-index: 999;
  right: 0;
  bottom: 0;
  left: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.55rem;
  border-top: 2px solid var(--flf-ink);
  background: rgba(253, 253, 251, 0.97);
  padding: 0.6rem max(0.75rem, env(safe-area-inset-right, 0px)) calc(0.6rem + env(safe-area-inset-bottom, 0px)) max(0.75rem, env(safe-area-inset-left, 0px));
  box-shadow: 0 -0.5rem 1.5rem rgba(18, 20, 30, 0.12);
}

.flf-mobile-action .flf-button {
  width: 100%;
}

.flf-mobile-action .flf-button .elementor-button {
  width: 100%;
  min-height: 3rem;
  padding-inline: 0.65rem;
  font-size: 0.66rem;
}

.flf-sticky-cta .flf-button {
  width: 100%;
}

.flf-sticky-cta .flf-button .elementor-button {
  width: 100%;
  min-height: 3rem;
  padding-inline: 0.65rem;
  font-size: 0.68rem;
}

/* Footer. */
.flf-site-footer {
  background: var(--flf-ink);
  padding: clamp(3.75rem, 7vw, 4.8rem) 0 calc(7rem + env(safe-area-inset-bottom, 0px));
  color: var(--flf-white);
}

.flf-footer-grid {
  display: grid;
  gap: clamp(2.25rem, 6vw, 4.25rem);
}

.flf-footer-brand { max-width: 31rem; }

.flf-footer-logo {
  width: min(10rem, 100%);
}

.flf-footer-logo img {
  max-height: 6rem;
  object-fit: contain;
  object-position: left center;
}

.flf-footer-copy {
  margin-top: 1.4rem;
  color: rgba(255, 255, 255, 0.69);
}

.flf-footer-column .elementor-heading-title {
  font-family: var(--flf-body);
  font-size: 0.72rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.flf-footer-links {
  margin-top: 1rem;
  color: rgba(255, 255, 255, 0.74);
  font-size: 0.9rem;
  line-height: 2.25;
}

.flf-footer-links a {
  text-decoration-color: transparent;
  text-underline-offset: 0.25em;
}

.flf-footer-links a:hover { text-decoration-color: currentColor; }

.flf-footer-bottom {
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
  margin-top: clamp(3rem, 6vw, 4rem);
  border-top: 1px solid rgba(255, 255, 255, 0.18);
  padding-top: 1.4rem;
  color: rgba(255, 255, 255, 0.56);
  font-size: 0.72rem;
  letter-spacing: 0.04em;
}

.flf-footer-bottom .elementor-widget-text-editor { width: auto; }

.flf-footer__column {
  min-width: 0;
}

.flf-footer__logo,
.flf-footer__logo .elementor-widget-container {
  width: min(10rem, 100%);
}

.flf-footer__logo img {
  width: 100%;
  max-height: 6rem;
  object-fit: contain;
  object-position: left center;
}

/* Dark and light hero families. */
.flf-hero {
  --flf-spotlight-x: 0px;
  --flf-spotlight-y: 0px;
  padding-block: 0;
}

.flf-hero-grid {
  display: grid;
  min-width: 0;
  grid-template-columns: minmax(0, 1fr);
}

.flf-hero-copy {
  position: relative;
  z-index: 4;
  min-width: 0;
  padding-block: clamp(3.5rem, 9vw, 6rem);
}

.flf-hero-copy > .elementor-element + .elementor-element {
  margin-top: clamp(1.15rem, 2.5vw, 1.75rem);
}

.flf-hero-copy .flf-eyebrow + .elementor-element {
  margin-top: 0;
}

.flf-hero-title .elementor-heading-title {
  max-width: 12ch;
  font-size: clamp(3.45rem, 11vw, 7rem);
}

.flf-hero-copy .flf-copy,
.flf-hero-copy .flf-copy .elementor-widget-container {
  max-width: 42rem;
  font-size: clamp(1.0625rem, 0.7vw + 0.9rem, 1.3125rem);
  line-height: 1.58;
}

.flf-hero-meta,
.flf-close-meta,
.flf-diagnostic-meta {
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}

.flf-hero-media {
  position: relative;
  min-height: clamp(20rem, 82vw, 28rem);
  overflow: hidden;
  background: var(--flf-ink-soft);
}

.flf-hero-image,
.flf-hero-image .elementor-widget-container,
.flf-hero-image a,
.flf-hero-image img {
  width: 100%;
  height: 100%;
}

.flf-hero-image img {
  object-fit: cover;
  object-position: var(--flf-focal-x, 50%) var(--flf-focal-y, 50%);
}

.flf-hero--dark {
  background: var(--flf-ink);
  color: var(--flf-white);
}

.flf-hero--dark::before {
  position: absolute;
  z-index: 3;
  top: 2.5rem;
  right: -5rem;
  width: clamp(12rem, 28vw, 21.25rem);
  aspect-ratio: 1;
  border-radius: 50%;
  background: var(--flf-yellow);
  content: "";
  opacity: 0.94;
  pointer-events: none;
  transform: translate3d(var(--flf-spotlight-x), var(--flf-spotlight-y), 0);
  transition: transform 320ms var(--flf-ease), opacity 320ms ease;
  will-change: transform;
}

.flf-hero--dark .flf-hero-copy .flf-copy,
.flf-hero--dark .flf-scope-note {
  color: rgba(255, 255, 255, 0.82);
}

.flf-hero--dark .flf-hero-meta { color: rgba(255, 255, 255, 0.7); }

.flf-hero--dark .flf-hero-media::after {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0.03), rgba(0, 0, 0, 0.76));
  content: "";
  pointer-events: none;
}

.flf-hero:not(.flf-hero--dark) {
  background: var(--flf-warm-paper);
}

.flf-hero--hospitality,
.flf-hero--tourism,
.flf-hero--allied-health,
.flf-hero--clarity-session,
.flf-hero--resources,
.flf-hero--blindspot-model,
.flf-hero--contact {
  --flf-hero-surface: var(--flf-warm-paper);
}

.flf-hero:not(.flf-hero--dark) .flf-copy,
.flf-hero:not(.flf-hero--dark) .flf-hero-meta {
  color: var(--flf-muted);
}

/* Blindspot Gap timeline. */
.flf-gap {
  background: var(--flf-paper);
}

.flf-gap > .flf-shell > .flf-copy {
  margin-top: 1.5rem;
}

.flf-gap-grid {
  position: relative;
  display: grid;
  gap: 0;
  margin-top: clamp(3rem, 6vw, 5.2rem);
}

.flf-gap-grid::before {
  position: absolute;
  z-index: -1;
  top: 3rem;
  bottom: 3rem;
  left: 3rem;
  width: 2px;
  background: var(--flf-ink);
  content: "";
}

.flf-gap-step {
  position: relative;
  display: grid;
  min-height: 8.5rem;
  grid-template-columns: 6rem minmax(0, 1fr);
  grid-template-rows: auto auto;
  align-content: center;
  align-items: center;
  column-gap: 1.25rem;
  text-align: left;
}

.flf-gap-step::before {
  z-index: 1;
  display: grid;
  width: 6rem;
  height: 6rem;
  grid-row: 1 / -1;
  place-items: center;
  border: 3px solid var(--flf-ink);
  border-radius: 50%;
  background: var(--flf-yellow);
  color: var(--flf-ink);
  content: "";
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0.08em;
}

.flf-gap-step--1::before { content: "01"; }
.flf-gap-step--2::before { background: var(--flf-blue); content: "02"; }
.flf-gap-step--3::before {
  border-style: dashed;
  background: var(--flf-ink);
  color: var(--flf-yellow);
  content: "THE GAP";
  text-align: center;
}
.flf-gap-step--4::before { background: var(--flf-blue); content: "03"; }
.flf-gap-step--5::before { content: "04"; }

.flf-gap-step > .elementor-widget-heading,
.flf-gap-step > .flf-copy {
  grid-column: 2;
}

.flf-gap-step .elementor-heading-title {
  font-size: clamp(1.25rem, 1.4vw, 1.5rem);
  letter-spacing: -0.03em;
  line-height: 1.12;
}

.flf-gap-step .flf-copy,
.flf-gap-step .flf-copy .elementor-widget-container {
  margin-top: 0.35rem;
  color: var(--flf-muted);
  font-size: 0.95rem;
  line-height: 1.48;
}

.flf-gap > .flf-shell > .flf-button--text {
  margin-top: clamp(2.5rem, 5vw, 4.75rem);
}

/* Customer pathways. */
.flf-context-media,
.flf-context-media .elementor-widget-container,
.flf-context-picture,
.flf-context-image {
  display: block;
  width: 100%;
  height: 100%;
}

.flf-context-picture {
  position: relative;
  overflow: hidden;
}

.flf-context-image {
  object-fit: cover;
}

.flf-context-media--hospitality { background: var(--flf-ink-soft); }
.flf-context-media--tourism { background: var(--flf-blue); }
.flf-context-media--allied-health { background: var(--flf-blue-tint); }

.flf-pathways .flf-copy {
  color: rgba(255, 255, 255, 0.76);
}

.flf-customer-grid {
  display: grid;
  gap: 1.35rem;
  margin-top: clamp(3rem, 6vw, 4.75rem);
}

.flf-customer-card {
  position: relative;
  display: flex;
  min-height: clamp(28rem, 120vw, 33rem);
  flex-direction: column;
  justify-content: flex-end;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.28);
  border-radius: var(--flf-radius);
  background: var(--flf-ink-soft);
  padding: clamp(1.35rem, 4vw, 2rem);
  color: var(--flf-white);
}

.flf-customer-card::after {
  position: absolute;
  z-index: 1;
  inset: 0;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0.04) 20%, rgba(0, 0, 0, 0.94) 88%);
  content: "";
  pointer-events: none;
}

.flf-customer-card-image,
.flf-customer-card-image .elementor-widget-container,
.flf-customer-card-image .flf-context-picture,
.flf-customer-card-image img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.flf-customer-card-image img {
  object-fit: cover;
  object-position: var(--flf-focal-x, 50%) var(--flf-focal-y, 50%);
}

.flf-customer-card > .elementor-element:not(.flf-customer-card-image) {
  position: relative;
  z-index: 2;
}

.flf-card-number {
  display: grid;
  width: 2.2rem;
  min-width: 2.2rem;
  height: 2.2rem;
  place-items: center;
  border-radius: 50%;
  background: var(--flf-yellow);
  color: var(--flf-ink);
  font-size: 0.68rem;
  font-weight: 900;
}

.flf-card-number .elementor-widget-container,
.flf-card-number p {
  margin: 0;
  line-height: 1;
}

.flf-customer-card .elementor-heading-title {
  margin-top: 1rem;
  font-size: clamp(2rem, 3.5vw, 2.35rem);
}

.flf-customer-card .flf-copy,
.flf-customer-card .flf-copy .elementor-widget-container {
  margin-top: 0.9rem;
  color: rgba(255, 255, 255, 0.8);
  font-size: 1rem;
  line-height: 1.55;
}

.flf-customer-card .flf-button--text {
  margin-top: 0.65rem;
  color: var(--flf-yellow);
}

/* Clarity Session offer. */
.flf-offer {
  display: flex;
  border: 0;
  border-radius: 0;
  background: var(--flf-yellow);
  box-shadow: none;
}

.flf-offer-card {
  overflow: hidden;
  border: 3px solid var(--flf-ink);
  border-radius: var(--flf-radius-lg);
  background: var(--flf-paper);
  box-shadow: var(--flf-shadow-offset) var(--flf-shadow-offset) 0 var(--flf-ink);
}

.flf-offer-copy {
  display: flex;
  min-width: 0;
  flex-direction: column;
  justify-content: center;
  order: 2;
  padding: clamp(2.6rem, 7vw, 4.5rem) clamp(1.6rem, 5vw, 3.9rem);
}

.flf-offer-copy > .elementor-element + .elementor-element {
  margin-top: 1.25rem;
}

.flf-offer-copy .flf-section-title .elementor-heading-title {
  font-size: clamp(3rem, 6.5vw, 4.8rem);
}

.flf-offer-copy .flf-copy {
  color: var(--flf-muted);
}

.flf-price {
  color: var(--flf-ink);
  font-family: var(--flf-display);
  font-size: 1.5rem;
  font-weight: 800;
  letter-spacing: -0.03em;
}

.flf-offer-media {
  position: relative;
  min-height: clamp(22rem, 90vw, 31rem);
  order: 1;
  overflow: hidden;
  background: var(--flf-ink-soft);
}

.flf-offer-image,
.flf-offer-image .elementor-widget-container,
.flf-offer-image a,
.flf-offer-image img {
  width: 100%;
  height: 100%;
}

.flf-offer-image img {
  object-fit: cover;
  object-position: var(--flf-focal-x, 56%) var(--flf-focal-y, 50%);
}

.flf-offer-media::after {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  background: var(--flf-ink);
  padding: 1.2rem 1.5rem;
  color: var(--flf-yellow);
  content: "ONE FOCUSED QUESTION";
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-align: center;
  text-transform: uppercase;
}

/* Generic content and process-style cards. */
.flf-content-section > .flf-shell > .flf-copy {
  margin-top: 1.4rem;
}

.flf-card-grid {
  display: grid;
  gap: 1.2rem;
  margin-top: clamp(2.5rem, 5vw, 4rem);
}

.flf-info-card {
  min-width: 0;
  border: 2px solid var(--flf-ink);
  border-radius: var(--flf-radius);
  background: var(--flf-paper);
  padding: clamp(1.75rem, 4vw, 2.6rem);
}

.flf-info-card .elementor-heading-title {
  margin-top: 1.6rem;
  font-size: clamp(1.7rem, 2.5vw, 2.1rem);
  line-height: 1.08;
}

.flf-info-card .flf-copy {
  margin-top: 1rem;
  color: var(--flf-muted);
}

.flf-content-section > .flf-shell > .flf-button {
  margin-top: 1.75rem;
}

.flf-quote blockquote {
  border-left: 0.35rem solid var(--flf-yellow);
  margin: 1.75rem 0;
  padding-left: 1.25rem;
  font-family: var(--flf-display);
  font-size: clamp(1.5rem, 3vw, 2.25rem);
  font-weight: 800;
  letter-spacing: -0.035em;
  line-height: 1.2;
}

/* FAQ content stays fully visible; there is no accordion dependency. */
.flf-faq {
  background: var(--flf-warm-paper);
}

.flf-faq > .flf-shell > .flf-copy {
  margin-top: 1.35rem;
}

.flf-faq-list {
  display: grid;
  margin-top: clamp(2.5rem, 5vw, 4rem);
  border-top: 2px solid var(--flf-ink);
}

.flf-faq-item {
  display: grid;
  gap: 0.9rem;
  border-bottom: 1px solid var(--flf-line);
  padding-block: clamp(1.5rem, 3vw, 2.25rem);
}

.flf-faq-question .elementor-heading-title {
  max-width: 50rem;
  font-size: clamp(1.45rem, 2.2vw, 2rem);
  line-height: 1.12;
}

.flf-faq-item .flf-copy {
  color: var(--flf-muted);
}

/* Proof and reusable track-record widget. */
.flf-proof-grid {
  display: grid;
  gap: 1.5rem;
  margin-top: clamp(3.25rem, 6vw, 4.25rem);
}

.flf-quote-card {
  position: relative;
  display: flex;
  min-height: 31rem;
  flex-direction: column;
  justify-content: space-between;
  overflow: hidden;
  border-radius: var(--flf-radius);
  background: var(--flf-ink);
  padding: clamp(2.5rem, 6vw, 3.6rem) clamp(1.7rem, 5vw, 3.25rem) clamp(2rem, 5vw, 2.9rem);
  color: var(--flf-white);
}

.flf-quote-card::before {
  position: absolute;
  top: -3.5rem;
  right: 0.5rem;
  color: rgba(252, 225, 118, 0.17);
  content: "“";
  font-family: Georgia, serif;
  font-size: clamp(15rem, 30vw, 21rem);
  line-height: 1;
}

.flf-proof-label {
  position: relative;
  width: fit-content;
  border-radius: 999px;
  background: var(--flf-yellow);
  padding: 0.55rem 0.85rem 0.48rem;
  color: var(--flf-ink);
  font-size: 0.65rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.flf-proof-quote {
  position: relative;
  margin-top: auto;
}

.flf-proof-quote blockquote {
  margin: 2.5rem 0 0;
  font-family: var(--flf-display);
  font-size: clamp(2rem, 4.5vw, 2.65rem);
  font-weight: 800;
  letter-spacing: -0.04em;
  line-height: 1.17;
}

.flf-proof-attribution {
  position: relative;
  margin-top: 1.5rem;
  color: rgba(255, 255, 255, 0.69);
  font-size: 0.8rem;
  font-weight: 700;
}

.flf-proof-template--global,
.flf-proof-template--hospitality-specific,
.flf-proof-template--global-no-sector-inference,
.flf-proof-template--home,
.flf-proof-template--hospitality,
.flf-proof-template--tourism,
.flf-proof-template--allied-health,
.flf-proof-template--clarity-session,
.flf-proof-template--about,
.flf-proof-template--resources,
.flf-proof-template--blindspot-model,
.flf-proof-template--contact {
  min-width: 0;
}

.flf-testimonial__caption {
  position: relative;
  margin-top: 1.5rem;
}

.flf-logo-panel {
  border: 2px solid var(--flf-ink);
  border-radius: var(--flf-radius);
  background: var(--flf-paper);
  padding: clamp(2rem, 5vw, 2.75rem) clamp(1.25rem, 4vw, 2.4rem);
}

.flf-proof-heading-row {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1.25rem;
}

.flf-proof-heading-row .elementor-heading-title {
  max-width: 30rem;
  font-size: clamp(1.9rem, 3.2vw, 2.2rem);
  line-height: 1.08;
}

.flf-publication-mark {
  width: fit-content;
  border: 2px solid var(--flf-ink);
  background: var(--flf-yellow);
  padding: 0.5rem 0.65rem;
  font-size: 0.6rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.flf-logo-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
  margin-top: 2rem;
}

.flf-logo-card {
  display: grid;
  min-height: 6rem;
  place-items: center;
  border: 1px solid var(--flf-line);
  border-radius: 0.7rem;
  background: var(--flf-white);
  padding: 0.75rem;
}

.flf-client-logo,
.flf-client-logo .elementor-widget-container {
  width: 100%;
}

.flf-client-logo img {
  width: 100%;
  max-width: 12rem;
  max-height: 4.5rem;
  margin-inline: auto;
  object-fit: contain;
}

.flf-proof-note {
  margin-top: 1.75rem;
  border-top: 1px solid var(--flf-line);
  padding-top: 1.4rem;
  color: var(--flf-muted);
  font-size: 0.8rem;
}

/* Fit split. */
.flf-fit::before {
  position: absolute;
  bottom: -16rem;
  left: -14rem;
  width: 32rem;
  aspect-ratio: 1;
  border: 6rem solid rgba(137, 220, 246, 0.13);
  border-radius: 50%;
  content: "";
  pointer-events: none;
}

.flf-fit .flf-copy { color: rgba(255, 255, 255, 0.76); }

.flf-fit-grid {
  position: relative;
  display: grid;
  gap: 1.75rem;
  margin-top: clamp(2.75rem, 6vw, 4.4rem);
}

.flf-fit-card {
  border: 1px solid rgba(255, 255, 255, 0.28);
  border-radius: var(--flf-radius);
  padding: clamp(2rem, 5vw, 2.65rem) clamp(1.5rem, 4vw, 2.65rem);
  color: var(--flf-white);
}

.flf-fit-card--1 {
  border-color: var(--flf-yellow);
  background: rgba(252, 225, 118, 0.06);
}

.flf-fit-card .elementor-heading-title {
  font-size: clamp(1.75rem, 3vw, 2rem);
  line-height: 1.08;
}

.flf-fit-card .flf-list {
  margin-top: 1.8rem;
}

.flf-fit-card .flf-list li {
  color: rgba(255, 255, 255, 0.8);
}

.flf-fit-card--2 .flf-list li::before {
  background: var(--flf-blue);
  content: "—";
}

/* Editorial feature and resources. */
.flf-editorial-feature { background: var(--flf-warm-paper); }

.flf-editorial-feature > .flf-shell > .flf-grid-2 {
  gap: 1.5rem;
}

.flf-founder-card {
  position: relative;
  display: flex;
  min-height: clamp(36rem, 145vw, 50rem);
  flex-direction: column;
  justify-content: flex-end;
  overflow: hidden;
  border-radius: var(--flf-radius);
  background: var(--flf-ink);
  padding: clamp(1.7rem, 5vw, 3rem);
  color: var(--flf-white);
}

.flf-founder-card::after {
  position: absolute;
  z-index: 1;
  inset: 0;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0.03) 34%, rgba(0, 0, 0, 0.95) 93%);
  content: "";
  pointer-events: none;
}

.flf-founder-card-image,
.flf-founder-card-image .elementor-widget-container,
.flf-founder-card-image a,
.flf-founder-card-image img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.flf-founder-card-image img {
  object-fit: cover;
  object-position: var(--flf-focal-x, 50%) var(--flf-focal-y, 50%);
}

.flf-founder-card > .elementor-element:not(.flf-founder-card-image) {
  position: relative;
  z-index: 2;
}

.flf-founder-card .elementor-heading-title {
  max-width: 36rem;
  font-size: clamp(2.7rem, 7vw, 3.9rem);
}

.flf-founder-card .flf-copy {
  margin-top: 1.25rem;
  color: rgba(255, 255, 255, 0.77);
}

.flf-founder-card .flf-button--text {
  margin-top: 1.2rem;
  color: var(--flf-yellow);
}

.flf-resource-stack {
  display: grid;
  gap: 1.5rem;
}

.flf-resource-card {
  display: flex;
  min-height: 22rem;
  flex-direction: column;
  justify-content: space-between;
  border: 2px solid var(--flf-ink);
  border-radius: var(--flf-radius);
  padding: clamp(2rem, 5vw, 2.75rem) clamp(1.6rem, 4vw, 2.6rem);
}

.flf-resource-card--1 { background: var(--flf-blue); }
.flf-resource-card--2 { background: var(--flf-yellow); }

.flf-resource-card .elementor-heading-title {
  font-size: clamp(2.15rem, 4vw, 2.7rem);
  line-height: 1.02;
}

.flf-resource-card .flf-copy {
  margin-top: 1rem;
  color: rgba(0, 0, 0, 0.7);
}

.flf-resource-card .flf-button--text { margin-top: 1.25rem; }

/* Primary close and diagnostic CTA band. */
.flf-close::after {
  position: absolute;
  z-index: 1;
  top: -10rem;
  right: -5rem;
  width: clamp(15rem, 36vw, 32rem);
  aspect-ratio: 1;
  border-radius: 50%;
  background: var(--flf-yellow);
  content: "";
  pointer-events: none;
}

.flf-close-copy {
  position: relative;
  z-index: 2;
  max-width: 56rem;
}

.flf-close-copy .flf-section-title .elementor-heading-title {
  font-size: clamp(3.25rem, 8vw, 5.5rem);
}

.flf-close-copy .flf-copy {
  margin-top: 1.6rem;
  color: rgba(255, 255, 255, 0.76);
  font-size: clamp(1.05rem, 0.6vw + 1rem, 1.25rem);
}

.flf-close-copy .flf-button { margin-top: 0.5rem; }
.flf-close-meta { margin-top: 1rem; color: rgba(255, 255, 255, 0.65); }

.flf-diagnostic-cta { background: var(--flf-blue); }

.flf-diagnostic-card {
  align-items: center;
  border: 3px solid var(--flf-ink);
  border-radius: var(--flf-radius-lg);
  background: var(--flf-paper);
  padding: clamp(2.6rem, 7vw, 4.3rem) clamp(1.6rem, 6vw, 4.4rem);
  box-shadow: var(--flf-shadow-offset) var(--flf-shadow-offset) 0 var(--flf-ink);
}

.flf-diagnostic-copy .flf-section-title .elementor-heading-title {
  max-width: 49rem;
  font-size: clamp(2.7rem, 6vw, 3.7rem);
}

.flf-diagnostic-teaser__copy {
  min-width: 0;
}

.flf-diagnostic-copy .flf-copy {
  margin-top: 1.35rem;
  color: var(--flf-muted);
}

.flf-diagnostic-meta {
  margin-top: 1.1rem;
  color: var(--flf-ink);
}

.flf-diagnostic-action {
  display: flex;
  align-items: flex-start;
  flex-direction: column;
  gap: 1rem;
}

.flf-diagnostic-orbit {
  display: grid;
  width: 6.5rem;
  height: 6.5rem;
  place-items: center;
  border: 3px dashed var(--flf-ink);
  border-radius: 50%;
  background: var(--flf-yellow);
  font-family: var(--flf-display);
  font-size: 2.5rem;
  font-weight: 800;
}

/* Diagnostic, legal, booking and contact review pages. */
.flf-diagnostic-hero .flf-shell,
.flf-legal-placeholder .flf-shell {
  max-width: 62rem;
}

.flf-diagnostic-hero .flf-copy {
  margin-top: 1.5rem;
  color: rgba(255, 255, 255, 0.78);
}

.flf-diagnostic-hero .flf-hero-meta { margin-top: 1.5rem; }

.flf-diagnostic-page {
  background: var(--flf-warm-paper);
}

.flf-diagnostic-page > .flf-shell {
  max-width: 72rem;
}

.flf-contact-form > .flf-shell > .flf-copy,
.flf-booking-placeholder > .flf-shell > .flf-copy,
.flf-legal-placeholder > .flf-shell > .flf-copy {
  margin-top: 1.25rem;
}

.flf-contact-form .flf-review-form,
.flf-booking-placeholder .flf-review-form {
  margin-top: clamp(2rem, 5vw, 3.5rem);
}

.flf-legal-placeholder { min-height: 65vh; }

.flf-booking-review > .flf-shell {
  border: 3px solid var(--flf-ink);
  border-radius: var(--flf-radius-lg);
  background: var(--flf-paper);
  padding: clamp(1.75rem, 5vw, 3.5rem);
  box-shadow: var(--flf-shadow-offset) var(--flf-shadow-offset) 0 var(--flf-ink);
}

.flf-booking-review .flf-price {
  margin-top: 1.2rem;
}

.flf-booking-review .flf-copy,
.flf-booking-review .flf-review-action {
  margin-top: 1rem;
}

.flf-contact-form-widget {
  margin-top: clamp(2rem, 5vw, 3.5rem);
}

.flf-contact-review-form {
  max-width: 62rem;
  border: 3px solid var(--flf-ink);
  border-radius: var(--flf-radius-lg);
  background: var(--flf-paper);
  padding: clamp(1.5rem, 5vw, 3rem);
  box-shadow: 0.75rem 0.75rem 0 var(--flf-ink);
}

.flf-contact-review-form fieldset {
  min-width: 0;
  margin: 1.5rem 0 0;
  border: 0;
  padding: 0;
}

.flf-contact-review-form legend {
  margin-bottom: 1.2rem;
  color: var(--flf-ink);
  font-family: var(--flf-display);
  font-size: clamp(1.4rem, 2vw, 1.8rem);
  font-weight: 800;
  letter-spacing: -0.03em;
}

.flf-form-review-note,
.flf-form-sensitive-note {
  max-width: 52rem;
  border: 2px solid var(--flf-ink);
  border-radius: var(--flf-radius-sm);
  background: var(--flf-blue-tint);
  padding: 0.8rem 0.95rem;
  color: var(--flf-ink);
  font-size: 0.84rem;
  font-weight: 700;
}

.flf-form-sensitive-note {
  margin-top: 1.25rem;
  background: var(--flf-yellow-tint);
  font-weight: 600;
}

.flf-form-grid {
  display: grid;
  gap: 1rem;
}

.flf-form-field {
  display: grid;
  min-width: 0;
  gap: 0.45rem;
  color: var(--flf-ink);
  font-size: 0.85rem;
  font-weight: 800;
}

.flf-form-field small {
  font-weight: 500;
}

.flf-form-field :where(input, select, textarea) {
  width: 100%;
  min-height: 3.25rem;
  border: 2px solid #8b8b87;
  border-radius: var(--flf-radius-sm);
  background: #eeeeea;
  padding: 0.78rem 0.9rem;
  color: #565653;
  font: inherit;
  opacity: 1;
  -webkit-text-fill-color: #565653;
}

.flf-form-field textarea {
  min-height: 9rem;
  resize: none;
}

.flf-form-privacy {
  display: grid;
  grid-template-columns: 1.35rem minmax(0, 1fr);
  align-items: start;
  gap: 0.7rem;
  margin-top: 1.25rem;
  color: var(--flf-muted);
  font-size: 0.82rem;
  line-height: 1.45;
}

.flf-form-privacy input {
  width: 1.25rem;
  height: 1.25rem;
  margin: 0.1rem 0 0;
}

.flf-form-submit {
  margin-top: 1.25rem;
}

.flf-form-submit:disabled {
  cursor: not-allowed;
  opacity: 0.68;
  transform: none;
}

.flf-form-expectations {
  display: grid;
  gap: 0.75rem;
  margin-top: 1.5rem;
  border-top: 1px solid var(--flf-line);
  padding-top: 1.25rem;
}

.flf-form-state {
  margin: 0;
  border-left: 0.3rem solid var(--flf-blue);
  background: var(--flf-blue-tint);
  padding: 0.75rem 0.9rem;
  color: var(--flf-muted);
  font-size: 0.8rem;
}

.flf-form-state--failure {
  border-left-color: var(--flf-error);
  background: #fff0ee;
}

.flf-form-state--success {
  border-left-color: #087a55;
}

.flf-contact-details {
  background: var(--flf-warm-paper);
}

.flf-contact-details-widget {
  margin-top: clamp(2rem, 4vw, 3rem);
}

.flf-contact-card {
  max-width: 44rem;
  border: 2px solid var(--flf-ink);
  border-radius: var(--flf-radius);
  background: var(--flf-paper);
  padding: clamp(1.5rem, 4vw, 2.5rem);
  font-style: normal;
  box-shadow: 0.55rem 0.55rem 0 var(--flf-yellow);
}

.flf-contact-card p {
  margin: 0;
}

.flf-contact-card p + p {
  margin-top: 0.65rem;
}

.flf-contact-name {
  font-family: var(--flf-display);
  font-size: clamp(1.6rem, 2.5vw, 2.1rem);
  letter-spacing: -0.03em;
}

.flf-contact-link {
  display: inline-flex;
  min-height: 2.5rem;
  align-items: center;
  font-weight: 750;
  text-decoration-thickness: 0.1em;
  text-underline-offset: 0.2em;
}

.flf-contact-link--email::before,
.flf-contact-link--phone::before {
  margin-right: 0.55rem;
  color: var(--flf-muted);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.flf-contact-link--email::before { content: "Email"; }
.flf-contact-link--phone::before { content: "Phone"; }

/* Wide-layout contract. */
@media (min-width: 480px) {
  .flf-proof-heading-row {
    flex-direction: row;
    align-items: flex-end;
    justify-content: space-between;
  }
}

@media (min-width: 768px) {
  .flf-image--desktop { display: block; }
  .flf-image--mobile { display: none; }

  .flf-mobile-action { display: none; }

  .flf-site-footer {
    padding-bottom: 2.6rem;
  }

  .flf-footer-grid {
    grid-template-columns: minmax(0, 1.3fr) minmax(9rem, 0.7fr) minmax(9rem, 0.7fr);
  }

  .flf-footer-bottom {
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: space-between;
  }

  .flf-grid-2,
  .flf-editorial-feature > .flf-shell > .flf-grid-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .flf-customer-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .flf-offer-card {
    grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
  }

  .flf-offer-copy { order: 1; }
  .flf-offer-media { min-height: 37rem; order: 2; }

  .flf-card-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .flf-proof-grid {
    grid-template-columns: minmax(0, 0.78fr) minmax(0, 1.22fr);
  }

  .flf-fit-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .flf-resource-stack {
    grid-template-rows: repeat(2, minmax(0, 1fr));
  }

  .flf-diagnostic-card {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .flf-diagnostic-action {
    align-items: center;
  }

  .flf-form-grid,
  .flf-form-expectations {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .flf-form-field--full {
    grid-column: 1 / -1;
  }
}

@media (min-width: 1025px) {
  .flf-site-header,
  .flf-header-inner {
    min-height: 6.125rem;
  }

  .flf-header-inner {
    grid-template-columns: minmax(7rem, 10rem) 1fr auto;
  }

  .flf-header-cta { display: block !important; }

  .flf-hero--dark {
    min-height: clamp(46rem, 74vh, 53.125rem);
  }

  .flf-hero--dark .flf-hero-grid {
    display: flex;
    min-height: clamp(46rem, 74vh, 53.125rem);
    align-items: center;
  }

  .flf-hero--dark .flf-hero-copy {
    width: min(58%, 45rem);
  }

  .flf-hero--dark .flf-hero-media {
    position: absolute;
    inset: 0 0 0 34%;
    min-height: 100%;
  }

  .flf-hero--dark .flf-hero-media::after {
    background: linear-gradient(90deg, #000 0%, rgba(0, 0, 0, 0.94) 10%, rgba(0, 0, 0, 0.4) 48%, rgba(0, 0, 0, 0.06) 78%);
  }

  .flf-hero:not(.flf-hero--dark) .flf-hero-grid {
    grid-template-columns: minmax(0, 1fr) minmax(24rem, 0.9fr);
    align-items: center;
    gap: clamp(3rem, 7vw, 6rem);
  }

  .flf-hero:not(.flf-hero--dark) .flf-hero-media {
    min-height: 43rem;
  }

  .flf-gap-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 1.1rem;
  }

  .flf-gap-grid::before {
    top: 4.65rem;
    right: 9%;
    bottom: auto;
    left: 9%;
    width: auto;
    height: 2px;
  }

  .flf-gap-step {
    display: block;
    min-height: 0;
    text-align: center;
  }

  .flf-gap-step::before {
    width: 9.25rem;
    height: 9.25rem;
    margin: 0 auto 1.6rem;
  }

  .flf-gap-step .flf-copy,
  .flf-gap-step .flf-copy .elementor-widget-container {
    max-width: 12rem;
    margin: 0.7rem auto 0;
  }

  .flf-customer-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .flf-card-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .flf-fit-card { min-height: 26.5rem; }

  .flf-logo-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

@media (max-width: 767px) {
  .flf-header-logo { width: 6.8rem; }

  .flf-primary-nav .elementor-nav-menu--dropdown {
    position: fixed !important;
    top: 5rem !important;
    right: 0;
    left: 0 !important;
    width: 100% !important;
  }

  .flf-close::after {
    top: -6rem;
    right: -6rem;
  }
}

@media (max-width: 359px) {
  .flf-mobile-action {
    grid-template-columns: 1fr;
  }

  .flf-site-footer {
    padding-bottom: calc(10rem + env(safe-area-inset-bottom, 0px));
  }

  .flf-display .elementor-heading-title,
  .flf-hero-title .elementor-heading-title {
    font-size: 3.05rem;
  }

  .flf-section-title .elementor-heading-title {
    font-size: 2.35rem;
  }

  .flf-logo-grid {
    grid-template-columns: 1fr;
  }
}

@media (min-width: 1440px) {
  .flf-shell {
    width: min(var(--flf-container), calc(100% - 8rem));
  }
}

@media (prefers-reduced-motion: reduce) {
  .flf-section *,
  .flf-section *::before,
  .flf-section *::after,
  .flf-site-header *,
  .flf-site-header *::before,
  .flf-site-header *::after,
  .flf-site-footer *,
  .flf-site-footer *::before,
  .flf-site-footer *::after,
  .flf-mobile-action * {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }

  .flf-hero--dark::before,
  .flf-spotlight {
    transform: none;
  }
}

@media (forced-colors: active) {
  .flf-section :where(a, button, input, textarea, select, [tabindex]):focus-visible,
  .flf-site-header :where(a, button, [tabindex]):focus-visible,
  .flf-site-footer :where(a, button, [tabindex]):focus-visible,
  .flf-mobile-action :where(a, button):focus-visible {
    outline: 3px solid Highlight;
    box-shadow: none;
  }

  .flf-logo-card,
  .flf-info-card,
  .flf-diagnostic-card,
  .flf-offer-card,
  .flf-review-form {
    border: 2px solid CanvasText;
  }
}

/* ========================================================================== 
   Wireframe parity: shared header and Home hero

   This is the authoritative layout contract for the BEM classes emitted by
   the current Elementor generators. Keep it after the legacy compatibility
   layers above so Elementor container defaults cannot reintroduce padding,
   gaps or pseudo-element sizing.
   ========================================================================== */

.flf-header-template {
  margin: 0 !important;
  padding: 0 !important;
  gap: 0 !important;
}

body.admin-bar .flf-header-template {
  top: var(--wp-admin--admin-bar--height, 32px);
}

.flf-header,
.flf-header__inner,
.flf-header__actions {
  padding: 0 !important;
}

.flf-header,
.flf-header__actions {
  gap: 0 !important;
}

.flf-header__cta {
  display: block !important;
  width: auto !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

.flf-section.flf-hero {
  margin: 0 !important;
  padding: 0 !important;
  gap: 0 !important;
}

.flf-hero--about {
  background: var(--flf-ink);
}

.flf-hero-grid,
.flf-hero-media,
.flf-hero-actions {
  padding: 0 !important;
  gap: 0 !important;
}

.flf-hero--dark::before {
  --flf-orb-size: clamp(12rem, 28vw, 21.25rem);
  top: 2.5rem;
  right: -5rem;
  bottom: auto !important;
  left: auto !important;
  width: var(--flf-orb-size) !important;
  height: var(--flf-orb-size) !important;
  aspect-ratio: auto !important;
}

.flf-hero-actions {
  display: flex !important;
  flex-flow: row wrap !important;
  align-items: center;
  gap: 1rem !important;
}

.flf-hero-actions .flf-hero-meta {
  margin: 0 !important;
}

@media (min-width: 901px) {
  .flf-header,
  .flf-header__inner {
    height: 6.125rem;
    min-height: 6.125rem;
  }

  .flf-header__inner {
    grid-template-columns: 7.875rem minmax(0, 1fr) auto;
    gap: clamp(1rem, 2vw, 2rem) !important;
  }

  .flf-header__logo {
    width: 7.875rem !important;
    height: 4.625rem;
  }

  .flf-header__logo .elementor-widget-container,
  .flf-header__logo a,
  .flf-header__logo img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: left center;
  }

  .flf-header__nav {
    display: flex !important;
    min-width: 0;
  }

  .flf-header__nav .elementor-nav-menu--main .elementor-item {
    padding-inline: clamp(0.35rem, 0.75vw, 0.7rem);
    font-size: 0.68rem;
  }

  .flf-header__menu-toggle {
    display: none !important;
  }

  .flf-header__actions {
    justify-self: end;
  }

  .elementor-widget-button.flf-button.flf-header__cta .elementor-button {
    min-height: 3.25rem;
    padding: 0.85rem 1.35rem;
    font-size: 0.7rem;
  }

  .flf-hero--home {
    min-height: 53.125rem;
  }

  .flf-hero--home .flf-hero-grid {
    display: flex;
    min-height: 53.125rem;
    align-items: center;
  }

  .flf-hero--home .flf-hero-copy {
    width: min(62%, 45rem);
    padding-block: clamp(4.5rem, 8vw, 6rem) !important;
  }

  .flf-hero--home .flf-hero-media {
    position: absolute;
    inset: 0 0 0 35%;
    min-height: 100%;
  }

  .flf-hero--home .flf-hero-media::after {
    background: linear-gradient(90deg, #000 0%, rgba(0, 0, 0, 0.94) 11%, rgba(0, 0, 0, 0.42) 50%, rgba(0, 0, 0, 0.06) 80%);
  }

  .flf-hero--home .flf-hero-title .elementor-heading-title {
    max-width: 12ch;
    font-size: clamp(4.875rem, 8vw, 7rem);
    line-height: 0.97;
  }

  .flf-hero--home::before {
    --flf-orb-size: clamp(17.5rem, 33vw, 21.25rem);
    top: 4.5rem;
    right: -6.875rem;
  }
}

@media (max-width: 900px) {
  .flf-header-template,
  .flf-header {
    height: 4.875rem;
    min-height: 4.875rem;
  }

  .flf-header {
    overflow: visible;
  }

  .flf-header__inner {
    height: 4.875rem;
    min-height: 4.875rem;
    grid-template-columns: 5.875rem minmax(0, 1fr) 2.75rem;
    align-items: center;
    gap: 0.625rem !important;
  }

  .flf-header__logo {
    width: 5.875rem !important;
    height: 3.5rem;
  }

  .flf-header__logo .elementor-widget-container,
  .flf-header__logo a,
  .flf-header__logo img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: left center;
  }

  .flf-header__nav {
    display: none !important;
  }

  .flf-header__actions {
    width: 100% !important;
    min-width: 0;
    align-items: flex-end;
    justify-self: end;
  }

  .flf-header__cta {
    width: min(10rem, 100%) !important;
  }

  .elementor-widget-button.flf-button.flf-header__cta .elementor-button {
    width: 100%;
    min-height: 2.75rem;
    padding: 0.6875rem 0.8125rem;
    font-size: 0.5625rem;
    line-height: 1.1;
    white-space: normal;
  }

  .elementor-widget-button.flf-button.flf-header__cta .elementor-button::after {
    display: none;
  }

  .flf-header__menu-toggle {
    display: block !important;
    width: 2.75rem !important;
    min-width: 2.75rem;
    height: 2.75rem;
    justify-self: end;
    border: 0;
    background: none;
  }

  .flf-header__menu-toggle .elementor-menu-toggle {
    display: inline-flex;
    width: 2.75rem;
    min-width: 2.75rem;
    height: 2.75rem;
    min-height: 2.75rem;
    margin: 0;
    padding: 0;
    align-items: center;
    justify-content: center;
    border: 2px solid var(--flf-ink);
    border-radius: var(--flf-radius-sm);
    background: transparent;
    color: var(--flf-ink);
  }

  .flf-header__menu-toggle .elementor-nav-menu--dropdown {
    position: fixed !important;
    top: calc(4.875rem + var(--wp-admin--admin-bar--height, 0px)) !important;
    right: 0;
    left: 0 !important;
    width: 100% !important;
  }

  .flf-hero--home {
    min-height: 48.75rem;
  }

  .flf-hero--home .flf-hero-grid {
    display: grid;
    width: 100%;
    min-height: 48.75rem;
    margin: 0;
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: 21.875rem auto;
  }

  .flf-hero--home .flf-hero-media {
    width: 100%;
    max-width: none;
    height: 21.875rem;
    min-height: 21.875rem;
    margin: 0;
    grid-row: 1;
  }

  .flf-hero--home .flf-image--desktop {
    display: none;
  }

  .flf-hero--home .flf-image--mobile {
    display: block;
  }

  .flf-hero--home .flf-hero-image img {
    object-position: 51% 35%;
  }

  .flf-hero--home .flf-hero-copy {
    width: calc(100% - 2.75rem);
    max-width: var(--flf-container);
    margin-inline: auto;
    padding: 1.375rem 0 2rem !important;
    gap: 0 !important;
    grid-row: 2;
  }

  .flf-hero--home .flf-hero-copy > .elementor-element + .elementor-element {
    margin-top: 0.875rem;
  }

  .flf-hero--home .flf-hero-copy .flf-eyebrow + .elementor-element {
    margin-top: 0.25rem;
  }

  .flf-hero--home .flf-hero-title .elementor-heading-title {
    max-width: 10ch;
    font-size: 3.5rem;
    line-height: 0.97;
  }

  .flf-hero--home .flf-hero-lead,
  .flf-hero--home .flf-hero-lead .elementor-widget-container {
    max-width: 34rem;
    font-size: 1.0625rem;
    line-height: 1.55;
  }

  .flf-hero--home .flf-hero-actions {
    flex-direction: column !important;
    align-items: flex-start;
    gap: 0.75rem !important;
  }

  .flf-hero--home::before {
    --flf-orb-size: 10.625rem;
    top: 2.8125rem;
    right: -4.375rem;
  }
}

@media (max-width: 767px) {
  .flf-sticky-cta {
    gap: 0.5rem !important;
    padding: 0.5rem 0.75rem calc(0.5rem + env(safe-area-inset-bottom, 0px)) !important;
  }

  .flf-sticky-cta .flf-button {
    margin: 0 !important;
    padding: 0 !important;
    gap: 0 !important;
  }

  .flf-sticky-cta .flf-button .elementor-button {
    min-height: 3rem;
    padding: 0.625rem 0.5rem;
    font-size: 0.625rem;
  }
}

@media (max-width: 359px) {
  .flf-hero--home .flf-hero-title .elementor-heading-title {
    font-size: 3.2rem;
  }

  .flf-header__inner {
    grid-template-columns: 5.625rem minmax(0, 1fr) 2.75rem;
  }

  .flf-header__logo {
    width: 5.625rem !important;
  }

  .elementor-widget-button.flf-button.flf-header__cta .elementor-button {
    padding-inline: 0.625rem;
    font-size: 0.525rem;
  }
}

/* Mobile footer: remove the legacy <br> grid rows while retaining 44px targets. */
@media (max-width: 767px) {
  .flf-footer__top {
    gap: 1.5rem;
  }

  .flf-footer__links {
    gap: 0;
    margin-top: 0.5rem;
  }

  .flf-footer__links .elementor-widget-container {
    display: grid;
    gap: 0;
  }

  .flf-footer__links br {
    display: none;
  }

  .flf-footer__links a {
    display: flex;
    min-height: 2.75rem;
    align-items: center;
    line-height: 1.35;
  }
}

/* Mobile home: compose the complete hero inside the unobscured first screen. */
@media (max-width: 767px) {
  .flf-header-template,
  .flf-header {
    height: 4.25rem;
    min-height: 4.25rem;
  }

  .flf-header__inner {
    height: 4.25rem;
    min-height: 4.25rem;
    grid-template-columns: 5.375rem minmax(0, 1fr) 2.75rem;
    gap: 0.5rem !important;
  }

  .flf-header__logo {
    width: 5.375rem !important;
    height: 3.125rem;
  }

  .flf-header__cta {
    width: min(9.75rem, 100%) !important;
  }

  .flf-header__menu-toggle .elementor-nav-menu--dropdown {
    top: calc(4.25rem + var(--wp-admin--admin-bar--height, 0px)) !important;
  }

  .flf-hero--home,
  .flf-hero--home .flf-hero-grid {
    min-height: calc(100svh - 8.375rem - var(--wp-admin--admin-bar--height, 0px) - env(safe-area-inset-bottom, 0px));
  }

  .flf-hero--home .flf-hero-grid {
    position: relative;
    display: block;
  }

  .flf-hero--home .flf-hero-media {
    position: absolute;
    inset: 0 0 auto;
    height: clamp(18rem, 56svh, 34rem);
    min-height: 0;
  }

  .flf-hero--home .flf-hero-media::after {
    background: linear-gradient(180deg, rgba(0, 0, 0, 0.02) 0%, rgba(0, 0, 0, 0.16) 48%, #000000 100%);
  }

  .flf-hero--home .flf-hero-image img {
    object-position: 50% 8%;
  }

  .flf-hero--home .flf-hero-copy {
    width: calc(100% - 2.25rem);
    min-height: calc(100svh - 8.375rem - var(--wp-admin--admin-bar--height, 0px) - env(safe-area-inset-bottom, 0px));
    padding: 0 0 1.5rem !important;
    justify-content: flex-end;
  }

  .flf-hero--home .flf-hero-copy > .elementor-element + .elementor-element {
    margin-top: 0.5rem;
  }

  .flf-hero--home .flf-hero-copy .flf-eyebrow + .elementor-element {
    margin-top: 0.125rem;
  }

  .flf-hero--home .flf-eyebrow,
  .flf-hero--home .flf-eyebrow .elementor-widget-container {
    font-size: 0.6875rem;
    line-height: 1.35;
    letter-spacing: 0.14em;
  }

  .flf-hero--home .flf-hero-title .elementor-heading-title {
    max-width: 9.5ch;
    font-size: 2.5rem;
    line-height: 0.97;
  }

  .flf-hero--home .flf-hero-lead,
  .flf-hero--home .flf-hero-lead .elementor-widget-container {
    max-width: 30rem;
    font-size: 1rem;
    line-height: 1.4;
  }

  .flf-hero--home .flf-hero-actions {
    display: none !important;
  }

  .flf-hero--home::before {
    --flf-orb-size: 7.75rem;
    top: 1.25rem;
    right: -3.25rem;
  }
}

@media (max-width: 767px) and (max-height: 699px) {
  .flf-hero--home .flf-hero-media {
    height: clamp(14rem, 47svh, 18rem);
  }

  .flf-hero--home .flf-hero-copy > .elementor-element + .elementor-element {
    margin-top: 0.375rem;
  }

  .flf-hero--home .flf-hero-title .elementor-heading-title {
    font-size: 2.35rem;
  }

  .flf-hero--home .flf-hero-lead,
  .flf-hero--home .flf-hero-lead .elementor-widget-container {
    font-size: 0.9375rem;
    line-height: 1.35;
  }

  .flf-hero--home::before {
    --flf-orb-size: 6.75rem;
    top: 1rem;
    right: -2.75rem;
  }
}

@media (max-width: 359px) {
  .flf-header__inner {
    grid-template-columns: 5rem minmax(0, 1fr) 2.75rem;
  }

  .flf-header__logo {
    width: 5rem !important;
  }

  .flf-hero--home .flf-hero-title .elementor-heading-title {
    font-size: 2.3rem;
  }

  .flf-hero--home,
  .flf-hero--home .flf-hero-grid,
  .flf-hero--home .flf-hero-copy {
    min-height: calc(100svh - 11.875rem - var(--wp-admin--admin-bar--height, 0px) - env(safe-area-inset-bottom, 0px));
  }

  .flf-hero--home .flf-hero-media {
    height: 13.5rem;
  }
}

@supports not (height: 100svh) {
  @media (max-width: 767px) {
    .flf-hero--home,
    .flf-hero--home .flf-hero-grid,
    .flf-hero--home .flf-hero-copy {
      min-height: calc(100vh - 8.375rem - var(--wp-admin--admin-bar--height, 0px) - env(safe-area-inset-bottom, 0px));
    }
  }

  @media (max-width: 359px) {
    .flf-hero--home,
    .flf-hero--home .flf-hero-grid,
    .flf-hero--home .flf-hero-copy {
      min-height: calc(100vh - 11.875rem - var(--wp-admin--admin-bar--height, 0px) - env(safe-area-inset-bottom, 0px));
    }
  }
}

/* Short/zoomed viewports use natural flow so no content can be clipped. */
@media (max-width: 767px) and (max-height: 559px) {
  .flf-hero--home,
  .flf-hero--home .flf-hero-grid,
  .flf-hero--home .flf-hero-copy {
    min-height: 0;
  }

  .flf-hero--home .flf-hero-grid {
    display: grid;
    grid-template-rows: 10rem auto;
  }

  .flf-hero--home .flf-hero-media {
    position: relative;
    inset: auto;
    height: 10rem;
    grid-row: 1;
  }

  .flf-hero--home .flf-hero-copy {
    padding-block: 0.75rem 1rem !important;
    justify-content: flex-start;
    grid-row: 2;
  }
}

/* Content readability: slightly larger body copy, without disturbing heroes,
   display type, controls, navigation, citations or legal metadata. */
:where(.flf-section:not(.flf-hero)) .flf-copy:not(.flf-copy--large),
:where(.flf-section:not(.flf-hero)) .flf-copy:not(.flf-copy--large).elementor-widget-text-editor,
:where(.flf-section:not(.flf-hero)) .flf-copy:not(.flf-copy--large) .elementor-widget-container,
:where(.flf-section:not(.flf-hero)) .flf-copy:not(.flf-copy--large) :where(p, li),
:where(.flf-section:not(.flf-hero)) .flf-list li {
  font-size: clamp(1.0625rem, 0.35vw + 1rem, 1.125rem);
  line-height: 1.62;
}

/* Preserve the compact visual rhythm of the Blindspot Gap sequence while
   lifting its smallest explanatory copy to a readable 16px baseline. */
.flf-gap-step .flf-copy,
.flf-gap-step .flf-copy.elementor-widget-text-editor,
.flf-gap-step .flf-copy .elementor-widget-container,
.flf-gap-step .flf-copy :where(p, li) {
  font-size: 1rem;
  line-height: 1.5;
}

.flf-customer-card .flf-copy,
.flf-customer-card .flf-copy.elementor-widget-text-editor,
.flf-customer-card .flf-copy .elementor-widget-container,
.flf-customer-card .flf-copy :where(p, li) {
  font-size: 1.0625rem;
  line-height: 1.58;
}

/* ==========================================================================
   0.1.20 desktop composition and shared-component refinement

   The Elementor generators intentionally emit stable flf-* classes. This
   final contract resolves the remaining class drift and keeps the same visual
   system across Home, customer pages, About, Resources and the model article.
   ========================================================================== */

:root {
  --flf-container: 1380px;
  --flf-reading: 760px;
  --flf-section-space: clamp(4rem, 6.5vw, 6.75rem);
}

.flf-display .elementor-heading-title,
.flf-hero h1 {
  font-size: clamp(3.2rem, 6.7vw, 5.85rem) !important;
  line-height: 0.98;
}

.flf-section-title .elementor-heading-title,
.flf-section__heading,
.flf-section__heading .elementor-heading-title {
  max-width: 58rem;
  font-size: clamp(2.45rem, 4.8vw, 4.1rem) !important;
  line-height: 1;
}

.flf-close-copy .flf-section-title .elementor-heading-title,
.flf-offer-copy .flf-section-title .elementor-heading-title,
.flf-diagnostic-copy .flf-section-title .elementor-heading-title {
  font-size: clamp(2.65rem, 4.6vw, 4.15rem) !important;
}

/* Compact, light footer with direct contact paths. */
.flf-footer {
  border-top: 2px solid var(--flf-ink);
  background: var(--flf-paper);
  padding: clamp(2.75rem, 5vw, 4rem) 0 1.5rem;
  color: var(--flf-ink);
}

.flf-footer__top {
  grid-template-columns: minmax(15rem, 1.35fr) repeat(3, minmax(9rem, 0.65fr)) !important;
  align-items: start;
  gap: clamp(1.5rem, 3vw, 3.25rem);
}

.flf-footer__brand img,
.flf-footer__logo img {
  width: min(9.5rem, 100%);
  max-height: 6rem;
  background: transparent;
}

.flf-footer__brand p {
  max-width: 28rem;
  margin-top: 1.1rem;
  color: var(--flf-muted);
  font-size: 0.95rem;
  line-height: 1.55;
}

.flf-footer__heading {
  color: var(--flf-ink);
  font-size: 0.75rem;
}

.flf-footer__contact { min-width: 0; }

.flf-footer__links,
.flf-footer__links .elementor-widget-container {
  display: grid;
  gap: 0;
  margin-top: 0.55rem;
  color: var(--flf-muted);
}

.flf-footer__links br { display: none; }

.flf-footer__links a {
  display: flex;
  min-height: 2.25rem;
  align-items: center;
  line-height: 1.3;
}

.flf-footer__bottom {
  margin-top: clamp(1.75rem, 3vw, 2.5rem);
  border-top-color: var(--flf-line);
  padding-top: 1.1rem;
  color: var(--flf-muted);
}

/* Hero family: use the full desktop canvas and keep every hero to one scene.
   0.1.42 lowers the minimum only when the viewport needs it, so 720px-tall
   desktop and zoom-equivalent views keep the complete opening scene visible
   without changing the approved 1440x900 composition. */
@media (min-width: 901px) {
  .flf-hero--home,
  .flf-hero--home .flf-hero-grid {
    min-height: clamp(36rem, calc(100svh - 6.125rem - var(--wp-admin--admin-bar--height, 0px)), 48rem) !important;
  }

  .flf-hero--home .flf-hero-grid,
  .flf-hero--dark:not(.flf-hero--home) .flf-hero-grid {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
  }

  .flf-hero--home .flf-hero-copy {
    width: min(55%, 47rem) !important;
    margin: 0 !important;
    padding: clamp(2.5rem, 8vh, 4rem) 0 !important;
  }

  .flf-hero--home .flf-hero-title .elementor-heading-title {
    max-width: 11ch;
    font-size: clamp(4.75rem, 6.3vw, 6.25rem) !important;
  }

  .flf-hero--home .flf-hero-media {
    inset: 0 0 0 38% !important;
  }

  .flf-hero--dark:not(.flf-hero--home),
  .flf-hero--dark:not(.flf-hero--home) .flf-hero-grid {
    min-height: clamp(36rem, calc(100svh - 6.125rem - var(--wp-admin--admin-bar--height, 0px)), 46rem) !important;
  }

  .flf-hero--dark:not(.flf-hero--home) .flf-hero-copy {
    width: min(59%, 49rem) !important;
    margin: 0 !important;
    padding: clamp(3.25rem, 5vw, 4.5rem) 0 !important;
  }

  .flf-hero--dark:not(.flf-hero--home) .flf-hero-copy > .elementor-element + .elementor-element {
    margin-top: clamp(0.7rem, 1.25vw, 1.05rem);
  }

  .flf-hero--dark:not(.flf-hero--home) .flf-hero-title .elementor-heading-title {
    max-width: 12ch;
    font-size: clamp(4.1rem, 5.4vw, 5.35rem) !important;
  }

  .flf-hero--resources .flf-hero-title .elementor-heading-title,
  .flf-hero--blindspot-model .flf-hero-title .elementor-heading-title {
    max-width: 13.5ch !important;
    font-size: clamp(3.7rem, 4.8vw, 4.85rem) !important;
  }

  .flf-hero--dark:not(.flf-hero--home) .flf-hero-copy .flf-copy,
  .flf-hero--dark:not(.flf-hero--home) .flf-hero-copy .flf-copy .elementor-widget-container {
    max-width: 43rem;
    font-size: clamp(1rem, 0.28vw + 0.95rem, 1.125rem);
    line-height: 1.5;
  }

  .flf-hero--dark:not(.flf-hero--home) .flf-hero-media {
    position: absolute !important;
    inset: 0 0 0 43% !important;
    min-height: 100% !important;
  }

  .flf-hero--dark:not(.flf-hero--home) .flf-hero-media::after {
    background: linear-gradient(90deg, #000 0%, rgba(0, 0, 0, 0.96) 10%, rgba(0, 0, 0, 0.48) 52%, rgba(0, 0, 0, 0.08) 82%);
  }

  .flf-hero--dark:not(.flf-hero--home)::before {
    --flf-orb-size: clamp(13rem, 21vw, 18rem);
    top: 3rem;
    right: -4.5rem;
  }
}

/* Blindspot Gap: a legible card rail on desktop and an overlap-proof timeline. */
.flf-gap-intro {
  min-width: 0;
}

@media (min-width: 1025px) {
  .flf-gap-intro {
    display: grid !important;
    grid-template-columns: minmax(0, 0.82fr) minmax(0, 1.18fr);
    align-items: start;
    column-gap: clamp(3rem, 7vw, 7rem);
  }

  .flf-gap-intro > .flf-section-title {
    grid-column: 1;
    grid-row: 1 / span 8;
  }

  .flf-gap-intro > .flf-copy,
  .flf-gap-intro > .flf-list {
    grid-column: 2;
    margin-top: 0 !important;
  }

  .flf-gap-intro > .flf-copy + .flf-copy { margin-top: 1.1rem !important; }

  .flf-gap-grid {
    position: relative;
    z-index: 1;
    display: grid !important;
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
    align-items: stretch;
    gap: clamp(0.8rem, 1.25vw, 1.25rem) !important;
    margin-top: clamp(3rem, 5vw, 4.5rem);
  }

  .flf-gap-grid::before {
    z-index: -1;
    top: 3rem !important;
    right: 4% !important;
    bottom: auto !important;
    left: 4% !important;
    width: auto !important;
    height: 2px !important;
  }

  .flf-gap-step {
    position: relative;
    display: flex !important;
    min-height: 17rem !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    border: 2px solid var(--flf-ink);
    border-radius: var(--flf-radius);
    background: var(--flf-paper);
    padding: 6rem 1.25rem 1.4rem !important;
    text-align: left !important;
  }

  .flf-gap-step::before {
    position: absolute !important;
    top: 0.75rem !important;
    left: 50% !important;
    width: 4.5rem !important;
    height: 4.5rem !important;
    margin: 0 !important;
    transform: translateX(-50%);
  }

  .flf-gap-step > .elementor-widget-heading,
  .flf-gap-step > .flf-copy {
    width: 100%;
    max-width: none !important;
    margin-inline: 0 !important;
    grid-column: auto;
  }

  .flf-gap-step .elementor-heading-title {
    font-size: clamp(1.25rem, 1.3vw, 1.55rem);
  }

  .flf-gap-step .flf-copy,
  .flf-gap-step .flf-copy .elementor-widget-container {
    margin-top: 0.65rem !important;
    color: var(--flf-muted);
    font-size: 0.98rem;
    line-height: 1.48;
  }

  .flf-gap-step--3 {
    border-color: var(--flf-ink);
    background: var(--flf-ink);
    color: var(--flf-white);
  }

  .flf-gap-step--3 .flf-copy,
  .flf-gap-step--3 .flf-copy .elementor-widget-container {
    color: rgba(255, 255, 255, 0.78);
  }
}

@media (max-width: 1024px) {
  .flf-gap-grid {
    display: grid !important;
    gap: 0.9rem !important;
  }

  .flf-gap-grid::before { display: none; }

  .flf-gap-step {
    display: grid !important;
    min-height: 0 !important;
    grid-template-columns: 4.25rem minmax(0, 1fr) !important;
    grid-template-rows: auto auto !important;
    align-items: center;
    gap: 0.3rem 1rem;
    border: 2px solid var(--flf-ink);
    border-radius: var(--flf-radius);
    background: var(--flf-paper);
    padding: 1rem !important;
  }

  .flf-gap-step::before {
    position: relative !important;
    inset: auto !important;
    width: 4.25rem !important;
    height: 4.25rem !important;
    margin: 0 !important;
    transform: none !important;
    grid-column: 1 !important;
    grid-row: 1 / span 2 !important;
  }

  .flf-gap-step > .elementor-widget-heading,
  .flf-gap-step > .flf-copy {
    grid-column: 2 !important;
  }

  .flf-gap-step--3 {
    background: var(--flf-ink);
    color: var(--flf-white);
  }

  .flf-gap-step--3 .flf-copy { color: rgba(255, 255, 255, 0.8); }
}

/* Home offer: a complete desktop scene without clipping copy. */
.flf-offer {
  padding-block: clamp(3rem, 4.5vw, 4.75rem);
}

.flf-offer-copy > .elementor-element + .elementor-element {
  margin-top: clamp(0.65rem, 1.2vw, 0.95rem);
}

@media (min-width: 901px) {
  .flf-offer-card {
    grid-template-columns: minmax(0, 1.08fr) minmax(22rem, 0.92fr) !important;
    align-items: stretch;
  }

  .flf-offer-copy {
    padding: clamp(2.25rem, 3.5vw, 3.5rem) !important;
  }

  .flf-offer-copy .flf-section-title .elementor-heading-title {
    font-size: clamp(2.8rem, 3.7vw, 3.75rem) !important;
  }

  .flf-offer-copy .flf-copy,
  .flf-offer-copy .flf-copy .elementor-widget-container,
  .flf-offer-copy .flf-list li {
    font-size: 1rem;
    line-height: 1.5;
  }

  .flf-offer-media {
    min-height: min(68vh, 36rem) !important;
  }
}

/* Proof: feed first, then one full-width organisations and credentials system. */
.flf-proof > .flf-container > .flf-section__heading {
  text-align: left;
}

.flf-proof-grid {
  grid-template-columns: minmax(0, 1fr) !important;
}

.flf-proof-panel,
.flf-credentials-panel {
  width: 100%;
  border: 2px solid var(--flf-ink);
  border-radius: var(--flf-radius);
  background: var(--flf-paper);
  padding: clamp(1.5rem, 3.5vw, 2.75rem);
}

.flf-proof-panel__header {
  flex-direction: column !important;
  align-items: flex-start !important;
  justify-content: flex-start !important;
  gap: 0.9rem;
}

.flf-proof-panel__header h3 {
  max-width: 38rem;
  font-size: clamp(2rem, 3vw, 2.75rem);
  text-align: left;
}

.flf-logo-feed-cue {
  display: none;
  margin-top: 1rem;
  color: var(--flf-muted);
  font-size: 0.82rem;
  font-weight: 700;
}

.flf-client-logo-grid {
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  gap: 0.75rem;
}

.flf-client-logo-grid .flf-logo-card {
  min-height: 5.75rem;
}

.flf-credentials-panel {
  margin-top: clamp(1.5rem, 3vw, 2.5rem);
}

.flf-credentials-panel .flf-eyebrow { margin-bottom: 0.8rem; }

.flf-credentials-panel__heading,
.flf-credentials-panel__heading .elementor-heading-title {
  max-width: 44rem;
  font-size: clamp(2rem, 3vw, 2.75rem) !important;
  text-align: left;
}

.flf-credentials-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

/* Fit guidance: reserve red for the clear negative state. */
.flf-fit-card--2 {
  border-color: var(--flf-error);
  background: rgba(180, 35, 24, 0.08);
}

.flf-fit-card--2 .flf-list li::before {
  background: var(--flf-error) !important;
  color: var(--flf-white);
  content: "\2212" !important;
}

/* Editorial pairing: one resource card fills its column; no phantom row. */
.flf-editorial-feature > .flf-shell > .flf-grid-2 {
  align-items: stretch;
}

.flf-resource-stack {
  grid-template-rows: minmax(0, 1fr) !important;
}

.flf-resource-card {
  position: relative;
  overflow: hidden;
}

.flf-resource-card::before {
  position: absolute;
  right: -8rem;
  bottom: -8rem;
  width: 19rem;
  aspect-ratio: 1;
  border: 3.25rem solid rgba(0, 0, 0, 0.1);
  border-radius: 50%;
  content: "";
  pointer-events: none;
}

.flf-resource-card > .elementor-element {
  position: relative;
  z-index: 1;
}

.flf-resource-card > .flf-button { margin-top: auto; }

@media (min-width: 901px) {
  .flf-editorial-feature > .flf-shell > .flf-grid-2 {
    grid-template-columns: minmax(0, 1.08fr) minmax(23rem, 0.92fr) !important;
  }

  .flf-founder-card,
  .flf-resource-card {
    min-height: min(72vh, 42rem) !important;
  }

  .flf-founder-card .elementor-heading-title {
    font-size: clamp(2.75rem, 3.8vw, 3.65rem);
  }

  .flf-resource-card {
    padding: clamp(2.5rem, 4vw, 4rem);
  }

  .flf-resource-card .elementor-heading-title {
    max-width: 12ch;
    font-size: clamp(2.75rem, 3.8vw, 3.7rem);
  }
}

/* Customer exploration sections: paired editorial panels, not empty halves. */
.flf-exploration {
  --flf-exploration-accent: var(--flf-yellow);
  background: var(--flf-warm-paper);
}

.flf-tourism-what-may-be-explored { --flf-exploration-accent: var(--flf-blue); }
.flf-allied-health-what-may-be-explored { --flf-exploration-accent: var(--flf-blue-tint); }

.flf-exploration > .flf-shell {
  overflow: hidden;
  border: 2px solid var(--flf-ink);
  border-radius: var(--flf-radius-lg);
  background: var(--flf-paper);
}

.flf-exploration__intro,
.flf-exploration__detail {
  padding: clamp(2rem, 5vw, 4.5rem) !important;
}

.flf-exploration__media {
  min-height: clamp(15rem, 58vw, 24rem);
  background: var(--flf-blue-tint);
}

.flf-exploration__media .flf-context-image {
  object-position: center;
}

.flf-exploration__intro {
  justify-content: center;
  background: var(--flf-ink);
  color: var(--flf-white);
}

.flf-exploration__intro .flf-copy { color: rgba(255, 255, 255, 0.76); }

.flf-exploration__detail {
  justify-content: center;
  background: var(--flf-exploration-accent);
}

.flf-exploration__detail .flf-list {
  margin: 0;
}

.flf-exploration__detail .flf-list li {
  color: var(--flf-ink);
}

.flf-exploration__detail .flf-list li::before {
  background: var(--flf-ink);
  color: var(--flf-white);
}

@media (min-width: 901px) {
  .flf-exploration > .flf-shell {
    display: grid !important;
    grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
    grid-template-rows: minmax(18rem, 0.78fr) auto;
    padding: 0 !important;
  }

  .flf-exploration__intro {
    grid-column: 1;
    grid-row: 1 / 3;
  }

  .flf-exploration__media {
    grid-column: 2;
    grid-row: 1;
    min-height: 18rem;
  }

  .flf-exploration__detail {
    grid-column: 2;
    grid-row: 2;
  }

  .flf-exploration__detail .flf-list ul {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.9rem 1.5rem;
  }
}

/* About narrative: a confident editorial spread with balanced reading width. */
.flf-learning {
  background: var(--flf-blue-tint);
}

.flf-about-learning-to-look-differently { position: relative; }

.flf-learning > .flf-shell {
  overflow: hidden;
  border: 2px solid var(--flf-ink);
  border-radius: var(--flf-radius-lg);
  background: var(--flf-paper);
}

.flf-learning__intro,
.flf-learning__story {
  padding: clamp(2rem, 5vw, 4.5rem) !important;
}

.flf-learning__intro {
  justify-content: center;
  background: var(--flf-ink);
  color: var(--flf-white);
}

.flf-learning__story {
  justify-content: center;
  background: var(--flf-paper);
}

.flf-learning__story > .flf-copy {
  border-top: 1px solid var(--flf-line);
  padding-top: 1.1rem;
}

.flf-learning__story > .flf-copy:first-child {
  border-top: 0;
  padding-top: 0;
}

.flf-learning__story > .flf-copy + .flf-copy { margin-top: 1.1rem; }

@media (min-width: 901px) {
  .flf-learning > .flf-shell {
    display: grid !important;
    grid-template-columns: minmax(0, 0.82fr) minmax(0, 1.18fr);
    padding: 0 !important;
  }
}

/* Resource and model article sections use both columns without adding media. */
@media (min-width: 901px) {
  :is(
    .flf-resources-featured-framework,
    .flf-resources-featured-diagnostic,
    .flf-resources-qha-publication
  ) > .flf-shell {
    display: grid !important;
    grid-template-columns: minmax(0, 0.82fr) minmax(0, 1.18fr);
    align-items: start;
    gap: 1rem clamp(3rem, 7vw, 7rem);
    border: 2px solid var(--flf-ink);
    border-radius: var(--flf-radius-lg);
    background: var(--flf-paper);
    padding: clamp(2.5rem, 5vw, 4.5rem) !important;
  }

  :is(
    .flf-resources-featured-framework,
    .flf-resources-featured-diagnostic,
    .flf-resources-qha-publication
  ) > .flf-shell > .flf-section-title {
    grid-column: 1;
    grid-row: 1 / span 8;
  }

  :is(
    .flf-resources-featured-framework,
    .flf-resources-featured-diagnostic,
    .flf-resources-qha-publication
  ) > .flf-shell > :not(.flf-section-title) {
    grid-column: 2;
  }

  :is(
    .flf-blindspot-model-something-happens,
    .flf-blindspot-model-we-create-meaning,
    .flf-blindspot-model-a-story-forms,
    .flf-blindspot-model-seek-the-evidence,
    .flf-blindspot-model-see-more-clearly,
    .flf-blindspot-model-make-a-better-informed-decision,
    .flf-blindspot-model-a-simple-example,
    .flf-blindspot-model-five-questions-to-use
  ) > .flf-shell {
    display: grid !important;
    grid-template-columns: minmax(0, 0.72fr) minmax(0, 1.28fr);
    align-items: start;
    gap: 1rem clamp(3rem, 8vw, 8rem);
  }

  :is(
    .flf-blindspot-model-something-happens,
    .flf-blindspot-model-we-create-meaning,
    .flf-blindspot-model-a-story-forms,
    .flf-blindspot-model-seek-the-evidence,
    .flf-blindspot-model-see-more-clearly,
    .flf-blindspot-model-make-a-better-informed-decision,
    .flf-blindspot-model-a-simple-example,
    .flf-blindspot-model-five-questions-to-use
  ) > .flf-shell > .flf-section-title {
    grid-column: 1;
    grid-row: 1 / span 10;
  }

  :is(
    .flf-blindspot-model-something-happens,
    .flf-blindspot-model-we-create-meaning,
    .flf-blindspot-model-a-story-forms,
    .flf-blindspot-model-seek-the-evidence,
    .flf-blindspot-model-see-more-clearly,
    .flf-blindspot-model-make-a-better-informed-decision,
    .flf-blindspot-model-a-simple-example,
    .flf-blindspot-model-five-questions-to-use
  ) > .flf-shell > :not(.flf-section-title) {
    grid-column: 2;
  }
}

/* Mobile heroes use a single image-led scene and retain natural overflow. */
@media (max-width: 900px) {
  .flf-hero--dark:not(.flf-hero--home),
  .flf-hero--dark:not(.flf-hero--home) .flf-hero-grid,
  .flf-hero--dark:not(.flf-hero--home) .flf-hero-copy {
    min-height: calc(100svh - 8.375rem - var(--wp-admin--admin-bar--height, 0px) - env(safe-area-inset-bottom, 0px)) !important;
  }

  .flf-hero--dark:not(.flf-hero--home) .flf-hero-grid {
    position: relative;
    display: flex !important;
    width: 100%;
    flex-direction: column !important;
  }

  .flf-hero--dark:not(.flf-hero--home) .flf-hero-media {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 100% !important;
  }

  .flf-hero--dark:not(.flf-hero--home) .flf-hero-media::after {
    background: linear-gradient(180deg, rgba(0, 0, 0, 0.08) 0%, rgba(0, 0, 0, 0.38) 34%, #000 92%);
  }

  .flf-hero--dark:not(.flf-hero--home) .flf-hero-copy {
    display: flex !important;
    width: calc(100% - 2.25rem) !important;
    max-width: 42rem;
    margin-inline: auto !important;
    flex-direction: column !important;
    justify-content: flex-end !important;
    padding: 5.5rem 0 1.5rem !important;
  }

  .flf-hero--dark:not(.flf-hero--home) .flf-hero-copy > .elementor-element + .elementor-element {
    margin-top: 0.55rem;
  }

  .flf-hero--dark:not(.flf-hero--home) .flf-hero-title .elementor-heading-title {
    max-width: 11.5ch;
    font-size: clamp(2.55rem, 11vw, 3.35rem) !important;
  }

  .flf-hero--dark:not(.flf-hero--home) .flf-hero-copy .flf-copy,
  .flf-hero--dark:not(.flf-hero--home) .flf-hero-copy .flf-copy .elementor-widget-container {
    color: rgba(255, 255, 255, 0.86);
    font-size: clamp(0.95rem, 3.8vw, 1.05rem);
    line-height: 1.42;
  }

  .flf-hero--dark:not(.flf-hero--home)::before {
    --flf-orb-size: 7.5rem;
    top: 1.25rem;
    right: -3rem;
  }
}

@media (max-width: 767px) {
  .flf-footer__top {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 1.25rem 1.5rem;
  }

  .flf-footer__brand { grid-column: 1 / -1; }

  .flf-footer__links a {
    min-height: 2.75rem;
    font-size: 0.9rem;
  }

  .flf-footer__bottom {
    gap: 0.45rem;
    margin-top: 1.5rem;
  }

  .flf-logo-feed-cue { display: block; }

  .flf-client-logo-grid {
    display: grid !important;
    grid-template-rows: repeat(2, 5.75rem) !important;
    grid-template-columns: none !important;
    grid-auto-flow: column;
    grid-auto-columns: min(72vw, 17rem);
    gap: 0.7rem;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    padding: 0.1rem 0 0.85rem;
    scroll-padding-inline: 0.1rem;
    scroll-snap-type: inline proximity;
    scrollbar-width: thin;
  }

  .flf-client-logo-grid .flf-logo-card {
    min-height: 0;
    scroll-snap-align: start;
  }

  .flf-credentials-grid {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .flf-founder-card { min-height: 34rem !important; }
  .flf-resource-card { min-height: 27rem !important; }

  .flf-exploration > .flf-shell,
  .flf-learning > .flf-shell {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr);
    padding: 0 !important;
  }

  .flf-exploration__intro,
  .flf-exploration__detail,
  .flf-learning__intro,
  .flf-learning__story {
    padding: 2rem 1.4rem !important;
  }
}

@media (max-width: 359px) {
  .flf-hero--dark:not(.flf-hero--home) .flf-hero-title .elementor-heading-title {
    font-size: 2.35rem !important;
  }

  .flf-footer__top { grid-template-columns: minmax(0, 1fr) !important; }
  .flf-footer__brand { grid-column: auto; }
}

/* ========================================================================== 
   0.1.21 rendered-layout verification refinements

   These final rules are based on measured 1880x900 and 390x844 staging
   renders. They keep desktop heroes and the Home offer inside one scene,
   widen the mobile proof feed and compact the contact-led mobile footer.
   ========================================================================== */

.flf-display .elementor-heading-title,
.flf-hero h1 {
  font-size: clamp(3.15rem, 6.15vw, 5.4rem) !important;
}

.flf-section-title .elementor-heading-title,
.flf-section__heading,
.flf-section__heading .elementor-heading-title {
  font-size: clamp(2.4rem, 4.35vw, 3.75rem) !important;
}

.flf-close-copy .flf-section-title .elementor-heading-title,
.flf-diagnostic-copy .flf-section-title .elementor-heading-title {
  font-size: clamp(2.55rem, 4.15vw, 3.75rem) !important;
}

/* Duration and fee remain available in the detailed Clarity Session content;
   the hero stays focused on the decision and primary action. */
.flf-hero .flf-hero-meta { display: none !important; }

@media (min-width: 901px) {
  .flf-hero--home .flf-hero-title .elementor-heading-title {
    font-size: clamp(4.6rem, 5.9vw, 5.85rem) !important;
  }

  .flf-hero--dark:not(.flf-hero--home) .flf-hero-copy {
    gap: 0.7rem !important;
    padding: clamp(2.25rem, 3.5vw, 3rem) 0 !important;
  }

  .flf-hero--dark:not(.flf-hero--home) .flf-hero-copy > .elementor-element + .elementor-element {
    margin-top: 0 !important;
  }

  .flf-hero--dark:not(.flf-hero--home) .flf-hero-title .elementor-heading-title {
    font-size: clamp(3.85rem, 4.85vw, 4.8rem) !important;
  }

  .flf-hero--resources .flf-hero-title .elementor-heading-title,
  .flf-hero--blindspot-model .flf-hero-title .elementor-heading-title {
    font-size: clamp(3.5rem, 4.35vw, 4.5rem) !important;
  }

  /* The complete Home offer now fits below the 98px public header at a
     900px-tall viewport without clipping or fixed-height assumptions. */
  .flf-section.flf-offer {
    padding-block: clamp(1.75rem, 3.5vh, 2.25rem) !important;
    padding-inline: 0 !important;
  }

  .flf-offer > .flf-shell {
    gap: 0 !important;
    padding: 0 !important;
  }

  .flf-offer-card.flf-grid-2 {
    grid-template-columns: minmax(0, 1.2fr) minmax(24rem, 0.8fr) !important;
    gap: 0 !important;
    padding: 0 !important;
  }

  .flf-offer-copy {
    gap: 0.7rem !important;
    padding: clamp(1.75rem, 2.4vw, 2.5rem) !important;
  }

  .flf-offer-copy > .elementor-element + .elementor-element {
    margin-top: 0 !important;
  }

  .flf-offer-copy .flf-section-title .elementor-heading-title {
    font-size: clamp(2.65rem, 3.1vw, 3.35rem) !important;
    line-height: 0.99 !important;
  }

  .flf-offer-copy .flf-subheading .elementor-heading-title {
    font-size: clamp(1.4rem, 1.65vw, 1.6rem) !important;
    line-height: 1.08 !important;
  }

  .flf-offer-copy .flf-copy,
  .flf-offer-copy .flf-copy .elementor-widget-container,
  .flf-offer-copy .flf-list li {
    font-size: 1rem !important;
    line-height: 1.45 !important;
  }

  .flf-offer-media {
    gap: 0 !important;
    min-height: min(62vh, 34rem) !important;
    padding: 0 !important;
  }

  /* A one-sided fit section becomes an editorial split rather than leaving
     half the desktop canvas unused. */
  .flf-fit > .flf-shell:has(> .flf-fit-grid:empty) {
    display: grid !important;
    grid-template-columns: minmax(0, 0.72fr) minmax(0, 1.28fr);
    align-items: start;
    gap: 1rem clamp(3rem, 8vw, 8rem);
  }

  .flf-fit > .flf-shell:has(> .flf-fit-grid:empty) > .flf-section-title {
    grid-column: 1;
    grid-row: 1 / span 8;
  }

  .flf-fit > .flf-shell:has(> .flf-fit-grid:empty) > :not(.flf-section-title, .flf-fit-grid) {
    grid-column: 2;
  }

  .flf-fit > .flf-shell > .flf-fit-grid:empty { display: none !important; }
}

@media (max-width: 767px) {
  .flf-proof {
    padding-inline: 0 !important;
  }

  .flf-proof > .flf-container {
    width: calc(100% - 1.25rem) !important;
    max-width: none !important;
    padding-inline: 0 !important;
  }

  .flf-proof-grid {
    padding-inline: 0 !important;
  }

  .flf-proof-panel,
  .flf-credentials-panel {
    width: 100% !important;
    padding: 1.25rem !important;
  }

  .flf-footer {
    padding-top: 2rem;
  }

  .flf-footer__top {
    gap: 0.7rem 1rem;
    padding: 0 !important;
  }

  .flf-footer__brand,
  .flf-footer__column {
    gap: 0.3rem !important;
    padding: 0 !important;
  }

  .flf-footer__brand p {
    margin-top: 0.35rem;
  }

  .flf-footer__contact {
    width: 100% !important;
    grid-column: 1 / -1;
  }

  .flf-footer__contact .flf-footer__links,
  .flf-footer__contact .flf-footer__links .elementor-widget-container {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    column-gap: 1rem;
  }

  .flf-footer__contact .flf-footer__links a:first-child {
    grid-column: 1 / -1;
  }

  .flf-footer__bottom {
    margin-top: 1rem;
  }
}

/* 0.1.22 final proof alignment, feed snapping and single-fit composition. */
.flf-proof-grid {
  padding: 0 !important;
}

@media (min-width: 901px) {
  .flf-fit--single > .flf-shell {
    display: grid !important;
    grid-template-columns: minmax(0, 0.72fr) minmax(0, 1.28fr);
    align-items: start;
    gap: 1rem clamp(3rem, 8vw, 8rem);
  }

  .flf-fit--single > .flf-shell > .flf-section-title {
    grid-column: 1;
    grid-row: 1 / span 8;
  }

  .flf-fit--single > .flf-shell > :not(.flf-section-title, .flf-fit-grid) {
    grid-column: 2;
  }

  .flf-fit--single .flf-list {
    border: 1px solid rgba(252, 225, 118, 0.62);
    border-radius: var(--flf-radius);
    background: rgba(252, 225, 118, 0.06);
    padding: clamp(1.5rem, 3vw, 2.25rem) !important;
  }
}

@media (max-width: 767px) {
  .flf-client-logo-grid {
    scroll-snap-type: inline mandatory !important;
  }

  .flf-footer__bottom a {
    display: inline-flex;
    min-height: 2.75rem;
    align-items: center;
  }
}

/* 0.1.23: remove Elementor's duplicate mobile hero rhythm so even the
   longer tourism and Clarity copy remains one composed opening scene. */
@media (max-width: 900px) {
  .flf-hero--dark:not(.flf-hero--home) .flf-hero-copy {
    gap: 0.75rem !important;
  }

  .flf-hero--dark:not(.flf-hero--home) .flf-hero-copy > .elementor-element + .elementor-element {
    margin-top: 0 !important;
  }
}

/* ========================================================================== 
   0.1.24 independent-review corrections

   Protect the 320px content viewport from the fixed action dock, keep hero
   labels legible over photography and move decorative orbs away from faces.
   The diagnostic opening now uses the same display scale as the rest of the
   site and reaches the interactive component materially sooner.
   ========================================================================== */

.flf-hero--dark .flf-eyebrow,
.flf-hero--dark .flf-eyebrow .elementor-widget-container {
  color: var(--flf-white) !important;
  text-shadow: 0 0.125rem 0.75rem rgba(0, 0, 0, 0.92);
}

.flf-diagnostic-hero {
  padding-block: clamp(2.75rem, 6vw, 4.75rem) !important;
}

.flf-diagnostic-hero .flf-display .elementor-heading-title {
  max-width: 12ch;
  font-size: clamp(3rem, 4.85vw, 4.5rem) !important;
}

.flf-diagnostic-page {
  padding-block: clamp(2rem, 4vw, 3.75rem) !important;
}

@media (min-width: 901px) {
  :is(
    .flf-hero--hospitality,
    .flf-hero--resources,
    .flf-hero--blindspot-model
  )::before {
    --flf-orb-size: clamp(10rem, 14vw, 13rem);
    top: 2rem;
    right: -8rem;
  }
}

@media (max-width: 900px) {
  :is(.flf-hero--resources, .flf-hero--blindspot-model) {
    --flf-focal-x: 72%;
    --flf-focal-y: 36%;
  }

  .flf-hero--dark:not(.flf-hero--home) .flf-hero-media::after {
    background: linear-gradient(180deg, rgba(0, 0, 0, 0.1) 0%, rgba(0, 0, 0, 0.46) 31%, rgba(0, 0, 0, 0.92) 76%, #000 100%);
  }

  .flf-hero--dark:not(.flf-hero--home) .flf-hero-copy {
    padding-bottom: calc(4.75rem + env(safe-area-inset-bottom, 0px)) !important;
  }
}

@media (max-width: 359px) {
  .flf-sticky-cta {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 0.375rem !important;
    padding: 0.4rem 0.5rem calc(0.4rem + env(safe-area-inset-bottom, 0px)) !important;
  }

  .flf-sticky-cta .flf-button .elementor-button {
    min-height: 2.75rem;
    padding: 0.5rem 0.35rem;
    font-size: 0.55rem;
  }

  .flf-site--has-sticky-cta {
    padding-bottom: calc(3.55rem + env(safe-area-inset-bottom, 0px)) !important;
  }

  .flf-hero--dark:not(.flf-hero--home) .flf-hero-copy {
    padding-bottom: calc(4.35rem + env(safe-area-inset-bottom, 0px)) !important;
  }

  .flf-diagnostic-hero .flf-display .elementor-heading-title {
    font-size: 2.35rem !important;
  }
}

/* ========================================================================== 
   0.1.25 breakpoint-boundary and photographic safe-zone corrections

   The first automated pass skipped the 768-820px interval. Keep the footer
   inside that narrower tablet canvas, allow long contact details to wrap, and
   use one conservative desktop orb treatment across every photographic hero.
   The diagnostic introduction is also tightened so its first action appears
   as part of the opening composition rather than below an avoidable gap.
   ========================================================================== */

.flf-footer__links a {
  min-width: 0;
  overflow-wrap: anywhere;
  word-break: break-word;
}

@media (min-width: 901px) {
  .flf-hero.flf-hero--dark::before {
    --flf-orb-size: clamp(8.5rem, 11vw, 10rem) !important;
    top: 2.25rem !important;
    right: -3.5rem !important;
  }
}

@media (min-width: 768px) and (max-width: 900px) {
  .flf-footer__top {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 1.5rem 2rem !important;
  }

  .flf-footer__brand {
    grid-column: 1 / -1;
  }

  .flf-footer__contact,
  .flf-footer__column,
  .flf-footer__links,
  .flf-footer__links .elementor-widget-container {
    min-width: 0;
  }
}

.flf-diagnostic-hero .flf-shell {
  gap: 0.85rem !important;
}

.flf-diagnostic-hero .flf-shell > .elementor-element {
  margin-block: 0 !important;
}

.flf-diagnostic-hero .flf-hero-meta {
  display: none !important;
}

@media (max-width: 767px) {
  .flf-diagnostic-hero {
    padding-block: 2rem !important;
  }

  .flf-diagnostic-hero .flf-display .elementor-heading-title {
    font-size: clamp(2.25rem, 11vw, 2.75rem) !important;
  }

  .flf-diagnostic-hero .flf-copy,
  .flf-diagnostic-hero .flf-copy .elementor-widget-container {
    margin-top: 0 !important;
    font-size: 1rem !important;
    line-height: 1.5 !important;
  }
}

/* ========================================================================== 
   0.1.28 / 0.1.29 compact intermediate-header contract

   The full navigation, including The Blindspot Model, needs more room than the
   901-1279px canvas provides. Use the same compact three-part header as mobile
   in this interval so no navigation item can wrap into a second row.
   ========================================================================== */

@media (min-width: 901px) and (max-width: 1279px) {
  .flf-header-template,
  .flf-header,
  .flf-header__inner {
    height: 4.875rem !important;
    min-height: 4.875rem !important;
  }

  .flf-header {
    overflow: visible;
  }

  .flf-header__inner {
    grid-template-columns: 5.875rem minmax(0, 1fr) 2.75rem !important;
    align-items: center;
    gap: 0.625rem !important;
  }

  .flf-header__logo {
    width: 5.875rem !important;
    height: 3.5rem !important;
  }

  .flf-header__logo .elementor-widget-container,
  .flf-header__logo a,
  .flf-header__logo img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: left center;
  }

  .flf-header__nav {
    display: none !important;
  }

  .flf-header__actions {
    width: 100% !important;
    min-width: 0;
    align-items: flex-end;
    justify-self: end;
  }

  .flf-header__cta {
    width: min(12rem, 100%) !important;
  }

  .elementor-widget-button.flf-button.flf-header__cta .elementor-button {
    width: 100%;
    min-height: 2.75rem;
    padding: 0.6875rem 0.8125rem;
    font-size: 0.625rem;
    line-height: 1.1;
    white-space: normal;
  }

  .elementor-widget-button.flf-button.flf-header__cta .elementor-button::after {
    display: none;
  }

  .flf-header__menu-toggle {
    display: block !important;
    width: 2.75rem !important;
    min-width: 2.75rem;
    height: 2.75rem;
    justify-self: end;
    border: 0;
    background: none;
  }

  .flf-header__menu-toggle .elementor-menu-toggle {
    display: inline-flex;
    width: 2.75rem;
    min-width: 2.75rem;
    height: 2.75rem;
    min-height: 2.75rem;
    margin: 0;
    padding: 0;
    align-items: center;
    justify-content: center;
    border: 2px solid var(--flf-ink);
    border-radius: var(--flf-radius-sm);
    background: transparent;
    color: var(--flf-ink);
  }

  .flf-header__menu-toggle .elementor-nav-menu--dropdown {
    position: fixed !important;
    top: calc(4.875rem + var(--wp-admin--admin-bar--height, 0px)) !important;
    right: 0;
    left: 0 !important;
    width: 100% !important;
  }
}

/* ========================================================================== 
   0.1.29 client-feedback content families

   These hooks are the reusable contract for the renamed Service Focussed
   Businesses and Sales routes, the Observation Room index and story template,
   and the face-safe Contact hero. Each coloured surface owns its foreground,
   links and borders so new editorial content cannot inherit unreadable colour.
   ========================================================================== */

.flf-hero--observation-story,
.flf-proof-template--service-focussed-businesses,
.flf-proof-template--sales,
.flf-proof-template--observation-story {
  min-width: 0;
}

.flf-context-media--service-focussed-businesses {
  background: var(--flf-blue-tint);
}

.flf-context-media--sales {
  background: var(--flf-yellow-tint);
}

.flf-service-focussed-businesses-what-may-be-explored {
  --flf-exploration-accent: var(--flf-blue);
}

.flf-sales-what-may-be-explored {
  --flf-exploration-accent: var(--flf-yellow);
}

.flf-customer-card .elementor-heading-title,
.flf-header__menu-toggle .elementor-nav-menu--dropdown a {
  overflow-wrap: normal;
  word-break: normal;
}

.flf-header__menu-toggle .elementor-nav-menu--dropdown a {
  white-space: normal;
}

/* Keep photographic subjects legible and keep decoration away from faces. */
.flf-hero--service-focussed-businesses {
  --flf-focal-x: 61%;
  --flf-focal-y: 48%;
  min-width: 0;
}

.flf-hero--sales {
  --flf-focal-x: 58%;
  --flf-focal-y: 48%;
  min-width: 0;
}

.flf-hero--contact {
  --flf-focal-x: 51%;
  --flf-focal-y: 24%;
  min-width: 0;
}

/* Keep René's face in frame when the portrait is cropped into the wide
   editorial About hero. Mobile uses the dedicated portrait crop below 901px. */
@media (min-width: 901px) {
  .flf-hero--about {
    --flf-focal-y: 27%;
  }
}

/* Branded not-found route: concise, campaign-consistent and status-correct. */
.flf-not-found {
  background: var(--flf-ink);
  color: var(--flf-white);
}

.flf-not-found__stage {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(16rem, 0.56fr);
  align-items: center;
  gap: clamp(2rem, 7vw, 7rem);
  min-height: calc(100svh - 6.125rem);
  padding: clamp(4rem, 8vw, 8rem) max(1.25rem, calc((100vw - 81rem) / 2));
  overflow: hidden;
}

.flf-not-found__copy {
  position: relative;
  z-index: 1;
  max-width: 51rem;
}

.flf-not-found__eyebrow {
  margin: 0 0 1.25rem;
  color: var(--flf-yellow);
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.flf-not-found h1 {
  max-width: 13ch;
  margin: 0;
  color: var(--flf-white);
  font-family: var(--flf-font-display);
  font-size: clamp(3.25rem, 7vw, 6.6rem);
  font-weight: 800;
  letter-spacing: -0.045em;
  line-height: 0.94;
}

.flf-not-found__copy > p:not(.flf-not-found__eyebrow) {
  max-width: 42rem;
  margin: clamp(1.5rem, 3vw, 2.5rem) 0 0;
  color: rgba(255, 255, 255, 0.78);
  font-size: clamp(1.06rem, 1.4vw, 1.22rem);
  line-height: 1.55;
}

.flf-not-found__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.9rem;
  margin-top: clamp(2rem, 4vw, 3rem);
}

.flf-not-found__button {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  min-height: 3.5rem;
  padding: 0.9rem 1.15rem;
  border: 2px solid rgba(255, 255, 255, 0.64);
  border-radius: 0.45rem;
  color: var(--flf-white);
  font-size: 0.82rem;
  font-weight: 800;
  letter-spacing: 0.055em;
  text-decoration: none;
  text-transform: uppercase;
}

.flf-not-found__button--primary {
  border-color: var(--flf-yellow);
  background: var(--flf-yellow);
  color: var(--flf-ink);
}

.flf-not-found__mark {
  color: var(--flf-yellow);
  font-family: var(--flf-font-display);
  font-size: clamp(14rem, 31vw, 31rem);
  font-weight: 800;
  line-height: 0.68;
  text-align: center;
  transform: rotate(8deg);
}

@media (max-width: 900px) {
  .flf-not-found__stage {
    grid-template-columns: 1fr;
    min-height: calc(100svh - 4.875rem);
    padding: clamp(3rem, 10vw, 5rem) clamp(1.25rem, 6vw, 3rem) 7rem;
  }

  .flf-not-found__mark {
    position: absolute;
    right: -1.25rem;
    bottom: 4rem;
    color: rgba(255, 222, 117, 0.16);
    font-size: 19rem;
  }
}

@media (max-width: 479px) {
  .flf-not-found__actions {
    display: grid;
  }

  .flf-not-found__button {
    width: 100%;
  }
}

.flf-hero--contact::before {
  display: none;
}

.flf-hero--contact .flf-hero-media::after {
  background: linear-gradient(90deg, #000 0%, rgba(0, 0, 0, 0.92) 17%, rgba(0, 0, 0, 0.34) 57%, rgba(0, 0, 0, 0.04) 84%);
}

/* 0.1.32 accessibility and narrow-screen review polish. */
@media (max-width: 1279px) {
  .flf-header__menu-toggle .elementor-nav-menu--dropdown a {
    display: flex;
    min-height: 2.75rem;
    align-items: center;
    box-sizing: border-box;
  }
}

@media (max-width: 479px) {
  .flf-contact-link--email {
    display: block;
    max-width: 100%;
    min-width: 0;
    overflow-wrap: anywhere;
    word-break: break-word;
  }

  .flf-contact-link--email::before {
    display: block;
    margin: 0 0 0.2rem;
  }
}

/* Older generated review markup may be cached during an incremental release.
   Never present mutually exclusive success and failure states before a form is live. */
.flf-contact-review-form > .flf-form-expectations {
  display: none;
}

/* Observation Room index. */
.flf-observation-index {
  background: var(--flf-warm-paper);
}

.flf-observation-index__intro {
  max-width: 52rem;
}

.flf-observation-index__intro .flf-copy {
  color: var(--flf-muted);
}

.flf-observation-grid {
  display: grid;
  gap: clamp(1rem, 2vw, 1.5rem);
  margin-top: clamp(2.5rem, 5vw, 4.5rem);
}

.flf-observation-card {
  display: flex;
  min-width: 0;
  flex-direction: column;
  overflow: hidden;
  border: 2px solid var(--flf-ink);
  border-radius: var(--flf-radius-lg);
  background: var(--flf-paper);
  color: var(--flf-ink);
}

.flf-observation-card--1,
.flf-observation-card--2,
.flf-observation-card--3,
.flf-observation-card--4,
.flf-observation-card--5,
.flf-observation-card--6 {
  min-width: 0;
}

.flf-observation-card__media,
.flf-observation-card__media > .elementor-element,
.flf-observation-card__media .elementor-widget-container,
.flf-observation-card__media picture {
  display: block;
  width: 100%;
  min-width: 0;
  height: 100%;
}

.flf-observation-card__media {
  min-height: 15rem;
  overflow: hidden;
  background: var(--flf-ink-soft);
}

.flf-observation-card__image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transition: transform 500ms var(--flf-ease);
}

.flf-observation-card__body {
  display: flex;
  min-width: 0;
  flex: 1 1 auto;
  flex-direction: column;
  align-items: flex-start;
  padding: clamp(1.4rem, 3vw, 2.25rem);
  color: var(--flf-ink);
}

.flf-observation-card__eyebrow,
.flf-observation-card__eyebrow .elementor-widget-container {
  margin-bottom: 0.85rem;
  color: var(--flf-muted);
}

.flf-observation-card__title,
.flf-observation-card__title .elementor-heading-title {
  max-width: 16ch;
  color: var(--flf-ink);
  font-size: clamp(1.85rem, 3vw, 2.7rem);
  overflow-wrap: normal;
  word-break: normal;
}

.flf-observation-card__deck,
.flf-observation-card__deck .elementor-widget-container {
  margin-top: 1rem;
  color: var(--flf-muted);
  font-size: clamp(1rem, 0.3vw + 0.95rem, 1.125rem);
  line-height: 1.55;
}

.flf-observation-card__link {
  margin-top: auto;
  padding-top: 1.25rem;
  color: var(--flf-ink);
}

.flf-observation-card__link :is(a, .elementor-button) {
  color: var(--flf-ink);
}

@media (hover: hover) and (pointer: fine) {
  .flf-observation-card:hover .flf-observation-card__image {
    transform: scale(1.035);
  }
}

/* Observation Room article template. */
.flf-observation-hero {
  --flf-focal-x: 54%;
  --flf-focal-y: 48%;
}

.flf-observation-hero__copy,
.flf-observation-hero__media,
.flf-observation-hero__image,
.flf-observation-hero--observation-rubbish,
.flf-observation-hero--observation-communication,
.flf-observation-hero--observation-customer-silence,
.flf-observation-hero--observation-highest-performer,
.flf-observation-hero--observation-numbers,
.flf-observation-hero--observation-always-done-this-way {
  min-width: 0;
}

.flf-observation-hero__image,
.flf-observation-hero__image .elementor-widget-container,
.flf-observation-hero__image img {
  width: 100%;
  height: 100%;
}

.flf-observation-hero__image img {
  object-fit: cover;
  object-position: var(--flf-focal-x, 54%) var(--flf-focal-y, 48%);
}

.flf-observation-hero__title,
.flf-observation-hero__title .elementor-heading-title {
  max-width: 12ch;
  overflow-wrap: normal;
  word-break: normal;
}

.flf-observation-hero__standfirst,
.flf-observation-hero__standfirst .elementor-widget-container {
  max-width: 38rem;
  color: rgba(255, 255, 255, 0.86);
  font-size: clamp(1.05rem, 0.6vw + 0.95rem, 1.25rem);
  line-height: 1.52;
}

.flf-observation-article {
  background: var(--flf-warm-paper);
}

.flf-observation-article__body {
  display: grid;
  min-width: 0;
  gap: clamp(1rem, 2vw, 1.5rem);
}

.flf-observation-article__story,
.flf-observation-article__blindspot,
.flf-observation-article__question,
.flf-observation-article__actions {
  min-width: 0;
  border: 2px solid var(--flf-ink);
  border-radius: var(--flf-radius-lg);
  padding: clamp(1.75rem, 4vw, 3.5rem);
}

.flf-observation-article__title {
  min-width: 0;
}

.flf-observation-article__story {
  background: var(--flf-paper);
  color: var(--flf-ink);
}

.flf-observation-article__story > .flf-copy,
.flf-observation-article__story > .flf-copy .elementor-widget-container {
  max-width: 45rem;
  color: var(--flf-muted);
}

.flf-observation-article__story > .flf-copy + .flf-copy {
  margin-top: 1.1rem;
}

.flf-observation-article__blindspot {
  border-color: var(--flf-ink);
  background: var(--flf-ink);
  color: var(--flf-white);
}

.flf-observation-article__blindspot :is(.elementor-heading-title, .flf-copy, .flf-copy .elementor-widget-container) {
  color: var(--flf-white);
}

.flf-observation-article__blindspot .flf-copy,
.flf-observation-article__blindspot .flf-copy .elementor-widget-container {
  color: rgba(255, 255, 255, 0.82);
}

.flf-observation-article__question {
  background: var(--flf-blue);
  color: var(--flf-ink);
}

.flf-observation-article__question :is(.elementor-heading-title, .flf-copy, .flf-copy .elementor-widget-container) {
  color: var(--flf-ink);
}

.flf-observation-article__actions {
  background: var(--flf-yellow);
  color: var(--flf-ink);
}

.flf-observation-article__actions :is(.elementor-heading-title, .flf-copy, .flf-copy .elementor-widget-container) {
  color: var(--flf-ink);
}

.flf-observation-article__action-links {
  display: flex;
  min-width: 0;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem 1.25rem;
  margin-top: 1.5rem;
}

.flf-observation-article__action-links .flf-button {
  max-width: 100%;
}

.flf-observation-question__model-link,
.flf-observation-question__model-link :is(a, .elementor-button) {
  color: var(--flf-ink);
}

@media (min-width: 768px) {
  .flf-observation-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .flf-observation-card--feature {
    display: grid;
    min-height: 25rem;
    grid-template-columns: minmax(0, 1.08fr) minmax(19rem, 0.92fr);
    grid-column: 1 / -1;
  }

  .flf-observation-card--feature .flf-observation-card__media {
    min-height: 100%;
  }

  .flf-observation-card--standard .flf-observation-card__media,
  .flf-observation-card--tall .flf-observation-card__media {
    aspect-ratio: 4 / 3;
  }

  .flf-observation-card--feature:nth-of-type(even) .flf-observation-card__media {
    order: 2;
  }

  .flf-observation-article__body {
    grid-template-columns: repeat(12, minmax(0, 1fr));
    align-items: stretch;
  }

  .flf-observation-article__story {
    grid-column: 1 / span 7;
    grid-row: 1 / span 2;
  }

  .flf-observation-article__blindspot,
  .flf-observation-article__question {
    grid-column: 8 / -1;
  }

  .flf-observation-article__actions {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(18rem, 0.8fr);
    align-items: end;
    gap: 1rem clamp(2rem, 5vw, 5rem);
    grid-column: 1 / -1;
  }

  .flf-observation-article__actions > .flf-eyebrow {
    grid-column: 1 / -1;
  }

  .flf-observation-article__actions > .flf-section-title,
  .flf-observation-article__actions > .flf-copy {
    grid-column: 1;
  }

  .flf-observation-article__action-links {
    grid-column: 2;
    grid-row: 2 / span 2;
    justify-content: flex-start;
    margin-top: 0;
  }
}

@media (min-width: 1280px) {
  .flf-observation-hero,
  .flf-observation-hero .flf-observation-hero__grid {
    min-height: clamp(36rem, calc(100svh - 6.125rem), 44rem);
  }

  .flf-customer-card .elementor-heading-title {
    font-size: clamp(1.85rem, 2.25vw, 2.25rem);
  }
}

@media (min-width: 901px) and (max-width: 1279px) {
  .flf-observation-hero,
  .flf-observation-hero .flf-observation-hero__grid {
    min-height: clamp(36rem, calc(100svh - 4.875rem), 44rem);
  }
}

@media (max-width: 900px) {
  .flf-hero--service-focussed-businesses {
    --flf-focal-x: 57%;
    --flf-focal-y: 42%;
  }

  .flf-hero--sales {
    --flf-focal-x: 56%;
    --flf-focal-y: 43%;
  }

  .flf-hero--contact {
    --flf-focal-x: 51%;
    --flf-focal-y: 18%;
  }

  .flf-hero--contact .flf-hero-media::after {
    background: linear-gradient(180deg, rgba(0, 0, 0, 0.06) 0%, rgba(0, 0, 0, 0.3) 37%, rgba(0, 0, 0, 0.94) 84%, #000 100%);
  }

  .flf-observation-hero__title,
  .flf-observation-hero__title .elementor-heading-title {
    max-width: 11ch;
  }

  .flf-observation-hero__standfirst,
  .flf-observation-hero__standfirst .elementor-widget-container {
    font-size: 1rem;
    line-height: 1.45;
  }
}

@media (max-width: 767px) {
  .flf-observation-card__media {
    min-height: 0;
    aspect-ratio: 4 / 5;
  }

  .flf-observation-article__action-links {
    flex-direction: column;
    align-items: stretch;
  }

  .flf-observation-article__action-links .flf-button,
  .flf-observation-article__action-links .flf-button :is(a, .elementor-button) {
    width: 100%;
  }
}

@media (max-width: 359px) {
  .flf-observation-card__title,
  .flf-observation-card__title .elementor-heading-title {
    font-size: 1.75rem;
  }

  .flf-observation-article__story,
  .flf-observation-article__blindspot,
  .flf-observation-article__question,
  .flf-observation-article__actions {
    padding: 1.35rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .flf-observation-card__image {
    transition: none;
  }

  .flf-observation-card:hover .flf-observation-card__image {
    transform: none;
  }
}

/* ========================================================================== 
   0.1.33 Blindspot Model editorial rebuild

   This page is a deliberate extension of the Home visual system: cinematic
   black opening, connected model, one-idea-at-a-time scroll focus, blue and
   yellow editorial panels, and a portrait-led conversion close. All rules are
   page-scoped so the approved shared shell and other routes remain unchanged.
   ========================================================================== */

.flf-hero.flf-model-hero {
  min-height: calc(100svh - 6.125rem);
  overflow: hidden;
  padding-block: 0;
  background:
    radial-gradient(circle at 76% 36%, rgba(137, 220, 246, 0.16), transparent 26rem),
    linear-gradient(135deg, #000 0%, #000 56%, #11141d 100%);
  color: var(--flf-white);
}

.flf-hero.flf-model-hero::before {
  position: absolute;
  z-index: 0;
  top: clamp(2rem, 7vw, 5rem);
  right: clamp(-5rem, -2vw, -2rem);
  bottom: auto;
  left: auto;
  width: clamp(10rem, 18vw, 16rem);
  height: auto;
  aspect-ratio: 1;
  border-radius: 50%;
  background: var(--flf-yellow);
  content: "";
  opacity: 0.96;
  pointer-events: none;
  transform: translate3d(var(--flf-spotlight-x, 0), var(--flf-spotlight-y, 0), 0);
  transition: transform 320ms var(--flf-ease);
}

.flf-model-hero__grid {
  position: relative;
  z-index: 1;
  display: grid;
  min-height: calc(100svh - 6.125rem);
  grid-template-columns: minmax(0, 1.05fr) minmax(27rem, 0.95fr);
  align-items: center;
  gap: clamp(3rem, 7vw, 7rem);
}

.flf-model-hero__copy {
  width: 100%;
  max-width: 49rem;
  padding-block: clamp(3.25rem, 7vh, 5.5rem);
}

.flf-hero.flf-model-hero .flf-eyebrow,
.flf-hero.flf-model-hero .flf-eyebrow .elementor-widget-container,
.flf-hero.flf-model-hero .flf-model-hero__lead,
.flf-hero.flf-model-hero .flf-model-hero__lead .elementor-widget-container {
  color: var(--flf-white);
}

.flf-hero.flf-model-hero .flf-model-hero__lead,
.flf-hero.flf-model-hero .flf-model-hero__lead .elementor-widget-container {
  max-width: 39rem;
  color: rgba(255, 255, 255, 0.82);
}

.flf-model-hero__title .elementor-heading-title {
  max-width: 15ch;
  font-size: clamp(3.75rem, 5.2vw, 5.9rem);
  line-height: 0.94;
  text-wrap: balance;
}

.flf-model-hero__actions {
  display: flex;
  min-width: 0;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.85rem 1.4rem;
}

.flf-model-hero__session-link,
.flf-model-hero__session-link .elementor-button,
.flf-model-close__diagnostic,
.flf-model-close__diagnostic .elementor-button {
  color: var(--flf-white);
}

.flf-model-hero__visual {
  position: relative;
  display: flex;
  min-width: 0;
  min-height: clamp(31rem, 59vh, 38rem);
  flex-direction: column;
  justify-content: center;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.28);
  border-radius: var(--flf-radius-lg);
  background:
    linear-gradient(145deg, rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0.025)),
    rgba(8, 9, 13, 0.76);
  padding: clamp(2rem, 4vw, 3.5rem);
  box-shadow: 1rem 1rem 0 rgba(137, 220, 246, 0.18);
  backdrop-filter: blur(0.5rem);
}

.flf-model-hero__visual::after {
  position: absolute;
  z-index: -1;
  top: 50%;
  right: 12%;
  left: 12%;
  height: 2px;
  background: linear-gradient(90deg, var(--flf-yellow), var(--flf-blue), var(--flf-yellow));
  content: "";
  transform: rotate(-18deg);
  transform-origin: center;
}

.flf-model-hero__visual-label,
.flf-model-hero__visual-label .elementor-widget-container {
  color: rgba(255, 255, 255, 0.72);
}

.flf-model-hero__map {
  display: grid;
  min-width: 0;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: center;
  gap: clamp(1rem, 2.2vw, 1.7rem);
}

.flf-model-hero__node {
  display: grid;
  width: clamp(6.2rem, 8vw, 7.5rem);
  aspect-ratio: 1;
  place-items: center;
  justify-self: center;
  border: 2px solid var(--flf-ink);
  border-radius: 50%;
  background: var(--flf-yellow);
  color: var(--flf-ink);
  box-shadow: 0.45rem 0.45rem 0 rgba(0, 0, 0, 0.5);
}

.flf-model-hero__node--story,
.flf-model-hero__node--evidence {
  background: var(--flf-blue);
}

.flf-model-hero__node--gap {
  width: clamp(7.2rem, 10vw, 9rem);
  grid-column: 1 / -1;
  background: var(--flf-ink);
  color: var(--flf-yellow);
  border-color: var(--flf-yellow);
}

.flf-model-hero__node-label,
.flf-model-hero__node-label .elementor-widget-container,
.flf-model-hero__node-label p {
  margin: 0;
  color: inherit;
  line-height: 1.05;
  text-align: center;
}

.flf-model-hero__node-label span,
.flf-model-hero__node-label strong {
  display: block;
}

.flf-model-hero__node-label span {
  margin-bottom: 0.25rem;
  font-size: 0.65rem;
  font-weight: 800;
  letter-spacing: 0.08em;
}

.flf-model-hero__node-label strong {
  font-family: var(--flf-display);
  font-size: clamp(1rem, 1.25vw, 1.2rem);
  letter-spacing: -0.025em;
}

.flf-model-overview {
  overflow: hidden;
  border-block: 2px solid var(--flf-ink);
  background: var(--flf-blue);
  color: var(--flf-ink);
}

.flf-model-overview::after {
  position: absolute;
  z-index: -1;
  right: -6rem;
  bottom: -9rem;
  width: clamp(16rem, 29vw, 26rem);
  aspect-ratio: 1;
  border: 2px solid var(--flf-ink);
  border-radius: 50%;
  background: var(--flf-yellow);
  content: "";
}

.flf-model-overview__intro {
  display: grid;
  min-width: 0;
  grid-template-columns: minmax(0, 0.9fr) minmax(20rem, 1.1fr);
  align-items: end;
  gap: 1rem clamp(3rem, 7vw, 7rem);
}

.flf-model-overview__intro > .flf-eyebrow {
  grid-column: 1 / -1;
}

.flf-model-overview__intro > .flf-section-title {
  grid-column: 1;
  grid-row: 2 / span 5;
}

.flf-model-overview__intro > :not(.flf-eyebrow):not(.flf-section-title) {
  grid-column: 2;
}

.flf-model-overview__intro .flf-section-title .elementor-heading-title {
  max-width: 11ch;
  font-size: clamp(3.1rem, 5.6vw, 5.4rem);
}

.flf-model-overview__intro .flf-copy,
.flf-model-overview__intro .flf-copy .elementor-widget-container {
  color: #172128;
  font-size: clamp(1.05rem, 0.55vw + 0.95rem, 1.25rem);
}

.flf-model-overview__track {
  position: relative;
  display: grid;
  min-width: 0;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: clamp(0.7rem, 1.5vw, 1.15rem);
  margin-top: clamp(3.25rem, 7vw, 6rem);
}

.flf-model-overview__track::before {
  position: absolute;
  z-index: -1;
  top: 3.25rem;
  right: 4%;
  left: 4%;
  height: 2px;
  background: var(--flf-ink);
  content: "";
}

.flf-model-overview__step {
  position: relative;
  display: flex;
  min-width: 0;
  min-height: 17rem;
  flex-direction: column;
  gap: 1rem;
  border: 2px solid var(--flf-ink);
  border-radius: var(--flf-radius);
  background: var(--flf-paper);
  padding: clamp(1.2rem, 2vw, 1.75rem);
  color: var(--flf-ink);
  box-shadow: 0.45rem 0.45rem 0 var(--flf-ink);
}

.flf-model-overview__step--gap {
  background: var(--flf-ink);
  color: var(--flf-white);
  transform: translateY(-1.25rem);
}

.flf-model-overview__number,
.flf-model-overview__number .elementor-widget-container {
  display: grid;
  width: 3.5rem;
  height: 3.5rem;
  margin: 0;
  place-items: center;
  border: 2px solid var(--flf-ink);
  border-radius: 50%;
  background: var(--flf-yellow);
  color: var(--flf-ink);
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.06em;
}

.flf-model-overview__step--story .flf-model-overview__number,
.flf-model-overview__step--story .flf-model-overview__number .elementor-widget-container,
.flf-model-overview__step--evidence .flf-model-overview__number,
.flf-model-overview__step--evidence .flf-model-overview__number .elementor-widget-container {
  background: var(--flf-blue);
}

.flf-model-overview__step--gap .flf-model-overview__number,
.flf-model-overview__step--gap .flf-model-overview__number .elementor-widget-container {
  border-color: var(--flf-yellow);
  background: var(--flf-yellow);
}

.flf-model-overview__title .elementor-heading-title {
  color: inherit;
  font-size: clamp(1.5rem, 1.85vw, 2rem);
}

.flf-model-overview__description,
.flf-model-overview__description .elementor-widget-container,
.flf-model-overview__description p {
  margin: 0;
  color: inherit;
  font-size: 0.94rem;
  line-height: 1.52;
}

.flf-model-overview__cue {
  width: min(100%, 48rem);
  margin-top: clamp(2.25rem, 4vw, 3.5rem);
  border-left: 0.5rem solid var(--flf-ink);
  padding-left: clamp(1rem, 2.5vw, 1.75rem);
}

.flf-model-overview__cue .flf-copy,
.flf-model-overview__cue .flf-copy .elementor-widget-container {
  margin: 0;
  color: var(--flf-ink);
  font-size: clamp(1.15rem, 1.3vw, 1.4rem);
  font-weight: 650;
  line-height: 1.5;
}

.flf-model-journey {
  background: var(--flf-ink);
  color: var(--flf-white);
}

.flf-model-journey__intro {
  display: grid;
  max-width: 62rem;
  gap: 0.5rem;
  margin-bottom: clamp(3rem, 6vw, 5rem);
}

.flf-model-journey__intro .flf-section-title .elementor-heading-title {
  max-width: 14ch;
  color: var(--flf-white);
  font-size: clamp(3rem, 5.2vw, 5rem);
}

.flf-model-journey__layout {
  display: grid;
  min-width: 0;
  grid-template-columns: minmax(15rem, 0.62fr) minmax(0, 1.38fr);
  align-items: start;
  gap: clamp(2rem, 7vw, 7rem);
}

.flf-model-rail {
  position: sticky;
  top: clamp(7.5rem, 16vh, 10rem);
  min-width: 0;
  border: 1px solid rgba(255, 255, 255, 0.24);
  border-radius: var(--flf-radius-lg);
  background: rgba(255, 255, 255, 0.06);
  padding: clamp(1.3rem, 2.5vw, 2rem);
  scrollbar-width: none;
}

.flf-model-rail::-webkit-scrollbar {
  display: none;
  width: 0;
  height: 0;
}

.flf-model-rail__list {
  position: relative;
  display: grid;
  gap: 0.35rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.flf-model-rail__list::before {
  position: absolute;
  top: 1.45rem;
  bottom: 1.45rem;
  left: 1.42rem;
  width: 2px;
  background: rgba(255, 255, 255, 0.2);
  content: "";
}

.flf-model-rail__list li {
  position: relative;
  display: grid;
  min-height: 3.3rem;
  grid-template-columns: 3rem minmax(0, 1fr);
  align-items: center;
  gap: 0.8rem;
  color: rgba(255, 255, 255, 0.46);
  transition: color 260ms ease, transform 260ms var(--flf-ease);
}

.flf-model-rail__list li span {
  position: relative;
  z-index: 1;
  display: grid;
  width: 2.9rem;
  aspect-ratio: 1;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, 0.35);
  border-radius: 50%;
  background: var(--flf-ink);
  font-size: 0.6rem;
  font-weight: 800;
  letter-spacing: 0.04em;
}

.flf-model-rail__list li strong {
  font-family: var(--flf-display);
  font-size: 1.15rem;
  letter-spacing: -0.02em;
}

.flf-model-journey:not(.flf-quiet-enhanced) .flf-model-rail__list li,
.flf-model-journey:has(.flf-model-scene--notice.is-active) .flf-model-rail__list li:nth-child(1),
.flf-model-journey:has(.flf-model-scene--story.is-active) .flf-model-rail__list li:nth-child(2),
.flf-model-journey:has(.flf-model-scene--gap.is-active) .flf-model-rail__list li:nth-child(3),
.flf-model-journey:has(.flf-model-scene--evidence.is-active) .flf-model-rail__list li:nth-child(4),
.flf-model-journey:has(.flf-model-scene--act.is-active) .flf-model-rail__list li:nth-child(5) {
  color: var(--flf-white);
  transform: translateX(0.3rem);
}

.flf-model-journey:has(.flf-model-scene--notice.is-active) .flf-model-rail__list li:nth-child(1) span,
.flf-model-journey:has(.flf-model-scene--act.is-active) .flf-model-rail__list li:nth-child(5) span {
  border-color: var(--flf-yellow);
  background: var(--flf-yellow);
  color: var(--flf-ink);
}

.flf-model-journey:has(.flf-model-scene--story.is-active) .flf-model-rail__list li:nth-child(2) span,
.flf-model-journey:has(.flf-model-scene--evidence.is-active) .flf-model-rail__list li:nth-child(4) span {
  border-color: var(--flf-blue);
  background: var(--flf-blue);
  color: var(--flf-ink);
}

.flf-model-journey:has(.flf-model-scene--gap.is-active) .flf-model-rail__list li:nth-child(3) span {
  border-color: var(--flf-yellow);
  color: var(--flf-yellow);
}

.flf-model-journey__scenes {
  display: grid;
  min-width: 0;
  gap: clamp(3rem, 7vh, 6rem);
}

.flf-model-scene {
  display: flex;
  min-width: 0;
  min-height: clamp(34rem, 72svh, 48rem);
  flex-direction: column;
  justify-content: center;
  gap: 1.1rem;
  border: 2px solid var(--flf-ink);
  border-radius: var(--flf-radius-lg);
  background: var(--flf-paper);
  padding: clamp(1.6rem, 4.2vw, 4rem);
  color: var(--flf-ink);
  box-shadow: 0.7rem 0.7rem 0 rgba(255, 255, 255, 0.12);
  transition: opacity 340ms ease, transform 420ms var(--flf-ease), box-shadow 420ms var(--flf-ease);
}

.flf-model-journey.flf-quiet-enhanced .flf-model-scene {
  opacity: 0.22;
  transform: scale(0.965) translateY(1rem);
}

.flf-model-journey.flf-quiet-enhanced .flf-model-scene.is-active {
  opacity: 1;
  transform: none;
  box-shadow: 0.8rem 0.8rem 0 var(--flf-yellow);
}

.flf-model-scene--story,
.flf-model-scene--evidence {
  background: var(--flf-blue);
}

.flf-model-scene--gap {
  border-color: var(--flf-yellow);
  background: #080808;
  color: var(--flf-white);
  box-shadow: 0.7rem 0.7rem 0 var(--flf-yellow);
}

.flf-model-scene--act {
  background: var(--flf-yellow);
}

.flf-model-scene .flf-eyebrow,
.flf-model-scene .flf-eyebrow .elementor-widget-container,
.flf-model-scene .flf-model-scene__title .elementor-heading-title,
.flf-model-scene .flf-model-scene__subheading .elementor-heading-title,
.flf-model-scene .flf-copy,
.flf-model-scene .flf-copy .elementor-widget-container,
.flf-model-scene .flf-list,
.flf-model-scene .flf-list .elementor-widget-container {
  color: inherit;
}

.flf-model-scene__title .elementor-heading-title {
  max-width: 13ch;
  font-size: clamp(2.7rem, 4.8vw, 4.65rem);
}

.flf-model-scene__subsection {
  display: grid;
  min-width: 0;
  gap: 1rem;
  margin-top: clamp(1.5rem, 3vw, 2.5rem);
  border-top: 1px solid currentColor;
  padding-top: clamp(1.4rem, 3vw, 2.2rem);
}

.flf-model-scene__subheading .elementor-heading-title {
  font-size: clamp(1.85rem, 2.5vw, 2.6rem);
}

.flf-model-scene .flf-copy,
.flf-model-scene .flf-copy .elementor-widget-container,
.flf-model-scene .flf-list,
.flf-model-scene .flf-list .elementor-widget-container {
  max-width: 46rem;
  font-size: clamp(1rem, 0.45vw + 0.94rem, 1.2rem);
  line-height: 1.62;
}

.flf-model-story-grid {
  display: grid;
  min-width: 0;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
}

.flf-model-journey .elementor-widget-text-editor.flf-model-story-card,
.flf-model-journey .flf-model-story-card .elementor-widget-container {
  height: 100%;
  color: var(--flf-ink);
}

.flf-model-story-card .elementor-widget-container {
  display: flex;
  align-items: center;
  border: 1px solid var(--flf-ink);
  border-radius: var(--flf-radius-sm);
  background: var(--flf-paper);
  padding: 1rem 1.1rem;
}

.flf-model-story-card p {
  margin: 0;
  font-weight: 650;
  line-height: 1.42;
}

.flf-model-scene--evidence .flf-list :is(ul, ol) {
  display: grid;
  min-width: 0;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.8rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.flf-model-scene--evidence .flf-list li {
  position: relative;
  min-width: 0;
  border: 1px solid var(--flf-ink);
  border-radius: var(--flf-radius-sm);
  background: rgba(255, 255, 255, 0.8);
  padding: 0.9rem 1rem 0.9rem 2.5rem;
  color: var(--flf-ink);
  line-height: 1.42;
}

.flf-model-scene--evidence .flf-list li::before {
  position: absolute;
  top: 1rem;
  left: 0.95rem;
  width: 1rem;
  height: 1rem;
  border-radius: 50%;
  background: var(--flf-yellow);
  content: "";
}

.flf-model-example {
  overflow: hidden;
  border-block: 2px solid var(--flf-ink);
  background: var(--flf-blue);
  color: var(--flf-ink);
}

.flf-model-example__intro {
  display: grid;
  min-width: 0;
  grid-template-columns: minmax(0, 0.82fr) minmax(20rem, 1.18fr);
  align-items: end;
  gap: 1rem clamp(2rem, 6vw, 6rem);
}

.flf-model-example__intro > .flf-eyebrow {
  grid-column: 1 / -1;
}

.flf-model-example__intro .flf-section-title .elementor-heading-title {
  max-width: 10ch;
  font-size: clamp(3rem, 5vw, 4.8rem);
}

.flf-model-example__grid {
  display: grid;
  min-width: 0;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: clamp(0.9rem, 2vw, 1.5rem);
  margin-top: clamp(2.75rem, 6vw, 5rem);
}

.flf-model-example__card {
  display: flex;
  min-width: 0;
  min-height: 18rem;
  flex-direction: column;
  gap: 1rem;
  border: 2px solid var(--flf-ink);
  border-radius: var(--flf-radius);
  background: var(--flf-paper);
  padding: clamp(1.35rem, 2.5vw, 2rem);
  color: var(--flf-ink);
  box-shadow: 0.45rem 0.45rem 0 var(--flf-ink);
}

.flf-model-example__card--1,
.flf-model-example__card--2 {
  grid-column: span 3;
}

.flf-model-example__card--3,
.flf-model-example__card--4 {
  grid-column: span 3;
}

.flf-model-example__card--2 {
  background: var(--flf-yellow-tint);
}

.flf-model-example__card--3 {
  background: #0b0b0b;
  color: var(--flf-white);
}

.flf-model-example__card--4 {
  background: var(--flf-yellow);
}

.flf-model-example__card .flf-card-number,
.flf-model-example__card .flf-card-number .elementor-widget-container,
.flf-model-example__card .flf-model-example__title .elementor-heading-title,
.flf-model-example__card .flf-copy,
.flf-model-example__card .flf-copy .elementor-widget-container {
  color: inherit;
}

.flf-model-example__title .elementor-heading-title {
  font-size: clamp(1.75rem, 2.2vw, 2.35rem);
}

.flf-model-example__card .flf-copy,
.flf-model-example__card .flf-copy .elementor-widget-container {
  font-size: 0.98rem;
  line-height: 1.58;
}

.flf-model-questions {
  overflow: hidden;
  border-bottom: 2px solid var(--flf-ink);
  background: var(--flf-yellow);
  color: var(--flf-ink);
}

.flf-model-questions::before {
  position: absolute;
  z-index: -1;
  top: -8rem;
  right: -5rem;
  width: clamp(15rem, 28vw, 25rem);
  aspect-ratio: 1;
  border: 2px solid var(--flf-ink);
  border-radius: 50%;
  background: var(--flf-blue);
  content: "";
}

.flf-model-questions__intro {
  display: grid;
  min-width: 0;
  grid-template-columns: minmax(0, 0.8fr) minmax(20rem, 1.2fr);
  align-items: end;
  gap: 1rem clamp(2.5rem, 7vw, 7rem);
}

.flf-model-questions__intro > .flf-eyebrow {
  grid-column: 1 / -1;
}

.flf-model-questions__intro .flf-section-title .elementor-heading-title {
  max-width: 9ch;
  font-size: clamp(3.2rem, 5.4vw, 5rem);
}

.flf-model-questions__intro .flf-copy,
.flf-model-questions__intro .flf-copy .elementor-widget-container {
  color: var(--flf-ink);
  font-size: clamp(1.15rem, 1.35vw, 1.45rem);
}

.flf-model-questions__grid {
  display: grid;
  min-width: 0;
  grid-template-columns: repeat(10, minmax(0, 1fr));
  gap: clamp(0.85rem, 1.8vw, 1.25rem);
  margin-top: clamp(2.75rem, 6vw, 5rem);
}

.flf-model-question {
  display: flex;
  min-width: 0;
  min-height: 16rem;
  flex-direction: column;
  justify-content: space-between;
  gap: 1.5rem;
  grid-column: span 2;
  border: 2px solid var(--flf-ink);
  border-radius: var(--flf-radius);
  background: var(--flf-paper);
  padding: clamp(1.25rem, 2.5vw, 1.8rem);
  color: var(--flf-ink);
  box-shadow: 0.4rem 0.4rem 0 var(--flf-ink);
}

.flf-model-question:nth-child(3) {
  background: var(--flf-ink);
  color: var(--flf-white);
  transform: translateY(-1.15rem);
}

.flf-model-question__number,
.flf-model-question__number .elementor-widget-container {
  color: inherit;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.08em;
}

.flf-model-question__title .elementor-heading-title {
  color: inherit;
  font-size: clamp(1.35rem, 1.55vw, 1.75rem);
  line-height: 1.04;
}

.flf-model-questions__close {
  width: min(100%, 56rem);
  margin-top: clamp(2.75rem, 5vw, 4rem);
  border-top: 2px solid var(--flf-ink);
  padding-top: clamp(1.25rem, 2.5vw, 2rem);
}

.flf-model-questions__close .flf-copy,
.flf-model-questions__close .flf-copy .elementor-widget-container {
  margin: 0;
  color: var(--flf-ink);
  font-family: var(--flf-display);
  font-size: clamp(1.7rem, 2.8vw, 2.65rem);
  font-weight: 800;
  letter-spacing: -0.035em;
  line-height: 1.04;
}

.flf-model-close {
  overflow: hidden;
  padding-block: 0;
  background: var(--flf-ink);
  color: var(--flf-white);
}

.flf-model-close::after {
  position: absolute;
  z-index: 2;
  top: clamp(2rem, 6vw, 5rem);
  right: clamp(-5rem, -2vw, -2rem);
  width: clamp(11rem, 20vw, 18rem);
  aspect-ratio: 1;
  border-radius: 50%;
  background: var(--flf-yellow);
  content: "";
  pointer-events: none;
}

.flf-model-close__grid {
  display: grid;
  min-width: 0;
  min-height: clamp(40rem, 76svh, 49rem);
  grid-template-columns: minmax(0, 1fr) minmax(25rem, 0.9fr);
  align-items: stretch;
}

.flf-model-close__copy {
  position: relative;
  z-index: 3;
  display: flex;
  min-width: 0;
  flex-direction: column;
  justify-content: center;
  padding: clamp(3.5rem, 8vw, 7rem) clamp(2rem, 6vw, 6rem) clamp(3.5rem, 8vw, 7rem) 0;
}

.flf-model-close__copy .flf-section-title .elementor-heading-title {
  max-width: 12ch;
  color: var(--flf-white);
  font-size: clamp(3rem, 5vw, 5rem);
}

.flf-model-close__copy .flf-copy,
.flf-model-close__copy .flf-copy .elementor-widget-container {
  max-width: 43rem;
  color: rgba(255, 255, 255, 0.8);
}

.flf-model-close__actions {
  display: flex;
  min-width: 0;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.85rem 1.4rem;
  margin-top: 1.25rem;
}

.flf-model-close__media {
  position: relative;
  min-width: 0;
  overflow: hidden;
}

.flf-model-close__media::after {
  position: absolute;
  z-index: 1;
  inset: 0;
  background: linear-gradient(90deg, #000 0%, rgba(0, 0, 0, 0.35) 32%, rgba(0, 0, 0, 0.04) 70%);
  content: "";
  pointer-events: none;
}

.flf-model-close__image,
.flf-model-close__image .elementor-widget-container,
.flf-model-close__image img {
  width: 100%;
  height: 100%;
}

.flf-model-close__image img {
  object-fit: cover;
  object-position: 55% center;
}

@media (min-width: 901px) and (max-width: 1279px) {
  .flf-model-hero,
  .flf-model-hero__grid {
    min-height: calc(100svh - 4.875rem);
  }

  .flf-model-hero__grid {
    grid-template-columns: minmax(0, 1fr) minmax(23rem, 0.82fr);
    gap: 2.5rem;
  }

  .flf-model-hero__title .elementor-heading-title {
    font-size: clamp(3.35rem, 5.1vw, 4.6rem);
  }

  .flf-model-hero__visual {
    min-height: 31rem;
  }

  .flf-model-overview__step {
    min-height: 18.5rem;
    padding: 1.15rem;
  }

  .flf-model-overview__title .elementor-heading-title {
    font-size: 1.55rem;
  }

  .flf-model-example__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .flf-model-example__card--1,
  .flf-model-example__card--2,
  .flf-model-example__card--3,
  .flf-model-example__card--4 {
    grid-column: auto;
  }

  .flf-model-questions__grid {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }

  .flf-model-question {
    grid-column: span 2;
  }

  .flf-model-question:nth-child(4),
  .flf-model-question:nth-child(5) {
    grid-column: span 3;
  }
}

@media (max-width: 900px) {
  .flf-model-hero {
    min-height: calc(100svh - 4.125rem - 5.25rem - env(safe-area-inset-bottom, 0px));
  }

  .flf-model-hero__grid {
    min-height: inherit;
    grid-template-columns: minmax(0, 1fr);
    align-content: center;
    gap: 1rem;
    padding-block: clamp(1.4rem, 4vh, 2.2rem);
  }

  .flf-model-hero__copy {
    max-width: 43rem;
    padding-block: 0;
  }

  .flf-model-hero__title .elementor-heading-title {
    max-width: 17ch;
    font-size: clamp(2.25rem, 8.7vw, 3.4rem);
    line-height: 0.96;
  }

  .flf-model-hero .flf-model-hero__lead,
  .flf-model-hero .flf-model-hero__lead .elementor-widget-container {
    font-size: 1rem;
    line-height: 1.48;
  }

  .flf-model-hero__actions {
    gap: 0.55rem 1rem;
  }

  .flf-model-hero__visual {
    min-height: 0;
    border: 0;
    background: transparent;
    padding: 0.4rem 0 0;
    box-shadow: none;
    backdrop-filter: none;
  }

  .flf-model-hero__visual::after,
  .flf-model-hero__visual-label {
    display: none;
  }

  .flf-model-hero__map {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 0.35rem;
  }

  .flf-model-hero__node,
  .flf-model-hero__node--gap {
    width: min(100%, 4.2rem);
    grid-column: auto;
    border-width: 1px;
    box-shadow: none;
  }

  .flf-model-hero__node-label span {
    display: none;
  }

  .flf-model-hero__node-label strong {
    font-size: clamp(0.66rem, 2.4vw, 0.84rem);
  }

  .flf-model-overview__intro,
  .flf-model-example__intro,
  .flf-model-questions__intro {
    grid-template-columns: minmax(0, 1fr);
    align-items: start;
    gap: 1rem;
  }

  .flf-model-overview__intro > .flf-eyebrow,
  .flf-model-overview__intro > .flf-section-title,
  .flf-model-overview__intro > :not(.flf-eyebrow):not(.flf-section-title),
  .flf-model-example__intro > .flf-eyebrow,
  .flf-model-questions__intro > .flf-eyebrow {
    grid-column: auto;
    grid-row: auto;
  }

  .flf-model-overview__track {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .flf-model-overview__step--gap {
    grid-column: 1 / -1;
    transform: none;
  }

  .flf-model-journey__layout {
    grid-template-columns: minmax(0, 1fr);
    gap: 2rem;
  }

  .flf-model-rail {
    position: relative;
    top: auto;
    overflow-x: auto;
    padding: 0.75rem;
    scrollbar-width: none;
  }

  .flf-model-rail__list {
    min-width: 33rem;
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }

  .flf-model-rail__list::before {
    top: 1.45rem;
    right: 2rem;
    bottom: auto;
    left: 2rem;
    width: auto;
    height: 2px;
  }

  .flf-model-rail__list li {
    grid-template-columns: minmax(0, 1fr);
    justify-items: center;
    gap: 0.4rem;
    text-align: center;
  }

  .flf-model-rail__list li strong {
    font-size: 0.95rem;
  }

  .flf-model-journey__scenes {
    gap: 3rem;
  }

  .flf-model-scene {
    min-height: clamp(31rem, 68svh, 43rem);
  }

  .flf-model-story-grid,
  .flf-model-scene--evidence .flf-list :is(ul, ol) {
    grid-template-columns: minmax(0, 1fr);
  }

  .flf-model-example__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .flf-model-example__card--1,
  .flf-model-example__card--2,
  .flf-model-example__card--3,
  .flf-model-example__card--4 {
    grid-column: auto;
  }

  .flf-model-questions__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .flf-model-question {
    min-height: 14rem;
    grid-column: auto;
  }

  .flf-model-question:nth-child(3) {
    grid-column: 1 / -1;
    transform: none;
  }

  .flf-model-close__grid {
    min-height: 0;
    grid-template-columns: minmax(0, 1fr);
  }

  .flf-model-close__copy {
    padding: clamp(3.5rem, 10vw, 6rem) 0 clamp(2.5rem, 7vw, 4rem);
  }

  .flf-model-close__media {
    min-height: clamp(22rem, 78vw, 34rem);
    margin-inline: calc(var(--flf-gutter) * -1);
  }

  .flf-model-close__media::after {
    background: linear-gradient(180deg, #000 0%, rgba(0, 0, 0, 0.05) 32%, rgba(0, 0, 0, 0.12) 100%);
  }
}

@media (max-width: 767px) {
  .flf-model-hero::before {
    top: 0.8rem;
    right: -4rem;
    width: 9rem;
    opacity: 0.9;
  }

  .flf-model-hero__copy > .elementor-element + .elementor-element {
    margin-top: 0.75rem;
  }

  .flf-model-hero__actions {
    align-items: stretch;
  }

  .flf-model-hero__actions .flf-button--primary,
  .flf-model-hero__actions .flf-button--primary .elementor-button {
    width: 100%;
  }

  .flf-model-hero .flf-model-hero__session-link {
    display: none;
  }

  .flf-model-overview__track,
  .flf-model-example__grid,
  .flf-model-questions__grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .flf-model-overview__track::before {
    top: 2rem;
    right: auto;
    bottom: 2rem;
    left: 2.95rem;
    width: 2px;
    height: auto;
  }

  .flf-model-overview__step,
  .flf-model-overview__step--gap {
    min-height: 0;
    grid-column: auto;
    padding: 1.25rem 1.25rem 1.35rem 5.35rem;
  }

  .flf-model-overview__number,
  .flf-model-overview__number .elementor-widget-container {
    position: absolute;
    top: 1.25rem;
    left: 1.25rem;
  }

  .flf-model-overview__intro .flf-section-title .elementor-heading-title,
  .flf-model-journey__intro .flf-section-title .elementor-heading-title,
  .flf-model-example__intro .flf-section-title .elementor-heading-title,
  .flf-model-questions__intro .flf-section-title .elementor-heading-title,
  .flf-model-close__copy .flf-section-title .elementor-heading-title {
    max-width: 14ch;
    font-size: clamp(2.45rem, 11vw, 3.25rem);
  }

  .flf-model-scene {
    min-height: max(32rem, 68svh);
    padding: 1.45rem;
    box-shadow: 0.42rem 0.42rem 0 rgba(255, 255, 255, 0.12);
  }

  .flf-model-scene__title .elementor-heading-title {
    max-width: 14ch;
    font-size: clamp(2.35rem, 10vw, 3.2rem);
  }

  .flf-model-scene .flf-copy,
  .flf-model-scene .flf-copy .elementor-widget-container,
  .flf-model-scene .flf-list,
  .flf-model-scene .flf-list .elementor-widget-container {
    font-size: 1rem;
    line-height: 1.54;
  }

  .flf-model-example__card,
  .flf-model-question {
    min-height: 0;
  }

  .flf-model-question,
  .flf-model-question:nth-child(3) {
    grid-column: auto;
  }

  .flf-model-close__actions {
    flex-direction: column;
    align-items: stretch;
  }

  .flf-model-close__actions .flf-button,
  .flf-model-close__actions .flf-button :is(a, .elementor-button) {
    width: 100%;
  }

  .flf-model-close__diagnostic .elementor-button {
    justify-content: center;
  }
}

@media (max-width: 359px) {
  .flf-model-hero__title .elementor-heading-title {
    font-size: 2.05rem;
  }

  .flf-model-hero .flf-model-hero__lead,
  .flf-model-hero .flf-model-hero__lead .elementor-widget-container {
    font-size: 0.94rem;
  }

  .flf-model-hero__node,
  .flf-model-hero__node--gap {
    width: min(100%, 3.55rem);
  }

  .flf-model-hero__node-label strong {
    font-size: 0.58rem;
  }

  .flf-model-scene,
  .flf-model-example__card,
  .flf-model-question {
    padding: 1.2rem;
  }
}

@media (prefers-reduced-motion: reduce), (max-height: 639px) {
  .flf-model-hero::before,
  .flf-model-scene,
  .flf-model-questions .flf-model-question {
    transition: none;
  }

  .flf-model-journey.flf-quiet-enhanced .flf-model-scene {
    min-height: auto;
    opacity: 1;
    transform: none;
  }

  .flf-model-rail {
    position: relative;
    top: auto;
  }
}

/* ========================================================================== 
   0.1.41 Client-feedback release

   Restores an explicit story-to-action sequence in the Blindspot Model,
   removes the inherited Elementor pseudo-element that stretched the blue
   questions decoration, and keeps Observation Room copy in the mobile flow.
   ========================================================================== */

.flf-model-questions::before {
  display: none !important;
  content: none !important;
}

.flf-model-hero__visual {
  width: 100% !important;
  max-width: none !important;
  min-height: clamp(31rem, 59vh, 38rem);
  justify-content: flex-start;
  overflow: visible;
  padding: clamp(1.75rem, 3.3vw, 2.75rem);
  box-shadow: none;
}

.flf-model-hero__visual::after {
  display: none !important;
  content: none !important;
}

.flf-model-hero__visual-label,
.flf-model-hero__visual-label .elementor-widget-container {
  width: 100%;
  margin: 0 0 1.25rem;
  color: rgba(255, 255, 255, 0.78);
}

.flf-model-hero__map {
  display: grid !important;
  width: 100% !important;
  min-width: 0;
  margin: 0;
  padding: 0;
  grid-template-columns: minmax(0, 1fr) !important;
  gap: 0.85rem;
  list-style: none;
}

.flf-model-hero__node,
.flf-model-hero__node--gap {
  position: relative;
  display: flex !important;
  width: 100% !important;
  min-width: 0;
  min-height: 4rem;
  aspect-ratio: auto;
  flex-flow: row nowrap !important;
  align-items: center;
  justify-content: flex-start;
  justify-self: stretch;
  border-width: 2px;
  border-radius: 999px;
  padding: 0.55rem 1rem;
  box-shadow: 0.3rem 0.3rem 0 rgba(0, 0, 0, 0.46);
}

.flf-model-hero__node--gap {
  grid-column: auto;
}

.flf-model-hero__node--notice,
.flf-model-hero__node--act {
  background: var(--flf-yellow);
}

.flf-model-overview__step--notice .flf-model-overview__number,
.flf-model-overview__step--notice .flf-model-overview__number .elementor-widget-container,
.flf-model-overview__step--act .flf-model-overview__number,
.flf-model-overview__step--act .flf-model-overview__number .elementor-widget-container {
  background: var(--flf-yellow);
}

.flf-model-rail__widget {
  width: 100%;
}

.flf-model-scene__label,
.flf-model-scene__label .elementor-widget-container {
  color: var(--flf-blue);
  font-size: 0.74rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.flf-model-scene__subsection--clarity {
  border-top: 1px solid rgba(255, 255, 255, 0.18);
  padding-top: 1rem;
}

.flf-spotlight-host {
  isolation: isolate;
}

.flf-model-hero__node:not(:last-child)::after {
  position: absolute;
  z-index: 3;
  top: calc(100% + 0.02rem);
  right: auto;
  bottom: auto;
  left: 50%;
  width: 1rem;
  height: 0.85rem;
  border: 0;
  background: none;
  color: rgba(255, 255, 255, 0.72);
  content: "↓";
  font-size: 0.9rem;
  font-weight: 800;
  line-height: 0.85rem;
  text-align: center;
  transform: translateX(-50%);
}

.flf-model-hero__node-label,
.flf-model-hero__node-label .elementor-widget-container,
.flf-model-hero__node-label p {
  width: 100%;
}

.flf-model-hero__node-label p {
  display: grid;
  grid-template-columns: 3rem minmax(0, 1fr);
  align-items: center;
  gap: 0.7rem;
  text-align: left;
}

.flf-model-hero__node-label span {
  display: grid;
  min-height: 2rem;
  place-items: center;
  border-right: 1px solid currentColor;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.08em;
}

.flf-model-hero__node-label strong {
  font-size: clamp(1rem, 1.25vw, 1.2rem);
}

@media (max-width: 900px) {
  .flf-model-hero__grid {
    display: grid !important;
    width: 100% !important;
    align-content: start;
    gap: 1rem;
  }

  .flf-model-hero__visual {
    display: block !important;
    width: 100% !important;
    min-width: 100% !important;
    min-height: 0;
    align-self: stretch !important;
    overflow: visible;
    border: 0;
    background: transparent;
    padding: 0.35rem 0 0;
    backdrop-filter: none;
  }

  .flf-model-hero__map {
    display: grid !important;
    width: 100% !important;
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
    gap: 0.38rem;
  }

  .flf-model-hero__node,
  .flf-model-hero__node--gap {
    display: grid !important;
    width: 100% !important;
    min-width: 0;
    min-height: 3.55rem;
    place-items: center;
    border-radius: 0.7rem;
    padding: 0.4rem 0.18rem;
    box-shadow: none;
  }

  .flf-model-hero__node:not(:last-child)::after {
    top: 50%;
    right: -0.48rem;
    bottom: auto;
    left: auto;
    width: 0.55rem;
    height: 1rem;
    content: "→";
    font-size: 0.72rem;
    line-height: 1rem;
    transform: translateY(-50%);
  }

  .flf-model-hero__node-label p {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.14rem;
    text-align: center;
  }

  .flf-model-hero__node-label span {
    display: block;
    min-height: 0;
    border: 0;
    font-size: clamp(0.5rem, 1.65vw, 0.65rem);
    line-height: 1;
  }

  .flf-model-hero__node-label strong {
    font-size: clamp(0.62rem, 2.05vw, 0.82rem);
    line-height: 1.05;
  }
}

@media (max-width: 359px) {
  .flf-model-hero__map {
    gap: 0.28rem;
  }

  .flf-model-hero__node,
  .flf-model-hero__node--gap {
    min-height: 3.25rem;
    padding-inline: 0.1rem;
  }

  .flf-model-hero__node:not(:last-child)::after {
    right: -0.37rem;
    width: 0.4rem;
    font-size: 0.58rem;
  }

  .flf-model-hero__node-label strong {
    font-size: 0.58rem;
  }
}

@media (max-width: 767px) {
  .flf-observation-card {
    display: flex !important;
    width: 100% !important;
    flex-flow: column nowrap !important;
  }

  .flf-observation-card__media {
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    flex: 0 0 auto !important;
    aspect-ratio: 4 / 5;
  }

  .flf-observation-card__media > .elementor-element,
  .flf-observation-card__media .elementor-widget-container,
  .flf-observation-card__media picture,
  .flf-observation-card__media img {
    width: 100% !important;
    height: 100% !important;
  }

  .flf-observation-card__body {
    width: 100% !important;
    flex: 0 0 auto !important;
  }
}

/* ========================================================================== 
   0.1.43 final viewport and contrast hardening

   The model visual is a content panel, not the decorative square spotlight
   utility whose class it also carries. Short desktop scenes remove duplicated
   vertical rhythm so the complete opening remains visible in one viewport.
   ========================================================================== */

.flf-hero.flf-model-hero {
  background-color: var(--flf-ink);
}

.flf-model-hero__visual {
  aspect-ratio: auto;
}

@media (min-width: 901px) and (max-height: 799px) {
  .flf-hero--dark:not(.flf-hero--home) .flf-hero-copy {
    padding-block: 2rem !important;
  }

  .flf-model-hero__copy > .elementor-element + .elementor-element {
    margin-top: 0 !important;
  }
}
