/* SWFIT Brand Layer — tokens and rules from the SWFIT design system (swfit-design skill). */
:root{
  --navy-950:#0a1526;--navy-900:#0e1c33;--navy-800:#14263f;--navy-700:#1e3556;--navy-400:#5c78a0;
  --orange-700:#a8460f;--orange-600:#c4541a;--orange-500:#e8641c;--orange-400:#f07c33;--amber-500:#f6a11e;
  --gray-50:#f6f8fb;--gray-100:#edf1f6;--gray-200:#dce3ec;--gray-300:#c3cedb;--gray-500:#647084;--gray-700:#2e3b4e;
  --action:var(--orange-500);--action-hover:var(--orange-600);--action-active:var(--orange-700);
  --font-display:"Poppins","Segoe UI",system-ui,sans-serif;--font-body:"Public Sans","Segoe UI",system-ui,sans-serif;--font-mono:"IBM Plex Mono",ui-monospace,monospace;
  --radius-md:10px;--radius-card:14px;--radius-pill:999px;
  --shadow-sm:0 1px 3px rgba(14,28,51,.08),0 1px 2px rgba(14,28,51,.04);
  --shadow-md:0 4px 12px rgba(14,28,51,.08),0 2px 4px rgba(14,28,51,.05);
  --shadow-lg:0 14px 34px rgba(14,28,51,.12),0 4px 10px rgba(14,28,51,.06);
  --shadow-action:0 8px 20px rgba(232,100,28,.28);--ring-focus:0 0 0 3px rgba(240,124,51,.45);
  --ease-out:cubic-bezier(.16,1,.3,1);--dur-fast:120ms;--dur-base:200ms;--dur-slow:360ms;
}
html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}
body{font-family:var(--font-body);color:var(--gray-700)}
::selection{background:rgba(232,100,28,.22);color:var(--navy-900)}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:none;box-shadow:var(--ring-focus)!important}

/* Type: heavy geometric display with tight tracking; readable body */
h1,h2,h3,h4,h5,h6,.elementor-heading-title{font-family:var(--font-display)!important;letter-spacing:-.02em;text-wrap:balance}
.elementor-widget-text-editor,.elementor-widget-text-editor p,.elementor-icon-list-text{font-family:var(--font-body)!important}
.elementor-widget-text-editor p{text-wrap:pretty}

/* Buttons: orange action, darken + lift on hover, 1px press */
.elementor-button,.uc_creative_buttons .uc_button,.gform_wrapper .gform_button,.gform_wrapper .gform_footer input[type=submit]{
  font-family:var(--font-display)!important;font-weight:600!important;text-transform:none!important;letter-spacing:.005em!important;
  border-radius:var(--radius-md)!important;transition:background-color var(--dur-fast),box-shadow var(--dur-base) var(--ease-out),transform var(--dur-base) var(--ease-out),color var(--dur-fast)!important}
.elementor-button:hover,.uc_creative_buttons .uc_button:hover,.gform_wrapper .gform_button:hover{transform:translateY(-1px);box-shadow:var(--shadow-action)}
.elementor-button:active,.uc_creative_buttons .uc_button:active{transform:translateY(1px);box-shadow:none}

/* Header: transparent over heroes, navy glass once scrolled */
header.elementor-location-header{position:sticky;top:0;z-index:999;transition:background-color var(--dur-base),box-shadow var(--dur-base)}
header.elementor-location-header.swfit-scrolled{background:rgba(10,21,38,.88);-webkit-backdrop-filter:saturate(140%) blur(12px);backdrop-filter:saturate(140%) blur(12px);box-shadow:0 1px 0 rgba(255,255,255,.08),0 10px 30px rgba(10,21,38,.25)}
header.elementor-location-header .elementor-nav-menu--main .elementor-item{font-family:var(--font-display)!important;font-weight:500!important}
.elementor-nav-menu--dropdown{border-radius:var(--radius-card);overflow:hidden;box-shadow:var(--shadow-lg)}

/* Header CTA (was gold via Customizer CSS) */
.menu_cta{background-color:var(--action)!important;border-radius:var(--radius-md)!important;transition:background-color var(--dur-fast),box-shadow var(--dur-base) var(--ease-out),transform var(--dur-base) var(--ease-out)}
.menu_cta:hover{background-color:var(--action-hover)!important;box-shadow:var(--shadow-action);transform:translateY(-1px)}
.menu_cta a{text-transform:none!important;letter-spacing:.005em!important;font-family:var(--font-display)!important;font-weight:600!important;padding:10px 22px!important}
input#gform_submit_button_1{background-color:var(--action)!important;text-transform:none!important;letter-spacing:.005em!important;border-radius:var(--radius-md)!important}
/* Pages without a dark hero (block-built pages): give the header its own navy band */
body.page:not(.elementor-page) header.elementor-location-header,
body.swfit-solid-header header.elementor-location-header{background:var(--navy-950)}
body.page:not(.elementor-page) .page-header{max-width:1200px;margin:56px auto 8px;padding:0 16px}
body.page:not(.elementor-page) .page-header .entry-title{font-size:clamp(32px,4vw,48px);color:var(--navy-900)}
body.page:not(.elementor-page) .page-content{max-width:1200px;margin:0 auto 80px;padding:0 16px}

