/*!
 * FinCheck Solution Widgets - front-end stylesheet
 * Namespaced `fcp-` / `fcpw-` so it can never collide with the existing
 * `fincheck-widgets` plugin or with the active theme.
 * Fonts are self-hosted (Archivo / Inter / IBM Plex Mono).
 */

/* ==========================================================================
   Self-hosted fonts
   ========================================================================== */
@font-face{font-family:'FCP Archivo';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/archivo-latin-400-normal.woff2') format('woff2');}
@font-face{font-family:'FCP Archivo';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/archivo-latin-500-normal.woff2') format('woff2');}
@font-face{font-family:'FCP Archivo';font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/archivo-latin-600-normal.woff2') format('woff2');}
@font-face{font-family:'FCP Archivo';font-style:normal;font-weight:700;font-display:swap;src:url('../fonts/archivo-latin-700-normal.woff2') format('woff2');}
@font-face{font-family:'FCP Archivo';font-style:normal;font-weight:800;font-display:swap;src:url('../fonts/archivo-latin-800-normal.woff2') format('woff2');}
@font-face{font-family:'FCP Archivo';font-style:normal;font-weight:900;font-display:swap;src:url('../fonts/archivo-latin-900-normal.woff2') format('woff2');}
@font-face{font-family:'FCP Archivo';font-style:italic;font-weight:400;font-display:swap;src:url('../fonts/archivo-latin-400-italic.woff2') format('woff2');}
@font-face{font-family:'FCP Archivo';font-style:italic;font-weight:500;font-display:swap;src:url('../fonts/archivo-latin-500-italic.woff2') format('woff2');}
@font-face{font-family:'FCP Inter';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/inter-latin-400-normal.woff2') format('woff2');}
@font-face{font-family:'FCP Inter';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/inter-latin-500-normal.woff2') format('woff2');}
@font-face{font-family:'FCP Inter';font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/inter-latin-600-normal.woff2') format('woff2');}
@font-face{font-family:'FCP Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/ibm-plex-mono-latin-400-normal.woff2') format('woff2');}
@font-face{font-family:'FCP Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/ibm-plex-mono-latin-500-normal.woff2') format('woff2');}

/* ==========================================================================
   Scope reset - :where() keeps specificity at 0 so component rules always win
   ========================================================================== */
.fcpw-scope{ --fcpw-vw: 100vw; }
.fcpw-scope,
.fcpw-scope *,
.fcpw-scope *::before,
.fcpw-scope *::after{ box-sizing:border-box; }

:where(.fcpw-scope) p,
:where(.fcpw-scope) h1,
:where(.fcpw-scope) h2,
:where(.fcpw-scope) h3,
:where(.fcpw-scope) h4,
:where(.fcpw-scope) h5,
:where(.fcpw-scope) h6,
:where(.fcpw-scope) ul,
:where(.fcpw-scope) ol,
:where(.fcpw-scope) li,
:where(.fcpw-scope) figure,
:where(.fcpw-scope) table{ margin:0; padding:0; }

:where(.fcpw-scope) ul,
:where(.fcpw-scope) ol{ list-style:none; }
:where(.fcpw-scope) a{ color:inherit; text-decoration:none; box-shadow:none; }
:where(.fcpw-scope) a:hover{ text-decoration:none; }
:where(.fcpw-scope) img{ max-width:100%; height:auto; display:block; }
:where(.fcpw-scope) em{ font-style:italic; }
:where(.fcpw-scope) strong{ font-weight:700; }

/* Full-bleed helper. --fcpw-vw is set by JS to documentElement.clientWidth so
   a vertical scrollbar never produces a horizontal overflow. */
.fcpw-scope.fcpw-stretch{
  margin-left:calc(50% - (var(--fcpw-vw) / 2));
  margin-right:calc(50% - (var(--fcpw-vw) / 2));
}
.fcpw-scope > section,
.fcpw-scope > nav{ width:100%; }

/* ==========================================================================
   FinCheck LLC — Black & White Revamp v2
   Black header + black footer + advanced animation layer
   Fonts: Archivo (display) / Inter (body) / IBM Plex Mono (labels & indices)
   ========================================================================== */

:root{
  --fcp-ink:        #0a0a0a;
  --fcp-ink-soft:   #131313;
  --fcp-paper:      #ffffff;
  --fcp-grey-05:    #f4f4f4;
  --fcp-grey-15:    #e2e2e2;
  --fcp-grey-40:    #9a9a9a;
  --fcp-grey-60:    #5c5c5c;
  --fcp-line-dark:  rgba(255,255,255,.16);

  --fcp-display:    'Archivo', sans-serif;
  --fcp-body:       'Inter', sans-serif;
  --fcp-mono:       'IBM Plex Mono', monospace;

  --fcp-container:  1240px;
  --fcp-gutter:     24px;
  --fcp-radius:     2px;
  --fcp-header-h:   84px;
  --fcp-ease:       cubic-bezier(.22,.61,.36,1);
  --fcp-ease-out:   cubic-bezier(.16,1,.3,1);
}
.fcp-container{
  max-width:var(--fcp-container);
  margin-inline:auto;
  padding-inline:var(--fcp-gutter);
}
/* ==========================================================================
   Buttons
   ========================================================================== */
.fcp-btn{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-family:var(--fcp-display);
  font-weight:600;
  font-size:14px;
  letter-spacing:.04em;
  text-transform:uppercase;
  padding:14px 26px;
  border:1px solid var(--fcp-ink);
  border-radius:var(--fcp-radius);
  position:relative;
  overflow:hidden;
  transition:color .35s var(--fcp-ease), border-color .35s var(--fcp-ease), transform .35s var(--fcp-ease);
  will-change:transform;
}
/* Sliding fill effect */
.fcp-btn::before{
  content:"";
  position:absolute;
  inset:0;
  background:currentColor;
  opacity:0;
  transform:translateY(101%);
  transition:transform .4s var(--fcp-ease-out), opacity .01s;
  z-index:-1;
}
.fcp-btn__arrow{ transition:transform .3s var(--fcp-ease); }
.fcp-btn:hover .fcp-btn__arrow{ transform:translateX(6px); }
.fcp-btn--solid{ background:var(--fcp-paper); color:var(--fcp-ink); border-color:var(--fcp-paper); }
.fcp-btn--solid:hover{ background:transparent; color:var(--fcp-paper); }
.fcp-btn--ghost{ background:transparent; color:var(--fcp-paper); border-color:rgba(255,255,255,.4); }
.fcp-btn--ghost:hover{ background:var(--fcp-paper); color:var(--fcp-ink); border-color:var(--fcp-paper); }
.fcp-btn--hero{
  background:var(--fcp-paper);
  color:var(--fcp-ink);
  border-color:var(--fcp-paper);
  padding:18px 34px;
  font-size:15px;
}
.fcp-btn--hero:hover{ background:transparent; color:var(--fcp-paper); }
.fcp-btn--invert{
  background:var(--fcp-paper);
  color:var(--fcp-ink);
  border-color:var(--fcp-paper);
  padding:18px 34px;
}
.fcp-btn--invert:hover{ background:transparent; color:var(--fcp-paper); }
.fcp-btn--outline-invert{
  background:transparent;
  color:var(--fcp-paper);
  border-color:var(--fcp-paper);
  padding:18px 34px;
}
.fcp-btn--outline-invert:hover{ background:var(--fcp-paper); color:var(--fcp-ink); }
.fcp-eyebrow{
  font-family:var(--fcp-mono);
  font-size:13px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--fcp-grey-40);
  display:inline-flex;
  align-items:center;
  gap:14px;
  margin-bottom:28px;
}
.fcp-eyebrow::before{
  content:"";
  width:44px; height:1px;
  background:var(--fcp-grey-40);
}
/* Staggered line reveal */
.fcp-line{
  display:block;
  overflow:hidden;
  padding-bottom:.08em;
  margin-bottom:-.08em;
}
.fcp-line__inner{
  display:block;
  transform:translateY(112%);
  animation:fcp-line-up .95s var(--fcp-ease-out) forwards;
}
.fcp-line:nth-child(2) .fcp-line__inner{ animation-delay:.14s; }
@keyframes fcp-line-up{
  to{ transform:translateY(0); }
}
/* ==========================================================================
   Section heads
   ========================================================================== */
.fcp-section-head{
  display:flex;
  align-items:baseline;
  gap:20px;
  flex-wrap:wrap;
  margin-bottom:48px;
}
.fcp-section-head--sub{ margin-top:72px; }
.fcp-index{
  font-family:var(--fcp-mono);
  font-size:13px;
  letter-spacing:.12em;
  color:var(--fcp-grey-40);
  border:1px solid currentColor;
  padding:3px 9px;
  border-radius:var(--fcp-radius);
}
.fcp-section-title{
  font-family:var(--fcp-display);
  font-weight:800;
  font-size:clamp(28px, 4vw, 46px);
  letter-spacing:-.01em;
  text-transform:uppercase;
  line-height:1.1;
}
.fcp-section-sub{
  flex-basis:100%;
  font-size:15px;
  color:var(--fcp-grey-60);
  margin-top:6px;
}
.fcp-section-head--light .fcp-section-sub{ color:var(--fcp-grey-40); }
/* ==========================================================================
   Solutions (index list)
   ========================================================================== */
.fcp-solutions{
  background:var(--fcp-paper);
  padding:clamp(72px, 8vw, 110px) 0;
}
.fcp-sol-list{
  border-top:1px solid var(--fcp-grey-15);
}
.fcp-sol-list li a{
  display:grid;
  grid-template-columns:64px 1fr 40px;
  align-items:center;
  gap:20px;
  padding:22px 8px;
  border-bottom:1px solid var(--fcp-grey-15);
  position:relative;
  overflow:hidden;
  transition:padding-left .35s var(--fcp-ease-out), color .35s var(--fcp-ease);
}
/* Ink swipe background */
.fcp-sol-list li a::before{
  content:"";
  position:absolute;
  inset:0;
  background:var(--fcp-ink);
  transform:scaleY(0);
  transform-origin:50% 100%;
  transition:transform .38s var(--fcp-ease-out);
  z-index:0;
}
.fcp-sol-list li a > *{ position:relative; z-index:1; }
.fcp-sol-list__no{
  font-family:var(--fcp-mono);
  font-size:13px;
  letter-spacing:.12em;
  color:var(--fcp-grey-40);
  transition:color .35s var(--fcp-ease);
}
.fcp-sol-list__name{
  font-family:var(--fcp-display);
  font-weight:600;
  font-size:clamp(17px, 2vw, 22px);
  letter-spacing:-.005em;
  transition:transform .35s var(--fcp-ease-out);
}
.fcp-sol-list__arrow{
  font-size:20px;
  justify-self:end;
  opacity:0;
  transform:translateX(-10px);
  transition:opacity .3s var(--fcp-ease), transform .3s var(--fcp-ease);
}
.fcp-sol-list li a:hover{
  padding-left:24px;
  color:var(--fcp-paper);
}
.fcp-sol-list li a:hover::before{
  transform:scaleY(1);
  transform-origin:50% 0%;
}
.fcp-sol-list li a:hover .fcp-sol-list__no{ color:var(--fcp-grey-40); }
.fcp-sol-list li a:hover .fcp-sol-list__name{ transform:translateX(6px); }
.fcp-sol-list li a:hover .fcp-sol-list__arrow{ opacity:1; transform:translateX(0); }
.fcp-testimonials .fcp-section-head{ align-items:center; }
/* ==========================================================================
   CTA band
   ========================================================================== */
.fcp-cta{
  background:var(--fcp-ink);
  color:var(--fcp-paper);
  border-top:1px solid var(--fcp-line-dark);
  padding:clamp(72px, 9vw, 130px) 0;
}
.fcp-cta__inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:48px;
  flex-wrap:wrap;
}
.fcp-cta__title{
  font-family:var(--fcp-display);
  font-weight:800;
  font-size:clamp(32px, 5vw, 60px);
  line-height:1.08;
  letter-spacing:-.015em;
  text-transform:uppercase;
}
.fcp-cta__actions{ display:flex; gap:16px; flex-wrap:wrap; }
/* ==========================================================================
   Reveal on scroll
   ========================================================================== */
.fcp-reveal{
  opacity:0;
  transform:translateY(30px);
  transition:opacity .8s var(--fcp-ease-out), transform .8s var(--fcp-ease-out);
  transition-delay:var(--fcp-delay, 0s);
}
.fcp-reveal.is-visible{
  opacity:1;
  transform:translateY(0);
}
@media (max-width: 640px){
.fcp-sol-list li a{ grid-template-columns:44px 1fr 30px; gap:12px; }
}
@media (prefers-reduced-motion: reduce){
.fcp-reveal{ opacity:1; transform:none; transition:none; }
.fcp-line__inner{ animation:none; transform:none; }
}
/* ==========================================================================
   ==========================================================================
   INNER PAGES — Expertise / Solutions / Meet the Team / Blog / Contact
   Same black & white system, extended.
   ==========================================================================
   ========================================================================== */

/* ==========================================================================
   Generic section shells
   ========================================================================== */
.fcp-sec{
  padding:clamp(64px, 8vw, 110px) 0;
  background:var(--fcp-paper);
  color:var(--fcp-ink);
}
.fcp-sec--dark{
  background:var(--fcp-ink);
  color:var(--fcp-paper);
  border-top:1px solid var(--fcp-line-dark);
}
.fcp-sec--tight{ padding:clamp(48px, 6vw, 80px) 0; }
.fcp-sec--dark .fcp-section-sub{ color:var(--fcp-grey-40); }
.fcp-sec--dark a:focus-visible,
.fcp-sec--dark button:focus-visible{ outline-color:var(--fcp-paper); }
/* ==========================================================================
   Page hero (inner pages)
   ========================================================================== */
.fcp-phero{
  position:relative;
  overflow:hidden;
  background:var(--fcp-ink);
  color:var(--fcp-paper);
  padding:clamp(64px, 9vw, 124px) 0 clamp(56px, 7vw, 96px);
  border-bottom:1px solid var(--fcp-line-dark);
}
.fcp-phero::before{
  content:"";
  position:absolute;
  inset:-160px 0 0 0;
  background-image:
    linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px);
  background-size:72px 72px;
  pointer-events:none;
  transform:translateY(calc(var(--fcp-parallax, 0) * 1px));
  will-change:transform;
}
.fcp-phero::after{
  content:"";
  position:absolute;
  top:-30%;
  right:-10%;
  width:60vw;
  height:60vw;
  max-width:820px;
  max-height:820px;
  background:radial-gradient(circle, rgba(255,255,255,.09) 0%, rgba(255,255,255,0) 62%);
  pointer-events:none;
  animation:fcp-breathe 9s ease-in-out infinite alternate;
}
@keyframes fcp-breathe{
  from{ transform:scale(.9); opacity:.7; }
  to{ transform:scale(1.08); opacity:1; }
}
.fcp-phero > .fcp-container{ position:relative; z-index:1; }
.fcp-crumbs{
  font-family:var(--fcp-mono);
  font-size:12px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--fcp-grey-40);
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:26px;
  flex-wrap:wrap;
}
.fcp-crumbs a{ transition:color .25s var(--fcp-ease); }
.fcp-crumbs a:hover{ color:var(--fcp-paper); }
.fcp-crumbs span[aria-current]{ color:var(--fcp-paper); }
.fcp-phero__title{
  font-family:var(--fcp-display);
  font-weight:800;
  font-size:clamp(36px, 6.2vw, 82px);
  line-height:1.03;
  letter-spacing:-.02em;
  text-transform:uppercase;
  max-width:min(1100px, 100%);
}
.fcp-phero__title em{
  font-style:normal;
  -webkit-text-stroke:2px var(--fcp-paper);
  color:transparent;
  transition:color .5s var(--fcp-ease);
}
.fcp-phero__title:hover em{ color:var(--fcp-paper); }
.fcp-phero__row{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:48px;
  flex-wrap:wrap;
  margin-top:36px;
}
.fcp-phero__copy{
  max-width:660px;
  font-size:17px;
  color:#c9c9c9;
}
.fcp-phero__copy + .fcp-phero__copy{ margin-top:16px; }
.fcp-phero__actions{ display:flex; gap:14px; flex-wrap:wrap; }
/* Small metric ticker under inner hero */
.fcp-ticker{
  position:relative;
  z-index:1;
  margin-top:clamp(40px, 5vw, 68px);
  border-top:1px solid var(--fcp-line-dark);
}
.fcp-ticker__grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
}
.fcp-ticker__item{
  padding:30px 28px;
  border-right:1px solid var(--fcp-line-dark);
  transition:background .35s var(--fcp-ease);
}
.fcp-ticker__item:first-child{ padding-left:var(--fcp-gutter); }
.fcp-ticker__item:last-child{ border-right:none; }
.fcp-ticker__item:hover{ background:rgba(255,255,255,.05); }
.fcp-ticker__num{
  display:block;
  font-family:var(--fcp-display);
  font-weight:800;
  font-size:clamp(30px, 3.4vw, 44px);
  line-height:1;
}
.fcp-ticker__label{
  display:block;
  margin-top:8px;
  font-family:var(--fcp-mono);
  font-size:11.5px;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--fcp-grey-40);
}
.fcp-sec--dark .fcp-search input{ border-color:var(--fcp-line-dark); }
.fcp-sec--dark .fcp-search input:focus{
  border-color:var(--fcp-paper);
  box-shadow:0 0 0 3px rgba(255,255,255,.1);
}
.fcp-count-label{
  font-family:var(--fcp-mono);
  font-size:12.5px;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--fcp-grey-40);
  margin-left:auto;
}
.fcp-btn--ink{
  background:var(--fcp-ink);
  color:var(--fcp-paper);
  border-color:var(--fcp-ink);
  padding:17px 38px;
}
.fcp-btn--ink:hover{ background:transparent; color:var(--fcp-ink); }
.fcp-btn--line{
  background:transparent;
  color:var(--fcp-ink);
  border-color:var(--fcp-ink);
  padding:17px 34px;
}
.fcp-btn--line:hover{ background:var(--fcp-ink); color:var(--fcp-paper); }
@media (max-width: 991px){
.fcp-phero__row{ flex-direction:column; align-items:flex-start; gap:28px; }
}
@media (max-width: 640px){
.fcp-ticker__grid{ grid-template-columns:1fr; }
.fcp-ticker__item{
    border-right:none;
    border-bottom:1px solid var(--fcp-line-dark);
    padding:22px var(--fcp-gutter);
  }
.fcp-ticker__item:last-child{ border-bottom:none; }
.fcp-count-label{ margin-left:0; }
}
@media (prefers-reduced-motion: reduce){
.fcp-phero::after{ animation:none; }
}
.fcp-cta__copy{
  margin-top:18px;
  max-width:640px;
  font-size:16px;
  line-height:1.7;
  color:#c3c3c3;
}
/* ==========================================================================
   ==========================================================================
   EXPERTISE DETAIL PAGES — split blocks, checklists, cards, roadmap,
   sticky sub-nav. Content imagery stays FULL COLOUR by design.
   ==========================================================================
   ========================================================================== */

