.fct--light{--fct-bg:#fff;--fct-ink:#009b4b;--fct-mask:rgb(255 255 255 / 70%);--fct-disabled-bg:#f2f2f2;--fct-disabled-ink:#888}
.fct--dark{--fct-bg:#04050c;--fct-ink:#fff;--fct-mask:rgb(0 0 0 / 70%);--fct-disabled-bg:#24252b;--fct-disabled-ink:#888}
.fct,.fct-dialog{box-sizing:border-box;font-family:inherit;color:var(--fct-ink);background:var(--fct-bg)}
.fct *,.fct-dialog *{box-sizing:border-box}
.fct{display:grid;grid-template-columns:var(--fct-arrow-width,50px) minmax(0,1fr) var(--fct-arrow-width,50px);width:100%;position:relative;border:0}
.fct-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain;min-width:0}
.fct-track::-webkit-scrollbar{display:none}
.fct-card{position:relative;flex:0 0 33.333333%;min-width:0;margin:0;border:0;scroll-snap-align:start}
.fct .fct-open,.fct .fct-nav,.fct-dialog .fct-close{appearance:none;border-radius:0;box-shadow:none;font:inherit;letter-spacing:0;text-transform:none;text-decoration:none;color:var(--fct-ink);background:var(--fct-bg);cursor:pointer;margin:0}
.fct .fct-open{position:relative;display:flex;flex-direction:column;text-align:left;width:100%;height:100%;padding:26px 32px;border:0;overflow:hidden}
.fct-preview{display:block;height:180px;overflow:hidden;line-height:1.22;font-size:18px;padding-right:16px;mask-image:linear-gradient(#000 40%,transparent 100%);-webkit-mask-image:linear-gradient(#000 40%,transparent 100%)}
.fct-name{display:block;font-size:28px;line-height:1.15;margin-top:8px}
.fct-role{display:block;font-size:18px;font-style:italic;line-height:1.25;margin-top:8px}
.fct-expand{position:absolute;right:10px;top:10px;width:26px;height:26px}
.fct svg,.fct-dialog svg{display:block;width:100%;height:100%;pointer-events:none}
.fct .fct-nav{display:flex;align-items:center;justify-content:center;padding:12px;border:0}
.fct .fct-prev{border-right:1px solid var(--fct-ink)}
.fct .fct-next{border-left:1px solid var(--fct-ink)}
.fct-nav svg{width:24px;height:24px}
.fct .fct-nav:disabled{background:var(--fct-disabled-bg);color:var(--fct-disabled-ink);opacity:1;cursor:default}
.fct button:focus-visible,.fct-dialog button:focus-visible{outline:1px solid var(--fct-ink);outline-offset:-5px}
.fct-status{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
dialog.fct-dialog{position:fixed;inset:0;margin:auto;width:min(800px,calc(100vw - 40px));max-width:none;max-height:calc(100dvh - 48px);padding:40px;border:1px solid var(--fct-ink);overflow:auto;overscroll-behavior:contain;border-radius:0;color:var(--fct-ink)}
dialog.fct-dialog:not([open]){display:none}
dialog.fct-dialog[open]{animation:fct-reveal 220ms ease-out}
.fct-dialog::backdrop{background:var(--fct-mask)}
.fct-dialog .fct-close{position:absolute;right:0;top:0;width:48px;height:48px;border:0;border-left:1px solid var(--fct-ink);border-bottom:1px solid var(--fct-ink);padding:12px}
.fct-dialog .fct-modal-name{font:inherit;font-size:30px;line-height:1.15;margin:0 30px 8px 0;color:inherit}
.fct-dialog .fct-modal-role{font:inherit;font-style:italic;font-size:18px;line-height:1.3;margin:0 20px 28px 0;color:inherit}
.fct-dialog .fct-body{font-size:18px;line-height:1.5;color:inherit}
.fct-dialog .fct-body p{color:inherit;margin:0 0 1em}
.fct-dialog .fct-body a{color:inherit;text-decoration:underline}
.fct-dialog .fct-body img{max-width:100%;height:auto}
@keyframes fct-reveal{from{opacity:0;clip-path:inset(0 0 100% 0)}to{opacity:1;clip-path:inset(0)}}
@media(max-width:1024px){.fct-card{flex-basis:50%}}
@media(max-width:767px){
.fct{grid-template-columns:1fr 1fr}
.fct-track{grid-row:1;grid-column:1 / -1}
.fct-card{flex-basis:100%}
.fct .fct-open{padding:26px 24px}
.fct .fct-nav{grid-row:2;border-top:1px solid var(--fct-ink);height:48px}
.fct .fct-prev{border-right:1px solid var(--fct-ink)}
.fct .fct-next{border-left:0}
.fct-preview{height:180px;font-size:18px}
.fct-name{font-size:28px}
dialog.fct-dialog{width:calc(100vw - 30px);padding:54px 24px 28px;max-height:calc(100dvh - 30px - env(safe-area-inset-top) - env(safe-area-inset-bottom))}
}
@media(prefers-reduced-motion:reduce){dialog.fct-dialog[open]{animation:none}}

/* Isolate shortcode buttons from Hello/Elementor's global button styles. */
.elementor-widget-shortcode:has([data-fct]),
.elementor-widget-shortcode:has([data-fct]) > .elementor-widget-container,
.elementor-shortcode:has(> [data-fct]) {width:100% !important;max-width:none !important;min-width:0;align-self:stretch}
.fct .fct-open {white-space:normal !important;align-items:stretch;justify-content:flex-start;gap:0;min-width:0;transition:background-color 180ms ease,color 180ms ease}
.fct .fct-preview {width:100%;min-width:0;flex:0 0 180px;white-space:normal !important;overflow-wrap:anywhere;text-overflow:clip !important;max-width:100%;mask-image:linear-gradient(to bottom,#000 35%,transparent 100%) !important;-webkit-mask-image:linear-gradient(to bottom,#000 35%,transparent 100%) !important}
.fct .fct-name,.fct .fct-role {white-space:normal !important;overflow-wrap:anywhere;color:inherit !important}
.fct .fct-open,.fct .fct-nav,.fct-dialog .fct-close {background:var(--fct-bg) !important;color:var(--fct-ink) !important;text-decoration:none !important}
@media (hover:hover) and (pointer:fine) {
.fct .fct-open:hover,.fct .fct-open:focus-visible,
.fct .fct-nav:not(:disabled):hover,.fct .fct-nav:not(:disabled):focus-visible,
.fct-dialog .fct-close:hover,.fct-dialog .fct-close:focus-visible {background:#009b4b !important;color:#fff !important}
}
.fct .fct-nav:disabled,.fct .fct-nav:disabled:hover {background:var(--fct-disabled-bg) !important;color:var(--fct-disabled-ink) !important}

/* Invert dark-mode controls on hover and keyboard focus. */
@media (hover:hover) and (pointer:fine) {
.fct--dark .fct-open:hover,.fct--dark .fct-open:focus-visible,
.fct--dark .fct-nav:not(:disabled):hover,.fct--dark .fct-nav:not(:disabled):focus-visible,
.fct-dialog.fct--dark .fct-close:hover,.fct-dialog.fct--dark .fct-close:focus-visible {background:#fff !important;color:#04050c !important}

}

/* Remove only the boxed inner width that directly hosts this shortcode. */
.e-con > .e-con-inner:has(> .elementor-widget-shortcode [data-fct]) {
    width:100% !important;max-width:none !important;
    padding-left:0 !important;padding-right:0 !important;
}
@media(max-width:767px) {
    .fct-track {overflow-x:hidden;touch-action:pan-y pinch-zoom}
    .fct .fct-name {font-size:22px}
    dialog.fct-dialog {max-height:75vh;max-height:75dvh;overflow:hidden}
    dialog.fct-dialog[open] {display:flex;flex-direction:column}
    .fct-dialog .fct-modal-name {font-size:24px;flex-shrink:0}
    .fct-dialog .fct-modal-role {flex-shrink:0}
    .fct-dialog .fct-modal-content {min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
}
@media(hover:none),(pointer:coarse),(max-width:767px) {
    .fct .fct-open,.fct .fct-nav,.fct-dialog .fct-close {transition:none !important}
    .fct .fct-open:hover,.fct .fct-open:focus-visible,
    .fct .fct-nav:not(:disabled):hover,.fct .fct-nav:not(:disabled):focus-visible,
    .fct-dialog .fct-close:hover,.fct-dialog .fct-close:focus-visible {background:var(--fct-bg) !important;color:var(--fct-ink) !important}
}

/* Each junction has one owner; never draw a card edge beside an arrow edge. */
.fct .fct-card,.fct .fct-open {border:0 !important}
.fct .fct-nav {border-width:0 !important}
@media(min-width:768px) {
    .fct .fct-prev {border-right:1px solid var(--fct-ink) !important}
    .fct .fct-next {border-left:1px solid var(--fct-ink) !important}
}
@media(max-width:767px) {
    .fct .fct-nav {border-top:1px solid var(--fct-ink) !important}
    .fct .fct-prev {border-right:1px solid var(--fct-ink) !important}
}
dialog.fct-dialog {border-width:1px !important}
.fct-dialog .fct-close {border-width:0 0 1px 1px !important;box-shadow:none !important}
.fct-dialog.fct-pointer-open .fct-close:focus,
.fct-dialog.fct-pointer-open .fct-close:focus-visible {outline:none !important;box-shadow:none !important}
.fct-scroll-frame {position:relative;min-height:0}
.fct-scroll-indicator {display:none;pointer-events:none}
@media(max-width:767px) {
    .fct-dialog .fct-scroll-frame {display:flex;flex-direction:column;min-height:0;flex:0 1 auto;overflow:hidden}
    .fct-dialog .fct-modal-content {padding-right:12px;scrollbar-width:none}
    .fct-dialog .fct-modal-content::-webkit-scrollbar {display:none}
    .fct-dialog .fct-scroll-indicator:not([hidden]) {display:block;position:absolute;right:0;top:0;bottom:0;width:1px;border-radius:0;background:transparent}
    .fct-scroll-indicator > span {display:block;width:1px;border-radius:0;background:var(--fct-ink);will-change:transform}
}

/* One right border per card, with reserved width to avoid layout jumps. */
.fct .fct-card::before,.fct .fct-card::after {content:none !important;display:none !important}
.fct .fct-card {border:0 !important;border-right:1px solid transparent !important;box-shadow:none !important}
.fct .fct-card.fct-show-right {border-right-color:var(--fct-ink) !important}
.fct .fct-open {border:0 !important;box-shadow:none !important}
