.elementor-kit-7{--e-global-color-primary:#101418;--e-global-color-secondary:#42566B;--e-global-color-text:#2A3138;--e-global-color-accent:#E8442E;--e-global-color-fcslate30:#C7D0DA;--e-global-color-fcpaper:#F8F9FB;--e-global-color-fcwhite:#FFFFFF;--e-global-color-fcamber:#F5A623;--e-global-color-fcemerg:#D7261D;--e-global-typography-primary-font-family:"Roboto Condensed";--e-global-typography-primary-font-weight:700;--e-global-typography-primary-text-transform:uppercase;--e-global-typography-primary-font-style:italic;--e-global-typography-primary-line-height:1.08em;--e-global-typography-primary-letter-spacing:0px;--e-global-typography-secondary-font-family:"Roboto Condensed";--e-global-typography-secondary-font-weight:700;--e-global-typography-secondary-text-transform:uppercase;--e-global-typography-secondary-font-style:italic;--e-global-typography-secondary-line-height:1.08em;--e-global-typography-secondary-letter-spacing:0px;--e-global-typography-text-font-family:"Open Sans";--e-global-typography-text-font-weight:500;--e-global-typography-text-line-height:1.65em;--e-global-typography-text-letter-spacing:0px;--e-global-typography-accent-font-family:"Open Sans";--e-global-typography-accent-font-weight:600;--e-global-typography-accent-line-height:1.65em;--e-global-typography-accent-letter-spacing:0px;--e-global-typography-fchero-font-family:"Roboto Condensed";--e-global-typography-fchero-font-weight:700;--e-global-typography-fchero-text-transform:uppercase;--e-global-typography-fchero-font-style:italic;--e-global-typography-fchero-line-height:1.08em;--e-global-typography-fchero-letter-spacing:0px;--e-global-typography-fceyebrow-font-family:"Roboto Condensed";--e-global-typography-fceyebrow-font-size:0.8rem;--e-global-typography-fceyebrow-font-weight:700;--e-global-typography-fceyebrow-text-transform:uppercase;--e-global-typography-fceyebrow-font-style:italic;--e-global-typography-fceyebrow-line-height:1.08em;--e-global-typography-fceyebrow-letter-spacing:1.28px;--e-global-typography-fcsmall-font-family:"Open Sans";--e-global-typography-fcsmall-font-size:0.875rem;--e-global-typography-fcsmall-font-weight:400;--e-global-typography-fcsmall-line-height:1.65em;--e-global-typography-fcsmall-letter-spacing:0px;color:#000000;font-family:"Open Sans", Sans-serif;font-size:16px;font-weight:500;line-height:1.7em;}.elementor-kit-7 button:hover,.elementor-kit-7 button:focus,.elementor-kit-7 input[type="button"]:hover,.elementor-kit-7 input[type="button"]:focus,.elementor-kit-7 input[type="submit"]:hover,.elementor-kit-7 input[type="submit"]:focus,.elementor-kit-7 .elementor-button:hover,.elementor-kit-7 .elementor-button:focus{background-color:#CC2D07;color:#FFFFFF;}.elementor-kit-7 e-page-transition{background-color:#101418;}.elementor-kit-7 a{color:#E8442E;}.elementor-kit-7 a:hover{color:#CC2D07;}.elementor-kit-7 h1{color:#101418;font-family:"Roboto Condensed", Sans-serif;font-size:46px;font-weight:700;text-transform:uppercase;font-style:italic;line-height:1.1em;letter-spacing:0px;}.elementor-kit-7 h2{color:#101418;font-family:"Roboto Condensed", Sans-serif;font-size:34px;font-weight:700;text-transform:uppercase;font-style:italic;line-height:1.15em;letter-spacing:0px;}.elementor-kit-7 h3{color:#101418;font-family:"Roboto Condensed", Sans-serif;font-size:22px;font-weight:700;text-transform:uppercase;font-style:italic;line-height:1.08em;letter-spacing:0px;}.elementor-kit-7 h4{color:#101418;font-family:"Roboto Condensed", Sans-serif;font-size:18px;font-weight:700;text-transform:uppercase;font-style:italic;line-height:1.08em;letter-spacing:0px;}.elementor-kit-7 h5{font-family:"Roboto Condensed", Sans-serif;font-size:16px;font-weight:700;text-transform:uppercase;font-style:italic;}.elementor-kit-7 h6{font-family:"Roboto Condensed", Sans-serif;font-size:14px;font-weight:700;text-transform:uppercase;font-style:italic;}.elementor-kit-7 button,.elementor-kit-7 input[type="button"],.elementor-kit-7 input[type="submit"],.elementor-kit-7 .elementor-button{font-family:"Open Sans", Sans-serif;font-size:20px;font-weight:500;text-transform:none;font-style:normal;color:#CC2D07;border-style:solid;border-width:2px 2px 2px 2px;border-color:#CC2D07;border-radius:3px 3px 3px 3px;padding:14px 28px 14px 28px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1200px;}.e-con{--container-max-width:1200px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1220px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}
/* Start custom CSS *//* FASTCILITY TOKEN LAYER — mirrors design-export/design-tokens.css v1.1 (LOCKED).
   Colors + font families are ALSO registered as Global Colors/Fonts above; this block
   carries only what Elementor globals cannot express: gradients, shadow scale, spacing
   rhythm, radii, and the clamp() type ramp. Ported element CSS from the approved mocks
   resolves against these vars 1:1. Never edit a value here — change design-tokens.css
   first (Rupesh approval), then re-mirror. */
:root{
  --ink:#101418; --ink-80:#2A3138; --slate:#42566B; --slate-30:#C7D0DA;
  --paper:#F8F9FB; --white:#FFFFFF; --amber:#F5A623; --flame:#E8442E; --emergency:#D7261D;
  --grad:linear-gradient(135deg,var(--amber) 0%,var(--flame) 100%);
  --grad-soft:linear-gradient(135deg,rgba(245,166,35,.12),rgba(232,68,46,.12));
  --font-head:'Roboto Condensed',sans-serif; --font-body:'Open Sans',sans-serif;
  --h1:clamp(2.35rem,4.8vw,3.8rem); --h2:clamp(1.8rem,3.4vw,2.6rem); --h3:1.25rem;
  --body:1rem; --small:.875rem; --lh-head:1.08; --lh-body:1.65; --track-head:0;
  --sec-pad:clamp(64px,9vw,120px); --gap:24px; --radius:12px; --radius-btn:3px;
  --shadow-card:0 1px 2px rgba(16,20,24,.06),0 8px 24px rgba(16,20,24,.07);
  --shadow-lift:0 12px 32px rgba(16,20,24,.14); --maxw:1200px;
}
/* GRADIENT DISCIPLINE: max 2 gradient elements visible per viewport (design rule 3). */
.fc-grad{background:var(--grad)}
.fc-grad-soft{background:var(--grad-soft)}
/* SHADOW SCALE UTILITIES (ruling 4, T-40 batch 2026-07-27). --shadow-card is TWO layers and
   Elementor's Box Shadow control emits ONE, so this is a genuine BUILD-10 exemption, not a
   control-expressible block. Kit-level = one definition shared site-wide; referenced by
   css_classes on containers (S6/S8/S9/S11 cards). Values come from the kit vars, never literals. */
.fc-shadow-card{box-shadow:var(--shadow-card)}
.fc-shadow-lift{box-shadow:var(--shadow-lift)}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
/* GLOBAL BUTTON SYSTEM — added 2026-07-29 on Rupesh's instruction.
   WHY: Elementor emits its OWN per-page default `.elementor-widget-button .elementor-button
   {background-color:var(--e-global-color-accent)}` into EVERY page stylesheet. That has the same
   specificity (0,2,0) as the Kit Theme-Style rule `.elementor-kit-7 .elementor-button` but loads
   AFTER it, so the Theme Style can never win and clearing a widget's colour only falls back to
   that accent default. This rule is (0,3,0) so it beats the per-page default, while any widget
   that sets its own background explicitly still wins (equal 0,3,0 but its page CSS loads later)
   — which is exactly how the Emergency variant stays flat red. */
.elementor-kit-7 .elementor-widget-button .elementor-button{
  background-color:transparent;
  background-image:none;
}

/* CO-001 ADDITIVE BLUE SET - new tokens only; no existing value edited (kit note honoured).
   Sources: #8ABAD2 and #5292B9 measured off fastcilitycorp.com (testimonial band + topbar/footer);
   #254253 = #5292B9 x0.45, the lightest shade keeping white text at 10.59:1. */
:root{
  --steel:#254253; --steel-lt:#8ABAD2; --steel-md:#5292B9;
  --grad-blue:linear-gradient(135deg,var(--steel-lt) 0%,var(--steel-md) 100%);
  --grad-blue-soft:linear-gradient(135deg,rgba(138,186,210,.12),rgba(82,146,185,.12));
}

/* FIX 2026-08-22: waypoint observer never fires on this stack (silent, no console errors; same family as the broken lazyload) - reveal entrance-animation elements with a CSS-driven fade-up so heroes are never blank; mirrors the live site's fadeBottom .7s */
.elementor-invisible{visibility:visible!important;animation:fcFadeInUp .7s ease-out both;}
@keyframes fcFadeInUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
/* FIX 2026-08-22 round2: hover state - base outline rule (0,3,0) out-specified the kit hover (0,2,0), leaving white text on transparent = invisible */
.elementor-kit-7 .elementor-widget-button .elementor-button:hover{background-color:#CC2D07;background-image:none;color:#FFFFFF;border-color:#CC2D07;}
header.elementor-location-header{position:relative;z-index:200;}/* End custom CSS */