/* Anchor offset so sticky header + sub-nav never cover a heading */
.fcp-sec[id]{ scroll-margin-top:calc(var(--fcp-header-h) + 72px); }
/* ==========================================================================
   Sticky section sub-nav
   ========================================================================== */
.fcp-subnav{
  position:sticky;
  top:var(--fcp-header-h);
  z-index:900;
  background:rgba(10,10,10,.94);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  border-bottom:1px solid var(--fcp-line-dark);
}
.fcp-subnav__inner{
  display:flex;
  align-items:center;
  gap:8px;
  padding:11px 0;
  overflow-x:auto;
  scrollbar-width:none;
  -ms-overflow-style:none;
}
.fcp-subnav__inner::-webkit-scrollbar{ display:none; }
.fcp-subnav__label{
  font-family:var(--fcp-mono);
  font-size:10.5px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--fcp-grey-60);
  padding-right:8px;
  white-space:nowrap;
  flex:none;
}
.fcp-subnav a{
  font-family:var(--fcp-mono);
  font-size:11.5px;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--fcp-grey-40);
  padding:8px 15px;
  border:1px solid transparent;
  border-radius:100px;
  white-space:nowrap;
  flex:none;
  transition:color .25s var(--fcp-ease), border-color .25s var(--fcp-ease),
             background .25s var(--fcp-ease);
}
.fcp-subnav a:hover{ color:var(--fcp-paper); border-color:var(--fcp-line-dark); }
.fcp-subnav a.is-current{
  background:var(--fcp-paper);
  color:var(--fcp-ink);
  border-color:var(--fcp-paper);
}
.fcp-h3{
  font-family:var(--fcp-display);
  font-weight:700;
  font-size:clamp(18px, 1.9vw, 22px);
  line-height:1.25;
  letter-spacing:-.005em;
}
.fcp-lede{
  font-size:16px;
  line-height:1.75;
  color:var(--fcp-grey-60);
  max-width:60ch;
  margin-top:16px;
}
.fcp-sec--dark .fcp-lede{ color:#c2c2c2; }
.fcp-note{
  margin-top:22px;
  padding:14px 18px;
  border-left:3px solid currentColor;
  font-family:var(--fcp-display);
  font-weight:600;
  font-size:15px;
}
.fcp-sec--dark .fcp-note{ background:rgba(255,255,255,.05); }
.fcp-sec:not(.fcp-sec--dark) .fcp-note{ background:var(--fcp-grey-05); }
/* ==========================================================================
   Split block — copy beside a full-colour image
   ========================================================================== */
.fcp-split{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(28px, 4.2vw, 64px);
  align-items:center;
}
.fcp-split--wide-copy{ grid-template-columns:1.15fr .85fr; }
.fcp-split--wide-media{ grid-template-columns:.85fr 1.15fr; }
.fcp-split--top{ align-items:start; }
.fcp-split--rev .fcp-split__media{ order:2; }
.fcp-split__media{
  position:relative;
  overflow:hidden;
  border:1px solid var(--fcp-grey-15);
  background:var(--fcp-grey-05);
}
.fcp-sec--dark .fcp-split__media{
  border-color:var(--fcp-line-dark);
  background:rgba(255,255,255,.03);
}
.fcp-split__media img{
  width:100%;
  height:auto;
  display:block;
  transition:transform .9s var(--fcp-ease-out);
}
.fcp-split__media:hover img{ transform:scale(1.035); }
/* Hairline corner ticks — quiet frame detail */
.fcp-split__media::before,
.fcp-split__media::after{
  content:"";
  position:absolute;
  width:18px; height:18px;
  pointer-events:none;
  z-index:2;
  border-color:var(--fcp-paper);
  opacity:.85;
  transition:width .45s var(--fcp-ease-out), height .45s var(--fcp-ease-out);
}
.fcp-split__media::before{
  top:10px; left:10px;
  border-top:2px solid; border-left:2px solid;
}
.fcp-split__media::after{
  bottom:10px; right:10px;
  border-bottom:2px solid; border-right:2px solid;
}
.fcp-split__media:hover::before,
.fcp-split__media:hover::after{ width:30px; height:30px; }
/* Full-width framed media band */
.fcp-media{
  position:relative;
  overflow:hidden;
  border:1px solid var(--fcp-grey-15);
  background:var(--fcp-grey-05);
}
.fcp-sec--dark .fcp-media{ border-color:var(--fcp-line-dark); background:rgba(255,255,255,.03); }
.fcp-media img{
  width:100%;
  height:auto;
  display:block;
  transition:transform 1s var(--fcp-ease-out);
}
.fcp-media:hover img{ transform:scale(1.025); }
.fcp-media__cap{
  position:absolute;
  left:0; bottom:0;
  z-index:2;
  background:var(--fcp-ink);
  color:var(--fcp-paper);
  font-family:var(--fcp-mono);
  font-size:10.5px;
  letter-spacing:.16em;
  text-transform:uppercase;
  padding:8px 14px;
}
/* ==========================================================================
   Tick checklist
   ========================================================================== */
.fcp-check{
  margin-top:28px;
  border-top:1px solid var(--fcp-grey-15);
}
.fcp-sec--dark .fcp-check{ border-color:var(--fcp-line-dark); }
.fcp-check li{
  display:grid;
  grid-template-columns:26px 1fr;
  gap:16px;
  align-items:start;
  padding:16px 4px;
  border-bottom:1px solid var(--fcp-grey-15);
  transition:padding-left .35s var(--fcp-ease-out), background .35s var(--fcp-ease);
}
.fcp-sec--dark .fcp-check li{ border-color:var(--fcp-line-dark); }
.fcp-check li:hover{ padding-left:14px; background:var(--fcp-grey-05); }
.fcp-sec--dark .fcp-check li:hover{ background:rgba(255,255,255,.05); }
.fcp-check__tick{
  width:24px; height:24px;
  border:1px solid currentColor;
  border-radius:50%;
  display:grid;
  place-items:center;
  margin-top:1px;
  transition:background .3s var(--fcp-ease), color .3s var(--fcp-ease), transform .4s var(--fcp-ease-out);
}
.fcp-check__tick svg{ width:12px; height:12px; }
.fcp-check li:hover .fcp-check__tick{ transform:rotate(-8deg) scale(1.08); }
.fcp-check strong{
  display:block;
  font-family:var(--fcp-display);
  font-weight:700;
  font-size:15.5px;
  letter-spacing:-.005em;
  margin-bottom:3px;
}
.fcp-check span{
  font-size:14.5px;
  line-height:1.65;
  color:var(--fcp-grey-60);
}
.fcp-sec--dark .fcp-check span{ color:var(--fcp-grey-40); }
/* ==========================================================================
   Card grid (static content cards, ink-swipe hover)
   ========================================================================== */
.fcp-cards{
  display:grid;
  gap:1px;
  background:var(--fcp-grey-15);
  border:1px solid var(--fcp-grey-15);
}
.fcp-cards--2{ grid-template-columns:repeat(2, 1fr); }
.fcp-cards--3{ grid-template-columns:repeat(3, 1fr); }
.fcp-cards--4{ grid-template-columns:repeat(4, 1fr); }
.fcp-sec--dark .fcp-cards{ background:var(--fcp-line-dark); border-color:var(--fcp-line-dark); }
.fcp-card{
  position:relative;
  overflow:hidden;
  background:var(--fcp-paper);
  color:var(--fcp-ink);
  padding:32px 28px 30px;
  display:flex;
  flex-direction:column;
  gap:12px;
  transition:color .4s var(--fcp-ease);
}
.fcp-sec--dark .fcp-card{ background:var(--fcp-ink); color:var(--fcp-paper); }
.fcp-card::before{
  content:"";
  position:absolute;
  inset:0;
  background:var(--fcp-ink);
  transform:scaleY(0);
  transform-origin:50% 100%;
  transition:transform .45s var(--fcp-ease-out);
  z-index:0;
}
.fcp-sec--dark .fcp-card::before{ background:var(--fcp-paper); }
.fcp-card > *{ position:relative; z-index:1; }
.fcp-card__no{
  font-family:var(--fcp-mono);
  font-size:12px;
  letter-spacing:.14em;
  color:var(--fcp-grey-40);
  transition:color .4s var(--fcp-ease);
}
.fcp-card h3{
  font-family:var(--fcp-display);
  font-weight:700;
  font-size:18.5px;
  line-height:1.25;
  letter-spacing:-.005em;
}
.fcp-card p{
  font-size:14.5px;
  line-height:1.7;
  color:var(--fcp-grey-60);
  transition:color .4s var(--fcp-ease);
}
.fcp-sec--dark .fcp-card p{ color:var(--fcp-grey-40); }
.fcp-card:hover::before{ transform:scaleY(1); transform-origin:50% 0%; }
.fcp-card:hover{ color:var(--fcp-paper); }
.fcp-card:hover p{ color:#bdbdbd; }
.fcp-sec--dark .fcp-card:hover{ color:var(--fcp-ink); }
.fcp-sec--dark .fcp-card:hover p{ color:var(--fcp-grey-60); }
.fcp-sec--dark .fcp-card:hover .fcp-card__no{ color:var(--fcp-grey-60); }
/* ==========================================================================
   Roadmap — outlined numerals that fill on hover
   ========================================================================== */
.fcp-road{ border-top:1px solid var(--fcp-grey-15); }
.fcp-sec--dark .fcp-road{ border-color:var(--fcp-line-dark); }
.fcp-road__item{
  display:grid;
  grid-template-columns:120px 1fr;
  gap:clamp(20px, 3vw, 44px);
  align-items:start;
  padding:30px 6px;
  border-bottom:1px solid var(--fcp-grey-15);
  position:relative;
  overflow:hidden;
  transition:padding-left .4s var(--fcp-ease-out), color .4s var(--fcp-ease);
}
.fcp-sec--dark .fcp-road__item{ border-color:var(--fcp-line-dark); }
.fcp-road__item::before{
  content:"";
  position:absolute;
  inset:0;
  background:var(--fcp-ink);
  transform:scaleY(0);
  transform-origin:50% 100%;
  transition:transform .45s var(--fcp-ease-out);
  z-index:0;
}
.fcp-sec--dark .fcp-road__item::before{ background:rgba(255,255,255,.06); }
.fcp-road__item > *{ position:relative; z-index:1; }
.fcp-road__no{
  font-family:var(--fcp-display);
  font-weight:800;
  font-size:clamp(34px, 4.6vw, 60px);
  line-height:.9;
  letter-spacing:-.02em;
  /* Blank only the glyph fill, never `color`: the stroke is painted in
     currentColor, so `color:transparent` would blank the stroke too and the
     numeral would disappear entirely instead of reading as an outline. */
  -webkit-text-fill-color:transparent;
  -webkit-text-stroke:1.5px currentColor;
  transition:-webkit-text-fill-color .45s var(--fcp-ease);
}
.fcp-road__item h3{
  font-family:var(--fcp-display);
  font-weight:700;
  font-size:clamp(17px, 1.9vw, 21px);
  letter-spacing:-.005em;
  margin-bottom:8px;
}
.fcp-road__item p{
  font-size:15px;
  line-height:1.7;
  color:var(--fcp-grey-60);
  max-width:72ch;
  transition:color .4s var(--fcp-ease);
}
.fcp-sec--dark .fcp-road__item p{ color:var(--fcp-grey-40); }
.fcp-road__item:hover{ padding-left:18px; }
.fcp-road__item:hover::before{ transform:scaleY(1); transform-origin:50% 0%; }
.fcp-road__item:hover .fcp-road__no{ -webkit-text-fill-color:currentColor; }
.fcp-sec:not(.fcp-sec--dark) .fcp-road__item:hover{ color:var(--fcp-paper); }
.fcp-sec:not(.fcp-sec--dark) .fcp-road__item:hover p{ color:#bdbdbd; }
.fcp-sec--dark .fcp-pill{ border-color:var(--fcp-line-dark); }
.fcp-sec--dark .fcp-pill:hover{
  background:var(--fcp-paper);
  color:var(--fcp-ink);
  border-color:var(--fcp-paper);
}
.fcp-sec--dark .fcp-bullets li{ color:var(--fcp-grey-40); border-color:var(--fcp-line-dark); }
.fcp-sec--dark .fcp-bullets li:hover{ color:var(--fcp-paper); }
.fcp-sec:not(.fcp-sec--dark) .fcp-bullets li:hover{ color:var(--fcp-ink); }
.fcp-sec--dark .fcp-bullets strong{ color:var(--fcp-paper); }
@media (max-width: 1080px){
.fcp-cards--4{ grid-template-columns:repeat(2, 1fr); }
}
@media (max-width: 991px){
.fcp-split,
  .fcp-split--wide-copy,
  .fcp-split--wide-media{ grid-template-columns:1fr; }
.fcp-split--rev .fcp-split__media{ order:0; }
.fcp-cards--3{ grid-template-columns:repeat(2, 1fr); }
.fcp-road__item{ grid-template-columns:80px 1fr; }
}
@media (max-width: 640px){
.fcp-cards--2,
  .fcp-cards--3,
  .fcp-cards--4{ grid-template-columns:1fr; }
.fcp-road__item{ grid-template-columns:1fr; gap:10px; padding:24px 4px; }
.fcp-road__item:hover{ padding-left:10px; }
.fcp-subnav.fcpw-subnav--hide-mobile{ display:none; }
.fcp-check li{ grid-template-columns:22px 1fr; gap:12px; }
}
/* ==========================================================================
   Comparison table (solution detail pages)
   ========================================================================== */
.fcp-table-wrap{
  margin-top:26px;
  overflow-x:auto;
  border:1px solid var(--fcp-grey-15);
}
.fcp-sec--dark .fcp-table-wrap{ border-color:var(--fcp-line-dark); }
.fcp-table{
  width:100%;
  border-collapse:collapse;
  min-width:440px;
}
.fcp-table th,
.fcp-table td{
  text-align:left;
  padding:15px 18px;
  border-bottom:1px solid var(--fcp-grey-15);
  font-size:14.5px;
  line-height:1.6;
}
.fcp-sec--dark .fcp-table th,
.fcp-sec--dark .fcp-table td{ border-color:var(--fcp-line-dark); }
.fcp-table thead th{
  font-family:var(--fcp-display);
  font-weight:700;
  font-size:12.5px;
  letter-spacing:.1em;
  text-transform:uppercase;
  background:var(--fcp-ink);
  color:var(--fcp-paper);
}
.fcp-sec--dark .fcp-table thead th{ background:var(--fcp-paper); color:var(--fcp-ink); }
.fcp-table tbody tr{ transition:background .3s var(--fcp-ease); }
.fcp-table tbody tr:hover{ background:var(--fcp-grey-05); }
.fcp-sec--dark .fcp-table tbody tr:hover{ background:rgba(255,255,255,.05); }
.fcp-table tbody tr:last-child td{ border-bottom:none; }
.fcp-table td:first-child{ font-weight:600; }
/* Sub-list nested inside a card or split body */
.fcp-sublist{ margin-top:14px; }
.fcp-sublist li{
  position:relative;
  padding:7px 0 7px 20px;
  font-size:14.5px;
  line-height:1.65;
  color:var(--fcp-grey-60);
}
.fcp-sec--dark .fcp-sublist li{ color:var(--fcp-grey-40); }
.fcp-sublist li::before{
  content:"";
  position:absolute;
  left:2px; top:16px;
  width:9px; height:1px;
  background:currentColor;
  opacity:.6;
}
.fcp-sublist strong{ color:var(--fcp-ink); font-weight:700; }
.fcp-sec--dark .fcp-sublist strong{ color:var(--fcp-paper); }
.fcp-minihead{
  font-family:var(--fcp-mono);
  font-size:11px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--fcp-grey-40);
  margin-top:20px;
  display:block;
}
/* Gap helper used between stacked blocks */
.fcp-gap{ height:32px; }


/* ==========================================================================
   Font stacks - self-hosted families first, originals as fallback
   ========================================================================== */
:root{
  --fcp-display: 'FCP Archivo','Archivo',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --fcp-body:    'FCP Inter','Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --fcp-mono:    'FCP Plex Mono','IBM Plex Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
}
.fcpw-scope{
  font-family:var(--fcp-body);
  font-size:16px;
  line-height:1.65;
  color:var(--fcp-ink);
  -webkit-font-smoothing:antialiased;
}

/* ==========================================================================
   Section Colour Scheme presets
   Each preset only re-declares tokens; the consumer layer below applies them.
   ========================================================================== */
.fcpw-scheme-light{
  --fcpw-bg:#ffffff; --fcpw-fg:#0a0a0a; --fcpw-muted:#5c5c5c; --fcpw-body:#5c5c5c;
  --fcpw-soft:#f4f4f4; --fcpw-line:#e2e2e2; --fcpw-onsoft:#0a0a0a;
}
.fcpw-scheme-dark{
  --fcpw-bg:#0a0a0a; --fcpw-fg:#ffffff; --fcpw-muted:#9a9a9a; --fcpw-body:#c2c2c2;
  --fcpw-soft:rgba(255,255,255,.05); --fcpw-line:rgba(255,255,255,.16); --fcpw-onsoft:#ffffff;
}
.fcpw-scheme-inksoft{
  --fcpw-bg:#131313; --fcpw-fg:#ffffff; --fcpw-muted:#9a9a9a; --fcpw-body:#c2c2c2;
  --fcpw-soft:rgba(255,255,255,.06); --fcpw-line:rgba(255,255,255,.14); --fcpw-onsoft:#ffffff;
}
.fcpw-scheme-grey{
  --fcpw-bg:#f4f4f4; --fcpw-fg:#0a0a0a; --fcpw-muted:#5c5c5c; --fcpw-body:#5c5c5c;
  --fcpw-soft:#ffffff; --fcpw-line:#e2e2e2; --fcpw-onsoft:#0a0a0a;
}
.fcpw-scheme-greyblack{
  --fcpw-bg:#f4f4f4; --fcpw-fg:#0a0a0a; --fcpw-muted:#9a9a9a; --fcpw-body:#5c5c5c;
  --fcpw-soft:#ffffff; --fcpw-line:#d8d8d8; --fcpw-onsoft:#0a0a0a;
}
.fcpw-scheme-blackgrey{
  --fcpw-bg:#0a0a0a; --fcpw-fg:#ffffff; --fcpw-muted:#5c5c5c; --fcpw-body:#9a9a9a;
  --fcpw-soft:rgba(255,255,255,.04); --fcpw-line:rgba(255,255,255,.12); --fcpw-onsoft:#ffffff;
}
.fcpw-scheme-paperline{
  --fcpw-bg:#ffffff; --fcpw-fg:#0a0a0a; --fcpw-muted:#0a0a0a; --fcpw-body:#5c5c5c;
  --fcpw-soft:#ffffff; --fcpw-line:#0a0a0a; --fcpw-onsoft:#0a0a0a;
}
.fcpw-scheme-mono{
  --fcpw-bg:#0a0a0a; --fcpw-fg:#ffffff; --fcpw-muted:#9a9a9a; --fcpw-body:#9a9a9a;
  --fcpw-soft:rgba(255,255,255,.05); --fcpw-line:rgba(255,255,255,.2); --fcpw-onsoft:#ffffff;
}

/* -- consumer layer -------------------------------------------------------- */
[class*="fcpw-scheme-"] .fcp-sec,
[class*="fcpw-scheme-"] .fcp-phero,
[class*="fcpw-scheme-"] .fcp-solutions,
[class*="fcpw-scheme-"] .fcp-cta{
  background:var(--fcpw-bg) !important;
  color:var(--fcpw-fg) !important;
}
[class*="fcpw-scheme-"] .fcp-phero::before,
[class*="fcpw-scheme-"] .fcp-phero::after{ display:none !important; }
[class*="fcpw-scheme-"] .fcp-subnav{
  background:var(--fcpw-bg) !important;
  color:var(--fcpw-fg) !important;
  border-color:var(--fcpw-line) !important;
}
[class*="fcpw-scheme-"] .fcp-subnav a{ color:var(--fcpw-body) !important; }
[class*="fcpw-scheme-"] .fcp-subnav a:hover,
[class*="fcpw-scheme-"] .fcp-subnav a.is-current{ color:var(--fcpw-fg) !important; }
[class*="fcpw-scheme-"] .fcp-subnav__label{ color:var(--fcpw-muted) !important; }

[class*="fcpw-scheme-"] .fcp-section-title,
[class*="fcpw-scheme-"] .fcp-phero__title,
[class*="fcpw-scheme-"] .fcp-cta__title,
[class*="fcpw-scheme-"] .fcp-h3{ color:var(--fcpw-fg) !important; }
[class*="fcpw-scheme-"] .fcp-phero__title em{ color:var(--fcpw-muted) !important; }
[class*="fcpw-scheme-"] .fcp-section-sub,
[class*="fcpw-scheme-"] .fcp-index,
[class*="fcpw-scheme-"] .fcp-eyebrow,
[class*="fcpw-scheme-"] .fcp-minihead,
[class*="fcpw-scheme-"] .fcp-media__cap,
[class*="fcpw-scheme-"] .fcp-crumbs{ color:var(--fcpw-muted) !important; }
[class*="fcpw-scheme-"] .fcp-lede,
[class*="fcpw-scheme-"] .fcp-phero__copy,
[class*="fcpw-scheme-"] .fcp-cta__copy,
[class*="fcpw-scheme-"] .fcp-sublist li,
[class*="fcpw-scheme-"] .fcp-check li,
[class*="fcpw-scheme-"] .fcp-road__item p,
[class*="fcpw-scheme-"] .fcp-card p{ color:var(--fcpw-body) !important; }
[class*="fcpw-scheme-"] .fcp-sublist strong,
[class*="fcpw-scheme-"] .fcp-check strong,
[class*="fcpw-scheme-"] .fcp-road__item h3,
[class*="fcpw-scheme-"] .fcp-card h3{ color:var(--fcpw-fg) !important; }
[class*="fcpw-scheme-"] .fcp-sublist li::before,
[class*="fcpw-scheme-"] .fcp-road__no{ color:var(--fcpw-muted) !important; }
[class*="fcpw-scheme-"] .fcp-note{
  background:var(--fcpw-soft) !important;
  color:var(--fcpw-onsoft) !important;
  border-left-color:var(--fcpw-fg) !important;
}
[class*="fcpw-scheme-"] .fcp-card{
  background:var(--fcpw-soft) !important;
  border-color:var(--fcpw-line) !important;
}
[class*="fcpw-scheme-"] .fcp-card__no{ color:var(--fcpw-muted) !important; }
[class*="fcpw-scheme-"] .fcp-road__item{ border-color:var(--fcpw-line) !important; }
[class*="fcpw-scheme-"] .fcp-table th{
  background:var(--fcpw-fg) !important;
  color:var(--fcpw-bg) !important;
}
[class*="fcpw-scheme-"] .fcp-table td{
  color:var(--fcpw-body) !important;
  border-color:var(--fcpw-line) !important;
}
[class*="fcpw-scheme-"] .fcp-table tbody tr:nth-child(even){ background:var(--fcpw-soft) !important; }
[class*="fcpw-scheme-"] .fcp-table-wrap{ border-color:var(--fcpw-line) !important; }
[class*="fcpw-scheme-"] .fcp-check__tick{
  border-color:var(--fcpw-fg) !important;
  color:var(--fcpw-fg) !important;
}
[class*="fcpw-scheme-"] .fcp-sol-list li{ border-color:var(--fcpw-line) !important; }
[class*="fcpw-scheme-"] .fcp-sol-list__no{ color:var(--fcpw-muted) !important; }
[class*="fcpw-scheme-"] .fcp-sol-list__name{ color:var(--fcpw-fg) !important; }
[class*="fcpw-scheme-"] .fcp-split__media img{ border-color:var(--fcpw-line) !important; }
.fcpw-scheme-paperline .fcp-sec{ border-top:1px solid #0a0a0a !important; border-bottom:1px solid #0a0a0a !important; }

/* ==========================================================================
   Elementor editor safety
   ========================================================================== */
.elementor-editor-active .fcpw-scope .fcp-reveal{ opacity:1 !important; transform:none !important; }
.elementor-editor-active .fcpw-scope.fcpw-stretch{ margin-left:0 !important; margin-right:0 !important; }

.fcpw-empty{
  padding:28px;
  border:1px dashed #9a9a9a;
  font-family:var(--fcp-mono);
  font-size:12px;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:#5c5c5c;
  text-align:center;
}

/* ==========================================================================
   Widget-level structural helpers
   ========================================================================== */

/* Replaces the inline style="margin-top:26px" used on some sub headings and
   on a handful of standalone paragraphs and notes in the static build. */
.fcpw-scope .fcp-h3--mt,
.fcpw-scope .fcpw-mt{ margin-top:26px; }

/* Card titles are rendered with a selectable tag, so mirror the h3 styling. */
.fcpw-scope .fcp-card .fcp-card__title{
  font-family:var(--fcp-display);
  font-weight:700;
  font-size:18.5px;
  line-height:1.25;
  letter-spacing:-.005em;
  margin:0;
  color:inherit;
}

/* Split block with the image switched off collapses to a single column. */
.fcpw-scope .fcp-split.fcpw-split--nomedia{ grid-template-columns:1fr; }

/* Spacer block */
.fcpw-scope .fcp-gap{ width:100%; }

/* Sub-nav widget options */
.fcpw-scope .fcp-subnav{ position:sticky; }
.fcpw-scope .fcp-subnav.fcpw-subnav--static{ position:relative; top:auto !important; }

/* Hero, solutions and CTA also honour the max-width control. */
.fcpw-scope .fcp-phero > .fcp-container,
.fcpw-scope .fcp-solutions > .fcp-container{ position:relative; z-index:1; }

/* The hero title lines animate up from a clipped baseline. If the animation
   never runs (reduced motion, or a browser that blocks it) the text must
   still be visible - never leave it translated out of view. */
@media (prefers-reduced-motion: reduce){
  .fcpw-scope .fcp-line__inner{ animation:none !important; transform:none !important; }
}
.elementor-editor-active .fcpw-scope .fcp-line__inner{ animation:none !important; transform:none !important; }
