/* Scoped to the shortcode. The parent container owns its outer border. */
.fcbs { --fcbs-red:#e90000; --fcbs-green:#009b4b; --fcbs-nav:90px; --fcbs-heading:0px; --fcbs-height:650px; position:relative; width:100%; font-family:neue-montreal,Arial,sans-serif; color:#04050c; }
.fcbs *, .fcbs *::before, .fcbs *::after { box-sizing:border-box; }
.fcbs-stage { position:relative; width:100%; }
.fcbs-problem { display:block; width:100%; padding:24px; margin:0; border:1px solid var(--fcbs-red); border-radius:0; background:#fff; color:var(--fcbs-red); font:inherit; text-align:left; line-height:1.2; cursor:pointer; box-shadow:none; text-transform:none; letter-spacing:0; }
.fcbs-problem + .fcbs-problem { border-top:0; }
.fcbs-problem:hover,.fcbs-problem:focus { color:var(--fcbs-red); background:white; }
.fcbs-problem:focus-visible { outline:2px solid var(--fcbs-red); outline-offset:4px; }
.fcbs-problem::before,.fcbs-problem::after { content:none!important; }
.fcbs-copy h3 { color:#04050c; font-family:forma-djr-deck,Arial,sans-serif; font-weight:700; font-size:clamp(24px,1.65vw,34px); line-height:1.12; margin:0 0 32px; }
.fcbs-copy p,.fcbs-copy li { font-size:clamp(17px,1.22vw,25px); line-height:1.65; color:#04050c; }
.fcbs-copy p { margin:0; }
.fcbs-copy ol { padding-left:1.4em; margin:0; }
.fcbs-copy li { padding-left:.25em; margin:0 0 12px; }
.fcbs-stack-svg { width:100%; height:100%; overflow:visible; }
.fcbs-face { transition:fill 350ms ease,stroke 350ms ease; }
.fcbs-layer-label { transition:fill 350ms ease; }
.fcbs-active-art .fcbs-face { fill:#fff!important; stroke:#009b4b; stroke-width:4px; }
.fcbs-active-art .fcbs-layer-label { fill:#009b4b!important; }
.fcbs-connections { position:absolute; inset:0; width:100%; height:100%; overflow:visible; pointer-events:none; }
.fcbs-connections path { fill:none; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.fcbs-status { position:absolute!important; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
/* No-JS, reduced-motion, mobile and short-window reading layout. */
.fcbs:not(.fcbs-enhanced) .fcbs-problems,.fcbs:not(.fcbs-enhanced) .fcbs-connections { display:none; }
.fcbs:not(.fcbs-enhanced) .fcbs-stack { max-width:420px; margin:30px auto; }
.fcbs:not(.fcbs-enhanced) .fcbs-copy { margin:0 0 48px; }
.fcbs:not(.fcbs-enhanced) .fcbs-copy-window { max-width:900px; }
.fcbs-header-sticky { position:sticky!important; top:calc(var(--fcbs-nav,90px) - var(--fcbs-release,0px))!important; z-index:12; background:var(--fcbs-surface,#fff); align-self:stretch; }
.fcbs-header-sticky .elementor-heading-title { transition:opacity 180ms ease; }
.fcbs.fcbs-enhanced .fcbs-stage { position:sticky; top:calc(var(--fcbs-nav) + var(--fcbs-heading) + 16px); height:var(--fcbs-height); isolation:isolate; }
.fcbs-enhanced .fcbs-problems { position:absolute; left:0; top:5%; width:36%; height:88%; display:flex; flex-direction:column; transition:width 650ms cubic-bezier(.22,.61,.36,1),opacity 350ms ease,transform 650ms cubic-bezier(.22,.61,.36,1); z-index:3; }
.fcbs-enhanced .fcbs-problem { flex:1; display:flex; align-items:center; padding:20px; font-size:clamp(18px,1.55vw,30px); transition:padding 300ms ease,box-shadow 300ms ease,width 300ms ease; position:relative; }
.fcbs-enhanced .fcbs-problem[aria-current="step"] { width:calc(100% + 12px); padding-left:32px; box-shadow:inset 9px 0 var(--fcbs-red); z-index:1; }
.fcbs-enhanced .fcbs-copy-window { position:absolute; left:45%; width:53%; top:0; height:100%; overflow:hidden; }
.fcbs-enhanced .fcbs-copy { position:absolute; top:0; left:0; width:100%; opacity:0; visibility:hidden; transform:translateY(var(--fcbs-copy-y,12px)); transition:opacity 300ms ease,visibility 300ms ease; pointer-events:none; }
.fcbs-enhanced .fcbs-copy.is-active { opacity:1; visibility:visible; pointer-events:auto; }
.fcbs-enhanced .fcbs-stack { position:absolute; width:min(43%,var(--fcbs-height)); height:auto; aspect-ratio:1; right:0; top:50%; transform:translateY(-50%); opacity:0; pointer-events:none; transition:right 700ms cubic-bezier(.22,.61,.36,1),opacity 350ms ease; }
.fcbs-enhanced .fcbs-stack-svg { position:absolute; inset:0; }
.fcbs-enhanced[data-phase="bridge"] .fcbs-problems { width:29%; }
.fcbs-enhanced[data-phase="bridge"] .fcbs-stack,.fcbs-enhanced[data-phase="solutions"] .fcbs-stack { opacity:1; }
.fcbs-enhanced[data-phase="solutions"] .fcbs-stack { right:57%; }
.fcbs-enhanced[data-phase="solutions"] .fcbs-problems { opacity:0; transform:translateX(-20px); pointer-events:none; }
.fcbs-enhanced .fcbs-connections { opacity:0; transition:opacity 250ms ease; }
.fcbs-enhanced[data-phase="bridge"] .fcbs-connections { opacity:1; }
@media(prefers-reduced-motion:reduce) { .fcbs * { transition:none!important; animation:none!important; } }

/* Elementor row containers can shrink auto-width shortcode widgets to zero
   because the enhanced scene's children are absolutely positioned. */
.elementor-widget-shortcode:has(.fcbs),
.elementor-widget-shortcode.fcbs-host {
    --container-widget-width:100%;
    --container-widget-flex-grow:1;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    flex:1 1 100%!important;
    align-self:stretch!important;
}
.elementor-widget-shortcode:has(.fcbs) > .elementor-widget-container,
.elementor-widget-shortcode.fcbs-host > .elementor-widget-container,
.elementor-shortcode:has(> .fcbs) {
    display:block;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
}
.fcbs .fcbs-problem,
.fcbs .fcbs-problem span {
    white-space:normal!important;
    overflow-wrap:break-word;
    word-break:normal;
    min-width:0;
}
.fcbs .fcbs-problem span { display:block; width:100%; }
.fcbs { min-width:0; max-width:100%; }

/* Sequential heading fade, preserving the existing measured layout. */
.fcbs-heading-carousel {
    display:grid!important;
    position:relative;
    overflow:hidden!important; /* Fallback for older browsers. */
    overflow:clip!important;
    overflow-clip-margin:max(6px,var(--fcbs-heading-clip-left,0px),var(--fcbs-heading-clip-right,0px));
    clip-path:inset(-.25em calc(0px - var(--fcbs-heading-clip-right,0px)) -.25em calc(0px - var(--fcbs-heading-clip-left,0px)));
}
.fcbs-heading-carousel > .fcbs-heading-slide {
    display:block;
    grid-area:1 / 1;
    min-width:0;
    width:100%;
    opacity:1;
    transform:none;
    transition:opacity 320ms ease 240ms;
}
.fcbs-heading-carousel > .fcbs-heading-slide + .fcbs-heading-slide {
    opacity:0;
    transition-delay:0ms;
    pointer-events:none;
}
.fcbs-heading-carousel.fcbs-heading-solutions > .fcbs-heading-slide:first-child {
    opacity:0;
    transition-delay:0ms;
    pointer-events:none;
}
.fcbs-heading-carousel.fcbs-heading-solutions > .fcbs-heading-slide + .fcbs-heading-slide {
    opacity:1;
    transition-delay:240ms;
    pointer-events:auto;
}
/* The previous card owns the shared edge. Draw only the projecting top lip. */
.fcbs.fcbs-enhanced .fcbs-problem + .fcbs-problem::after {
    content:""!important;
    position:absolute;
    top:-1px;
    right:-1px;
    width:0;
    height:1px;
    background:var(--fcbs-red);
    pointer-events:none;
    transition:width 300ms ease;
}
.fcbs.fcbs-enhanced .fcbs-problem + .fcbs-problem[aria-current="step"]::after {
    width:12px;
}
/* Markers sit above the card outline; all paths update during return motion. */
.fcbs .fcbs-connections { z-index:4; }
/* Keep glyph overhangs and list numbers inside the text clipping window. */
.fcbs .fcbs-copy { padding:8px 10px 12px; }
.fcbs .fcbs-copy ol { font-size:clamp(17px,1.22vw,25px); padding-left:2em; }
@media(prefers-reduced-motion:reduce) {
    .fcbs-heading-carousel > .fcbs-heading-slide { transition:none!important; }
}

/* Explicit typography and sequential copy changes. */
.fcbs,.fcbs *,.fcbs-heading-carousel,.fcbs-heading-carousel * { letter-spacing:0!important; }
.fcbs .fcbs-problem { font-family:forma-djr-deck,Arial,sans-serif; font-weight:700; }
.fcbs-enhanced .fcbs-challenge h3 { display:none; }
.fcbs .fcbs-copy ul { list-style-type:square; font-size:clamp(17px,1.22vw,25px); padding-left:1.5em; margin:0; }
.fcbs .fcbs-copy ul li::marker { color:#000; }
.fcbs-enhanced .fcbs-copy { transition:opacity 220ms ease,visibility 220ms ease; }

/* Crossfade an identical white/green layer over its gradient artwork. */
.fcbs-active-art { opacity:0; pointer-events:none; transition:opacity 900ms cubic-bezier(.22,.61,.36,1); }
.fcbs-layer.is-active .fcbs-active-art { opacity:1; }
.fcbs.fcbs-enhanced .fcbs-problem { color:#d6d6d6; transition:color 450ms ease,padding 300ms ease,box-shadow 300ms ease,width 300ms ease; }
.fcbs.fcbs-enhanced .fcbs-problem[aria-current="step"] { color:var(--fcbs-red); }

/* In the mapping view every problem participates in the solution. */
.fcbs.fcbs-enhanced[data-phase="bridge"] .fcbs-problem { color:var(--fcbs-red); }

/* Reserve real line-box space for Forma's descenders inside the mask. */
.fcbs-heading-carousel > .fcbs-heading-slide {
    box-sizing:border-box;
    padding-top:.08em;
    padding-bottom:.22em;
}

/* Mobile: one readable card, a four-column mapping row, then pinned stack. */
.fcbs-mobile-progress { display:none; }
.fcbs.fcbs-compact.fcbs-enhanced .fcbs-stage { overflow:clip; overflow-clip-margin:8px; }
.fcbs-compact.fcbs-enhanced .fcbs-problems { top:0;left:0;width:100%;height:clamp(95px,24%,140px);flex-direction:row;opacity:0;pointer-events:none;transform:none; }
.fcbs-compact.fcbs-enhanced .fcbs-problem { width:25%;flex:1 1 25%;min-width:0;padding:6px;font-size:clamp(10px,2.7vw,16px);align-items:flex-start;color:var(--fcbs-red);border:1px solid var(--fcbs-red);box-shadow:none; }
.fcbs-compact.fcbs-enhanced .fcbs-problem + .fcbs-problem { border-left:0; }
.fcbs-compact.fcbs-enhanced .fcbs-problem[aria-current="step"] { width:25%;padding:6px;box-shadow:none; }
.fcbs.fcbs-compact.fcbs-enhanced .fcbs-problem::after { content:none!important; }
.fcbs-compact.fcbs-enhanced[data-phase="bridge"] .fcbs-problems { opacity:1; }
.fcbs-compact.fcbs-enhanced .fcbs-copy-window { left:0;top:0;width:100%;height:calc(100% - 10px);border:1px solid var(--fcbs-red);background:white; }
.fcbs-compact.fcbs-enhanced .fcbs-copy { padding:20px 16px; }
.fcbs-compact.fcbs-enhanced .fcbs-challenge h3 { display:block;color:var(--fcbs-red);font-size:clamp(19px,4.8vw,26px);line-height:1.12;margin-bottom:24px; }
.fcbs-compact .fcbs-copy p,.fcbs-compact .fcbs-copy li { font-size:clamp(15px,3.9vw,18px);line-height:1.5; }
.fcbs-compact .fcbs-copy ul,.fcbs-compact .fcbs-copy ol { font-size:clamp(15px,3.9vw,18px); }
.fcbs-compact.fcbs-enhanced .fcbs-mobile-progress { position:absolute;display:block;bottom:0;left:0;width:100%;height:10px;border:1px solid var(--fcbs-red);border-top:0; }
.fcbs-mobile-progress span { display:block;width:25%;height:100%;background:var(--fcbs-red);transform:translateX(calc(var(--fcbs-step,0) * 100%));transition:transform 350ms ease; }
.fcbs-compact.fcbs-enhanced:not([data-phase="challenges"]) .fcbs-mobile-progress { opacity:0;visibility:hidden;pointer-events:none;transition:opacity 240ms ease,visibility 0s linear 240ms; }
.fcbs-compact.fcbs-enhanced[data-phase="bridge"] .fcbs-copy-window { opacity:0;pointer-events:none; }
.fcbs-compact.fcbs-enhanced .fcbs-stack { width:min(88%,calc(var(--fcbs-height) * .66));right:50%;top:100%;transform:translate(50%,-100%);z-index:5;transition:top 700ms cubic-bezier(.22,.61,.36,1),width 700ms cubic-bezier(.22,.61,.36,1),transform 700ms cubic-bezier(.22,.61,.36,1),opacity 350ms ease; }
.fcbs-compact.fcbs-enhanced[data-phase="solutions"] .fcbs-stack { right:50%;top:0;transform:translate(50%,0);width:var(--fcbs-mobile-stack); }
.fcbs-compact.fcbs-enhanced[data-phase="solutions"] .fcbs-copy-window { top:calc(var(--fcbs-mobile-stack) + 16px);height:calc(100% - var(--fcbs-mobile-stack) - 24px);border:0;opacity:1; }
.fcbs-compact.fcbs-enhanced .fcbs-solution h3 {
 display:block;position:static;color:#000000;
 font-family:forma-djr-deck,Arial,sans-serif;font-weight:700;
 font-size:clamp(19px,4.8vw,26px);line-height:1.12;margin:0 0 24px;
}
.fcbs-compact.fcbs-enhanced .fcbs-solution { padding:4px 8px 12px; }

/* JS orders mapping boxes by their solution target, preserving copy order within a target. */
.fcbs-compact.fcbs-enhanced .fcbs-problem { border-left:0; }
.fcbs-compact.fcbs-enhanced .fcbs-problem.fcbs-first-mapped { border-left:1px solid var(--fcbs-red); }

/* Compact headings measure the visible slide rather than reserving the taller slide. */
.fcbs-header-compact .fcbs-heading-carousel { display:block!important; }
.fcbs-header-compact .fcbs-heading-slide { position:absolute;left:0;top:0;padding-block:.04em .1em; }
.fcbs-header-compact .fcbs-heading-slide:first-child { position:relative; }
.fcbs-header-compact .fcbs-heading-solutions .fcbs-heading-slide:first-child { position:absolute; }
.fcbs-header-compact .fcbs-heading-solutions .fcbs-heading-slide + .fcbs-heading-slide { position:relative; }
.fcbs-header-compact { transition:opacity 550ms ease; }
.fcbs-header-compact.fcbs-header-reading { opacity:0;pointer-events:none; }
.fcbs.fcbs-compact.fcbs-enhanced .fcbs-stage { top:calc(var(--fcbs-nav) + var(--fcbs-heading) + 8px);overflow:visible; }
.fcbs-compact.fcbs-enhanced[data-phase="solutions"] .fcbs-stack { top:calc(0px - var(--fcbs-heading)); }
.fcbs-compact.fcbs-enhanced[data-phase="solutions"] .fcbs-copy-window {
 top:calc(0px - var(--fcbs-heading) + var(--fcbs-mobile-stack) + 16px);
 height:var(--fcbs-reading-height);
 transition:top 700ms cubic-bezier(.22,.61,.36,1);
}
.fcbs-compact.fcbs-enhanced[data-phase="challenges"] .fcbs-challenge:first-child.is-active { transition:none; }

/* Tap-led compact stages retain a sticky track and native description scrolling. */
.fcbs-compact.fcbs-enhanced .fcbs-copy-window { height:calc(100% - 10px);overflow-y:auto;overflow-x:hidden;overscroll-behavior-y:contain;scrollbar-width:none; }
.fcbs-compact.fcbs-enhanced .fcbs-copy-window::-webkit-scrollbar { display:none;width:0;height:0; }
.fcbs-compact.fcbs-enhanced .fcbs-copy { display:none;position:relative;transform:none!important; }
.fcbs-compact.fcbs-enhanced .fcbs-copy.is-active { display:block; }
.fcbs-compact.fcbs-enhanced[data-phase="solutions"] .fcbs-copy-window { height:var(--fcbs-reading-height); }
.fcbs-compact.fcbs-enhanced .fcbs-copy-window:focus-visible { outline:1px solid #009b4b;outline-offset:2px; }

.fcbs.fcbs-compact { overflow-anchor:none; }

/* Keep outgoing mobile problem copy rendered until its fade finishes. */
.fcbs-compact.fcbs-enhanced .fcbs-challenge.is-leaving { display:block;visibility:visible;pointer-events:none; }

/* Native buttons isolate progress selection from document gesture navigation. */
.fcbs .fcbs-mobile-progress .fcbs-progress-choice {
 position:absolute;top:0;bottom:0;left:calc(var(--i,0) * 25%);width:25%;height:100%;min-height:0;
 margin:0!important;padding:0!important;border:0!important;border-radius:0!important;
 background:transparent!important;box-shadow:none!important;transform:none!important;
 cursor:pointer;touch-action:manipulation;z-index:1;
}
.fcbs .fcbs-progress-choice::before,.fcbs .fcbs-progress-choice::after { content:none!important; }
.fcbs .fcbs-progress-choice:focus-visible { outline:2px solid #04050c;outline-offset:-3px; }


/* Fade the problem's frame, contents and progress as one visual unit. */
.fcbs-compact.fcbs-enhanced .fcbs-copy-window { transition:opacity 240ms ease; -webkit-overflow-scrolling:touch; }
.fcbs-compact.fcbs-enhanced .fcbs-mobile-progress { transition:opacity 240ms ease; }
.fcbs-compact.fcbs-enhanced .fcbs-challenge.fcbs-exiting-problem { display:block;visibility:visible;opacity:1!important;pointer-events:none;transition:none; }
.fcbs-compact.fcbs-enhanced[data-phase="solutions"] .fcbs-copy-window { transition:top 700ms cubic-bezier(.22,.61,.36,1),opacity 240ms ease; }

/* Mobile problem copy only; preserve existing paragraph and item spacing. */
.fcbs.fcbs-compact .fcbs-challenge p,
.fcbs.fcbs-compact .fcbs-challenge li { line-height:20px; }

/* Each problem card receives its own largest fitting item gap. */
.fcbs.fcbs-compact.fcbs-enhanced .fcbs-challenge ul,
.fcbs.fcbs-compact.fcbs-enhanced .fcbs-challenge ol { margin-top:0;margin-bottom:0; }
.fcbs.fcbs-compact.fcbs-enhanced .fcbs-challenge li,
.fcbs.fcbs-compact.fcbs-enhanced .fcbs-challenge p { margin-top:0;margin-bottom:var(--fcbs-problem-gap,12px); }
.fcbs.fcbs-compact.fcbs-enhanced .fcbs-challenge li:last-child,
.fcbs.fcbs-compact.fcbs-enhanced .fcbs-challenge p:last-child { margin-bottom:0; }

/* Landscape touch devices retain desktop geometry with native text scrolling. */
.fcbs.fcbs-gesture:not(.fcbs-compact) { overflow-anchor:none; }
.fcbs-gesture:not(.fcbs-compact).fcbs-enhanced .fcbs-copy-window {
 overflow-y:auto;overflow-x:hidden;overscroll-behavior-y:contain;
 -webkit-overflow-scrolling:touch;scrollbar-width:none;
}
.fcbs-gesture:not(.fcbs-compact).fcbs-enhanced .fcbs-copy-window::-webkit-scrollbar { display:none; }
.fcbs-gesture:not(.fcbs-compact).fcbs-enhanced .fcbs-copy {
 display:none;position:relative;transform:none!important;
}
.fcbs-gesture:not(.fcbs-compact).fcbs-enhanced .fcbs-copy.is-active { display:block; }

/* Problem cards: three steps, each with an icon, revealed in sequence. */
.fcbs .fcbs-copy ol.fcbs-steps { list-style:none; padding:0; margin:0; }
.fcbs .fcbs-copy .fcbs-step {
 position:relative; display:grid; grid-template-columns:88px minmax(0,1fr); align-items:center;
 column-gap:16px; padding:16px 0 16px 8px; margin:0;
}
/* Straight rule with a centred V notch pointing to the next step. */
.fcbs .fcbs-step + .fcbs-step::before {
 content:""; position:absolute; left:0; right:0; top:0; height:21px; background:var(--fcbs-red);
 clip-path:polygon(0 0,calc(50% - 32px) 0,50% calc(100% - 1px),calc(50% + 32px) 0,100% 0,100% 1px,calc(50% + 32px) 1px,50% 100%,calc(50% - 32px) 1px,0 1px);
}
.fcbs .fcbs-step-icon { display:flex; align-items:center; justify-content:center; min-width:0; }
.fcbs .fcbs-step-icon svg { display:block; width:100%; height:auto; max-height:88px; overflow:visible; }
/* Icon lines stay as thick as the card and panel borders at every size. */
.fcbs .fcbs-step-icon path { stroke-width:1px; vector-effect:non-scaling-stroke; }
.fcbs .fcbs-step-text { font-size:clamp(14px,3.75vw,15px); line-height:1.2; color:#04050c; }
@keyframes fcbs-step-in { from { opacity:0; transform:translateY(10px); } to { opacity:1; transform:none; } }
.fcbs-enhanced .fcbs-challenge.is-active .fcbs-step {
 animation:fcbs-step-in 420ms cubic-bezier(.22,.61,.36,1) both;
 animation-delay:calc(var(--fcbs-step-i,0) * 200ms);
}

/* Mobile: rows share the card's height; rules run to its border. */
.fcbs.fcbs-compact.fcbs-enhanced .fcbs-challenge { min-height:100%; padding-bottom:4px; flex-direction:column; }
.fcbs.fcbs-gesture.fcbs-enhanced[data-phase="challenges"]:not([data-card-scroll]) .fcbs-copy-window { overflow-y:hidden; }
.fcbs.fcbs-compact.fcbs-enhanced .fcbs-challenge.is-active,
.fcbs.fcbs-compact.fcbs-enhanced .fcbs-challenge.is-leaving,
.fcbs.fcbs-compact.fcbs-enhanced .fcbs-challenge.fcbs-exiting-problem { display:flex; }
.fcbs.fcbs-compact.fcbs-enhanced .fcbs-challenge h3 { margin-bottom:8px; }
.fcbs.fcbs-compact.fcbs-enhanced .fcbs-challenge ol.fcbs-steps { flex:1 1 auto; display:flex; flex-direction:column; font-size:inherit; }
.fcbs.fcbs-compact.fcbs-enhanced .fcbs-challenge li.fcbs-step { flex:1 1 auto; margin:0; line-height:inherit; }
.fcbs.fcbs-compact.fcbs-enhanced .fcbs-challenge .fcbs-step + .fcbs-step::before { left:-16px; right:-16px; }
/* Rows below a rule leave room for its notch. */
.fcbs.fcbs-compact .fcbs-copy .fcbs-step + .fcbs-step { padding-top:25px; }

/* Set by fitProblemCards when a card needs less room than the default rows. */
.fcbs.fcbs-compact:is([data-card-fit="1"],[data-card-fit="2"]).fcbs-enhanced .fcbs-copy.fcbs-challenge { padding-top:12px; }
.fcbs.fcbs-compact:is([data-card-fit="1"],[data-card-fit="2"]).fcbs-enhanced .fcbs-challenge h3 { font-size:18px; margin-bottom:0; }
.fcbs.fcbs-compact:is([data-card-fit="1"],[data-card-fit="2"]) .fcbs-copy .fcbs-step { grid-template-columns:60px minmax(0,1fr); column-gap:12px; padding:8px 0 8px 4px; }
.fcbs.fcbs-compact:is([data-card-fit="1"],[data-card-fit="2"]) .fcbs-copy .fcbs-step + .fcbs-step { padding-top:15px; }
.fcbs.fcbs-compact:is([data-card-fit="1"],[data-card-fit="2"]) .fcbs-step + .fcbs-step::before { height:10px; }
.fcbs.fcbs-compact:is([data-card-fit="1"],[data-card-fit="2"]) .fcbs-step-icon svg { max-height:60px; }
.fcbs.fcbs-compact:is([data-card-fit="1"],[data-card-fit="2"]) .fcbs-step-text { font-size:13.5px; line-height:1.18; }
.fcbs.fcbs-compact[data-card-fit="2"].fcbs-enhanced .fcbs-copy.fcbs-challenge { padding-top:8px; }
.fcbs.fcbs-compact[data-card-fit="2"].fcbs-enhanced .fcbs-challenge h3 { font-size:16px; }
.fcbs.fcbs-compact[data-card-fit="2"] .fcbs-copy .fcbs-step { grid-template-columns:46px minmax(0,1fr); padding:6px 0 6px 2px; }
.fcbs.fcbs-compact[data-card-fit="2"] .fcbs-copy .fcbs-step + .fcbs-step { padding-top:11px; }
.fcbs.fcbs-compact[data-card-fit="2"] .fcbs-step-icon svg { max-height:46px; }
.fcbs.fcbs-compact[data-card-fit="2"] .fcbs-step-text { font-size:12.5px; line-height:1.15; }
.fcbs.fcbs-compact[data-card-fit="2"] .fcbs-step + .fcbs-step::before { height:7px; }

/* Desktop: one full-width card with three panels and a vertical progress bar. */
.fcbs.fcbs-enhanced:not(.fcbs-compact) {
 --fcbs-card-height:min(100%,760px); --fcbs-line:1px; --fcbs-panel-pad:32px;
 /* Once the card stops growing, it sits centred in the stage. */
 --fcbs-card-top:calc((100% - var(--fcbs-card-height)) / 2);
}
.fcbs.fcbs-enhanced:not(.fcbs-compact):not([data-phase="bridge"]) .fcbs-problems { opacity:0; pointer-events:none; }
.fcbs.fcbs-enhanced:not(.fcbs-compact) .fcbs-stage::before {
 content:""; position:absolute; left:0; top:var(--fcbs-card-top); width:100%; height:var(--fcbs-card-height);
 border:var(--fcbs-line) solid var(--fcbs-red); pointer-events:none; opacity:0; transition:opacity 240ms ease;
}
.fcbs.fcbs-enhanced:not(.fcbs-compact)[data-phase="challenges"] .fcbs-stage::before { opacity:1; }
/* The window moves once the outgoing copy has faded. */
.fcbs.fcbs-enhanced:not(.fcbs-compact) .fcbs-copy-window {
 transition:left 0s linear 240ms,width 0s linear 240ms,top 0s linear 240ms,height 0s linear 240ms;
}
.fcbs.fcbs-enhanced:not(.fcbs-compact)[data-phase="challenges"] .fcbs-copy-window {
 left:0; width:100%; top:var(--fcbs-card-top); height:var(--fcbs-card-height);
}
.fcbs.fcbs-enhanced:not(.fcbs-compact) .fcbs-challenge {
 height:100%; display:flex; flex-direction:column; padding:0;
}
.fcbs.fcbs-enhanced:not(.fcbs-compact) .fcbs-challenge h3 {
 display:block; flex:0 0 auto; color:var(--fcbs-red);
 font-size:clamp(24px,1.9vw,40px); line-height:1.12; margin:0;
 padding:clamp(28px,3.6vh,48px) clamp(32px,2.8vw,54px) clamp(24px,3.4vh,40px);
}
.fcbs.fcbs-enhanced:not(.fcbs-compact) .fcbs-challenge ol.fcbs-steps {
 flex:1 1 auto; min-height:0; display:flex; font-size:inherit; padding:0;
 border-top:var(--fcbs-line) solid var(--fcbs-red);
}
/* Three equal panels run to the card's edges, split by the mobile rule turned on
   its side. Real borders keep every line the same weight at any screen scale. */
.fcbs.fcbs-enhanced:not(.fcbs-compact) .fcbs-challenge .fcbs-step {
 flex:1 1 0; min-width:0; display:flex; flex-direction:column; justify-content:center;
 padding:clamp(20px,3vh,40px) var(--fcbs-panel-pad);
 border-left:var(--fcbs-line) solid transparent;
}
.fcbs.fcbs-enhanced:not(.fcbs-compact) .fcbs-challenge .fcbs-step + .fcbs-step {
 padding-top:clamp(20px,3vh,40px); border-left-color:var(--fcbs-red);
}
/* The notch sits over a small white break in the border. */
.fcbs.fcbs-enhanced:not(.fcbs-compact) .fcbs-challenge .fcbs-step + .fcbs-step::after {
 content:""; position:absolute; left:-2px; top:calc(50% - 32px); width:3px; height:64px; background:#fff; z-index:1;
}
.fcbs.fcbs-enhanced:not(.fcbs-compact) .fcbs-challenge .fcbs-step + .fcbs-step::before {
 left:-1px; right:auto; top:0; bottom:0; width:21px; height:auto; z-index:2;
 clip-path:polygon(0 calc(50% - 32px),1px calc(50% - 32px),100% 50%,1px calc(50% + 32px),0 calc(50% + 32px),calc(100% - 1px) 50%);
}
.fcbs.fcbs-enhanced:not(.fcbs-compact) .fcbs-step-icon path { stroke-width:2px; }
.fcbs.fcbs-enhanced:not(.fcbs-compact) .fcbs-challenge .fcbs-step-icon { flex:0 1 220px; min-height:0; margin-bottom:clamp(16px,3vh,32px); }
.fcbs.fcbs-enhanced:not(.fcbs-compact) .fcbs-challenge .fcbs-step-icon svg { width:auto; max-width:100%; height:100%; max-height:none; aspect-ratio:1; }
.fcbs.fcbs-enhanced:not(.fcbs-compact) .fcbs-challenge .fcbs-step-text {
 flex:0 0 auto; align-self:center; max-width:100%; font-size:clamp(16px,1.15vw,22px); line-height:1.3; text-wrap:balance;
}
.fcbs.fcbs-enhanced:not(.fcbs-compact) .fcbs-mobile-progress {
 display:block; position:absolute; left:0; top:var(--fcbs-card-top); width:8px; height:var(--fcbs-card-height);
 z-index:4; border:0; opacity:0; visibility:hidden; pointer-events:none;
 transition:opacity 240ms ease,visibility 0s linear 240ms;
}
.fcbs.fcbs-enhanced:not(.fcbs-compact)[data-phase="challenges"] .fcbs-mobile-progress {
 opacity:1; visibility:visible; pointer-events:auto; transition:opacity 240ms ease;
}
.fcbs.fcbs-enhanced:not(.fcbs-compact) .fcbs-mobile-progress span { width:100%; height:25%; transform:translateY(calc(var(--fcbs-step,0) * 100%)); }
.fcbs.fcbs-enhanced:not(.fcbs-compact) .fcbs-mobile-progress .fcbs-progress-choice {
 left:0; top:calc(var(--i,0) * 25%); bottom:auto; width:100%; height:25%;
}
@media(prefers-reduced-motion:reduce) { .fcbs .fcbs-step { animation:none!important; } }

/* Layers: a plain promise, then short points at one text size. */
.fcbs .fcbs-copy.fcbs-solution h3 { margin-bottom:16px; }
.fcbs .fcbs-copy .fcbs-subtitle,
.fcbs .fcbs-copy .fcbs-points li { font-size:clamp(17px,1.22vw,25px); line-height:1.5; margin:0 0 14px; padding:0; }
.fcbs .fcbs-copy ul.fcbs-points { list-style:none; padding:0; margin:0; }
.fcbs .fcbs-copy .fcbs-points li:last-child { margin-bottom:0; }
.fcbs .fcbs-term { text-decoration:underline; text-underline-offset:3px; }
.fcbs .fcbs-points em { font-style:italic; }
/* Layer copy uses the stage's full height and is centred on the stack. */
.fcbs.fcbs-enhanced:not(.fcbs-compact) .fcbs-solution { min-height:100%; display:flex; flex-direction:column; justify-content:center; padding-top:4px; padding-bottom:4px; }
.fcbs.fcbs-gesture:not(.fcbs-compact).fcbs-enhanced .fcbs-solution:not(.is-active) { display:none; }
.fcbs.fcbs-compact .fcbs-copy.fcbs-solution h3 { margin-bottom:12px; }
.fcbs.fcbs-compact .fcbs-copy .fcbs-subtitle,
.fcbs.fcbs-compact .fcbs-copy .fcbs-points li { font-size:clamp(15px,3.9vw,18px); line-height:1.5; margin-bottom:12px; }
.fcbs.fcbs-compact .fcbs-copy .fcbs-points li:last-child { margin-bottom:0; }

/* Skip link: under the chart on desktop; replaces the floating contact button on touch layouts. */
.fcbs .fcbs-skip,
.fcbs-skip.fcbs-skip-floating {
 display:inline-flex; align-items:center; gap:.55em; margin-top:24px;
 color:var(--fcbs-green,#009b4b)!important; text-decoration:none!important;
 font-family:neue-montreal,Arial,sans-serif; font-weight:400; letter-spacing:0;
 font-size:clamp(16px,1.15vw,22px); line-height:1.2; background:none; box-shadow:none;
}
.fcbs-skip .fcbs-skip-arrow { flex:0 0 auto; width:1.05em; height:1.05em; overflow:visible; }
.fcbs-skip:hover span { text-decoration:underline; text-underline-offset:3px; }
.fcbs-skip:focus-visible { outline:2px solid #009b4b; outline-offset:4px; }
.fcbs.fcbs-enhanced:not(.fcbs-gesture) .fcbs-stage { margin-bottom:var(--fcbs-skip-space,0px); }
.fcbs.fcbs-enhanced:not(.fcbs-gesture) .fcbs-skip { position:absolute; left:0; top:calc(100% + 14px); margin:0; z-index:6; }
.fcbs.fcbs-enhanced.fcbs-gesture .fcbs-skip { display:none; }
.fcbs-skip.fcbs-skip-floating {
 position:fixed; z-index:9999; box-sizing:border-box; margin:0; padding:0 12px; justify-content:center;
 background:#fff!important; border:1px solid #009b4b; border-radius:0;
 font-size:clamp(12.5px,3.7vw,16px); white-space:nowrap; overflow:hidden;
 opacity:0; visibility:hidden; pointer-events:none;
 transition:opacity 200ms ease,visibility 0s linear 200ms;
}
.fcbs-skip.fcbs-skip-floating.is-visible { opacity:1; visibility:visible; pointer-events:auto; transition:opacity 200ms ease; }
.fcbs-skip.fcbs-skip-floating span { min-width:0; overflow:hidden; text-overflow:ellipsis; }
html.fcbs-skip-active .elementor-location-floating_buttons,
html.fcbs-skip-active .fc-adaptive-contact,
html.fcbs-skip-active .fc-floating-contact,
html.fcbs-skip-active #FloatingContact { opacity:0!important; pointer-events:none!important; }
