/* JFCO CSP inline cleanup. Moved from home/contact inline styles so report-only CSP can identify remaining executable gaps without unsafe-inline. */
/* home:critical-css */
body{margin:0;font-family:Inter,-apple-system,system-ui,sans-serif;color:#333}.header-body{background:#fff;min-height:80px}.header-nav-bar{background:#1b6fa0;min-height:50px}.slider-container{min-height:500px;background:#1a1a2e;contain:layout style}.rev_slider_wrapper{min-height:500px;contain:layout style}h1,h2{font-weight:700;color:#1a1a2e}.apple-heading{text-transform:uppercase;letter-spacing:3px;text-align:center}.apple-line{width:50px;height:3px;background:#1b6fa0;margin:10px auto 30px}img{max-width:100%;height:auto;content-visibility:auto}footer{contain:layout style}
/* Hero Text Override */
section[style*="min-height:85vh"] h1{color:#ffffff !important;text-shadow:0 2px 20px rgba(0,0,0,0.5) !important;}
section[style*="min-height:85vh"] h1 span{color:#ffffff !important;}
section[style*="min-height:85vh"] p{color:#ffffff !important;text-shadow:0 1px 8px rgba(0,0,0,0.4) !important;}
section[style*="min-height:85vh"] [style*="letter-spacing"]{color:#ffffff !important;text-shadow:0 1px 10px rgba(0,0,0,0.5) !important;}

/* home:inline */
body, h1, h2, h3, h4, h5, h6, p, a, li, span, div, input, button, textarea, select { font-family: 'Poppins', sans-serif !important; }

/* home:inline */
#footer { background-color: #F9F9F9 !important; }
#footer, #footer p, #footer a, #footer li, #footer span, #footer h4, #footer h5 { color: #333 !important; }
#footer a:hover { color: #248bcb !important; }
#footer .text-color-primary { color: #248bcb !important; }
#footer .footer-copyright { background-color: #EFEFEF !important; }
#footer .footer-copyright p { color: #555 !important; }

/* home:inline */
/* Fix carousel nav arrow overflow */
.owl-carousel .owl-nav {
	overflow: hidden;
}
.owl-carousel .owl-nav button.owl-prev,
.owl-carousel .owl-nav button.owl-next {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
}
.owl-carousel .owl-nav button.owl-prev { left: 0; }
.owl-carousel .owl-nav button.owl-next { right: 0; }

/* home:inline */
.owl-carousel .owl-stage-outer { min-height: 500px; }
img { width: auto; height: auto; }
.slider-container { min-height: 600px; }

/* home:inline */
.clientSwiper .swiper-wrapper { display: flex !important; flex-wrap: nowrap !important; }
.clientSwiper .swiper-slide { flex-shrink: 0 !important; width: auto !important; }
.clientSwiper { overflow: hidden !important; height: auto !important; }

/* home:jfco-unified-design */
/* ===== JFCO UNIFIED DESIGN SYSTEM ===== */
/* ONE blue: #248bcb | ONE font: Inter | Consistent everywhere */

/* --- GLOBAL FONT --- */
body, h1, h2, h3, h4, h5, h6, p, a, span, label, strong, li, td, th, div,
input, button, select, textarea {
  font-family: "Inter", -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif !important;
  -webkit-font-smoothing: antialiased !important;
}

/* --- UNIFIED BLUE: #248bcb everywhere --- */
/* Nav bar - keep original blue */
html body #header .header-nav-bar,
html body .header-nav-bar {
  background-color: #248bcb !important;
}
html body #header .header-nav-main nav > ul > li > a,
html body .header-nav-main nav > ul > li > a {
  color: #fff !important;
  font-weight: 500 !important;
  font-size: 14px !important;
  letter-spacing: 0.5px !important;
}

/* REQUEST A QUOTE button - same blue */
html body a[href*="request-a-quote"],
html body .header-nav-main a[href*="quote"],
html body #header a.btn {
  background-color: #1a6fa0 !important;
  border-color: #1a6fa0 !important;
  color: #fff !important;
  font-weight: 600 !important;
}

/* Card headers (Project Duration, Unique Service Model) */
html body .card-header,
html body .toggle > label,
html body .card .card-header {
  background-color: #248bcb !important;
  color: #fff !important;
  font-weight: 600 !important;
  font-size: 16px !important;
  border-radius: 8px 8px 0 0 !important;
}

/* Primary color overrides */
.text-color-primary, .text-primary { color: #248bcb !important; }
.bg-color-primary, .bg-primary { background-color: #248bcb !important; }
.btn-primary { background-color: #248bcb !important; border-color: #248bcb !important; }
.btn-primary:hover { background-color: #1a6fa0 !important; border-color: #1a6fa0 !important; }

/* --- SECTION HEADINGS: All same size, weight, color --- */
html body .apple-heading {
  font-family: "Inter", -apple-system, sans-serif !important;
  font-weight: 700 !important;
  font-size: 28px !important;
  letter-spacing: 2px !important;
  text-transform: uppercase !important;
  text-align: center !important;
  color: #222 !important;
  margin-bottom: 8px !important;
  display: block !important;
  width: 100% !important;
}

/* Accent line under headings */
html body .apple-line {
  display: block !important;
  width: 50px !important;
  height: 3px !important;
  background: #248bcb !important;
  margin: 10px auto 30px auto !important;
  border-radius: 2px !important;
}

/* Hero heading */
html body h1 {
  font-size: 42px !important;
  font-weight: 700 !important;
  color: #222 !important;
  letter-spacing: -0.5px !important;
}

/* Hero subtitle */
html body h4[style*="letter-spacing: 0.08em"] {
  font-size: 16px !important;
  font-weight: 600 !important;
  color: #248bcb !important;
  letter-spacing: 3px !important;
}

/* Sub-section headings (ENGINEERING, GENERAL WORKFORCE, etc.) */
html body .apple-heading[style*="font-size:1.5rem"] {
  font-size: 22px !important;
  font-weight: 700 !important;
  color: #222 !important;
}

/* Certificate sub-headings (ISO 9001, etc.) */
html body h3[style*="font-weight:600"] {
  font-size: 20px !important;
  font-weight: 700 !important;
  color: #222 !important;
  text-align: center !important;
}
html body h4[style*="font-weight:600"] {
  font-size: 20px !important;
  font-weight: 700 !important;
  color: #222 !important;
  text-align: center !important;
}

/* Body paragraphs */
html body p {
  font-size: 15px !important;
  font-weight: 400 !important;
  line-height: 1.7 !important;
  color: #444 !important;
}

/* List items */
html body li {
  font-size: 15px !important;
  font-weight: 400 !important;
  color: #444 !important;
}

/* --- BACKGROUNDS --- */
/* Section primary override - light grey */
html body .section-primary,
html body section.section-primary {
  background-color: #f5f5f7 !important;
  background-image: none !important;
}
html body .section-primary h2,
html body .section-primary p,
html body .section-primary li,
html body .section-primary span {
  color: #222 !important;
}

/* Manpower section - remove dark bg image */
html body .match-height[style*="background-image"] {
  background-image: none !important;
  background-color: #f5f5f7 !important;
}

/* Counter section */
html body .apple-section-grey {
  background-color: #f5f5f7 !important;
  background-image: none !important;
}
html body .counters .counter strong {
  color: #222 !important;
  font-weight: 800 !important;
  font-size: 42px !important;
}
html body .counters .counter label {
  color: #666 !important;
  font-weight: 500 !important;
  font-size: 14px !important;
}
html body .counters .counter i {
  color: #248bcb !important;
}

/* --- HIDE OLD DIVIDER BARS --- */
html body .divider.divider-primary,
html body .divider.divider-tertiary,
html body .divider.divider-small {
  display: none !important;
}

/* --- CARDS & BOXES --- */
html body .card {
  border-radius: 12px !important;
  border: 1px solid #e0e0e0 !important;
  overflow: hidden !important;
}

/* --- BUTTONS --- */
html body .btn-primary,
html body a.btn-primary {
  background-color: #248bcb !important;
  border-color: #248bcb !important;
  border-radius: 50px !important;
  font-weight: 600 !important;
  font-size: 14px !important;
  padding: 12px 28px !important;
}
html body .btn-primary:hover {
  background-color: #1a6fa0 !important;
}

/* --- LOGO SLIDER --- */
html body .clientSwiper .swiper-slide img {
  filter: grayscale(100%) !important;
  opacity: 0.5 !important;
  transition: all 0.4s ease !important;
}
html body .clientSwiper .swiper-slide img:hover {
  filter: grayscale(0%) !important;
  opacity: 1 !important;
}

/* --- FOOTER --- */
html body footer,
html body footer.light {
  background-color: #f5f5f7 !important;
}
html body footer h4 {
  font-weight: 700 !important;
  font-size: 16px !important;
  color: #222 !important;
}
html body footer p,
html body footer a,
html body footer li {
  color: #666 !important;
  font-size: 14px !important;
}
html body footer a:hover {
  color: #248bcb !important;
}

/* Smooth scroll */
html { scroll-behavior: smooth; }

/* Selection */
::selection { background: #248bcb; color: #fff; }

/* OWL dots */
html body .owl-theme .owl-dots .owl-dot.active span {
  background: #248bcb !important;
}

/* WhatsApp float */
html body a[href*="wa.me"] {
  border-radius: 50% !important;
}



/* Text color consolidation */
html body p, html body .text-default { color: #444 !important; }
html body .text-muted, html body small { color: #777 !important; }

/* CLS fix: reserve hero slider height */
.slider-container, .rev_slider_wrapper { min-height: 500px !important; }
@media(max-width:768px){ .slider-container, .rev_slider_wrapper { min-height: 300px !important; } }

/* FAQ section styling */
#faq .toggle label { cursor: pointer; padding: 14px 0; border-bottom: 1px solid #eee; display: block; }
#faq .toggle-content { padding: 10px 0 20px; }
#faq .toggle.active label { color: #248bcb; }

/* Font consolidation: reduce to Inter + system fallback */
html body { font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important; }

/* Fix double accent line on OUR PARTICIPATED PROJECTS */
.apple-heading + .apple-line + .apple-line { display: none !important; }

/* Ensure all apple-lines render consistently */
.apple-line { display: block !important; width: 50px; height: 3px; background: #248bcb; margin: 10px auto 20px !important; }

/* home:jfco-specificity-fix */
/* Fix card-default headers - theme uses .card-default > .card-header */
html body #main .card.card-default > .card-header,
html body .card.card-default > .card-header,
.card.card-default > .card-header {
  background-color: #248bcb !important;
}

/* Fix REQUEST A QUOTE button */
html body .header-nav-main .dropdown.dropdown-full-color a.dropdown-item,
html body .dropdown.dropdown-full-color .dropdown-item,
.dropdown.dropdown-full-color .dropdown-item,
li.dropdown.dropdown-full-color > a.dropdown-item {
  background-color: #1a6fa0 !important;
  color: #fff !important;
}
li.dropdown.dropdown-full-color > a.dropdown-item:hover {
  background-color: #155a82 !important;
}

/* Also override the original theme blue on the header top bar if it shows */
html body #header .header-body {
  border-top-color: #248bcb !important;
}

/* home:inline */
@font-face{font-display:swap!important}

/* home:jfco-perf-a11y-fixes */
/* PERFORMANCE: Font display swap for all custom fonts */
@font-face { font-display: swap !important; }

/* PERFORMANCE: CLS prevention - explicit dimensions for common elements */
.slider-container, .rev_slider_wrapper { min-height: 500px !important; aspect-ratio: 16/7; contain: layout style; }
.owl-carousel .owl-item img { aspect-ratio: auto; }
img { content-visibility: auto; }

/* ACCESSIBILITY: Improve color contrast (WCAG AA) */
body p, .text-3, .text-4 { color: #333 !important; }
.text-muted, .text-color-grey { color: #595959 !important; }
h1, h2, h3, h4, h5, h6 { color: #1a1a2e !important; }
.text-color-primary { color: #248bcb !important; }
footer p, footer li, footer a { color: #ccc !important; }
footer a:hover { color: #fff !important; }

/* ACCESSIBILITY: Touch target size (minimum 48x48px) */
.owl-nav button, .owl-dots button { min-width: 48px !important; min-height: 48px !important; padding: 8px !important; }
.owl-dot span { width: 16px !important; height: 16px !important; }
footer .social-icons a { min-width: 48px !important; min-height: 48px !important; display: inline-flex !important; align-items: center !important; justify-content: center !important; }
.scroll-to-top { min-width: 48px !important; min-height: 48px !important; }
a.btn, button.btn { min-height: 44px; padding: 10px 20px !important; }

/* ACCESSIBILITY: Focus visible indicators */
a:focus-visible, button:focus-visible { outline: 3px solid #248bcb !important; outline-offset: 2px !important; }
.skip-link:focus { top: 0 !important; z-index: 100001 !important; }

/* PERFORMANCE: Reduce layout shifts */
.owl-carousel { min-height: 200px; }
.counter { min-height: 80px; }

/* BEST PRACTICES: Image rendering */
img { image-rendering: auto; max-width: 100%; height: auto; }

/* CONTRAST FIXES */
.skip-link { background: #0d5a8c !important; color: #fff !important; }
.header-body label { color: #1a1a2e !important; }
.header-body .header-top-bar { background: #1a1a2e !important; }
.header-body .header-top-bar label, .header-body .header-top-bar a { color: #fff !important; }
.text-color-primary, a.text-color-primary { color: #1b6fa0 !important; }
.border-color-primary { border-color: #1b6fa0 !important; }
footer h3.text-3 { color: #fff !important; font-size: 1.1rem !important; }
footer .list-icons a { color: #ccc !important; }
footer .list-icons a:hover { color: #fff !important; }

/* AGGRESSIVE CLS PREVENTION */
.slider-container, .rev_slider_wrapper { min-height: 500px !important; aspect-ratio: 16/7; contain: layout style; }
@media(max-width:768px){ .slider-container, .rev_slider_wrapper { min-height: 300px !important; aspect-ratio: 16/9; } }
.owl-carousel { min-height: 200px; contain: layout; }
.owl-carousel .owl-stage-outer { min-height: inherit; }
.counter { min-height: 80px; contain: layout; }
.section-clients img { width: 150px; height: 80px; object-fit: contain; }
img[data-src], img.owl-lazy { min-height: 50px; background: #f5f5f5; }
footer { contain: layout style; }
.header-body { min-height: 80px; contain: layout; }
.header-nav-bar { min-height: 50px; contain: layout; }
/* Font swap for all web fonts */
@font-face { font-display: swap !important; }

/* APPLE-STYLE HERO */
.jfco-hero { contain: layout style paint; }
.jfco-hero .btn:hover { transform: translateY(-2px); box-shadow: 0 8px 25px rgba(0,0,0,0.3); }
.jfco-hero-bg { transition: opacity 0.5s ease; will-change: opacity; }
@media(max-width:768px) { .jfco-hero { min-height: 70vh !important; } .jfco-hero h1 { font-size: 2rem !important; } }
@keyframes fadeInUp { from { opacity:0; transform:translateY(30px); } to { opacity:1; transform:translateY(0); } }
.jfco-hero .container { animation: fadeInUp 1s ease-out; }

/* home:inline */
/* Critical: Force font-display swap for all fonts */
    @font-face { font-display: swap !important; }
    /* Reduce CLS: Set min-height on hero */
    .owl-carousel .owl-stage-outer { min-height: 400px; }
    img { height: auto; }

/* home:inline */
.skip-link:focus{top:0 !important;}

.jfco-csp-home-001{display:none !important;visibility:hidden !important;}

.jfco-csp-home-002{position:absolute !important;top:-40px !important;left:0 !important;background:#248bcb !important;color:#fff !important;padding:8px 16px !important;z-index:100000 !important;font-size:14px !important;transition:top 0.3s !important;}

.jfco-csp-home-003{position:relative !important;min-height:85vh !important;display:flex !important;align-items:center !important;justify-content:center !important;overflow:hidden !important;background:#0d1b2a !important;}

.jfco-csp-home-004{position:absolute !important;inset:0 !important;background:url(img/slides/jfco-hero.jpg?v=1) center/cover no-repeat !important;opacity:0.45 !important;}

.jfco-csp-home-005{position:absolute !important;inset:0 !important;background:linear-gradient(135deg,rgba(13,27,42,0.6) 0%,rgba(26,26,46,0.5) 40%,rgba(27,111,160,0.3) 100%) !important;}

.jfco-csp-home-006{position:relative !important;z-index:2 !important;text-align:center !important;padding:60px 20px !important;}

.jfco-csp-home-007{font-size:0.85rem !important;letter-spacing:6px !important;text-transform:uppercase !important;color:#ffffff !important;text-shadow:0 1px 10px rgba(0,0,0,0.5) !important;margin-bottom:20px !important;font-weight:500 !important;}

.jfco-csp-home-008{font-size:clamp(2.2rem,5vw,4rem) !important;font-weight:800 !important;color:#fff !important;line-height:1.1 !important;text-shadow:0 2px 20px rgba(0,0,0,0.4) !important;margin-bottom:24px !important;letter-spacing:-1px !important;}

.jfco-csp-home-009{color:#ffffff !important;text-shadow:0 2px 30px rgba(77,184,232,0.6),0 0 60px rgba(27,111,160,0.3) !important;}

.jfco-csp-home-010{font-size:clamp(1rem,2vw,1.25rem) !important;color:#ffffff !important;max-width:600px !important;text-shadow:0 1px 8px rgba(0,0,0,0.4) !important;margin:0 auto 40px !important;line-height:1.6 !important;font-weight:300 !important;}

.jfco-csp-home-011{display:flex !important;gap:16px !important;justify-content:center !important;flex-wrap:wrap !important;}

.jfco-csp-home-012{background:#1b6fa0 !important;color:#fff !important;padding:16px 40px !important;border-radius:50px !important;font-size:1rem !important;font-weight:600 !important;text-decoration:none !important;letter-spacing:0.5px !important;transition:all 0.3s ease !important;border:2px solid #1b6fa0 !important;}

.jfco-csp-home-013{background:transparent !important;color:#fff !important;padding:16px 40px !important;border-radius:50px !important;font-size:1rem !important;font-weight:600 !important;text-decoration:none !important;letter-spacing:0.5px !important;transition:all 0.3s ease !important;border:2px solid rgba(255,255,255,0.4) !important;}

.jfco-csp-home-014{background:#248bcb !important;border-color:#248bcb !important;border-radius:50px !important;padding:12px 36px !important;font-weight:600 !important;font-size:14px !important;letter-spacing:1px !important;}

.jfco-csp-home-015{background-color: #f5f5f7 !important;padding: 60px 0 !important;}

.jfco-csp-home-016{font-size:1.5rem !important;}

.jfco-csp-home-017{height:100% !important;background:url(img/slides/jfco-hero.jpg) center/cover no-repeat !important;min-height:500px !important;}

.jfco-csp-home-018{background: #fff !important;}

.jfco-csp-home-019{overflow: hidden !important;padding: 20px 0 !important;}

.jfco-csp-home-020{display: flex !important;align-items: center !important;}

.jfco-csp-home-021{display: flex !important;align-items: center !important;justify-content: center !important;padding: 15px !important;}

.jfco-csp-home-022{max-height: 80px !important;max-width: 160px !important;object-fit: contain !important;opacity: 0.8 !important;transition: all 0.3s !important;}

.jfco-csp-home-023{background:#000 !important;padding:8px !important;border-radius:8px !important;}

.jfco-csp-home-024{background-color: #f4f5f7 !important;}

.jfco-csp-home-025{font-family:Inter,-apple-system,sans-serif !important;font-weight:600 !important;color:#1d1d1f !important;text-align:center !important;font-size:1.2rem !important;}

.jfco-csp-home-026{background:#f7f7f7 !important;}

.jfco-csp-home-027{font-size:1.8rem !important;letter-spacing:-0.5px !important;}

.jfco-csp-home-028{font-size:14px !important;}

.jfco-csp-home-029{font-size:13px !important;}

.jfco-csp-home-030{font-size:inherit !important;font-weight:inherit !important;}

/* contact:inline */
body, h1, h2, h3, h4, h5, h6, p, a, li, span, div, input, button, textarea, select { font-family: 'Poppins', sans-serif !important; }

/* contact:inline */
#footer { background-color: #F9F9F9 !important; }
#footer, #footer p, #footer a, #footer li, #footer span, #footer h4, #footer h5 { color: #333 !important; }
#footer a:hover { color: #0088cc !important; }
#footer .text-color-primary { color: #0088cc !important; }
#footer .footer-copyright { background-color: #EFEFEF !important; }
#footer .footer-copyright p { color: #555 !important; }

/* contact:inline */
.owl-carousel .owl-stage-outer{min-height:500px}img{width:auto;height:auto}

.jfco-csp-contact-031{display:none !important;visibility:hidden !important;}

.jfco-csp-contact-032{font-size:14px !important;}

.jfco-csp-contact-033{font-size:13px !important;}

.jfco-csp-contact-034{font-size:inherit !important;font-weight:inherit !important;margin:inherit !important;}

.jfco-nav-quote{background:#2baae1!important;color:#fff!important;border-radius:4px;padding:8px 18px!important;font-weight:600!important;}
.skip-link:focus{top:0!important;}
.clientSwiper img:hover{opacity:1!important;}
.jfco-image-hidden{display:none!important;}
