 #news-popup-overlay {
     position: fixed;
     inset: 0;
     background: rgba(20, 18, 18, 0.35);
     z-index: 99998;
     backdrop-filter: blur(4px);
     display: flex;
     align-items: center;
     justify-content: flex-end;
     opacity: 0;
     visibility: hidden;
     /* visibility waits for the fade so the exit is actually seen */
     transition: opacity 0.45s ease 0.1s, visibility 0s linear 0.55s;
     padding: 40px;
     pointer-events: none;
 }

 #news-popup-overlay.active {
     opacity: 1;
     visibility: visible;
     pointer-events: auto;
     transition: opacity 0.4s ease, visibility 0s;
 }

 #news-popup {
     background: #ffffff;
     width: 100%;
     max-width: 560px;
     max-height: 88vh;
     overflow: hidden;
     border: none;
     position: relative;
     box-shadow: 0 30px 80px rgba(0, 0, 0, 0.35);
     /* exit: accelerates out to the side it came from */
     opacity: 0;
     transform: translateX(80px);
     transition: transform 0.45s cubic-bezier(0.55, 0, 1, 0.45), opacity 0.35s ease 0.1s;
     display: flex;
 }

 /* entry: decelerates in */
 #news-popup-overlay.active #news-popup {
     opacity: 1;
     transform: translateX(0);
     transition: transform 0.55s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.3s ease;
 }

 @media (prefers-reduced-motion: reduce) {

     #news-popup,
     #news-popup-overlay.active #news-popup {
         transform: none;
     }
 }

 #news-popup-close {
     position: absolute;
     top: 18px;
     right: 20px;
     width: 30px;
     height: 30px;
     border-radius: 50%;
     background: rgba(0, 0, 0, 0.2);
     border: none;
     color: #ffffff;
     font-size: 19px;
     font-weight: 300;
     line-height: 1;
     cursor: pointer;
     display: flex;
     align-items: center;
     justify-content: center;
     transition: background 0.2s ease;
     z-index: 3;
 }

 #news-popup-close:hover {
     background: rgba(0, 0, 0, 0.4);
 }

 #news-popup-image {
     display: flex;
     flex-shrink: 0;
     width: 160px;
     background: linear-gradient(160deg, #fa9c2f 0%, #6a6565 115%);
     align-items: center;
     justify-content: center;
     position: relative;
     overflow: hidden;
     clip-path: polygon(0 0, 100% 0, 82% 100%, 0% 100%);
     z-index: 1;
 }

 #news-popup-image img {
     max-width: 350px;
     max-height: 34%;
     object-fit: contain;
     position: relative;
     opacity: 0.95;
     transform: rotate(-90deg);
 }

 #news-popup-body {
     flex: 1;
     position: relative;
     z-index: 2;
     background: #ffffff;
     padding: 40px 36px 40px 48px;
     display: flex;
     flex-direction: column;
     justify-content: center;
 }

 #news-popup-body .news-popup-eyebrow {
     display: flex;
     align-items: center;
     gap: 8px;
     margin-bottom: 22px;
 }

 #news-popup-body .news-popup-eyebrow .dot {
     width: 6px;
     height: 6px;
     border-radius: 50%;
     background: #fa9c2f;
     flex-shrink: 0;
 }

 #news-popup-body span.badge {
     font-size: 11px;
     font-weight: 600;
     letter-spacing: 1.5px;
     text-transform: uppercase;
     color: #1a1a1a;
 }

 #news-popup-body .news-popup-date {
     font-size: 11px;
     color: #aaaaaa;
     letter-spacing: 0.5px;
 }

 #news-popup-body .news-popup-date::before {
     content: "—";
     margin-right: 8px;
     color: #dddddd;
 }

 #news-popup-title {
     color: #1a1a1a;
     font-size: 22px;
     font-weight: 400;
     margin: 0 0 18px;
     line-height: 1.4;
     letter-spacing: 0.2px;
 }

 #news-popup-body p {
     color: #767676;
     font-size: 13.5px;
     font-weight: 300;
     line-height: 1.85;
     margin: 0 0 30px;
 }

 #news-popup-actions {
     display: flex;
     align-items: center;
     gap: 24px;
 }

 #news-popup-actions a,
 #news-popup-actions button {
     font-size: 12px;
     font-weight: 600;
     letter-spacing: 0.6px;
     text-transform: uppercase;
     padding: 0;
     background: none;
     text-decoration: none;
     cursor: pointer;
     border: none;
     border-bottom: 1px solid transparent;
     transition: all 0.2s ease;
 }

 #news-popup-actions a.primary {
     color: #1a1a1a;
     border-bottom-color: #1a1a1a;
     padding-bottom: 3px;
 }

 #news-popup-actions a.primary:hover {
     color: #fa9c2f;
     border-bottom-color: #fa9c2f;
 }

 #news-popup-actions button.secondary {
     color: #aaaaaa;
 }

 #news-popup-actions button.secondary:hover {
     color: #1a1a1a;
 }

 @media (max-width: 900px) {
     #news-popup-overlay {
         justify-content: center;
         padding: 20px;
     }

     #news-popup {
         transform: translateY(30px);
     }

     #news-popup-overlay.active #news-popup {
         transform: translateY(0);
     }
 }

 @media (max-width: 640px) {
     #news-popup {
         flex-direction: column;
         max-width: 380px;
     }

     #news-popup-image {
         width: 100%;
         height: 110px;
         clip-path: polygon(0 0, 100% 0, 100% 78%, 0 100%);
         margin-bottom: -18%;
     }

     #news-popup-image img {
         max-width: 140px;
         max-height: 40%;
         transform: rotate(0deg);
     }

     #news-popup-body {
         padding: 40px 28px 32px;
     }
 }

 @media (max-width: 480px) {
     #news-popup-body {
         padding: 48px 28px 32px;
     }

     #news-popup-title {
         font-size: 21px;
     }
 }

 /* ---------- Hero caption over the video (left aligned, on the logo's edge) ---------- */
 .slider-caption.fti-hero-caption {
     max-width: 760px;
     text-align: left;
 }

 /* Darkens only the left side, where the caption sits; the video itself is untouched */
 .fti-hero-shade {
     position: absolute;
     inset: 0;
     z-index: 2;
     pointer-events: none;
     background: linear-gradient(90deg, rgba(29, 33, 37, 0.62) 0%, rgba(29, 33, 37, 0.32) 38%, rgba(29, 33, 37, 0) 68%);
 }

 .slider-caption .fti-hero-title {
     max-width: 26ch;
     margin: 0 0 32px;
     font-family: 'Lato', sans-serif;
     font-weight: 700;
     font-size: clamp(28px, 2.9vw, 35px);
     line-height: 1.14;
     letter-spacing: -0.01em;
     color: #fff;
     text-transform: none;
     text-wrap: balance;
     /* keeps the line readable over the bright parts of the video */
     text-shadow: 0 2px 18px rgba(0, 0, 0, 0.4);
 }

 /* Short orange mark, the same one that opens the quote further down the page */
 .slider-caption .fti-hero-title::before {
     content: "";
     display: block;
     width: 56px;
     height: 4px;
     margin-bottom: 24px;
     background: #F6921E;
 }

 .fti-hero-actions {
     display: flex;
     justify-content: flex-start;
     flex-wrap: wrap;
     gap: 12px;
 }

 @media (max-width: 767.98px) {

     /* The theme centres the caption in a hero that runs past the fold on phones,
			   which drops the buttons onto the scroll cue; lift it back into the first screen */
     .slider-caption.fti-hero-caption {
         top: -80px;
     }

     .slider-caption .fti-hero-title {
         font-size: 28px;
     }

     .fti-hero-shade {
         background: linear-gradient(180deg, rgba(29, 33, 37, 0.15) 0%, rgba(29, 33, 37, 0.55) 100%);
     }
 }

 .fti-hero-btn {
     display: inline-flex;
     align-items: center;
     min-height: 48px;
     padding: 0 26px;
     font-family: 'Lato', sans-serif;
     font-size: 16px;
     font-weight: 600;
     text-decoration: none !important;
     border: 2px solid transparent;
     transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
 }

 .fti-hero-btn-primary {
     background: #F6921E;
     border-color: #F6921E;
     color: #1D2125 !important;
 }

 .fti-hero-btn-primary:hover {
     background: #fff;
     border-color: #fff;
 }

 .fti-hero-btn-ghost {
     background: rgba(29, 33, 37, 0.35);
     border-color: #fff;
     color: #fff !important;
 }

 .fti-hero-btn-ghost:hover {
     background: #fff;
     color: #1D2125 !important;
 }

 .fti-hero-btn:focus-visible {
     outline: 2px solid #F6921E;
     outline-offset: 3px;
 }

 /* 992–1199px: logo and menu don't fit on one row, the menu drops and the logo gets clipped */
 @media (min-width: 992px) and (max-width: 1199.98px) {
     #logo img.logo {
         width: 250px !important;
         height: auto !important;
     }

     #header .menu-container>.menu-item>.menu-link {
         padding-left: 11px;
         padding-right: 11px;
     }
 }

 .fti-scroll-cue {
     position: fixed;
     left: 50%;
     /* fixed to the first screen: on phones the hero starts below the header and runs past the fold */
     bottom: clamp(20px, 4vh, 40px);
     z-index: 30;
     display: flex;
     flex-direction: column;
     align-items: center;
     gap: 12px;
     padding: 8px 12px;
     color: #fff !important;
     text-decoration: none !important;
     transform: translateX(-50%);
     transition: opacity 0.4s ease, transform 0.4s ease;
 }

 .fti-scroll-cue-label {
     font-family: 'Lato', sans-serif;
     font-size: 15px;
     font-weight: 600;
     letter-spacing: 0.02em;
     opacity: 0.95;
     text-shadow: 0 1px 10px rgba(0, 0, 0, 0.55);
     transition: opacity 0.2s ease;
 }

 /* A thin rail with an orange segment travelling down it */
 .fti-scroll-cue-track {
     position: relative;
     width: 2px;
     height: 56px;
     background: rgba(255, 255, 255, 0.45);
     box-shadow: 0 0 10px rgba(0, 0, 0, 0.35);
     overflow: hidden;
 }

 .fti-scroll-cue-track::after {
     content: "";
     position: absolute;
     left: 0;
     top: 0;
     width: 100%;
     height: 40%;
     background: #F6921E;
     animation: fti-cue-travel 1.8s cubic-bezier(0.65, 0, 0.35, 1) infinite;
 }

 @keyframes fti-cue-travel {
     0% {
         transform: translateY(-100%);
     }

     100% {
         transform: translateY(250%);
     }
 }

 .fti-scroll-cue:hover .fti-scroll-cue-label {
     opacity: 1;
 }

 .fti-scroll-cue:focus-visible {
     outline: 2px solid #F6921E;
     outline-offset: 4px;
 }

 /* Once the visitor has started scrolling the cue has done its job */
 .fti-scroll-cue.is-hidden {
     opacity: 0;
     transform: translate(-50%, 12px);
     pointer-events: none;
 }

 @media (prefers-reduced-motion: reduce) {
     .fti-scroll-cue-track::after {
         animation: none;
         height: 100%;
     }

     .fti-scroll-cue {
         transition: none;
     }
 }

 :root {
     --fti-concrete: #ECEEED;
     --fti-paper: #F7F8F7;
     --fti-graphite: #1D2125;
     --fti-steel: #5E6469;
     --fti-rule: #C9CDCF;
     --fti-signal: #F6921E;
     --fti-signal-ink: #F6921E;
     --fti-gutter: clamp(16px, 4vw, 56px);
 }

 .fti-home {
     font-family: 'Lato', sans-serif;
     color: var(--fti-graphite);
     background: var(--fti-concrete);
 }

 .fti-home *,
 .fti-home *::before,
 .fti-home *::after {
     box-sizing: border-box;
 }

 /* :where() keeps the reset at zero specificity so component classes win */
 :where(.fti-home) :where(h2, h3, p, dl, dd, ul) {
     margin: 0;
     padding: 0;
 }

 /* The theme gives bare p/dd/ul bottom margins; beat it without outranking component classes */
 .fti-home p,
 .fti-home dd,
 .fti-home ul {
     margin: 0;
 }

 .fti-home h2,
 .fti-home h3 {
     font-family: 'Lato', sans-serif;
     text-transform: none;
     text-wrap: balance;
 }

 .fti-home p {
     text-wrap: pretty;
 }

 .fti-home ::selection {
     background: var(--fti-signal);
     color: var(--fti-graphite);
 }

 .fti-home ul {
     list-style: none;
 }

 .fti-home a {
     color: inherit;
 }

 .fti-home a:focus-visible {
     outline: 3px solid var(--fti-signal);
     outline-offset: 3px;
 }

 .fti-shell {
     max-width: 1200px;
     margin: 0 auto;
     padding: 0 var(--fti-gutter);
 }

 .fti-display {
     font-weight: 700;
     line-height: 1.05;
     letter-spacing: -0.01em;
     color: var(--fti-graphite);
 }

 .fti-section-title {
     font-size: clamp(32px, 3.6vw, 52px);
 }

 .fti-lede {
     font-size: clamp(16px, 1.2vw, 17px);
     line-height: 1.6;
     color: var(--fti-steel);
     max-width: 60ch;
 }

 /* Text link with a signal-orange underline */
 .fti-link {
     display: inline-block;
     font-weight: 600;
     font-size: 16px;
     text-decoration: none;
     padding-bottom: 4px;
     border-bottom: 2px solid var(--fti-signal);
     transition: color 0.2s ease;
 }

 /* Bright orange fails contrast as text on light grounds; use the ink shade there */
 .fti-link:hover {
     color: var(--fti-signal-ink);
 }

 .fti-creds .fti-link:hover,
 .fti-band .fti-link:hover {
     color: var(--fti-signal);
 }

 /* ---------- Credentials strip ---------- */
 .fti-creds {
     background: var(--fti-graphite);
     color: #fff;
     border-top: 3px solid var(--fti-signal);
     font-variant-numeric: tabular-nums;
 }

 .fti-creds-grid {
     display: grid;
     grid-template-columns: repeat(3, minmax(0, 1fr)) auto;
     margin: 0 auto;
 }

 .fti-creds-grid>div {
     padding: clamp(22px, 2.4vw, 32px) clamp(18px, 2vw, 28px);
     border-left: 1px solid rgba(255, 255, 255, 0.14);
 }

 .fti-creds-grid>div:first-child {
     border-left: 0;
     padding-left: 0;
 }

 .fti-creds dt {
     font-size: 14px;
     font-weight: 500;
     color: rgba(255, 255, 255, 0.6);
     margin-bottom: 10px;
 }

 .fti-creds dd {
     font-size: 15px;
     line-height: 1.45;
     color: rgba(255, 255, 255, 0.82);
 }

 .fti-creds strong {
     display: block;
     font-weight: 700;
     font-size: clamp(28px, 2.6vw, 38px);
     line-height: 1;
     color: #fff;
     margin-bottom: 8px;
 }

 .fti-creds-grid>.fti-creds-more {
     display: flex;
     align-items: center;
     padding-right: 0;
 }

 .fti-creds .fti-link {
     color: #fff;
     white-space: nowrap;
 }

 /* ---------- Intro: what FTI is ---------- */
 .fti-intro {
     padding: clamp(56px, 7vw, 96px) 0;
 }

 .fti-intro-grid {
     display: grid;
     grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
     gap: clamp(32px, 4.5vw, 72px);
     align-items: center;
 }

 .fti-intro-title {
     font-size: clamp(34px, 4vw, 58px);
     margin-bottom: 32px;
 }

 .fti-intro .fti-lede {
     margin-bottom: 32px;
 }

 .fti-intro-photo {
     margin: 0;
 }

 .fti-intro-photo img {
     display: block;
     width: 100%;
     height: auto;
     aspect-ratio: 4 / 3;
     object-fit: cover;
     /* the source photo is darkened for use under text; lift it back up here */
     filter: brightness(1.45) contrast(1.05) grayscale(0.35);
 }

 .fti-intro-photo figcaption {
     font-size: 14px;
     color: var(--fti-steel);
     padding-top: 12px;
     border-bottom: 1px solid var(--fti-rule);
     padding-bottom: 12px;
 }

 /* ---------- How a test runs ---------- */
 .fti-process {
     padding: clamp(56px, 6.5vw, 96px) 0;
 }

 .fti-process-grid {
     display: grid;
     grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
     gap: clamp(32px, 4.5vw, 72px);
     align-items: start;
 }

 .fti-process-media {
     position: sticky;
     top: 32px;
 }

 .fti-process-media img {
     display: block;
     width: 100%;
     height: auto;
     aspect-ratio: 4 / 5;
     object-fit: cover;
 }

 .fti-process .fti-section-title {
     margin-bottom: clamp(24px, 3vw, 36px);
 }

 .fti-steps {
     list-style: none;
     counter-reset: fti-step;
     margin: 0 0 40px;
     padding: 0;
     border-top: 3px solid var(--fti-graphite);
 }

 .fti-steps li {
     counter-increment: fti-step;
     display: grid;
     grid-template-columns: 56px minmax(0, 1fr);
     column-gap: 24px;
     padding: 26px 0;
     border-bottom: 1px solid var(--fti-rule);
 }

 .fti-steps li::before {
     content: counter(fti-step);
     grid-row: span 2;
     font-weight: 700;
     font-size: 40px;
     line-height: 0.85;
     color: var(--fti-signal-ink);
 }

 .fti-steps h3 {
     font-weight: 700;
     font-size: 21px;
     line-height: 1.1;
     margin-bottom: 8px;
     color: var(--fti-graphite);
 }

 .fti-steps p {
     font-size: 16px;
     line-height: 1.6;
     color: var(--fti-steel);
     max-width: 52ch;
 }

 /* ---------- Test index ---------- */
 .fti-tests {
     background: var(--fti-paper);
     padding: clamp(56px, 6.5vw, 96px) 0;
     position: relative;
 }

 .fti-tests-head {
     display: flex;
     justify-content: space-between;
     align-items: last baseline;
     gap: 32px;
     flex-wrap: wrap;
     margin-bottom: clamp(24px, 3.5vw, 40px);
 }

 .fti-tests-head .fti-lede {
     max-width: 42ch;
 }

 .fti-test-list {
     border-top: 3px solid var(--fti-graphite);
 }

 .fti-test-row {
     display: grid;
     grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr) 38px;
     gap: 32px;
     align-items: center;
     padding: clamp(14px, 1.6vw, 20px) 0;
     border-bottom: 1px solid var(--fti-rule);
     text-decoration: none;
     position: relative;
 }

 .fti-test-name {
     font-weight: 700;
     font-size: clamp(26px, 2.8vw, 40px);
     line-height: 1;
     transition: color 0.2s ease;
 }

 .fti-test-scope {
     font-size: 15px;
     line-height: 1.55;
     color: var(--fti-steel);
 }

 .fti-test-arrow {
     width: 38px;
     height: 38px;
     border: 2px solid var(--fti-graphite);
     border-radius: 50%;
     display: grid;
     place-items: center;
     transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
 }

 .fti-test-arrow svg {
     width: 18px;
     height: 18px;
 }

 .fti-test-thumb {
     display: none;
 }

 .fti-test-row:hover .fti-test-name,
 .fti-test-row:focus-visible .fti-test-name {
     color: var(--fti-signal-ink);
 }

 .fti-test-row:hover .fti-test-arrow,
 .fti-test-row:focus-visible .fti-test-arrow {
     background: var(--fti-signal);
     border-color: var(--fti-signal);
     color: var(--fti-graphite);
 }

 /* Photo that follows the pointer over the index (pointer devices only) */
 .fti-test-preview {
     position: fixed;
     top: 0;
     left: 0;
     width: 290px;
     aspect-ratio: 4 / 3;
     pointer-events: none;
     z-index: 50;
     opacity: 0;
     transform: translate(-50%, -50%) scale(0.92);
     transition: opacity 0.25s ease, transform 0.25s ease;
     background: var(--fti-graphite) center / cover no-repeat;
     border: 6px solid #fff;
     box-shadow: 0 24px 60px rgba(29, 33, 37, 0.28);
 }

 .fti-test-preview.is-visible {
     opacity: 1;
     transform: translate(-50%, -50%) scale(1);
 }

 .fti-tests-foot {
     margin-top: 40px;
 }

 /* ---------- Wind tunnel band ---------- */
 .fti-band {
     position: relative;
     min-height: clamp(380px, 56vh, 560px);
     display: flex;
     align-items: flex-end;
     background: var(--fti-graphite) url('../default/media/test/wind-tunnel-2_.jpg') center 60% / cover no-repeat;
     color: #fff;
 }

 .fti-band::before {
     content: "";
     position: absolute;
     inset: 0;
     background:
         linear-gradient(90deg, rgba(29, 33, 37, 0.7) 0%, rgba(29, 33, 37, 0) 55%),
         linear-gradient(180deg, rgba(29, 33, 37, 0.05) 20%, rgba(29, 33, 37, 0.92) 85%);
 }

 .fti-band .fti-shell {
     position: relative;
     width: 100%;
     padding-bottom: clamp(32px, 4.5vw, 56px);
     display: grid;
     grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr);
     gap: 40px;
     align-items: end;
 }

 .fti-band-quote {
     font-weight: 600;
     font-size: clamp(22px, 2.3vw, 32px);
     line-height: 1.18;
     color: #fff;
     max-width: 22ch;
     padding-top: 28px;
     position: relative;
 }

 /* Short horizontal mark, echoing the orange rule under the logo */
 .fti-band-quote::before {
     content: "";
     position: absolute;
     top: 0;
     left: 0;
     width: 56px;
     height: 4px;
     background: var(--fti-signal);
 }

 .fti-band-note {
     font-size: 16px;
     line-height: 1.6;
     color: rgba(255, 255, 255, 0.82);
     max-width: 44ch;
 }

 .fti-band-note .fti-link {
     color: #fff;
     margin-top: 20px;
 }

 /* ---------- News ---------- */
 .fti-news {
     padding: clamp(56px, 6.5vw, 96px) 0;
 }

 .fti-news-head {
     display: flex;
     justify-content: space-between;
     align-items: last baseline;
     gap: 24px;
     flex-wrap: wrap;
     margin-bottom: clamp(24px, 3.5vw, 40px);
 }

 .fti-news-grid {
     display: grid;
     grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr);
     gap: clamp(28px, 4vw, 56px);
 }

 .fti-news-lead {
     text-decoration: none;
     display: block;
 }

 .fti-news-lead-media {
     background: #fff;
     aspect-ratio: 16 / 9;
     border: 1px solid var(--fti-rule);
     display: grid;
     place-items: center;
     padding: 32px;
     margin-bottom: 24px;
     overflow: hidden;
 }

 .fti-news-lead-media img {
     max-width: 100%;
     max-height: 100%;
     object-fit: contain;
 }

 .fti-news-date {
     display: block;
     font-size: 14px;
     color: var(--fti-steel);
     margin-bottom: 10px;
 }

 .fti-news-lead h3 {
     font-weight: 700;
     font-size: clamp(22px, 2vw, 28px);
     line-height: 1.1;
     margin-bottom: 14px;
     color: var(--fti-graphite);
 }

 .fti-news-lead p {
     font-size: 16px;
     line-height: 1.6;
     color: var(--fti-steel);
     max-width: 62ch;
 }

 .fti-news-list {
     border-top: 3px solid var(--fti-graphite);
 }

 .fti-news-list a {
     display: block;
     text-decoration: none;
     padding: 22px 0;
     border-bottom: 1px solid var(--fti-rule);
 }

 .fti-news-list h3 {
     font-size: 17px;
     font-weight: 600;
     line-height: 1.35;
     color: var(--fti-graphite);
     transition: color 0.2s ease;
 }

 .fti-news-lead:hover h3,
 .fti-news-list a:hover h3 {
     color: var(--fti-signal-ink);
 }

 /* ---------- References ---------- */
 .fti-refs {
     background: #fff;
     padding: clamp(52px, 6vw, 88px) 0;
 }

 .fti-refs-head {
     display: flex;
     justify-content: space-between;
     align-items: last baseline;
     gap: 24px;
     flex-wrap: wrap;
     margin-bottom: 40px;
 }

 /* 4 x 3 grid of logo tiles */
 .fti-refs-grid {
     display: grid;
     grid-template-columns: repeat(4, minmax(0, 1fr));
     gap: 16px;
     margin: 0;
     padding: 0;
     list-style: none;
 }

 .fti-refs-grid li {
     height: 132px;
     display: grid;
     place-items: center;
     background: #F2F3F3;
     transition: background 0.3s ease, transform 0.3s ease, box-shadow 0.3s ease;
 }

 .fti-refs-grid li:hover {
     background: #fff;
     transform: translateY(-4px);
     box-shadow: 0 14px 32px rgba(29, 33, 37, 0.12);
 }

 /* Every logo gets roughly the same ink area: wide marks sit lower, compact
		   marks sit taller (height ∝ 1/√ratio), all in one graphite tone. */
 .fti-refs-grid img {
     /* --r: 3; */
     width: 150px !important;
     height: clamp(18px, calc(42px * sqrt(3 / var(--r))), 54px);
     max-width: 72%;
     object-fit: contain;
     /* lifting brightness first pushes the off-white backgrounds of some files to
			   pure white, which multiply then melts into the tile */
     filter: grayscale(1) brightness(1.12) contrast(1.35);
     mix-blend-mode: multiply;
     opacity: 0.75;
     transition: filter 0.3s ease, opacity 0.3s ease;
 }

 .fti-refs-grid li:hover img {
     filter: none;
     opacity: 1;
 }

 @media (prefers-reduced-motion: reduce) {
     .fti-refs-grid li:hover {
         transform: none;
     }
 }

 /* ---------- Responsive ---------- */
 @media (max-width: 991px) {

     .fti-intro-grid,
     .fti-band .fti-shell,
     .fti-news-grid {
         grid-template-columns: 1fr;
     }

     .fti-creds-grid {
         grid-template-columns: repeat(3, minmax(0, 1fr));
     }

     .fti-creds-grid>.fti-creds-more {
         grid-column: 1 / -1;
         border-left: 0;
         border-top: 1px solid rgba(255, 255, 255, 0.14);
         padding: 20px 0 24px;
     }

     .fti-process-grid {
         grid-template-columns: 1fr;
     }

     .fti-process-media {
         position: static;
     }

     .fti-process-media img {
         aspect-ratio: 16 / 10;
     }
 }

 @media (max-width: 767px) {
     .fti-test-row {
         grid-template-columns: 96px minmax(0, 1fr);
         grid-template-areas:
             "thumb name"
             "thumb scope";
         gap: 6px 18px;
         align-items: start;
     }

     .fti-test-thumb {
         display: block;
         grid-area: thumb;
         width: 96px;
         aspect-ratio: 1;
         object-fit: cover;
     }

     .fti-test-name {
         grid-area: name;
         font-size: 24px;
     }

     .fti-test-scope {
         grid-area: scope;
         font-size: 14px;
     }

     .fti-test-arrow {
         display: none;
     }

     .fti-refs-grid {
         grid-template-columns: repeat(2, minmax(0, 1fr));
         gap: 12px;
     }

     .fti-refs-grid li {
         height: 104px;
     }

     .fti-creds-grid {
         grid-template-columns: 1fr;
     }

     .fti-creds-grid>div,
     .fti-creds-grid>div:first-child {
         padding: 22px 0;
         border-left: 0;
         border-top: 1px solid rgba(255, 255, 255, 0.14);
     }

     .fti-creds-grid>div:first-child {
         border-top: 0;
     }

     .fti-steps li {
         grid-template-columns: 48px minmax(0, 1fr);
         column-gap: 16px;
     }

     .fti-steps li::before {
         font-size: 34px;
     }

 }

 @media (prefers-reduced-motion: reduce) {
     .fti-home * {
         transition: none !important;
     }
 }

 .fti-expert-cta {
     position: relative;
     overflow: hidden;
     margin: 10px 0 55px;
     min-height: 340px;
     border-radius: 18px;
     background:
         linear-gradient(115deg, rgba(20, 24, 28, .97) 0%, rgba(29, 34, 39, .92) 48%, rgba(246, 146, 30, .76) 100%),
         url('../default/media/logo/logo_master.png') center right / 430px auto no-repeat;
     box-shadow: 0 22px 55px rgba(0, 0, 0, .16);
 }

 .fti-expert-overlay {
     position: absolute;
     inset: 0;
     background:
         radial-gradient(circle at 88% 20%, rgba(255, 255, 255, .12), transparent 32%),
         linear-gradient(90deg, transparent 0 70%, rgba(255, 255, 255, .04) 100%);
     pointer-events: none;
 }

 .fti-expert-content {
     position: relative;
     z-index: 2;
     min-height: 340px;
     display: flex;
     align-items: center;
     justify-content: space-between;
     gap: 45px;
     padding: 52px 58px;
 }

 .fti-expert-copy {
     max-width: 720px;
 }

 .fti-expert-kicker {
     display: inline-block;
     margin-bottom: 14px;
     color: #F6921E;
     font-size: 12px;
     font-weight: 800;
     letter-spacing: 2px;
 }

 .fti-expert-copy h2 {
     margin: 0;
     max-width: 750px;
     color: #fff;
     font-size: clamp(30px, 3.3vw, 32px);
     line-height: 1.04;
     font-weight: 800;
     letter-spacing: -1.4px;
 }

 .fti-expert-copy>p {
     max-width: 650px;
     margin: 18px 0 0;
     color: rgba(255, 255, 255, .78);
     font-size: 16px;
     line-height: 1.65;
 }

 .fti-working-status {
     display: inline-flex;
     align-items: center;
     gap: 12px;
     margin-top: 24px;
     padding: 11px 15px;
     border: 1px solid rgba(255, 255, 255, .12);
     border-radius: 12px;
     background: rgba(255, 255, 255, .06);
     backdrop-filter: blur(8px);
 }

 .fti-status-dot {
     width: 10px;
     height: 10px;
     flex: 0 0 10px;
     border-radius: 50%;
     background: #f6b73c;
     box-shadow: 0 0 0 5px rgba(246, 183, 60, .12);
 }

 .fti-working-status.is-open .fti-status-dot {
     background: #25D366;
     box-shadow: 0 0 0 5px rgba(37, 211, 102, .13);
 }

 .fti-working-status.is-closed .fti-status-dot {
     background: #f35b5b;
     box-shadow: 0 0 0 5px rgba(243, 91, 91, .13);
 }

 .fti-working-status strong,
 .fti-working-status span {
     display: block;
 }

 .fti-working-status strong {
     color: #fff;
     font-size: 16px;
     line-height: 1.2;
 }

 .fti-working-status span {
     margin-top: 3px;
     color: rgba(255, 255, 255, .6);
     font-size: 14px;
 }

 .fti-expert-action {
     width: min(100%, 360px);
     flex: 0 0 360px;
 }

 .fti-whatsapp-button {
     display: flex;
     align-items: center;
     gap: 16px;
     width: 100%;
     min-height: 92px;
     padding: 20px 24px;
     border-radius: 16px;
     background: #25D366;
     color: #fff !important;
     text-decoration: none !important;
     box-shadow: 0 18px 38px rgba(37, 211, 102, .28);
     transition: transform .22s ease, box-shadow .22s ease, background .22s ease;
 }

 .fti-whatsapp-button:hover {
     transform: translateY(-3px);
     background: #20bd5a;
     box-shadow: 0 22px 46px rgba(37, 211, 102, .34);
 }

 .fti-whatsapp-button i {
     font-size: 40px;
     line-height: 1;
 }

 .fti-whatsapp-button span {
     display: flex;
     flex-direction: column;
     gap: 4px;
 }

 .fti-whatsapp-button small {
     color: rgba(255, 255, 255, .8);
     font-size: 11px;
     font-weight: 500;
 }

 .fti-whatsapp-button strong {
     color: #fff;
     font-size: 18px;
     letter-spacing: .25px;
 }

 .fti-working-hours {
     display: flex;
     align-items: center;
     justify-content: center;
     gap: 7px;
     margin-top: 13px;
     color: rgb(255, 255, 255);
     font-size: 16px;
     font-weight: 600;
 }

 @media (max-width: 991.98px) {
     .fti-expert-content {
         flex-direction: column;
         align-items: flex-start;
         padding: 42px 32px;
     }

     .fti-expert-action {
         width: 100%;
         flex: 0 0 auto;
     }
 }

 @media (max-width: 575.98px) {
     .fti-expert-cta {
         margin-bottom: 38px;
         border-radius: 14px;
     }

     .fti-expert-content {
         padding: 34px 22px;
     }

     .fti-expert-copy h2 {
         font-size: 30px;
     }

     .fti-whatsapp-button {
         min-height: 82px;
         padding: 17px 18px;
     }

     .fti-whatsapp-button i {
         font-size: 34px;
     }
 }


 /* Homepage placement: the block sits on the white References ground */
 .fti-expert-wrap {
     background: #fff;
     padding: 0 0 clamp(52px, 6vw, 88px);
 }

 .fti-expert-wrap .fti-expert-cta {
     margin: 0;
 }