/* Navy heroes: flat navy with a subtle orange glow (replaces the old blue gradient image) */
.swfit-glow{background:radial-gradient(48% 120% at 82% 0%,rgba(232,100,28,.20),transparent 62%),radial-gradient(60% 90% at 0% 100%,rgba(44,72,112,.55),transparent 62%),#0a1526!important}

/* CTA card */
.swfit-cta{max-width:1200px!important;margin-left:auto!important;margin-right:auto!important;position:relative;overflow:hidden;border-radius:22px!important;box-shadow:var(--shadow-xl,0 28px 60px rgba(14,28,51,.18));
  background:radial-gradient(55% 140% at 100% 0%,rgba(232,100,28,.32),transparent 60%),radial-gradient(50% 120% at 0% 100%,rgba(44,72,112,.6),transparent 60%),#0e1c33!important}
.swfit-cta::after{content:"";position:absolute;inset:auto -10% -2px -10%;height:2px;background:linear-gradient(90deg,transparent,rgba(240,124,51,.9),transparent);pointer-events:none}
.swfit-cta .elementor-heading-title{color:#fff!important}
.swfit-cta .elementor-widget-text-editor{color:rgba(255,255,255,.78)!important;max-width:620px;margin-left:auto!important;margin-right:auto!important}
.swfit-cta .elementor-icon-list-text{color:rgba(255,255,255,.85)!important}
.swfit-cta .elementor-icon-list-icon i,.swfit-cta .elementor-icon-list-icon svg{color:var(--orange-400)!important;fill:var(--orange-400)!important}

/* Footer */
.swfit-foot-head .elementor-heading-title{font-size:13px!important;text-transform:uppercase;letter-spacing:.12em!important;color:#fff!important;font-weight:600!important}
footer.elementor-location-footer .elementor-social-icon{background:rgba(255,255,255,.08)!important;border-radius:8px!important;transition:background-color var(--dur-fast)}
footer.elementor-location-footer .elementor-social-icon:hover{background:var(--action)!important}
footer.elementor-location-footer .elementor-social-icon i{color:#fff!important}

/* Cards: hairline border, soft cool shadow, lift on hover */
.e-loop-item > .e-con{border-radius:var(--radius-card)!important;overflow:hidden;box-shadow:var(--shadow-sm);transition:box-shadow var(--dur-base) var(--ease-out),transform var(--dur-base) var(--ease-out)}
.e-loop-item > .e-con:hover{box-shadow:var(--shadow-lg);transform:translateY(-3px)}
.e-loop-item img{transition:transform var(--dur-slow) var(--ease-out)}
.e-loop-item:hover img{transform:scale(1.03)}

/* Accordions / FAQ */
.e-n-accordion-item{border-radius:var(--radius-md);border:1px solid var(--gray-200)!important;margin-bottom:10px;background:#fff;overflow:hidden}
.e-n-accordion-item-title{font-family:var(--font-display)!important;font-weight:600}

/* Video: rounded and framed */
.elementor-widget-video .elementor-wrapper{border-radius:var(--radius-card);overflow:hidden;box-shadow:var(--shadow-lg)}

/* Forms (Gravity Forms) */
.gform_wrapper input[type=text],.gform_wrapper input[type=email],.gform_wrapper input[type=tel],.gform_wrapper input[type=url],.gform_wrapper input[type=number],.gform_wrapper select,.gform_wrapper textarea{
  font-family:var(--font-body)!important;border:1px solid var(--gray-300)!important;border-radius:var(--radius-md)!important;padding:12px 14px!important;background:#fff!important;color:var(--navy-900)!important;transition:border-color var(--dur-fast),box-shadow var(--dur-fast)}
.gform_wrapper input:focus,.gform_wrapper select:focus,.gform_wrapper textarea:focus{border-color:var(--orange-400)!important;box-shadow:var(--ring-focus)!important;outline:none}
.gform_wrapper .gfield_label,.gform_wrapper legend.gfield_label{font-family:var(--font-display)!important;font-weight:600!important;color:var(--navy-900)!important;font-size:14px!important}
.gform_wrapper .gform_button,.gform_wrapper input[type=submit]{background:var(--action)!important;color:#fff!important;border:0!important;padding:14px 28px!important;font-size:16px!important;cursor:pointer}
.gform_wrapper .gform_button:hover{background:var(--action-hover)!important}
.gform_wrapper .gfield_required{color:var(--orange-600)!important}

/* Long-form content (blog posts, block-built pages) */
.elementor-widget-theme-post-content,.swfit-prose{font-size:18px;line-height:1.7;color:var(--gray-700)}
.elementor-widget-theme-post-content :is(p,ul,ol,blockquote,figure){max-width:72ch}
.elementor-widget-theme-post-content :is(h2,h3,h4){color:var(--navy-900);line-height:1.2;margin:1.8em 0 .55em}
.elementor-widget-theme-post-content h2,h2.wp-block-heading{font-size:clamp(24px,2.4vw,30px)!important}
.elementor-widget-theme-post-content h3,h3.wp-block-heading{font-size:21px!important}
.elementor-widget-theme-post-content h4,h4.wp-block-heading{font-size:17px!important}
.elementor-widget-theme-post-content a,.swfit-prose a{color:var(--orange-600);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.elementor-widget-theme-post-content a:hover,.swfit-prose a:hover{color:var(--orange-700)}
.elementor-widget-theme-post-content img{border-radius:var(--radius-card)}
.elementor-widget-theme-post-content blockquote{border-left:3px solid var(--action);background:var(--gray-50);padding:18px 22px;border-radius:0 var(--radius-md) var(--radius-md) 0;font-style:normal;color:var(--navy-900)}
.elementor-widget-theme-post-content table{border-collapse:collapse;width:100%;font-size:16px}
.elementor-widget-theme-post-content th{background:var(--navy-900);color:#fff;font-family:var(--font-display);font-weight:600;text-align:left}
.elementor-widget-theme-post-content :is(th,td){padding:10px 14px;border-bottom:1px solid var(--gray-200)}
.elementor-widget-theme-post-content code{font-family:var(--font-mono);background:var(--gray-100);padding:.1em .35em;border-radius:4px;font-size:.9em}

/* Pricing calculator (cyber-harbor-pricing-calculator) on brand type */
.chpc{font-family:var(--font-body)!important;--chpc-brand:#e8641c;--chpc-brand-h:45}
.chpc :is(h1,h2,h3,h4,[class*="title"],[class*="total"],[class*="price"],[class*="tab"],button){font-family:var(--font-display)!important}
.chpc :is(input,select,textarea){font-family:var(--font-body)!important}

/* llms.txt mirror page */
pre.swfit-llms{white-space:pre-wrap;word-break:break-word;font-family:var(--font-mono);font-size:14px;line-height:1.65;color:var(--navy-900);margin:0}

/* Industries marquee */
.elementor-widget-ucaddon_list_marquee *{font-family:var(--font-display)!important}

/* Footer links */
footer.elementor-location-footer a{transition:color var(--dur-fast)}
footer.elementor-location-footer a:hover{color:var(--orange-400)!important}

/* Reveal on scroll */
.swfit-reveal{opacity:0;transform:translateY(16px);transition:opacity var(--dur-slow) var(--ease-out),transform var(--dur-slow) var(--ease-out)}
.swfit-reveal.swfit-in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.swfit-reveal{opacity:1;transform:none}}

/* Case studies */
.swfit-quote{margin:0;padding:32px 36px;border-radius:var(--radius-card);background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);position:relative}
.swfit-quote p{font-family:var(--font-display);font-weight:600;font-size:21px;line-height:1.45;color:#fff;letter-spacing:-.01em;margin:0 0 20px}
.swfit-quote footer{display:flex;flex-direction:column;gap:2px;font-size:15px;color:rgba(255,255,255,.7)}
.swfit-quote footer strong{color:#fff;font-family:var(--font-display)}
.swfit-quote::before{content:"";position:absolute;left:0;top:28px;bottom:28px;width:3px;border-radius:3px;background:var(--action)}
.swfit-linkcard{transition:box-shadow var(--dur-base) var(--ease-out),transform var(--dur-base) var(--ease-out)}
.swfit-linkcard:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg)!important}
.swfit-linkcard a{color:inherit;text-decoration:none}

/* Lordicon line icons were drawn in amber; shift their accent to brand orange */
img[src*="wired-outline"],img[src*="wired-flat"]{filter:hue-rotate(-16deg) saturate(1.15)}

/* Legal pages: readable measure */
body.page-id-916 .elementor-widget-text-editor,body.page-id-914 .elementor-widget-text-editor{max-width:780px;margin-left:auto!important;margin-right:auto!important;font-size:16px;line-height:1.7}
body.page-id-916 .elementor-widget-text-editor :is(b,strong),body.page-id-914 .elementor-widget-text-editor :is(b,strong){color:var(--navy-900);font-family:var(--font-display)}
