/* Supplied archive assets: paint and sizing only; approved layout/type unchanged. */
.dc-supplied-svg { flex-shrink: 0; vertical-align: middle; overflow: visible; }
.dc-supplied-svg [data-dc-paint="fill"] { fill: currentColor !important; stroke: none !important; stroke-width: 0 !important; }
.dc-supplied-svg [data-dc-paint="stroke"] { fill: none !important; stroke: currentColor !important; }
.dc-home-card-icon > img { width: 100%; height: 100%; object-fit: contain; }
.dc-home-card-arrow > svg { width: 24px; height: 20px; }
.dc-home-services-cta svg { width: 20px; height: 18px; }
.dc-footer-mail { width: 16px; height: 14px; color: #000; }
.faq-icon[data-dc-has-asset] { display: grid; place-items: center; }
.faq-icon[data-dc-has-asset]::before, .faq-icon[data-dc-has-asset]::after { content: none !important; }
.faq-icon .dc-faq-plus, .faq-icon .dc-faq-minus { grid-area: 1 / 1; width: 16px; height: 16px; }
.faq-icon .dc-faq-minus { visibility: hidden; }
.faq-item.open .dc-faq-plus { visibility: hidden; }
.faq-item.open .dc-faq-minus { visibility: visible; }
.need-icon[data-dc-has-asset] { color: #000; }
.need-icon[data-dc-has-asset] > svg { width: 100%; height: 100%; }
.need-card:hover .need-icon[data-dc-has-asset], .need-card.active .need-icon[data-dc-has-asset] { color: #000; }
.engagement-section .model-card::before { background: url('/assets/supplied/backgrounds/service-hover-glow.svg') center / contain no-repeat !important; filter: none !important; }
.aiFirstMoreBtnIcon img[src="/assets/supplied/ui/arrow-right.svg"] { width: 22px; height: 20px; object-fit: contain; }
@media (prefers-reduced-motion: reduce) { .need-icon[data-dc-has-asset] { transition: none; } }
.pp-expertise-trigger > span > svg { width: 16px; height: 16px; }
.pp-plus { display: grid; place-items: center; transform: none !important; }
.pp-plus > svg { grid-area: 1 / 1; width: 16px; height: 16px; }
.pp-plus .dc-pp-minus { visibility: hidden; }
details[open] .pp-plus .dc-pp-plus { visibility: hidden; }
details[open] .pp-plus .dc-pp-minus { visibility: visible; }
.pp-inquiry-top button > svg { width: 12px; height: 12px; margin-left: 4px; }
.career-application-close > svg { width: 18px; height: 18px; }
/* Keep the supplied modal close control above the fixed shared navigation. */
.career-application-overlay { z-index: 2147483300 !important; }
/* Replace legacy CSS chevrons, retaining the existing disclosure direction. */
html[class] body .faq-section .faq-item .faq-icon[data-dc-has-asset]::before,
html[class] body .faq-section .faq-item .faq-icon[data-dc-has-asset]::after { content: none !important; display: none !important; }
html[class] body .faq-section .faq-icon[data-dc-has-asset] { display: grid !important; background: none !important; }
.faq-icon .dc-faq-plus, .faq-icon .dc-faq-minus { width: 18px; height: 18px; }
.faq-icon .dc-faq-minus { transform: rotate(90deg); }
html[class] body .faq-section .faq-item .faq-icon[data-dc-has-asset] > .dc-supplied-svg,
html[class] body .faq-section .faq-item .faq-icon[data-dc-has-asset] > .dc-supplied-svg path { display: block !important; }

/* Shared monochrome UI: reuse the existing priority layer for legacy overrides. */
@layer dc-typography {
:root { --dc-asset-ink: #000; }
.dc-supplied-svg { color: var(--dc-asset-ink, #000) !important; }
.dc-inline-arrow { width: 1em; height: .81em; margin-inline: .25em; }
:where([data-dc-surface="dark"], .pp-dark, .ns-card, #global-mobile-navigation, .channel-primary) { --dc-asset-ink: #fff; }
#dcGlobalHeader { --dc-asset-ink: currentColor; }
.channel-card :where(.channel-icon, .copy-btn), .channel-phone .channel-primary { --dc-asset-ink: #000; }
.channel-card .channel-icon svg, .channel-card .copy-btn svg { color: #000 !important; }
.need-icon[data-dc-has-asset], .need-card:hover .need-icon[data-dc-has-asset], .need-card.active .need-icon[data-dc-has-asset] { color: #000 !important; }
.whatsapp-float { color: #fff !important; }
:where(.contact-card, .secondaryArrowCircle, .oj-nav-btn, .channel-phone .channel-actions a[href*="wa.me"]) { --dc-asset-ink: #fff; }
html[class] body .faq-section .faq-icon[data-dc-has-asset] > .dc-supplied-svg { color: #000 !important; }

/* Reference composition, with the existing DeepCiphers banner and contact data. */
html body #lets-build.letsb-section-bg,
html body #lets-build .letsb-wrap { background: #000 !important; color: #fff !important; }
html body #lets-build .letsb-wrap { --dc-text-primary: #fff; --dc-text-body: #fff; --dc-text-support: #fff; --dc-text-link: #fff; padding-block: 40px !important; }
html body #lets-build .letsb-banner-wrap { --dc-asset-ink: #000; margin-bottom: 40px !important; }
html body #lets-build .letsb-banner-mobile-link { display: none; }
html body #lets-build .letsb-banner-wrap text,
html body #lets-build .letsb-banner-mobile-art .letsb-mobile-art-title,
html body #lets-build .letsb-banner-mobile-art .letsb-mobile-art-subtitle { fill: #000 !important; }
html body #lets-build .letsb-banner-wrap > .letsb-arrow-btn { border-color: #000 !important; background: #fff !important; }
html body #lets-build .letsb-footer-row { grid-template-columns: minmax(200px,1fr) minmax(170px,.8fr) minmax(180px,.85fr) minmax(270px,1.15fr) !important; gap: 24px !important; align-items: start !important; }
html body #lets-build .letsb-brand-card { align-items: flex-start !important; text-align: left !important; }
html body #lets-build .letsb-logo-slot { margin-bottom: 12px !important; padding: 0 !important; min-height: 65px !important; }
html body #lets-build .letsb-logo-slot a { position: relative; display: inline-block; width: min(228px,100%); }
html body #lets-build .letsb-brand-logo { filter: none; }
html body #lets-build .letsb-brand-logo-contrast { position: absolute; inset: 0; filter: url(#dc-header-logo-contrast); }
html body #lets-build .letsb-brand-note { color: #fff !important; font-size: 14px !important; line-height: 1.7 !important; margin: 0 !important; }
html body #lets-build button.letsb-menu-btn,
html body #lets-build button.letsb-menu-btn:hover,
html body #lets-build button.letsb-menu-btn:focus,
html body #lets-build button.letsb-menu-btn.active { color: #fff !important; font-size: 17px !important; gap: 12px !important; min-height: 44px !important; padding: 0 !important; background: transparent !important; }
html body #lets-build button.letsb-menu-btn::before { content: none !important; display: none !important; }
html body #lets-build button.letsb-menu-btn * { color: #fff !important; }
html body #lets-build button.letsb-menu-btn { -webkit-text-fill-color: currentColor !important; }
html body #lets-build button.letsb-menu-btn * { -webkit-text-fill-color: currentColor !important; }
html body #lets-build .letsb-menu-dropdown { background: #1e1e1e !important; border-color: #333 !important; box-shadow: none !important; border-radius: 12px !important; }
html body #lets-build .letsb-menu-dropdown:not(.open) { border-color: transparent !important; margin-top: 0 !important; }
html body #lets-build .letsb-menu-dropdown a { color: #fff !important; white-space: normal !important; font-size: 13px !important; line-height: 1.5 !important; }
html body #lets-build .letsb-menu-dropdown a:hover { color: #fff !important; text-decoration: underline !important; text-underline-offset: 4px; }
html body #lets-build :where(.letsb-services-grid, .letsb-company-grid) { grid-template-columns: minmax(0,1fr) !important; }
html body #lets-build .letsb-address-card { background: #1e1e1e; border: 1px solid #333; border-radius: 16px; padding: 26px 24px; min-width: 0; }
html body #lets-build .letsb-address-title { color: #fff !important; font-size: 30px !important; font-weight: 700 !important; line-height: 1.15 !important; letter-spacing: -.8px !important; margin: 0 0 24px !important; }
html body #lets-build .letsb-strip-contact { display: flex !important; flex-direction: column !important; align-items: flex-start !important; gap: 20px !important; width: 100% !important; }
html body #lets-build .letsb-strip-contact-line { color: #fff !important; display: flex !important; align-items: flex-start !important; gap: 12px !important; line-height: 1.6 !important; font-size: 14px !important; min-height: 44px !important; }
html body #lets-build .letsb-strip-contact-icon { width: 22px !important; height: 22px !important; color: #fff !important; margin-top: 2px !important; flex-shrink: 0 !important; }
html body #lets-build .letsb-contact-label { color: #fff !important; display: block; font-size: 12px; margin-bottom: 3px; }
html body #lets-build .letsb-bottom-strip { display: flex !important; justify-content: space-between !important; align-items: center !important; padding: 24px !important; margin-top: 32px !important; gap: 32px !important; background: #1e1e1e !important; border: 1px solid #333 !important; border-radius: 16px !important; }
html body #lets-build .letsb-newsletter-strip { display: grid !important; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 12px; flex: 1 1 560px; max-width: 680px !important; padding: 0 !important; background: transparent !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; }
html body #lets-build .letsb-newsletter-strip .letsb-signup-title { grid-column: 1 / -1; font-size: 16px !important; line-height: 1.4 !important; color: #fff !important; margin: 0 !important; }
html body #lets-build .letsb-signup-title small { color: #fff !important; }
html body #lets-build .letsb-newsletter-strip .letsb-email-wrap { --dc-asset-ink: #000; margin: 0 !important; padding: 0 14px !important; min-height: 48px !important; border-radius: 999px !important; border: 1px solid #fff !important; background: #fff !important; }
html body #lets-build .letsb-newsletter-strip input { color: #000 !important; font-size: 13px !important; border-radius: 999px !important; min-height: 46px !important; background: transparent !important; }
html body #lets-build .letsb-newsletter-strip input::placeholder { color: #444 !important; opacity: 1 !important; }
html body #lets-build .letsb-newsletter-strip .dc-footer-mail { color: #000 !important; }
html body #lets-build .letsb-newsletter-strip button.letsb-sub-btn { --dc-asset-ink: #000; display: inline-flex !important; align-items: center !important; justify-content: center !important; gap: 10px !important; width: auto !important; padding: 12px 18px !important; min-height: 48px !important; border-radius: 999px !important; background: #26D06A !important; color: #000 !important; font-size: 13px !important; white-space: nowrap !important; }
html body #lets-build .letsb-newsletter-strip button.letsb-sub-btn:hover { background: #fff !important; color: #000 !important; }
html body #lets-build .letsb-newsletter-strip button.letsb-sub-btn svg { width: 18px !important; height: 15px !important; }
html body #lets-build .letsb-newsletter-strip .letsb-form-message { grid-column: 1 / -1; grid-row: 3; color: #fff !important; font-size: 12px !important; margin: 0 !important; }
html body #lets-build .letsb-socials { width: auto !important; max-width: 100% !important; justify-content: flex-end !important; gap: 10px !important; flex: 0 0 auto; }
html body #lets-build .letsb-social-link { color: #fff !important; background: #000 !important; border-color: #333 !important; border-radius: 10px !important; }
html body #lets-build .letsb-social-link:hover { --dc-asset-ink: #000; color: #000 !important; background: #fff !important; border-color: #fff !important; transform: translateY(-2px); }
html body #lets-build :where(a, button, input):focus-visible { outline: 2px solid #fff !important; outline-offset: 4px !important; }
html body #lets-build .letsb-newsletter-strip input:focus-visible { outline-color: #000 !important; outline-offset: 0 !important; }
.testimonial-card .quote-mark, .channel-phone .channel-primary > svg, .job-card svg, .channel-card .copy-btn svg { color: #000 !important; }
.careers-page-body .roles :where(.empty svg, .job-detail svg), .career-field-icon svg, .career-resume-icon svg { color: #000 !important; }
@media (max-width: 1100px) {
  html body #lets-build .letsb-footer-row { grid-template-columns: repeat(2,minmax(0,1fr)) !important; gap: 24px !important; }
  html body #lets-build .letsb-brand-card { grid-column: 1 / -1 !important; display: flex !important; }
  html body #lets-build .letsb-address-card { grid-column: 1 / -1; }
  html body #lets-build .letsb-bottom-strip { flex-wrap: wrap !important; gap: 24px !important; }
  html body #lets-build .letsb-newsletter-strip { flex: 1 1 100%; max-width: 100% !important; }
}
@media (max-width: 767px) {
  html body #lets-build .letsb-banner-mobile-link { display: block; }
  html body #lets-build .letsb-wrap { padding: 24px 16px 32px !important; }
  html body #lets-build .letsb-banner-wrap { margin-bottom: 28px !important; }
  html body #lets-build .letsb-footer-row { grid-template-columns: minmax(0,1fr) !important; gap: 20px !important; }
  html body #lets-build .letsb-brand-card { grid-column: auto !important; }
  html body #lets-build .letsb-address-card { padding: 24px 20px; }
  html body #lets-build .letsb-address-title { font-size: 28px !important; }
  html body #lets-build .letsb-bottom-strip { padding: 20px 16px !important; gap: 20px !important; margin-top: 24px !important; }
  html body #lets-build .letsb-newsletter-strip { grid-template-columns: minmax(0,1fr); gap: 12px; }
  html body #lets-build .letsb-newsletter-strip button.letsb-sub-btn { width: 100% !important; }
  html body #lets-build .letsb-newsletter-strip .letsb-form-message { grid-row: 4; }
  html body #lets-build .letsb-socials { justify-content: flex-start !important; gap: 8px !important; flex-wrap: wrap !important; }
}

}

@media (max-width: 767px) {
  html body #lets-build .letsb-newsletter-strip input {
    font-size: 16px !important;
  }
}

/* Footer Services + Company Links — final scoped layout correction.
   This sheet is loaded after footer.css on every public route. Previous
   one-column and fixed-width rules made the dropdowns appear unchanged or
   overlap adjacent footer columns. Only link grids/card geometry is changed. */
@layer dc-typography {
html body #lets-build.letsb-section-bg .letsb-wrap .letsb-footer-row #letsb-services .letsb-services-grid,
html body #lets-build.letsb-section-bg .letsb-wrap .letsb-footer-row #letsb-company .letsb-company-grid {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  column-gap: 16px !important;
  row-gap: 2px !important;
  width: 100% !important;
  min-width: 0 !important;
}
html body #lets-build.letsb-section-bg .letsb-wrap .letsb-footer-row #letsb-services .letsb-services-grid a,
html body #lets-build.letsb-section-bg .letsb-wrap .letsb-footer-row #letsb-company .letsb-company-grid a {
  min-width: 0 !important;
  white-space: normal !important;
  overflow-wrap: break-word !important;
}
html body #lets-build.letsb-section-bg .letsb-wrap .letsb-footer-row #letsb-services.letsb-menu-dropdown,
html body #lets-build.letsb-section-bg .letsb-wrap .letsb-footer-row #letsb-company.letsb-menu-dropdown {
  box-sizing: border-box !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
}
html body #lets-build.letsb-section-bg .letsb-wrap .letsb-footer-row #letsb-services.letsb-menu-dropdown.open,
html body #lets-build.letsb-section-bg .letsb-wrap .letsb-footer-row #letsb-company.letsb-menu-dropdown.open {
  padding: 16px !important;
}
@media (min-width: 1201px) {
  html body #lets-build.letsb-section-bg .letsb-wrap .letsb-footer-row {
    grid-template-columns: minmax(0, .88fr) minmax(0, 2.03fr) minmax(0, 1.02fr) minmax(0, 1.18fr) !important;
    gap: 18px !important;
  }
  html body #lets-build.letsb-section-bg .letsb-wrap .letsb-footer-row #letsb-services.letsb-menu-dropdown {
    max-width: 440px !important;
  }
  html body #lets-build.letsb-section-bg .letsb-wrap .letsb-footer-row #letsb-company.letsb-menu-dropdown {
    max-width: 225px !important;
  }
}
@media (min-width: 768px) and (max-width: 1200px) {
  html body #lets-build.letsb-section-bg .letsb-wrap .letsb-footer-row {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 24px 20px !important;
  }
  html body #lets-build.letsb-section-bg .letsb-wrap .letsb-footer-row > .letsb-brand-card,
  html body #lets-build.letsb-section-bg .letsb-wrap .letsb-footer-row > .letsb-address-card {
    grid-column: 1 / -1 !important;
  }
  html body #lets-build.letsb-section-bg .letsb-wrap .letsb-footer-row #letsb-services.letsb-menu-dropdown {
    max-width: 440px !important;
  }
  html body #lets-build.letsb-section-bg .letsb-wrap .letsb-footer-row #letsb-company.letsb-menu-dropdown {
    max-width: 225px !important;
  }
}
@media (max-width: 767px) {
  html body #lets-build.letsb-section-bg .letsb-wrap .letsb-footer-row #letsb-services.letsb-menu-dropdown,
  html body #lets-build.letsb-section-bg .letsb-wrap .letsb-footer-row #letsb-company.letsb-menu-dropdown {
    max-width: 100% !important;
  }
}
@media (max-width: 480px) {
  html body #lets-build.letsb-section-bg .letsb-wrap .letsb-footer-row #letsb-services .letsb-services-grid,
  html body #lets-build.letsb-section-bg .letsb-wrap .letsb-footer-row #letsb-company .letsb-company-grid {
    grid-template-columns: minmax(0, 1fr) !important;
  }
}

}

/* Home-only reference matching: 2 CTA arrows, one dark partnership panel,
   one green comparison title, and the three explicitly named service icons. */
@layer dc-typography {
  body.dc-home-page .insightsViewAll .insightsViewAllIcon svg.dc-supplied-svg,
  body.dc-home-page .costSection a[href="/contact"] span[class*="ctaArrow"] svg.dc-supplied-svg {
    --dc-asset-ink: #FFFFFF;
    color: #FFFFFF !important;
    fill: #FFFFFF !important;
  }
  body.dc-home-page .insightsViewAll .insightsViewAllIcon svg.dc-supplied-svg [data-dc-paint="fill"],
  body.dc-home-page .costSection a[href="/contact"] span[class*="ctaArrow"] svg.dc-supplied-svg [data-dc-paint="fill"] {
    fill: #FFFFFF !important;
  }
  body.dc-home-page .industrySection:has(.industryTab:nth-child(5).active) .industryPanel .industryCopy :is(h3, p, li),
  body.dc-home-page .howAiPanel--after :is(strong, span) {
    color: #FFFFFF !important;
    -webkit-text-fill-color: #FFFFFF !important;
  }
  body.dc-home-page .industrySection:has(.industryTab:nth-child(5).active) .industryPanel {
    --dc-type-heading-color: #FFFFFF;
    --dc-text-body: #FFFFFF;
  }
}
/* The three named Home service icons now use matching vector outlines in
   HomeServicesExactSection. They inherit the section's original SVG sizing,
   ink and responsive behavior; no raster filter or size exceptions needed. */
