/* New Compass Media: black & white layer on top of the Hook theme */
:root { --ncm-black: #000; --ncm-ink: #0a0a0a; --ncm-line: rgba(255,255,255,.18); --ncm-muted: #9a9a9a; }

/* Monochrome imagery; case studies reveal color on hover */

/* Pure black page chrome */
header#wrapper-navbar #main-nav, .site-footer, .problem-breakdown, .stats-case-studies, .bg-charcoal { background-color: var(--ncm-black) !important; }
.ncm-logo { max-height: 46px; width: auto; filter: brightness(0) invert(1) !important; }
.site-footer .ncm-logo { max-height: 56px; }

/* Primary button: white on dark, inverted on hover */
.solid--lime { background-color: #fff; color: #000 !important; border: 1px solid #fff; }
.solid--lime:hover, .solid--lime:focus { background-color: #000 !important; color: #fff !important; }
.solid--lime:hover svg { stroke: #fff; }
.phone-link svg { flex-shrink: 0; }

/* Hero */
.hero--main-value .hero__rating-images img { width: 40px; height: 40px; object-fit: cover; border: 2px solid #000; }
.ncm-hero-image { width: min(1100px, 92vw) !important; }
.ncm-hero-image img { border-radius: 14px; }

/* Who-we-are stats */
.problem-breakdown-image img { border-radius: 12px; width: 100%; height: auto; object-fit: cover; aspect-ratio: 4 / 5; object-position: top; }
.ncm-stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-top: 32px; padding-top: 28px; border-top: 1px solid var(--ncm-line); }
.ncm-stat-num { display: block; font-family: champion, "Archivo", sans-serif; font-size: clamp(28px, 4vw, 44px); line-height: 1; text-transform: uppercase; }
.ncm-stat-label { display: block; margin-top: 8px; font-size: 13px; color: var(--ncm-muted); text-transform: uppercase; letter-spacing: .08em; }

/* Process image */
.process__img img { border-radius: 12px; width: 100%; height: auto; }

/* Service bento panels */
.ncm-panel { border: 1px solid var(--ncm-line); border-radius: 10px; background: #000; padding: 20px; font-family: Archivo, sans-serif; }
.ncm-panel__head { display: flex; justify-content: space-between; align-items: center; font-weight: 600; margin-bottom: 16px; }
.ncm-pill { font-size: 11px; text-transform: uppercase; letter-spacing: .1em; border: 1px solid #fff; border-radius: 999px; padding: 2px 10px; }
.ncm-panel__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
.ncm-panel__grid div { border: 1px solid var(--ncm-line); border-radius: 8px; padding: 14px; }
.ncm-panel__grid strong { display: block; font-size: 28px; line-height: 1.1; }
.ncm-panel__grid span, .ncm-map__row span { display: block; font-size: 12px; color: var(--ncm-muted); text-transform: uppercase; letter-spacing: .06em; margin-top: 4px; }
.ncm-map { display: flex; flex-direction: column; gap: 10px; }
.ncm-map__row { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 12px 14px; border: 1px solid var(--ncm-line); border-radius: 8px; }
.ncm-map__row em { font-style: normal; font-size: 13px; white-space: nowrap; color: var(--ncm-muted); }
.ncm-map__row.is-you { background: #fff; color: #000; border-color: #fff; }
.ncm-map__row.is-you span, .ncm-map__row.is-you em { color: #333; }

/* Who we serve */
.ncm-tile-icon { display: inline-flex; }
.ncm-guarantee { width: 100%; border: 1px solid rgba(255,255,255,.3); border-radius: 16px; padding: 40px 28px; background: rgba(0,0,0,.4); }
.ncm-guarantee__num { display: block; font-family: champion, sans-serif; font-size: 120px; line-height: .9; }
.ncm-guarantee__label { display: block; font-family: champion, sans-serif; font-size: 28px; text-transform: uppercase; margin: 8px 0 16px; }
.ncm-guarantee { position: relative; }
.ncm-seal { position: absolute; top: -44px; right: -36px; width: 124px; height: 124px; z-index: 2; filter: drop-shadow(0 12px 24px rgba(0,0,0,.55)); transform: rotate(-8deg); transition: transform .4s cubic-bezier(.2,.7,.2,1); }
.ncm-guarantee:hover .ncm-seal { transform: rotate(4deg) scale(1.06); }
.ncm-seal__spin { width: 100%; height: 100%; animation: ncm-seal-spin 18s linear infinite; }
.ncm-seal__spin polygon { fill: #fff; }
.ncm-seal__spin text { fill: #000; font-family: Archivo, sans-serif; font-weight: 800; font-size: 10.5px; letter-spacing: .08em; }
.ncm-seal__core { position: absolute; inset: 31%; border-radius: 50%; background: #000; display: flex; align-items: center; justify-content: center; box-shadow: 0 0 0 3px #fff, 0 0 0 4px #000; }
.ncm-seal__core svg { width: 58%; height: 58%; fill: none; stroke: #fff; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 24; stroke-dashoffset: 24; }
.ncm-guarantee.is-in .ncm-seal__core svg, html:not(.ncm-anim) .ncm-seal__core svg { animation: ncm-seal-check .6s .5s cubic-bezier(.2,.7,.2,1) forwards; }
@keyframes ncm-seal-spin { to { transform: rotate(360deg); } }
@keyframes ncm-seal-check { to { stroke-dashoffset: 0; } }
@media (max-width: 991px) { .ncm-seal { right: -10px; top: -48px; width: 104px; height: 104px; } }
@media (prefers-reduced-motion: reduce) { .ncm-seal__spin { animation: none; } .ncm-seal__core svg { animation: none !important; stroke-dashoffset: 0; } }

/* Testimonials on white: monochrome stars */
.card--reviews .review--image img { object-fit: cover; }

/* Promise portrait */
.company-promise__owners__image img { object-fit: cover; object-position: top; }

/* CTA banner + footer */
.cta-banner { background: linear-gradient(180deg, #000 30%, #1e1e1e 100%) !important; }
.site-contact__item .ncm-icon { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border: 1px solid var(--ncm-line); border-radius: 50%; }
.ncm-footer-blurb { max-width: 360px; }
.site-footer a:hover { color: #fff; }

@media (max-width: 575px) {
  .ncm-stat-row { grid-template-columns: 1fr; text-align: center; }
  .ncm-guarantee__num { font-size: 88px; }
}

/* Former lime micro-labels sitting on white sections */
.process .sh-micro, .reviews .sh-micro, .faq-accordion .sh-micro { color: #000 !important; opacity: .55; }
.problem-breakdown { padding-bottom: 96px; }

/* Breathing room under the theme's wave edges */
section.process:not(.hero) { padding-top: calc(var(--section-top-pad-lg) + 48px) !important; }
section.services-bento { padding-top: 120px !important; }
/* Data panels size to content instead of bleeding off the card */
.services-bento-list__item-image:has(.ncm-panel) { aspect-ratio: auto; margin: 8px auto 48px; padding: 0 20px; }

/* Compact data panels */
.ncm-panel__grid { grid-template-columns: repeat(4, 1fr); }
.ncm-panel__grid strong { font-size: 22px; }
@media (max-width: 575px) { .ncm-panel__grid { grid-template-columns: repeat(2, 1fr); } }
/* Sections whose labels sat flush to the top edge */
#portfolio.stats-case-studies, #reviews.reviews, #faq.faq-accordion { padding-top: 112px !important; }
.company-promise__owners__image img { border-radius: 12px; }

/* Blend the mockup's dark backdrop into the hero gradient */
.ncm-hero-image { width: min(900px, 92vw) !important; }
.ncm-hero-image img { mix-blend-mode: lighten; border-radius: 0; }
#about.problem-breakdown { padding-top: 112px !important; }

/* ---- Round 2: ideas borrowed from relentless-digital.com ---- */
/* Utility bar */
header#wrapper-navbar .ncm-topbar .header-topbar_wrapper { background: #fff; padding: 8px 0; }
header#wrapper-navbar .ncm-topbar .header-topbar_wrapper .topbar-content p { color: #000; font-size: 13px; letter-spacing: .02em; }
header#wrapper-navbar .ncm-topbar a:hover .header-topbar_wrapper { background: #e6e6e6; }
.ncm-topbar__sep { opacity: .4; padding: 0 6px; }
.hero--main-value { padding-top: calc(73px + 36px + var(--section-top-pad-lg)) !important; }

/* Hand-drawn underline on the key words */
.ncm-underline { position: relative; display: inline-block; white-space: nowrap; }
.ncm-underline svg { position: absolute; left: 0; bottom: -.12em; width: 100%; height: .22em; overflow: visible; }


/* Capability marquee (reuses the theme's logo slider) */
.client-logos .client-logo--wrapper .client-logos__slider .client-logos__slider__item { max-height: none; display: flex; align-items: center; justify-content: center; }
.ncm-marquee__item { color: #fff; font-family: champion, sans-serif; font-size: 22px; text-transform: uppercase; letter-spacing: .04em; white-space: nowrap; display: inline-flex; align-items: center; gap: 18px; }
.ncm-marquee__item::before { content: "✦"; font-size: 14px; opacity: .5; }

/* Why-us grid */
.ncm-why { padding: 112px 0; }
.ncm-why .sh-micro { color: #000 !important; opacity: .55; }
.ncm-why__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.ncm-why__card { border: 1px solid #e3e3e3; border-radius: 12px; padding: 32px 26px; background: #fff; transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease; }
.ncm-why__card:hover { transform: translateY(-4px); border-color: #000; box-shadow: 0 18px 40px rgba(0,0,0,.08); }
.ncm-why__card h3 { font-size: 20px; margin: 20px 0 10px; color: #000; }
.ncm-why__icon { display: inline-flex; width: 52px; height: 52px; border-radius: 50%; border: 1px solid #000; align-items: center; justify-content: center; }
@media (max-width: 1199px) { .ncm-why__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 575px) { .ncm-why__grid { grid-template-columns: 1fr; } .ncm-why { padding: 72px 0; } }

/* Dark button for white sections */
.ncm-btn-dark { background: #000; color: #fff !important; border: 1px solid #000; }
.ncm-btn-dark:hover, .ncm-btn-dark:focus { background: #fff; color: #000 !important; }

/* Review summary */
.ncm-review-summary { display: inline-flex; align-items: center; gap: 12px; flex-wrap: wrap; justify-content: center; border: 1px solid #e3e3e3; border-radius: 999px; padding: 10px 22px; }
.ncm-review-summary strong { font-family: champion, sans-serif; font-size: 26px; font-weight: 400; line-height: 1; }
.ncm-review-summary span { letter-spacing: 2px; }
.ncm-review-summary em { font-style: normal; font-size: 14px; color: #555; }

/* Six industry tiles: keep two-word names on one line */
.industry-callout .card--service-tiles .lvl-3 { white-space: nowrap; font-size: clamp(22px, 2.2vw, 32px); }
/* Marquee items fit their fixed-width slider slots */
.ncm-marquee__item { font-size: 17px; white-space: normal; text-align: center; justify-content: center; width: 100%; line-height: 1.2; }
.ncm-marquee__item::before { content: none; }
.ncm-marquee .client-logos__slider__item { border-left: 1px solid rgba(255,255,255,.18); padding: 0 12px; }

/* Promise: self-contained two-column card */
.ncm-promise-section { padding: 40px 0 0; background: #fff; }
.ncm-promise { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 56px; align-items: center; background: #f4f4f4; border-radius: 24px; padding: 40px; }
.ncm-promise__photo img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: top; border-radius: 16px; display: block; }
.ncm-promise__content p { color: #333; margin-bottom: 20px; }
.ncm-promise__sig { font-weight: 700; color: #000 !important; font-size: 18px; }
.ncm-promise__sig span { display: block; font-weight: 400; font-size: 14px; color: #666; }
@media (max-width: 991px) { .ncm-promise { grid-template-columns: 1fr; gap: 28px; padding: 20px; text-align: center; } .ncm-promise__photo img { max-width: 420px; margin: 0 auto; } }
main#main section.client-logos.ncm-marquee:not(.hero) { padding: 22px 0 !important; }

/* ---- Round 4 ---- */
/* Larger nav labels */
header#wrapper-navbar nav ul.navbar-nav .nav-link { font-size: 15px; font-weight: 500; }
@media (min-width: 1200px) { header#wrapper-navbar nav ul.navbar-nav .nav-link { font-size: 16px; } }
header#wrapper-navbar nav ul.navbar-nav .nav-link:hover { color: #fff; opacity: .7; }

/* Laptop + phone device mockup */
.ncm-device { position: relative; width: 100%; aspect-ratio: 826 / 540; }
.ncm-laptop { position: absolute; left: 0; top: 4%; width: 80%; }
.ncm-laptop__lid { background: #1b1b1b; border-radius: 14px 14px 0 0; padding: 3.2% 3.2% 2.4%; box-shadow: inset 0 0 0 2px #3a3a3a; }
.ncm-laptop__screen { aspect-ratio: 16 / 10; overflow: hidden; background: #fff; border-radius: 2px; }
.ncm-laptop__screen img, .ncm-phone__screen img { width: 100%; height: 100%; object-fit: cover; object-position: top center; display: block; }
.ncm-laptop__base { height: 0; padding-bottom: 4.2%; margin: 0 -6%; background: linear-gradient(180deg, #e9e9e9 0%, #c9c9c9 55%, #9d9d9d 100%); border-radius: 0 0 18px 18px / 0 0 60% 60%; position: relative; }
.ncm-laptop__base::before { content: ""; position: absolute; left: 50%; top: 0; transform: translateX(-50%); width: 16%; height: 40%; background: #b5b5b5; border-radius: 0 0 8px 8px; }
.ncm-phone { position: absolute; right: 0; bottom: 6%; width: 19%; background: #111; border-radius: 18% / 9%; padding: 2.2% 1.4%; box-shadow: inset 0 0 0 2px #3a3a3a, 0 20px 40px rgba(0,0,0,.35); }
.ncm-phone__screen { aspect-ratio: 9 / 19.5; overflow: hidden; border-radius: 14% / 6.5%; background: #fff; }
.ncm-phone__screen img { object-position: 12% top; }

/* Case study grid */
.ncm-cases { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.ncm-case { display: flex; flex-direction: column; border: 1px solid rgba(255,255,255,.16); border-radius: 16px; overflow: hidden; background: #0d0d0d; color: #fff; text-decoration: none; transition: transform .35s ease, border-color .35s ease; }
.ncm-case:hover { transform: translateY(-6px); border-color: #fff; color: #fff; }
.ncm-case__stage { background: radial-gradient(120% 90% at 50% 0%, #2a2a2a 0%, #121212 70%); padding: 36px 28px 24px; }
.ncm-case__body { padding: 24px 28px 30px; display: flex; flex-direction: column; gap: 10px; flex: 1; }
.ncm-case__body h3 { font-family: Archivo, sans-serif; font-weight: 600; font-size: 22px; margin: 0; color: #fff; }
.ncm-case__body p { color: #b3b3b3; font-size: 15px; margin: 0; flex: 1; }
.ncm-case__tags { list-style: none; display: flex; gap: 8px; padding: 0; margin: 0; }
.ncm-case__tags li { font-size: 11px; font-weight: 700; letter-spacing: .1em; border: 1px solid rgba(255,255,255,.35); border-radius: 999px; padding: 3px 10px; }
.ncm-case__link { font-weight: 600; margin-top: 6px; }
.ncm-case:hover .ncm-case__link span { margin-left: 4px; }
@media (max-width: 991px) { .ncm-cases { grid-template-columns: 1fr; max-width: 560px; margin: 0 auto; } }

/* Bento: device mockup instead of a cropped screenshot */
section.services-bento .services-bento-list__item-image.ncm-bento-device { aspect-ratio: auto; margin: 16px auto 28px !important; padding: 0 56px; }
/* Laptop only (phone removed) */
.ncm-device { aspect-ratio: auto; }
.ncm-laptop { position: relative; top: 0; width: 88%; margin: 0 auto; }

/* ---- Audit fixes ---- */
/* Case-study tags: neutralise theme list styles so all pills align */
.ncm-case .ncm-case__tags { align-items: center; }
.ncm-case .ncm-case__tags li { margin: 0 !important; padding: 3px 10px !important; line-height: 1.4 !important; font-size: 11px !important; position: static; }
.ncm-case .ncm-case__tags li::before, .ncm-case .ncm-case__tags li::after { content: none !important; display: none !important; }
/* Process: inactive steps readable, clickable-looking */
.process .process__steps .process__steps__item { opacity: .45; cursor: pointer; }
.process .process__steps .process__steps__item:hover { opacity: .75; }
.process .process__steps .process__steps__item.active { opacity: 1; }
.process__img img { border: 1px solid #e6e6e6; }
/* Reviews: rating pill on its own line */
.reviews .ncm-review-summary { display: flex; width: max-content; max-width: 100%; margin: 20px auto 0; }
/* Top bar: single line on phones */
@media (max-width: 767px) { header#wrapper-navbar .ncm-topbar .header-topbar_wrapper .topbar-content { flex-wrap: nowrap; } header#wrapper-navbar .ncm-topbar .header-topbar_wrapper .topbar-content p { font-size: 12px; white-space: nowrap; } }
@media (max-width: 991px) { .process .row.g-5 { --bs-gutter-x: 1.5rem; } }

/* ---- Round 5: coded B&W graphics replace screenshots ---- */
/* Headshots: monochrome, tighter crop beside the steps */
.problem-breakdown-image img, .ncm-promise__photo img { filter: grayscale(1) contrast(1.05); }
.problem-breakdown-image img { aspect-ratio: 1 / 1; object-position: 50% 18%; }

/* Score ring */
.ncm-ring { display: flex; flex-direction: column; align-items: center; gap: 8px; }
.ncm-ring svg { width: var(--ring); height: var(--ring); transform: rotate(-90deg); }
.ncm-ring circle { fill: none; stroke-width: 4; }
.ncm-ring__track { stroke: currentColor; opacity: .15; }
.ncm-ring__bar { stroke: currentColor; stroke-linecap: round; }
.ncm-ring text { transform: rotate(90deg); transform-origin: 30px 30px; fill: currentColor; font-family: champion, "Archivo", sans-serif; font-size: 19px; }
.ncm-ring__label { font-size: 11px; text-transform: uppercase; letter-spacing: .06em; text-align: center; line-height: 1.2; opacity: .7; }

/* Bento graphics share one frame */
section.services-bento .services-bento-list__item-image.ncm-bento-graphic { padding: 0 40px; }
.ncm-browser, .ncm-speed { width: 100%; border: 1px solid var(--ncm-line); border-radius: 14px; background: #0a0a0a; overflow: hidden; color: #fff; font-family: Archivo, sans-serif; }

/* Browser wireframe */
.ncm-browser__bar { display: flex; align-items: center; gap: 6px; padding: 10px 14px; border-bottom: 1px solid var(--ncm-line); }
.ncm-browser__bar i { width: 9px; height: 9px; border-radius: 50%; border: 1px solid rgba(255,255,255,.4); }
.ncm-browser__bar span { flex: 1; margin: 0 10px; padding: 4px 12px; border-radius: 999px; background: #1a1a1a; font-size: 12px; color: var(--ncm-muted); }
.ncm-browser__bar b { font-size: 11px; font-weight: 700; letter-spacing: .06em; border: 1px solid #fff; border-radius: 999px; padding: 2px 8px; }
.ncm-browser__page { padding: 16px; display: flex; flex-direction: column; gap: 14px; }
.ncm-browser__page span { display: block; height: 7px; border-radius: 4px; background: rgba(255,255,255,.16); }
.ncm-wf-nav { display: flex; align-items: center; gap: 10px; }
.ncm-wf-nav span { width: 34px; }
.ncm-wf-nav .ncm-wf-logo { width: 54px; height: 12px; background: #fff; margin-right: auto; }
.ncm-browser__page .ncm-wf-btn { width: 60px; height: 18px; background: #fff; border-radius: 4px; }
.ncm-wf-hero { display: grid; grid-template-columns: 1.3fr 1fr; gap: 16px; align-items: center; padding: 18px; border-radius: 10px; background: radial-gradient(120% 120% at 0% 0%, #262626 0%, #111 70%); }
.ncm-wf-copy { display: flex; flex-direction: column; gap: 8px; }
.ncm-wf-copy em { font-style: normal; font-size: 10px; text-transform: uppercase; letter-spacing: .12em; color: var(--ncm-muted); }
.ncm-wf-copy strong { font-family: champion, sans-serif; font-weight: 400; font-size: clamp(18px, 2.2vw, 28px); line-height: 1; text-transform: uppercase; margin-bottom: 4px; }
.ncm-browser__page .ncm-wf-copy .short { width: 60%; }
.ncm-wf-ctas { display: flex; gap: 8px; margin-top: 6px; }
.ncm-browser__page .ncm-wf-ctas span { width: 70px; height: 20px; border-radius: 4px; background: transparent; border: 1px solid rgba(255,255,255,.5); }
.ncm-browser__page .ncm-wf-ctas .solid, .ncm-browser__page .ncm-wf-form .solid { background: #fff; border-color: #fff; }
.ncm-wf-form { background: #fff; color: #000; border-radius: 8px; padding: 12px; display: flex; flex-direction: column; gap: 8px; }
.ncm-wf-form strong { font-size: 12px; }
.ncm-browser__page .ncm-wf-form span { height: 16px; border-radius: 4px; background: #fff; border: 1px solid #d6d6d6; }
.ncm-browser__page .ncm-wf-form .solid { background: #000; border-color: #000; }
.ncm-wf-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.ncm-browser__page .ncm-wf-cards span { height: 46px; border-radius: 8px; background: transparent; border: 1px solid var(--ncm-line); }

/* PageSpeed panel */
.ncm-speed { padding: 24px 20px 18px; display: flex; flex-direction: column; align-items: center; gap: 20px; }
.ncm-speed__row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; width: 100%; padding-bottom: 20px; border-bottom: 1px solid var(--ncm-line); }
.ncm-speed__main { display: flex; flex-direction: column; align-items: center; gap: 10px; }
.ncm-speed__main .ncm-ring text { font-size: 17px; }
.ncm-speed__main > span { font-size: 18px; }
.ncm-speed__legend { display: flex; gap: 18px; font-size: 12px; color: var(--ncm-muted); }
.ncm-speed__legend span { display: inline-flex; align-items: center; gap: 6px; }
.ncm-speed__legend i { width: 9px; height: 9px; border: 1px solid #fff; }
.ncm-speed__legend .lo { border-radius: 0; transform: rotate(45deg) scale(.85); }
.ncm-speed__legend .hi { border-radius: 50%; background: #fff; }

/* Process: light project report */
.ncm-report { width: 100%; border: 1px solid #e3e3e3; border-radius: 16px; background: #fff; padding: 28px; color: #000; font-family: Archivo, sans-serif; box-shadow: 0 24px 60px rgba(0,0,0,.06); }
.ncm-report__head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 18px; font-size: 18px; }
.ncm-report__pill { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; border: 1px solid #000; border-radius: 999px; padding: 3px 10px; }
.ncm-report__stages { list-style: none; padding: 0; margin: 0 0 24px; }
.ncm-report__stages li { display: flex; align-items: center; gap: 14px; padding: 14px 0; border-top: 1px solid #ececec; }
.ncm-report__stages li div { flex: 1; }
.ncm-report__stages strong { display: block; font-size: 16px; }
.ncm-report__stages em { font-style: normal; font-size: 13px; color: #6b6b6b; }
.ncm-report__stages b { font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; color: #6b6b6b; }
.ncm-report__dot { width: 22px; height: 22px; border-radius: 50%; border: 1.5px solid #000; flex-shrink: 0; position: relative; }
.ncm-report__stages .done .ncm-report__dot { background: #000; }
.ncm-report__stages .done .ncm-report__dot::after { content: ""; position: absolute; left: 7px; top: 3px; width: 6px; height: 11px; border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg); }
.ncm-report__stages .live .ncm-report__dot::after { content: ""; position: absolute; inset: 5px; border-radius: 50%; background: #000; animation: ncm-pulse 1.8s ease-in-out infinite; }
.ncm-report__stages .live b { color: #000; }
@keyframes ncm-pulse { 50% { opacity: .25; } }
.ncm-report__scores { background: #f4f4f4; border-radius: 12px; padding: 18px; }
.ncm-report__sub { display: block; font-size: 12px; text-transform: uppercase; letter-spacing: .08em; color: #6b6b6b; margin-bottom: 14px; }
.ncm-report__scores > div { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }

@media (max-width: 575px) {
  section.services-bento .services-bento-list__item-image.ncm-bento-graphic { padding: 0 16px; }
  .ncm-wf-hero { grid-template-columns: 1fr; }
  .ncm-wf-form { display: none; }
  .ncm-speed__row, .ncm-report__scores > div { grid-template-columns: repeat(2, 1fr); row-gap: 16px; }
  .ncm-report { padding: 20px; }
}
/* Bento graphics: override the theme's per-slot aspect ratios and offsets */
section.services-bento .services-bento-list .services-bento-list__item .services-bento-list__item-image.ncm-bento-graphic { aspect-ratio: auto; max-width: 600px; margin: 16px auto 40px !important; }

/* ---- Round 6: lead feed, signature, tools strip, photo placeholders ---- */
/* Signature */
.ncm-signature { display: block; font-family: "Mrs Saint Delafield", cursive; font-size: 64px; line-height: 1; color: #000; margin: 4px 0 -6px; transform: rotate(-4deg); transform-origin: left center; }
@media (max-width: 991px) { .ncm-signature { transform-origin: center; } }


/* Photo placeholder */
.ncm-ph { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; text-align: center; padding: 24px; border: 2px dashed currentColor; border-radius: 16px; color: #8a8a8a; background: repeating-linear-gradient(135deg, transparent 0 14px, rgba(128,128,128,.07) 14px 28px); }
.ncm-ph strong { color: inherit; font-size: 15px; text-transform: uppercase; letter-spacing: .08em; margin-top: 4px; }
.ncm-ph span { font-size: 14px; max-width: 34ch; line-height: 1.4; }
.ncm-ph em { font-style: normal; font-size: 12px; opacity: .8; font-family: ui-monospace, monospace; }
.ncm-promise__photo .ncm-ph, .ncm-promise__photo img { width: 100%; aspect-ratio: 4 / 5; border-radius: 16px; display: flex; object-fit: cover; filter: grayscale(1); }
@media (max-width: 991px) { .ncm-promise__photo .ncm-ph { max-width: 420px; margin: 0 auto; } }

/* Case cards: the site mockup is the hero of each card */
.ncm-case .ncm-case__stage { padding: 40px 32px 32px; border-bottom: 1px solid rgba(255,255,255,.08); }
.ncm-case .ncm-laptop { width: 100%; transition: transform .45s cubic-bezier(.2,.7,.2,1); }
.ncm-case:hover .ncm-laptop { transform: translateY(-6px) scale(1.02); }

/* ---- Round 7: per-step process visual + compass brand panel ---- */
/* Process visual: one pane per step, follows the open accordion item */
.ncm-pv { position: relative; width: 100%; display: grid; border: 1px solid #e3e3e3; border-radius: 16px; background: #fff; color: #000; font-family: Archivo, sans-serif; box-shadow: 0 24px 60px rgba(0,0,0,.06); overflow: hidden; }
.ncm-pv__pane { grid-area: 1 / 1; padding: 28px; display: flex; flex-direction: column; gap: 22px; opacity: 0; visibility: hidden; transform: translateY(8px); transition: opacity .35s ease, transform .35s ease, visibility 0s .35s; }
.ncm-pv[data-step="1"] [data-pane="1"], .ncm-pv[data-step="2"] [data-pane="2"], .ncm-pv[data-step="3"] [data-pane="3"], .ncm-pv[data-step="4"] [data-pane="4"] { opacity: 1; visibility: visible; transform: none; transition: opacity .35s ease, transform .35s ease; }
.ncm-pv__head { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; }
.ncm-pv__head strong { display: block; font-size: 22px; line-height: 1.2; }
.ncm-pv__step { display: block; font-size: 12px; text-transform: uppercase; letter-spacing: .1em; color: #6b6b6b; margin-bottom: 6px; }
.ncm-pv__pill { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; border: 1px solid #c9c9c9; color: #6b6b6b; border-radius: 999px; padding: 3px 10px; }
.ncm-pv strong { color: #000; }
/* 01 Research */
.ncm-pv__list { display: flex; flex-direction: column; gap: 8px; }
.ncm-pv__rank { display: flex; align-items: center; gap: 14px; padding: 12px 14px; border: 1px solid #ececec; border-radius: 10px; }
.ncm-pv__rank b { width: 28px; height: 28px; border-radius: 50%; border: 1px solid #000; display: inline-flex; align-items: center; justify-content: center; font-size: 13px; flex-shrink: 0; }
.ncm-pv__rank div { flex: 1; }
.ncm-pv__rank strong { display: block; font-size: 15px; }
.ncm-pv__rank span { font-size: 13px; color: #6b6b6b; }
.ncm-pv__rank.is-you { background: #000; border-color: #000; }
.ncm-pv__rank.is-you strong { color: #fff; }
.ncm-pv__rank.is-you span { color: #b3b3b3; }
.ncm-pv__rank.is-you b { background: #fff; color: #000; border-color: #fff; }
.ncm-pv__rank em { font-style: normal; font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #000; background: #fff; border-radius: 999px; padding: 3px 10px; }
.ncm-pv__chips { display: flex; flex-wrap: wrap; gap: 8px; }
.ncm-pv__chips span { font-size: 13px; padding: 6px 12px; border-radius: 999px; background: #f4f4f4; color: #333; }
.ncm-pv__chips span::before { content: "!"; display: inline-flex; width: 16px; height: 16px; margin-right: 6px; border-radius: 50%; border: 1px solid currentColor; align-items: center; justify-content: center; font-size: 10px; font-weight: 700; }
/* 02 Strategy */
.ncm-pv__bars { display: flex; flex-direction: column; gap: 18px; }
.ncm-pv__bar > div { display: flex; justify-content: space-between; font-size: 15px; margin-bottom: 8px; }
.ncm-pv__bar > div span { font-family: champion, sans-serif; font-size: 20px; line-height: 1; }
.ncm-pv__bar i { display: block; height: 10px; border-radius: 999px; background: #efefef; overflow: hidden; }
.ncm-pv__bar i b { display: block; height: 100%; border-radius: inherit; background: #000; transform-origin: left; }
.ncm-pv[data-step="2"] .ncm-pv__bar i b { animation: ncm-grow-x .8s cubic-bezier(.2,.7,.2,1) both; }
@keyframes ncm-grow-x { from { transform: scaleX(0); } }
.ncm-pv__goals { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.ncm-pv__goals div { background: #f4f4f4; border-radius: 10px; padding: 14px; }
.ncm-pv__goals span { display: block; font-size: 11px; text-transform: uppercase; letter-spacing: .08em; color: #6b6b6b; margin-bottom: 6px; }
.ncm-pv__goals strong { font-size: 15px; }
/* 03 Execution */
.ncm-pv__checks { list-style: none; margin: 0; padding: 0; }
.ncm-pv__checks li { display: flex; align-items: center; gap: 14px; padding: 14px 0; border-top: 1px solid #ececec; font-size: 16px; font-weight: 500; margin: 0 !important; }
.ncm-pv__checks li::before { content: none !important; }
.ncm-pv__checks li:first-child { border-top: 0; }
.ncm-pv__checks i { width: 26px; height: 26px; border-radius: 50%; background: #000; color: #fff; display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; }
.ncm-pv[data-step="3"] .ncm-pv__checks li { animation: ncm-feed-in .45s ease both; }
.ncm-pv[data-step="3"] .ncm-pv__checks li:nth-child(2) { animation-delay: .08s; }
.ncm-pv[data-step="3"] .ncm-pv__checks li:nth-child(3) { animation-delay: .16s; }
.ncm-pv[data-step="3"] .ncm-pv__checks li:nth-child(4) { animation-delay: .24s; }
.ncm-pv[data-step="3"] .ncm-pv__checks li:nth-child(5) { animation-delay: .32s; }
/* 04 Extension */
.ncm-pv__chart { display: grid; grid-template-columns: repeat(6, 1fr); gap: 12px; align-items: end; height: 220px; padding-bottom: 4px; border-bottom: 1px solid #ececec; }
.ncm-pv__chart > div { height: 100%; display: flex; flex-direction: column; justify-content: flex-end; align-items: stretch; gap: 8px; }
.ncm-pv__chart b { position: relative; display: block; background: #e6e6e6; border-radius: 6px 6px 0 0; transform-origin: bottom; }
.ncm-pv__chart > div:last-child b { background: #000; }
.ncm-pv__chart em { position: absolute; top: -22px; left: 0; right: 0; text-align: center; font-style: normal; font-size: 13px; font-weight: 700; }
.ncm-pv__chart span { font-size: 12px; text-align: center; color: #6b6b6b; text-transform: uppercase; letter-spacing: .06em; }
.ncm-pv[data-step="4"] .ncm-pv__chart b { animation: ncm-grow-y .8s cubic-bezier(.2,.7,.2,1) both; }
@keyframes ncm-grow-y { from { transform: scaleY(0); } }
@media (prefers-reduced-motion: reduce) { .ncm-pv *, .ncm-pv__pane { animation: none !important; transition: none !important; } }
@media (max-width: 575px) { .ncm-pv__pane { padding: 20px; } .ncm-pv__goals { grid-template-columns: 1fr; } .ncm-pv__chart { height: 180px; gap: 8px; } }

/* About: split layout, intro left, connected lead pipeline right */
.ncm-about { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: 72px; align-items: center; }
.ncm-about__intro .section-header { text-align: left; }
.ncm-about__intro p { color: #bdbdbd; font-size: 18px; line-height: 1.65; margin: 20px 0 32px; max-width: 46ch; }
.ncm-flow { list-style: none; margin: 0; padding: 0; position: relative; display: flex; flex-direction: column; gap: 14px; }
.ncm-flow__step:not(.is-last)::after { content: ""; position: absolute; left: 31px; top: 86px; bottom: -36px; width: 2px; background: linear-gradient(180deg, rgba(255,255,255,.18), rgba(255,255,255,.5)); }
.ncm-flow__step { position: relative; display: flex; gap: 22px; align-items: flex-start; margin: 0 !important; padding: 22px 26px 22px 0; border-radius: 18px; transition: background .3s ease; }
.ncm-flow__step:hover { background: rgba(255,255,255,.04); }
.ncm-flow__node { position: relative; z-index: 1; flex-shrink: 0; width: 64px; height: 64px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; color: #fff; background: #0d0d0d; border: 1px solid rgba(255,255,255,.28); box-shadow: 0 0 0 8px #000; }
.ncm-flow__step.is-last .ncm-flow__node { background: #fff; color: #000; border-color: #fff; box-shadow: 0 0 0 8px #000, 0 0 40px rgba(255,255,255,.25); }
.ncm-flow__body { padding-top: 4px; }
.ncm-flow__tag { display: block; font-size: 12px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: #8a8a8a; margin-bottom: 6px; }
.ncm-flow__body h3 { color: #fff; font-family: Archivo, sans-serif; font-weight: 700; font-size: 24px; margin: 0 0 8px; }
.ncm-flow__body p { color: #a8a8a8; font-size: 16px; line-height: 1.6; margin: 0; max-width: 46ch; }
@media (max-width: 991px) { .ncm-about { grid-template-columns: 1fr; gap: 40px; } .ncm-about__intro { text-align: center; } .ncm-about__intro .section-header { text-align: center; } .ncm-about__intro p { margin-left: auto; margin-right: auto; } }
@media (max-width: 575px) { .ncm-flow__step:not(.is-last)::after { left: 25px; top: 74px; } .ncm-flow__node { width: 52px; height: 52px; } .ncm-flow__step { gap: 16px; padding-right: 8px; } .ncm-flow__body h3 { font-size: 20px; } }

@keyframes ncm-feed-in { from { opacity: 0; transform: translateY(12px) scale(.97); } }

/* ---- Round 8: everything ~10% larger on desktop screens (1200px+, where the nav still fits) ---- */
@media (min-width: 1200px) { body { zoom: 1.1; } }
/* Zoomed containers keep their side margins instead of filling the screen */
@media (min-width: 1200px) { .container, .container-lg { max-width: min(1140px, calc(100% / 1.1 - 64px)) !important; } }
@media (min-width: 1400px) { .container, .container-lg { max-width: min(1240px, calc(100% / 1.1 - 64px)) !important; } }
/* Nav labels never wrap; tighter spacing on smaller desktops */
header#wrapper-navbar #main-nav .nav-link, header#wrapper-navbar #main-nav .phone-link, header#wrapper-navbar #main-nav .btn--big { white-space: nowrap; }
@media (min-width: 1200px) and (max-width: 1399px) {
  header#wrapper-navbar nav ul.navbar-nav .nav-link { font-size: 14px; padding-left: 6px !important; padding-right: 6px !important; }
  header#wrapper-navbar nav ul.navbar-nav { gap: 8px !important; }
  header#wrapper-navbar #main-nav .phone-link { display: none !important; } /* number stays in the top bar */
}
header#wrapper-navbar #main-nav .navbar-brand { flex-shrink: 0; }
/* Hero headline keeps two lines on zoomed desktops */
@media (min-width: 1200px) { .hero--main-value .col-lg-10 { flex: 0 0 100%; max-width: 100%; } .hero--main-value .hero__content { max-width: 760px; } }
.ncm-promise__photo img { filter: none !important; }

/* ---- Round 9: smooth scrolling + scroll-in transitions (see ncm.js) ---- */
html.lenis, html.lenis body { height: auto; }
html.lenis, html.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-smooth [data-lenis-prevent] { overscroll-behavior: contain; }
.lenis.lenis-stopped { overflow: hidden; }
html { scroll-padding-top: 120px; zoom: .9; }

.ncm-anim .ncm-reveal { opacity: 0; transform: translate3d(0, 28px, 0); transition: opacity .8s cubic-bezier(.2,.7,.2,1), transform .8s cubic-bezier(.2,.7,.2,1); transition-delay: var(--reveal-delay, 0ms); will-change: opacity, transform; }
.ncm-anim .ncm-reveal.is-in { opacity: 1; transform: none; }
/* Cards keep their own hover lift once revealed */
.ncm-anim .ncm-reveal.is-in.ncm-step-card, .ncm-anim .ncm-reveal.is-in.ncm-case, .ncm-anim .ncm-reveal.is-in.ncm-why__card { transition: opacity .8s cubic-bezier(.2,.7,.2,1) var(--reveal-delay, 0ms), transform .35s ease, border-color .3s ease, box-shadow .3s ease; }
.ncm-anim .ncm-step-card.is-in:hover, .ncm-anim .ncm-why__card.is-in:hover { transform: translateY(-4px); }
.ncm-anim .ncm-case.is-in:hover { transform: translateY(-6px); }

.ncm-hero-in { animation: ncm-hero-in .9s cubic-bezier(.2,.7,.2,1) both; animation-delay: var(--reveal-delay, 0ms); }
@keyframes ncm-hero-in { from { opacity: 0; transform: translate3d(0, 22px, 0); } }
@media (prefers-reduced-motion: reduce) { .ncm-hero-in { animation: none; } }

/* Hero underline draws itself in, like a pen stroke */
.ncm-underline svg { clip-path: inset(-50% 100% -50% -2%); animation: ncm-wipe 1s cubic-bezier(.65,0,.35,1) .75s forwards; }
@keyframes ncm-wipe { to { clip-path: inset(-50% -2% -50% -2%); } }
@keyframes ncm-draw { to { stroke-dashoffset: 0; } }
@media (prefers-reduced-motion: reduce) { .ncm-underline svg { animation: none; clip-path: none; } }


/* Hero proof panel: glass card with client faces + rating | partner lockups */
.ncm-pp { display: flex; align-items: center; justify-content: space-between; gap: 28px; width: 100%; max-width: 780px; margin: 44px auto 0; padding: 20px 28px; text-align: left;
  border: 1px solid rgba(255,255,255,.12); border-radius: 18px; background: linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.02)); backdrop-filter: blur(8px); box-shadow: 0 20px 50px rgba(0,0,0,.35); }
.ncm-pp__social { display: flex; align-items: center; gap: 16px; }
.ncm-pp__faces { list-style: none; display: flex; margin: 0; padding: 0; }
.ncm-pp__faces li { margin: 0 0 0 -12px !important; }
.ncm-pp__faces li:first-child { margin-left: 0 !important; }
.ncm-pp__faces img { width: 44px; height: 44px; border-radius: 50%; object-fit: cover; border: 2px solid #1c1c1c; display: block; }
.ncm-pp__rating { display: flex; align-items: center; gap: 10px; }
.ncm-pp__stars { display: flex; gap: 2px; }
.ncm-pp__stars svg { width: 17px; height: 17px; fill: #fff; }
.ncm-pp__rating strong { font-family: champion, sans-serif; font-weight: 400; font-size: 24px; line-height: 1; color: #fff; }
.ncm-pp__sub { display: block; margin-top: 4px; font-size: 13px; color: #a3a3a3; }
.ncm-pp__partners { display: flex; align-items: center; gap: 24px; padding-left: 28px; border-left: 1px solid rgba(255,255,255,.12); }
.ncm-pp__partner { display: flex; align-items: center; gap: 10px; }
.ncm-pp__partner img { width: 34px; height: 34px; flex-shrink: 0; }
.ncm-pp__partner.is-official img { width: auto; height: 44px; }
.ncm-pp__partner strong { display: block; font-size: 15px; line-height: 1.1; color: #fff; }
.ncm-pp__partner span { display: block; font-family: champion, sans-serif; font-size: 15px; line-height: 1.1; text-transform: uppercase; letter-spacing: .04em; color: #d6d6d6; }
@media (max-width: 767px) {
  .ncm-pp { flex-direction: column; gap: 18px; padding: 20px; text-align: center; margin-top: 36px; }
  .ncm-pp__social { flex-direction: column; gap: 10px; }
  .ncm-pp__rating { justify-content: center; }
  .ncm-pp__partners { padding: 18px 0 0; border-left: 0; border-top: 1px solid rgba(255,255,255,.12); width: 100%; justify-content: center; gap: 20px; }
  .ncm-pp__partner { text-align: left; }
  .ncm-pp__faces img { width: 38px; height: 38px; }
}
.ncm-pp { max-width: 820px; }
.ncm-pp__sub, .ncm-pp__partner span, .ncm-pp__partner strong { white-space: nowrap; }
/* Hero eyebrow: the page's h1 (SEO), styled as a small label above the big headline */
.hero .ncm-eyebrow { display: inline-flex; align-items: center; gap: 14px; margin: 0 0 22px; font-family: Archivo, sans-serif; font-size: 14px; font-weight: 600; line-height: 1.3; letter-spacing: .16em; text-transform: uppercase; color: rgba(255,255,255,.72); }
@media (max-width: 575px) { .hero .ncm-eyebrow { font-size: 11px; letter-spacing: .12em; gap: 10px; margin-bottom: 16px; } }
/* CTA banner headline fits on one line on desktop */
.cta-banner .sh-headline.jumbo-xl { font-size: clamp(36px, 4.6vw, 68px); line-height: 1; }
.cta-banner .section-header { max-width: none; width: 100%; }
@media (min-width: 992px) { .cta-banner .sh-headline.jumbo-xl { white-space: nowrap; } }


/* ---- Round 11: Relentless-inspired sections ---- */
/* Case cards lead with the outcome (client's words), then the company */
.ncm-case__outcome { font-family: Archivo, sans-serif; font-size: 21px; line-height: 1.35; font-weight: 600; color: #fff !important; margin: 6px 0 0 !important; flex: 0 0 auto !important; letter-spacing: -.01em; }
.ncm-case__by { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; color: #9a9a9a; }
.ncm-case__by img { width: 24px; height: 24px; border-radius: 50%; object-fit: cover; }
.ncm-case__body h3 { font-size: 15px !important; font-weight: 600; color: #cfcfcf !important; text-transform: uppercase; letter-spacing: .06em; margin-top: 8px !important; padding-top: 14px; border-top: 1px solid rgba(255,255,255,.1); }
/* Free growth audit: black card on the white page, checklist + a coded "audit document" */
.ncm-audit-section { padding: 96px 0 24px; background: #fff; }
.ncm-audit { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: 56px; align-items: center; padding: 56px; border-radius: 24px; color: #fff;
  background: radial-gradient(120% 120% at 100% 0%, #262626 0%, #0a0a0a 60%); }
.ncm-audit .sh-micro { color: #fff !important; opacity: .6; }
.ncm-audit .sh-headline { color: #fff; margin-bottom: 16px; }
.ncm-audit__content > p { color: #bdbdbd; font-size: 17px; line-height: 1.6; margin-bottom: 24px; max-width: 52ch; }
.ncm-audit__list { list-style: none; padding: 0; margin: 0 0 32px; display: grid; gap: 14px; }
.ncm-audit__list li { position: relative; margin: 0 !important; padding-left: 34px; color: #bdbdbd; font-size: 15px; line-height: 1.5; }
.ncm-audit__list li::before { content: ""; position: absolute; left: 0; top: 2px; width: 22px; height: 22px; border-radius: 50%; background: #fff
  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12 5 5L20 7'/%3E%3C/svg%3E") center / 12px no-repeat; }
.ncm-audit__list strong { display: block; color: #fff; font-size: 16px; }
.ncm-audit__doc { background: #fff; color: #000; border-radius: 16px; padding: 24px; box-shadow: 0 30px 70px rgba(0,0,0,.45); transform: rotate(1.5deg); }
.ncm-audit__doc-head { display: flex; justify-content: space-between; align-items: baseline; padding-bottom: 16px; margin-bottom: 4px; border-bottom: 2px solid #000; }
.ncm-audit__doc-head span { font-family: champion, sans-serif; font-size: 24px; text-transform: uppercase; line-height: 1; }
.ncm-audit__doc-head em { font-style: normal; font-size: 12px; color: #616161; text-transform: uppercase; letter-spacing: .08em; }
.ncm-audit__row { display: grid; grid-template-columns: auto 1fr 90px; align-items: center; gap: 14px; padding: 14px 0; border-bottom: 1px solid #ececec; }
.ncm-audit__n { font-family: champion, sans-serif; font-size: 18px; color: #9a9a9a; }
.ncm-audit__row strong { display: block; font-size: 15px; }
.ncm-audit__row em { font-style: normal; font-size: 12px; color: #616161; }
.ncm-audit__bar { height: 6px; border-radius: 3px; background: #eee; overflow: hidden; }
.ncm-audit__bar i { display: block; height: 100%; background: #000; border-radius: inherit; }
.ncm-audit__doc-foot { display: flex; justify-content: space-between; align-items: center; margin-top: 16px; padding: 14px 16px; background: #f4f4f4; border-radius: 10px; }
.ncm-audit__doc-foot span { font-size: 12px; color: #616161; text-transform: uppercase; letter-spacing: .08em; }
.ncm-audit__doc-foot strong { font-size: 14px; }
@media (max-width: 991px) { .ncm-audit { grid-template-columns: 1fr; padding: 32px 24px; gap: 36px; } .ncm-audit__doc { transform: none; } .ncm-audit-section { padding-top: 64px; } }
@media (max-width: 575px) { .ncm-audit__doc { display: none; } .ncm-audit { gap: 0; } }
/* Promise now follows a dark section: give it room to breathe */
main#main section.ncm-promise-section.ncm-promise-section[class] { padding-top: 96px !important; }
@media (max-width: 767px) { main#main section.ncm-promise-section.ncm-promise-section[class] { padding-top: 56px !important; } }


/* ---- Round 12: Services bento: dark cards with a soft cool glow, mockups that bleed off the edge ---- */
section.services-bento .services-bento-list .services-bento-list__item { border-radius: 18px; border: 1px solid rgba(255,255,255,.12);
  background: radial-gradient(90% 60% at 50% 110%, rgba(120,135,165,.32) 0%, rgba(120,135,165,0) 70%), linear-gradient(180deg, #0b0b0c 0%, #111216 55%, #1a1d25 100%); }
section.services-bento .services-bento-list .services-bento-list__item:hover { border-color: rgba(255,255,255,.28); }
/* Mockups sit low in the card and run off its bottom edge */
section.services-bento .services-bento-list .services-bento-list__item .services-bento-list__item-image.ncm-bento-mock,
section.services-bento .services-bento-list .services-bento-list__item .services-bento-list__item-image.ncm-bento-graphic { aspect-ratio: auto; max-width: none; width: auto; margin: 32px 0 -2px 44px !important; padding: 0 !important; }
.ncm-bento-graphic .ncm-browser, .ncm-bento-graphic .ncm-speed, .ncm-bento-mock .ncm-mk { border-bottom-left-radius: 0; border-bottom-right-radius: 0; border-top-right-radius: 0; border-right: 0; border-bottom: 0; }
.ncm-bento-graphic .ncm-speed { padding-bottom: 28px; }
/* Shared mock chrome */
.ncm-mk { background: #0d0e11; border: 1px solid rgba(255,255,255,.14); border-radius: 14px; overflow: hidden; color: #fff; font-family: Archivo, sans-serif; box-shadow: 0 -10px 40px rgba(0,0,0,.35); }
.ncm-mk-stars { color: #fff; letter-spacing: 1px; font-size: 11px; }
/* Google search mock */
.ncm-mk-search__bar { display: flex; align-items: center; gap: 10px; padding: 14px 18px; border-bottom: 1px solid rgba(255,255,255,.08); color: #9a9a9a; }
.ncm-mk-search__bar span { flex: 1; color: #fff; font-size: 14px; }
.ncm-mk-search__bar em { font-style: normal; font-size: 12px; }
.ncm-mk-search__label { padding: 12px 18px 6px; font-size: 12px; color: #8a8a8a; }
.ncm-mk-result { display: flex; align-items: center; gap: 14px; margin: 6px 0 6px 12px; padding: 14px 18px 14px 14px; border-radius: 12px 0 0 12px; border: 1px solid rgba(255,255,255,.08); border-right: 0; background: rgba(255,255,255,.02); }
.ncm-mk-result.is-you { background: rgba(255,255,255,.07); border-color: rgba(255,255,255,.22); }
.ncm-mk-mono { flex-shrink: 0; width: 44px; height: 44px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-weight: 700; font-size: 14px; background: #1d1f25; border: 1px solid rgba(255,255,255,.18); }
.ncm-mk-result.is-you .ncm-mk-mono { background: #fff; color: #000; }
.ncm-mk-result__body { flex: 1; min-width: 0; }
.ncm-mk-result__body strong { display: block; font-size: 15px; }
.ncm-mk-result__body span, .ncm-mk-result__body em { display: flex; align-items: center; gap: 4px; font-size: 12px; color: #9a9a9a; font-style: normal; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ncm-mk-call { display: inline-flex; align-items: center; gap: 6px; padding: 6px 14px; border-radius: 999px; border: 1px solid rgba(255,255,255,.35); font-size: 13px; font-weight: 600; flex-shrink: 0; }
.ncm-mk-call.is-solid { background: #fff; color: #000; border-color: #fff; }
/* Google Business Profile mock */
.ncm-mk-gbp__map { position: relative; height: 92px; background:
  linear-gradient(115deg, transparent 46%, rgba(255,255,255,.07) 46% 49%, transparent 49%),
  linear-gradient(25deg, transparent 60%, rgba(255,255,255,.06) 60% 62%, transparent 62%),
  repeating-linear-gradient(0deg, rgba(255,255,255,.03) 0 1px, transparent 1px 22px), repeating-linear-gradient(90deg, rgba(255,255,255,.03) 0 1px, transparent 1px 22px), #15171c; }
.ncm-mk-gbp__pin { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -60%); width: 36px; height: 36px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background: #fff; color: #000; box-shadow: 0 0 0 8px rgba(255,255,255,.12); }
.ncm-mk-gbp__body { padding: 18px 20px 22px; }
.ncm-mk-gbp__title { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.ncm-mk-gbp__title strong { font-size: 18px; }
.ncm-mk-verified { font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; padding: 4px 10px; border-radius: 999px; border: 1px solid rgba(255,255,255,.35); }
.ncm-mk-gbp__rating { margin-top: 6px; font-size: 13px; display: flex; align-items: center; gap: 6px; }
.ncm-mk-gbp__rating span { color: #9a9a9a; }
.ncm-mk-gbp__actions { display: grid; grid-template-columns: repeat(4, 1fr); margin: 18px 0 14px; padding: 14px 0; border-top: 1px solid rgba(255,255,255,.08); border-bottom: 1px solid rgba(255,255,255,.08); }
.ncm-mk-gbp__actions div { display: flex; flex-direction: column; align-items: center; gap: 6px; }
.ncm-mk-gbp__actions div + div { border-left: 1px solid rgba(255,255,255,.08); }
.ncm-mk-gbp__actions span { width: 38px; height: 38px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background: #1d1f25; border: 1px solid rgba(255,255,255,.16); }
.ncm-mk-gbp__actions div:nth-child(3) span { background: #fff; color: #000; border-color: #fff; }
.ncm-mk-gbp__actions em { font-style: normal; font-size: 11px; color: #9a9a9a; }
.ncm-mk-gbp__line { display: flex; align-items: center; gap: 8px; font-size: 13px; color: #bdbdbd; margin-top: 8px; }
.ncm-mk-gbp__line.is-open { color: #9a9a9a; font-size: 12px; }
@media (max-width: 575px) {
  section.services-bento .services-bento-list .services-bento-list__item .services-bento-list__item-image.ncm-bento-mock,
  section.services-bento .services-bento-list .services-bento-list__item .services-bento-list__item-image.ncm-bento-graphic { margin-left: 20px !important; }
  .ncm-mk-result__body em { display: none; }
}
section.services-bento .services-bento-list .services-bento-list__item { background: radial-gradient(110% 75% at 50% 118%, rgba(112,132,178,.55) 0%, rgba(80,96,135,.18) 45%, rgba(80,96,135,0) 75%), linear-gradient(180deg, #0b0b0c 0%, #101217 50%, #1b2030 100%); }
section.services-bento .services-bento-list .services-bento-list__item { background: radial-gradient(120% 70% at 50% 105%, rgba(105,125,175,.5) 0%, rgba(105,125,175,0) 70%), linear-gradient(180deg, #0c0c0e 0%, #121520 45%, #1f2639 80%, #2a3350 100%); }
.ncm-mk, .ncm-bento-graphic .ncm-browser, .ncm-bento-graphic .ncm-speed { background: rgba(12,13,17,.92); }
@media (max-width: 575px) { .ncm-mk-result__body span { white-space: normal; flex-wrap: wrap; row-gap: 0; } }
/* Neutral glow (no blue): soft white light rising from the card bottom */
section.services-bento .services-bento-list .services-bento-list__item { background: radial-gradient(120% 70% at 50% 108%, rgba(255,255,255,.16) 0%, rgba(255,255,255,0) 70%), linear-gradient(180deg, #0b0b0b 0%, #111 45%, #1c1c1c 80%, #262626 100%); }

/* Who We Work With: nine compact trade tiles (3x3) */
.industry-callout .row.g-4 { --bs-gutter-y: 1rem; --bs-gutter-x: 1rem; }
.industry-callout .card--service-tiles { padding: 22px 26px; }
.industry-callout .card--service-tiles > .d-flex { justify-content: flex-start !important; gap: 16px !important; }
.industry-callout .card--service-tiles .card--service-tiles__icon { min-width: 0; width: 44px; height: 44px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; border: 1px solid rgba(255,255,255,.25); }
.industry-callout .card--service-tiles .card--service-tiles__icon svg { width: 22px; height: 22px; }
.industry-callout .card--service-tiles .lvl-3 { font-size: clamp(20px, 1.8vw, 26px); }
@media (max-width: 575px) { .industry-callout .card--service-tiles { padding: 16px; } .industry-callout .card--service-tiles > .d-flex { gap: 10px !important; } .industry-callout .card--service-tiles .card--service-tiles__icon { width: 36px; height: 36px; } .industry-callout .card--service-tiles .lvl-3 { font-size: 17px; } }
.industry-callout .industry-callout__wrapper { padding-top: 16px !important; }

/* ---- Promise: transparent cutout of Drew standing on the card's bottom edge ---- */
.ncm-promise { overflow: hidden; padding-bottom: 0; }
.ncm-promise__content { padding-bottom: 40px; }
.ncm-promise__photo { position: relative; align-self: end; display: flex; justify-content: center; }
.ncm-promise__photo::before { content: ""; position: absolute; left: 50%; bottom: 0; width: 92%; aspect-ratio: 1; transform: translate(-50%, 8%); border-radius: 50%; background: radial-gradient(circle at 50% 40%, #fff 0%, #e6e6e6 70%); }
.ncm-promise__photo img.ncm-promise__img { position: relative; width: 100%; max-width: 440px; height: auto; aspect-ratio: auto; object-fit: contain; border-radius: 0; filter: drop-shadow(0 18px 30px rgba(0,0,0,.12)) !important; }
@media (max-width: 991px) { .ncm-promise { padding-bottom: 0; } .ncm-promise__photo { order: 2; } .ncm-promise__content { padding-bottom: 0; } .ncm-promise__photo img.ncm-promise__img { max-width: 340px; } }

/* ---------- Blog ---------- */
.ncm-blog-body { background: #fff; }
.ncm-blog-hero { background: linear-gradient(180deg, #0a0a0a 30%, #1e1e1e 100%); padding: calc(73px + 120px) 0 72px; }
.ncm-blog-eyebrow { margin: 0 0 18px; font-family: Archivo, sans-serif; font-size: 14px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: rgba(255,255,255,.72); }
.ncm-blog-hero .sh-headline { max-width: 16ch; margin: 0 auto; }
.ncm-blog-hero__intro { max-width: 60ch; margin: 22px auto 0; color: #c4c4c4; font-size: 18px; line-height: 1.65; }
.ncm-blog-filter { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-top: 40px; }
.ncm-blog-filter button { font: 600 14px/1 Archivo, sans-serif; color: #fff; background: transparent; border: 1px solid rgba(255,255,255,.28); border-radius: 99px; padding: 11px 18px; cursor: pointer; transition: background .2s, color .2s, border-color .2s; }
.ncm-blog-filter button:hover { border-color: #fff; }
.ncm-blog-filter button.is-active { background: #fff; color: #000; border-color: #fff; }
.ncm-blog-list { background: #fff; padding: 72px 0 96px; }

.ncm-cover { position: relative; aspect-ratio: 16 / 10; border-radius: 14px; overflow: hidden; display: flex; align-items: center; justify-content: center; color: #000;
  background: radial-gradient(120% 90% at 50% 0%, #2a2a2a 0%, #101010 60%, #050505 100%); }
.ncm-cover::before { content: ""; position: absolute; inset: 0; background-image: linear-gradient(rgba(255,255,255,.05) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.05) 1px, transparent 1px); background-size: 28px 28px; mask-image: radial-gradient(circle at 50% 50%, #000, transparent 75%); }
.ncm-cover__disc { position: relative; width: 84px; height: 84px; border-radius: 50%; background: #fff; display: grid; place-items: center; box-shadow: 0 0 0 10px rgba(255,255,255,.06), 0 0 0 22px rgba(255,255,255,.03), 0 18px 40px rgba(0,0,0,.6); transition: transform .5s cubic-bezier(.2,.7,.2,1); }
.ncm-cover--big .ncm-cover__disc { width: 116px; height: 116px; }
.ncm-cover__cat, .ncm-cover__read { position: absolute; font: 600 11px/1 Archivo, sans-serif; letter-spacing: .14em; text-transform: uppercase; color: rgba(255,255,255,.7); }
.ncm-cover__cat { top: 16px; left: 18px; } .ncm-cover__read { bottom: 16px; right: 18px; }

.ncm-post-meta { display: flex; flex-wrap: wrap; gap: 6px 14px; font: 600 12px/1.3 Archivo, sans-serif; letter-spacing: .08em; text-transform: uppercase; color: #616161; }
.ncm-post-meta span + span::before { content: "·"; margin-right: 14px; }

.ncm-feature { display: grid; grid-template-columns: 1.15fr 1fr; gap: 48px; align-items: center; padding: 28px; border: 1px solid #e6e6e6; border-radius: 22px; margin-bottom: 56px; color: #000; text-decoration: none; transition: border-color .3s, box-shadow .3s; }
.ncm-feature:hover { border-color: #000; box-shadow: 0 24px 60px rgba(0,0,0,.08); color: #000; }
.ncm-feature:hover .ncm-cover__disc, .ncm-post-card:hover .ncm-cover__disc { transform: scale(1.08) rotate(-6deg); }
.ncm-feature__tag { display: inline-block; margin-bottom: 16px; padding: 6px 12px; border-radius: 99px; background: #000; color: #fff; font: 700 11px/1 Archivo, sans-serif; letter-spacing: .12em; text-transform: uppercase; }
.ncm-feature h2 { margin: 14px 0 14px; font-family: Archivo, sans-serif; font-weight: 700; font-size: 36px; line-height: 1.15; color: #000; }
.ncm-feature p { margin: 0 0 28px; color: #444; font-size: 18px; line-height: 1.65; }

.ncm-blog-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; }
.ncm-post-card { display: flex; flex-direction: column; gap: 20px; color: #000; text-decoration: none; }
.ncm-post-card[hidden] { display: none; }
.ncm-post-card:hover { color: #000; }
.ncm-post-card__body { display: flex; flex-direction: column; gap: 12px; flex: 1; }
.ncm-post-card h3 { margin: 0; font-family: Archivo, sans-serif; font-weight: 700; font-size: 22px; line-height: 1.3; color: #000; }
.ncm-post-card p { margin: 0; color: #555; font-size: 16px; line-height: 1.6; }
.ncm-post-card__link { margin-top: auto; padding-top: 4px; font: 700 15px/1 Archivo, sans-serif; color: #000; }
.ncm-post-card__link span, .ncm-related__head a span, .ncm-toc__cta span { display: inline-block; transition: transform .25s; }
.ncm-post-card:hover .ncm-post-card__link span, .ncm-related__head a:hover span, .ncm-toc__cta:hover span { transform: translateX(4px); }
.ncm-post-card:hover h3 { text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 2px; }

/* Article */
.ncm-article { background: #fff; }
.ncm-article__hero { background: linear-gradient(180deg, #0a0a0a 30%, #1e1e1e 100%); padding: calc(73px + 96px) 0 88px; color: #fff; text-align: center; }
.ncm-crumbs { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 4px 10px; font: 600 13px/1.4 Archivo, sans-serif; letter-spacing: .12em; text-transform: uppercase; color: rgba(255,255,255,.6); }
.ncm-crumbs a { display: inline-flex; align-items: center; min-height: 44px; }
.ncm-crumbs a { color: #fff; text-decoration: none; } .ncm-crumbs a:hover { text-decoration: underline; }
.ncm-article__hero h1 { max-width: 20ch; margin: 22px auto 0; font-size: clamp(44px, 5.4vw, 76px); line-height: 1; color: #fff; }
.ncm-article__dek { max-width: 62ch; margin: 22px auto 0; color: #c4c4c4; font-size: 19px; line-height: 1.6; }
.ncm-article__byline { display: inline-flex; align-items: center; gap: 14px; margin-top: 32px; text-align: left; }
.ncm-article__byline div { display: flex; flex-direction: column; gap: 3px; }
.ncm-article__byline strong { font-family: Archivo, sans-serif; font-size: 16px; }
.ncm-article__byline span { color: #a5a5a5; font-size: 14px; }
.ncm-author__img { width: 48px; height: 48px; border-radius: 50%; object-fit: cover; border: 2px solid #fff; flex-shrink: 0; }
.ncm-article__layout { display: grid; grid-template-columns: 240px minmax(0, 720px); justify-content: center; gap: 64px; padding-top: 64px; padding-bottom: 96px; }
.ncm-toc { position: sticky; top: 150px; align-self: start; display: flex; flex-direction: column; gap: 14px; }
.ncm-toc strong { font: 700 12px/1 Archivo, sans-serif; letter-spacing: .14em; text-transform: uppercase; color: #616161; }
.ncm-toc ol { list-style: none; margin: 0; padding: 0 0 0 14px; border-left: 2px solid #eee; display: flex; flex-direction: column; gap: 12px; counter-reset: toc; }
.ncm-toc li a { display: block; font-size: 14px; line-height: 1.4; color: #555; text-decoration: none; transition: color .2s; }
.ncm-toc li a:hover, .ncm-toc li a.is-active { color: #000; }
.ncm-toc li a.is-active { font-weight: 600; }
.ncm-toc__cta { margin-top: 8px; padding: 14px 16px; border-radius: 12px; background: #000; color: #fff !important; font: 700 14px/1 Archivo, sans-serif; text-decoration: none; text-align: center; }

.ncm-prose { color: #222; font-size: 18px; line-height: 1.8; }
.ncm-prose > * + * { margin-top: 1.1em; }
.ncm-prose p { margin-bottom: 0; }
.ncm-prose h2 { margin-top: 2.2em; margin-bottom: 0; font-family: Archivo, sans-serif; font-weight: 700; font-size: 30px; line-height: 1.25; color: #000; scroll-margin-top: 150px; }
.ncm-prose h3 { margin-top: 1.8em; margin-bottom: 0; font-family: Archivo, sans-serif; font-weight: 700; font-size: 21px; line-height: 1.35; color: #000; }
.ncm-prose ul, .ncm-prose ol { margin-bottom: 0; padding-left: 1.3em; }
.ncm-prose li + li { margin-top: .45em; }
.ncm-prose li::marker { color: #000; font-weight: 700; }
.ncm-prose a { color: #000; text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.ncm-prose a:hover { text-decoration-thickness: 2px; }
.ncm-prose strong { color: #000; }
.ncm-callout { margin-top: 1.4em; padding: 22px 26px; border-left: 4px solid #000; border-radius: 4px 14px 14px 4px; background: #f4f4f4; }
.ncm-callout p { margin: 0; font-size: 17px; line-height: 1.7; }
.ncm-takeaways { padding: 28px 30px; border-radius: 16px; background: #0a0a0a; color: #e6e6e6; }
.ncm-takeaways strong { display: block; margin-bottom: 12px; font: 700 13px/1 Archivo, sans-serif; letter-spacing: .14em; text-transform: uppercase; color: #fff; }
.ncm-takeaways ul { list-style: none; margin: 0; padding: 0; }
.ncm-takeaways li { position: relative; padding-left: 30px; font-size: 16px; line-height: 1.6; }
.ncm-takeaways li + li { margin-top: 10px; }
.ncm-takeaways li::before { content: ""; position: absolute; left: 0; top: 4px; width: 18px; height: 18px; border-radius: 50%; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 11px no-repeat; }
.ncm-author { display: flex; gap: 20px; align-items: flex-start; margin-top: 3em !important; padding: 28px; border: 1px solid #e6e6e6; border-radius: 18px; }
.ncm-author .ncm-author__img { width: 72px; height: 72px; border: 0; }
.ncm-author div { display: flex; flex-direction: column; gap: 2px; }
.ncm-author__label { font: 600 11px/1.2 Archivo, sans-serif; letter-spacing: .14em; text-transform: uppercase; color: #616161; }
.ncm-author strong { font-family: Archivo, sans-serif; font-size: 20px; }
.ncm-author em { font-style: normal; color: #666; font-size: 14px; }
.ncm-author p { margin: 10px 0 0; font-size: 16px; line-height: 1.65; color: #444; }
.ncm-related { background: #f4f4f4; padding: 80px 0 96px; }
.ncm-related__head { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; margin-bottom: 36px; }
.ncm-related__head h2 { margin: 0; font-family: champion, sans-serif; font-size: 48px; line-height: 1; text-transform: uppercase; color: #000; }
.ncm-related__head a { font: 700 15px/1 Archivo, sans-serif; color: #000; text-decoration: none; white-space: nowrap; }

@media (max-width: 1199px) { .ncm-article__layout { grid-template-columns: 210px minmax(0, 1fr); gap: 44px; } }
@media (max-width: 991px) {
  .ncm-blog-hero { padding-top: calc(73px + 80px); }
  .ncm-feature { grid-template-columns: 1fr; gap: 28px; padding: 18px 18px 28px; }
  .ncm-feature h2 { font-size: 28px; }
  .ncm-blog-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; }
  .ncm-article__hero { padding: calc(73px + 64px) 0 64px; }
  .ncm-article__layout { grid-template-columns: 1fr; gap: 0; padding-top: 40px; }
  .ncm-toc { position: static; margin-bottom: 36px; padding: 22px 24px; border: 1px solid #e6e6e6; border-radius: 16px; }
  .ncm-toc__cta { display: none; }
  .ncm-related__head h2 { font-size: 38px; }
}
@media (max-width: 575px) {
  .ncm-blog-grid { grid-template-columns: 1fr; }
  .ncm-blog-hero__intro, .ncm-article__dek { font-size: 16px; }
  .ncm-blog-filter { justify-content: flex-start; flex-wrap: nowrap; overflow-x: auto; margin: 32px -16px 0; padding: 0 16px 4px; scrollbar-width: none; }
  .ncm-blog-filter button { flex-shrink: 0; }
  .ncm-prose { font-size: 17px; }
  .ncm-prose h2 { font-size: 25px; }
  .ncm-author { flex-direction: column; padding: 22px; }
  .ncm-takeaways { padding: 22px; }
}
/* Beat the theme's forced section padding on blog sections */
main#main section.ncm-blog-hero.ncm-blog-hero.ncm-blog-hero { padding: calc(73px + 110px) 0 72px !important; }
main#main section.ncm-blog-list.ncm-blog-list.ncm-blog-list { padding: 72px 0 96px !important; }
main#main section.ncm-related.ncm-related.ncm-related { padding: 80px 0 96px !important; }
.ncm-blog-hero .sh-headline { max-width: 22ch; }
@media (max-width: 991px) { main#main section.ncm-blog-hero.ncm-blog-hero.ncm-blog-hero { padding: calc(73px + 72px) 0 56px !important; } main#main section.ncm-blog-list.ncm-blog-list.ncm-blog-list { padding: 48px 0 72px !important; } }
.ncm-feature .btn--big.solid--lime { background: #000; color: #fff !important; border-color: #000; }
.ncm-feature:hover .btn--big.solid--lime { background: #fff; color: #000 !important; }
/* overflow:hidden on #page breaks position:sticky; clip keeps the no-horizontal-scroll behavior without creating a scroll container */
.ncm-blog-body #page.site { overflow: clip; }

/* Responsive navigation and touch controls, shared by every page. */
:root { --ncm-header-height: 116px; }
html { scroll-padding-top: calc(var(--ncm-header-height) + 16px); }
.ncm a, .ncm button, .ncm [role="button"] { touch-action: manipulation; }
.ncm :is(a, button, [role="button"]):focus-visible { outline: 3px solid #858585; outline-offset: 4px; }
.ncm :is(section, main, h2)[tabindex="-1"]:focus { outline: none; }
.ncm .btn--big { min-height: 48px; max-width: 100%; white-space: normal; text-align: center; }
.ncm-case__tags { flex-wrap: wrap; }
.ncm-flow__body, .ncm-feature__body, .ncm-author > div { min-width: 0; }
.ncm-prose { overflow-wrap: anywhere; }
.ncm-prose h2 { scroll-margin-top: 16px; }
.ncm-blog-filter button { min-height: 44px; }
.ncm-toc li a { min-height: 44px; display: flex; align-items: center; padding: 8px 0; }
.ncm-toc__cta { min-height: 48px; display: flex; justify-content: center; align-items: center; gap: 8px; }
.ncm .psi-top, .ncm .accordion__top { min-height: 48px; }
.reviews .tns-nav { opacity: 1; gap: 0; flex-wrap: wrap; }
.reviews .tns-outer::before, .reviews .tns-outer::after { pointer-events: none; }
.reviews.bg-wt .tns-nav button { position: relative; width: 44px; height: 44px; margin: 0; padding: 0; border: 0; background: transparent; }
.reviews.bg-wt .tns-nav button:is(.tns-nav-active, :hover) { background: transparent; }
.reviews.bg-wt .tns-nav button::before { content: ""; position: absolute; inset: 17px; border-radius: 50%; background: #b5b5b5; }
.reviews.bg-wt .tns-nav button.tns-nav-active::before { background: #000; }
.ncm-related__head { flex-wrap: wrap; }
.ncm-related__head > a { display: inline-flex; align-items: center; min-height: 44px; }
#navbarNavOffcanvas { width: min(400px, 100vw); max-width: 100%; height: 100vh; height: 100dvh; padding: 0; z-index: 1060; }
#navbarNavOffcanvas .offcanvas-header { flex-shrink: 0; gap: 16px; padding: max(20px, env(safe-area-inset-top)) 20px 16px; }
#navbarNavOffcanvas .navbar-brand { margin: 0; padding: 0; }
#navbarNavOffcanvas .ncm-logo { width: 160px; height: auto; }
.ncm-menu-close { display: grid; place-items: center; flex-shrink: 0; width: 48px; height: 48px; padding: 0; border: 1px solid #555; border-radius: 50%; color: #fff; background: transparent; font: 32px/1 Arial, sans-serif; }
#navbarNavOffcanvas .offcanvas-body { padding: 0 20px max(24px, env(safe-area-inset-bottom)); overflow-y: auto; overscroll-behavior: contain; min-height: 0; }
#navbarNavOffcanvas #main-menu { padding: 0 !important; margin: 0; }
#navbarNavOffcanvas #main-menu .nav-link { display: flex; align-items: center; min-height: 52px; padding: 12px 0; font-size: 18px; line-height: 1.4; color: #fff; border-bottom: 1px solid #292929; }
.offcanvas-backdrop { z-index: 1055; }
#mobile-handler[hidden] { display: none !important; }
.ncm .site-contact__item, .ncm .site-contact__item .d-flex { min-width: 0; max-width: 100%; }
.ncm .site-contact__item .ncm-icon { flex-shrink: 0; }
.ncm .site-contact__item span { overflow-wrap: anywhere; }
#wrapper-footer #footer-menu a { display: inline-flex; align-items: center; min-width: 44px; min-height: 44px; }
#wrapper-footer a.custom-logo-link { display: inline-flex; align-items: center; justify-content: center; max-width: 100%; margin: 0; padding: 0; }
#wrapper-footer ul#footer-menu li ul.sub-menu { gap: 0; margin-top: 8px; }
#wrapper-footer .site-info a { display: inline-flex; align-items: center; min-height: 44px; }
.ncm-hours-time { white-space: nowrap; }
.ncm-footer-legal { display: flex; flex-wrap: wrap; gap: 0 16px; }
.ncm-footer-legal a { color: #a3a3a3; }

@media (max-width: 1399px) {
  header#wrapper-navbar #main-nav .phone-link { display: none !important; }
}
@media (max-width: 1199px) {
  html { zoom: 1; }
  header#wrapper-navbar #main-nav > .container { flex-wrap: nowrap; }
  header#wrapper-navbar #main-nav .navbar-toggler { display: grid; place-items: center; width: 48px; height: 48px; padding: 8px; border: 1px solid #555; border-radius: 8px; flex-shrink: 0; }
  header#wrapper-navbar #main-nav .navbar-brand { min-width: 0; }
  header#wrapper-navbar .ncm-topbar .header-topbar_wrapper { min-height: 44px; display: flex; align-items: center; padding: 8px 0; }
  .hero--main-value { padding-top: calc(var(--ncm-header-height) + 48px) !important; }
  .ncm-article__hero { padding-top: calc(var(--ncm-header-height) + 40px); }
  main#main section.ncm-blog-hero.ncm-blog-hero.ncm-blog-hero { padding-top: calc(var(--ncm-header-height) + 48px) !important; }
  .ncm-pp { flex-wrap: wrap; justify-content: center; }
  .ncm-pp__partners { flex-wrap: wrap; justify-content: center; }
}
@media (max-width: 991px) {
  main#main section:is(#about, #why-us, #services, #process, #portfolio, #reviews, #faq, .industry-callout):not(.hero) { padding-top: 64px !important; padding-bottom: 64px !important; }
  .ncm-promise__content > .btn--big { margin-left: auto; margin-right: auto; }
  .ncm-pp { backdrop-filter: none; }
  .ncm-toc { padding: 20px; }
  .ncm-toc ol { gap: 0; }
  .ncm-article__layout { padding-bottom: 64px; }
  .cta-banner .sh-headline.jumbo-xl { white-space: normal; }
  .ncm-pv__pane { min-width: 0; }
  .process .process__steps .process__steps__item { opacity: 1; }
  .process .psi-top { min-height: 48px; }
  .ncm .accordion__top { min-height: 48px; padding: 8px 0; }
  .reviews.bg-wt .tns-outer::before, .reviews.bg-wt .tns-outer::after { width: 24px; }
  #wrapper-footer #footer-menu { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 16px; }
  #wrapper-footer #footer-menu > li { min-width: 0; text-align: center; }
  #wrapper-footer #footer-menu a { justify-content: center; max-width: 100%; padding: 6px 0; line-height: 1.4; }
  #wrapper-footer #footer-menu .ncm-footer-company { grid-column: 1 / -1; }
  #wrapper-footer ul#footer-menu .ncm-footer-company ul.sub-menu { flex-direction: row; flex-wrap: wrap; justify-content: center; gap: 0 20px; }
}
@media (max-width: 767px) {
  .ncm .container { padding-left: max(20px, env(safe-area-inset-left)); padding-right: max(20px, env(safe-area-inset-right)); }
  header#wrapper-navbar { padding-top: env(safe-area-inset-top); background: #000; }
  header#wrapper-navbar #main-nav { min-height: 72px; padding: 12px 0; }
  header#wrapper-navbar #main-nav .ncm-logo { width: 150px; max-height: 42px; }
  header#wrapper-navbar .ncm-topbar .header-topbar_wrapper .topbar-content { gap: 0; flex-wrap: wrap !important; }
  header#wrapper-navbar .ncm-topbar .header-topbar_wrapper .topbar-content p { font-size: 11px; line-height: 1.4; white-space: nowrap; }
  .hero--main-value .sh-headline.jumbo-xl { font-size: clamp(36px, 11vw, 60px); line-height: 1.05; }
  .hero--main-value .hero__content p { font-size: 16px; line-height: 1.65; text-wrap: pretty; }
  .hero .ncm-eyebrow { font-size: 12px; line-height: 1.5; letter-spacing: .1em; }
  .hero--main-value .btn-group { width: 100%; max-width: 400px; }
  .hero--main-value .btn-group > a { flex: 1 1 160px; padding-left: 12px; padding-right: 12px; }
  .ncm-pp { padding: 20px 16px; margin-top: 28px; }
  .ncm-pp__sub, .ncm-pp__partner span, .ncm-pp__partner strong { white-space: normal; }
  .ncm-pp__partners { gap: 16px; }
  .ncm-about__intro p { font-size: 16px; }
  #mobile-handler { right: max(16px, env(safe-area-inset-right)) !important; bottom: max(16px, env(safe-area-inset-bottom)) !important; }
  #mobile-handler .btn--big { display: grid; place-items: center; width: 52px; height: 52px; padding: 14px; box-shadow: 0 4px 18px #0003; }
  #wrapper-footer { padding-bottom: env(safe-area-inset-bottom); }
  .site-footer-menu { text-align: center; }
  .ncm-footer-blurb { font-size: 14px; line-height: 1.65; text-align: center; color: #aaa !important; }
  #wrapper-footer .site-contact { width: 100%; max-width: 360px; align-items: center !important; padding-top: 32px !important; padding-bottom: 32px !important; }
  #wrapper-footer .site-contact__item { width: 100%; text-align: center; }
  .ncm .site-contact__item .lvl-5 { font-size: 16px; }
  .ncm .site-contact__item .micro { font-size: 13px; }
  .ncm .site-contact__item > a, .ncm .site-contact__item > div { flex-direction: column; justify-content: center !important; gap: 8px !important; }
  .site-footer__end { margin-top: 32px; }
  .site-footer__end .site-info { text-align: center; }
  .ncm-footer-legal { justify-content: center; }
  .site-footer__end .site-info a { display: inline-flex; align-items: center; min-height: 44px; }
  .ncm-blog-filter { flex-wrap: wrap; margin: 28px 0 0; padding: 0; overflow: visible; gap: 8px; justify-content: center; }
  .ncm-blog-filter button { padding: 12px 14px; white-space: normal; }
  .ncm-blog-hero .sh-headline { font-size: clamp(36px, 9vw, 56px); line-height: 1.1; }
  .ncm-article__hero h1 { font-size: clamp(34px, 9vw, 52px); line-height: 1.05; overflow-wrap: break-word; }
  .ncm-feature p, .ncm-post-card p { font-size: 16px; }
  .ncm-feature h2 { font-size: 26px; }
}
@media (max-width: 575px) {
  .ncm .btn--big { font-size: 16px; padding: 14px 20px; min-height: 50px; }
  .ncm .hero--main-value .btn-group > a { padding-left: 12px; padding-right: 12px; }
  .ncm .sh-headline:not(.jumbo-xl) { overflow-wrap: break-word; }
  .ncm-why__card { padding: 26px 22px; }
  .ncm-case__body { padding: 22px; }
  .ncm-case .ncm-case__stage { padding: 28px 22px; }
  .ncm-pv__pane { padding: 16px; }
  .ncm-pv__head { flex-wrap: wrap; }
  .ncm-pv__rank { gap: 10px; padding: 12px 10px; flex-wrap: wrap; }
  .ncm-pv__rank > div { min-width: 0; }
  .ncm-pv__rank em { margin-left: auto; }
  .ncm-mk-search__bar { flex-wrap: wrap; padding: 12px; }
  .ncm-mk-search__bar > svg { flex-shrink: 0; }
  .ncm-mk-search__bar > span { min-width: 0; }
  .ncm-mk-search__bar em { display: none; }
  .ncm-mk-result { gap: 8px; padding: 12px 10px; margin-left: 8px; }
  .ncm-mk-mono { width: 32px; height: 32px; font-size: 12px; }
  .ncm-mk-call { padding: 8px; font-size: 12px; }
  .ncm-mk-gbp__body { padding: 16px 12px; }
  .ncm-mk-gbp__title, .ncm-mk-gbp__rating { flex-wrap: wrap; }
  .ncm-mk-gbp__line svg { flex-shrink: 0; }
  .ncm-browser__bar { gap: 4px; padding: 10px 8px; }
  .ncm-browser__bar i { flex-shrink: 0; width: 6px; height: 6px; }
  .ncm-browser__bar span { min-width: 0; margin: 0 4px; padding: 4px 6px; overflow-wrap: anywhere; }
  .ncm-browser__bar b { flex-shrink: 0; }
  .industry-callout .card--service-tiles > .d-flex { flex-direction: column; align-items: center; text-align: center; }
  .industry-callout .card--service-tiles .lvl-3 { white-space: normal; font-size: 18px; }
  .industry-callout .card--service-tiles .card--service-tiles__icon { flex-shrink: 0; }
  .ncm-guarantee { margin-top: 24px; padding: 40px 24px 28px; }
  .ncm-seal { right: 8px; }
  .ncm-callout, .ncm-takeaways { padding: 20px 18px; }
  .ncm-cover--big .ncm-cover__disc { width: 84px; height: 84px; }
}
/* Touch scrolling stays native; content remains visible without entrance effects. */
@media (pointer: coarse), (max-width: 991px), (prefers-reduced-motion: reduce) {
  .ncm-anim .ncm-reveal { opacity: 1; transform: none; transition: none; will-change: auto; }
  .ncm-hero-in { animation: none; }
  .ncm-seal__spin { animation: none; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  .ncm *, .ncm *::before, .ncm *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

/* Homepage: latest blog posts */
main#main section.ncm-home-blog.ncm-home-blog { background: #f4f4f4; padding: 112px 0 !important; }
.ncm-home-blog .sh-micro { color: #000 !important; opacity: .55; }
.ncm-home-blog__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 16px 32px; margin-bottom: 40px; }
.ncm-home-blog__head .section-header { margin-bottom: 0; }
.ncm-home-blog__all { display: inline-flex; align-items: center; min-height: 44px; font: 700 15px/1 Archivo, sans-serif; color: #000; text-decoration: none; white-space: nowrap; }
.ncm-home-blog__all span { display: inline-block; margin-left: 6px; transition: transform .25s; }
.ncm-home-blog__all:hover { color: #000; } .ncm-home-blog__all:hover span { transform: translateX(4px); }
@media (max-width: 767px) { main#main section.ncm-home-blog.ncm-home-blog { padding: 64px 0 !important; } .ncm-home-blog__head { margin-bottom: 28px; } }

/* Case studies */
.ncm-cs__shot { margin-top: -150px; position: relative; }
.ncm-cs__shot img { display: block; width: 100%; height: auto; border-radius: 16px; border: 1px solid rgba(0,0,0,.08); box-shadow: 0 30px 80px rgba(0,0,0,.28); background: #f4f4f4; }
@media (max-width: 575px) { .ncm-cs__shot img { border-radius: 10px; } }
.ncm-cs__hero { padding-bottom: 200px; }
.ncm-cs__tags { justify-content: center; margin-top: 26px; color: #fff; }
.ncm-cs__stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 56px auto 0; max-width: 1024px; border: 1px solid #e6e6e6; border-radius: 16px; overflow: hidden; }
.ncm-cs__stat { display: flex; flex-direction: column; gap: 8px; padding: 28px 24px; text-align: center; }
.ncm-cs__stat + .ncm-cs__stat { border-left: 1px solid #e6e6e6; }
.ncm-cs__stat strong { font-family: champion, Impact, sans-serif; font-weight: 400; font-size: 56px; line-height: 1; color: #000; }
.ncm-cs__stat span { font: 600 12px/1.35 Archivo, sans-serif; letter-spacing: .1em; text-transform: uppercase; color: #6b6b6b; }
.ncm-cs__layout { display: grid; grid-template-columns: 240px minmax(0, 720px); justify-content: center; gap: 64px; padding-top: 64px; padding-bottom: 96px; }
.ncm-cs__details { position: sticky; top: 150px; align-self: start; display: flex; flex-direction: column; gap: 16px; }
.ncm-cs__details > strong { font: 700 12px/1 Archivo, sans-serif; letter-spacing: .14em; text-transform: uppercase; color: #616161; }
.ncm-cs__details dl { margin: 0; display: flex; flex-direction: column; gap: 14px; padding-left: 14px; border-left: 2px solid #eee; }
.ncm-cs__details dt { font: 600 11px/1 Archivo, sans-serif; letter-spacing: .12em; text-transform: uppercase; color: #616161; margin-bottom: 5px; }
.ncm-cs__details dd { margin: 0; font-size: 15px; line-height: 1.4; color: #111; }
.ncm-cs__site { margin-top: 6px; min-height: 48px; display: flex; align-items: center; justify-content: center; padding: 12px 16px; border-radius: 12px; background: #000; color: #fff !important; font: 700 14px/1.2 Archivo, sans-serif; text-decoration: none; text-align: center; overflow-wrap: anywhere; }
.ncm-cs__body > h2:first-child { margin-top: 0; }
.ncm-cs__challenges { list-style: none; padding: 0; margin: 24px 0 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.ncm-cs__challenges li { display: flex; gap: 14px; padding: 22px; border: 1px solid #e6e6e6; border-radius: 14px; margin: 0; }
.ncm-cs__n { font: 700 13px/1.6 Archivo, sans-serif; color: #616161; }
.ncm-cs__challenges h3, .ncm-cs__work-item h3 { margin: 0 0 6px; font: 700 18px/1.3 Archivo, sans-serif; color: #000; }
.ncm-cs__challenges p { font-size: 15px; line-height: 1.6; color: #555; }
.ncm-cs__work { display: flex; flex-direction: column; gap: 22px; margin-top: 24px; }
.ncm-cs__work-item { padding-left: 20px; border-left: 3px solid #000; }
.ncm-cs__work-item p { font-size: 17px; line-height: 1.7; }
.ncm-cs__body > p + p { margin-top: 1em; }
.ncm-cs__body > h2 + p { margin-top: .7em; }
.ncm-cs__quote { margin: 48px 0 0; padding: 32px; border-radius: 18px; background: #0a0a0a; color: #fff; }
.ncm-cs__quote blockquote { margin: 0; }
.ncm-cs__quote blockquote p { font: 600 22px/1.45 Archivo, sans-serif; color: #fff; letter-spacing: -.01em; }
.ncm-cs__quote figcaption { display: flex; align-items: center; gap: 14px; margin-top: 22px; }
.ncm-cs__quote img { width: 48px; height: 48px; border-radius: 50%; object-fit: cover; }
.ncm-cs__quote figcaption strong { display: block; font: 700 15px/1.3 Archivo, sans-serif; }
.ncm-cs__quote figcaption span { font-size: 13px; color: #a8a8a8; }
main#main section.ncm-cs-more.ncm-cs-more, main#main section.ncm-cs-list.ncm-cs-list { padding: 88px 0 104px !important; }
.ncm-cs-more .ncm-related__head h2, .ncm-cs-more .ncm-related__head a { color: #fff; }
.ncm-cases--two { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 900px; margin: 0 auto; }
.ncm-cs-more .ncm-related__head { max-width: 900px; margin-left: auto; margin-right: auto; }
@media (max-width: 991px) {
  .ncm-cs__hero { padding-bottom: 150px; }
  .ncm-cs__shot { margin-top: -110px; }
  .ncm-cs__stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ncm-cs__stat:nth-child(3) { border-left: 0; }
  .ncm-cs__stat:nth-child(n+3) { border-top: 1px solid #e6e6e6; }
  .ncm-cs__layout { grid-template-columns: 1fr; gap: 0; padding-top: 40px; }
  .ncm-cs__details { position: static; margin-bottom: 40px; padding: 22px 24px; border: 1px solid #e6e6e6; border-radius: 16px; }
  .ncm-cases--two { grid-template-columns: 1fr; max-width: 560px; }
  main#main section.ncm-cs-more.ncm-cs-more, main#main section.ncm-cs-list.ncm-cs-list { padding: 64px 0 72px !important; }
}
@media (max-width: 575px) {
  .ncm-cs__hero { padding-bottom: 110px; }
  .ncm-cs__shot { margin-top: -80px; }
  .ncm-cs__stats { margin-top: 36px; }
  .ncm-cs__stat { padding: 20px 12px; }
  .ncm-cs__stat strong { font-size: 40px; }
  .ncm-cs__challenges { grid-template-columns: 1fr; }
  .ncm-cs__quote { padding: 24px; }
  .ncm-cs__quote blockquote p { font-size: 19px; }
}
.ncm-cs__tags { align-items: center; }
.ncm-cs__tags li { margin: 0 !important; padding: 4px 12px !important; line-height: 1.4 !important; font-size: 12px !important; position: static; }
.ncm-cs__tags li::before, .ncm-cs__tags li::after { content: none !important; display: none !important; }
.ncm-cs__body > p { font-size: 18px; line-height: 1.8; color: #222; }
@media (max-width: 991px) { .ncm-cs__body > p { font-size: 17px; } }
.ncm-cs__n { flex: 0 0 auto; white-space: nowrap; }
.ncm-cs__quote figcaption strong { color: #fff; }

/* Neumorphic buttons: soft extruded surfaces that press in on click.
   Dark sections get a light raised primary and a dark raised secondary; light sections get a dark raised button. */
:root {
  --neu-radius: 14px;
  --neu-ease: transform .25s ease, box-shadow .25s ease, background .25s ease, color .25s ease;
  --neu-on-dark-out: -3px -3px 8px rgba(255,255,255,.03), 6px 6px 16px rgba(0,0,0,.9);
  --neu-on-light-out: 7px 7px 16px rgba(0,0,0,.2), -7px -7px 16px rgba(255,255,255,.95);
}
.ncm .btn--big:is(.solid--lime, .outline--white, .ncm-btn-dark) { position: relative; border-radius: var(--neu-radius); transition: var(--neu-ease); }
.ncm .btn--big:is(.solid--lime, .outline--white)::before { display: none; }

/* Primary on dark: raised white */
.ncm .btn--big.solid--lime { background: linear-gradient(145deg, #fff, #dedede) !important; color: #000 !important; border: 1px solid rgba(255,255,255,.6);
  box-shadow: var(--neu-on-dark-out), inset 2px 2px 3px #fff, inset -3px -3px 6px rgba(0,0,0,.12); }
.ncm .btn--big.solid--lime:is(:hover, :focus-visible) { background: linear-gradient(145deg, #fff, #e8e8e8) !important; color: #000 !important; transform: translateY(-1px);
  box-shadow: -4px -4px 10px rgba(255,255,255,.05), 8px 8px 20px rgba(0,0,0,.95), inset 2px 2px 3px #fff, inset -3px -3px 6px rgba(0,0,0,.1); }
.ncm .btn--big.solid--lime:hover svg { stroke: #000; }
.ncm .btn--big.solid--lime:active { transform: none; background: #e4e4e4 !important;
  box-shadow: -1px -1px 3px rgba(255,255,255,.02), 2px 2px 6px rgba(0,0,0,.8), inset 4px 4px 9px rgba(0,0,0,.28), inset -4px -4px 8px #fff; }

/* Secondary on dark: raised charcoal */
.ncm .btn--big.outline--white { background: linear-gradient(145deg, #1e1e1e, #0a0a0a); color: #fff !important; border: 1px solid rgba(255,255,255,.1);
  box-shadow: var(--neu-on-dark-out), inset 1px 1px 0 rgba(255,255,255,.1); }
.ncm .btn--big.outline--white:is(:hover, :focus-visible) { background: linear-gradient(145deg, #242424, #0e0e0e); border-color: rgba(255,255,255,.18); transform: translateY(-1px);
  box-shadow: -4px -4px 10px rgba(255,255,255,.04), 8px 8px 20px rgba(0,0,0,.95), inset 1px 1px 0 rgba(255,255,255,.14); }
.ncm .btn--big.outline--white:active { transform: none; background: #0b0b0b;
  box-shadow: -1px -1px 2px rgba(255,255,255,.02), inset 5px 5px 10px #000, inset -3px -3px 8px rgba(255,255,255,.07); }

/* On light sections (and blog feature cards): raised black */
.ncm .btn--big.ncm-btn-dark, .ncm .ncm-feature .btn--big.solid--lime { background: linear-gradient(145deg, #2c2c2c, #050505) !important; color: #fff !important; border: 1px solid #000;
  box-shadow: var(--neu-on-light-out), inset 1px 1px 0 rgba(255,255,255,.14); }
.ncm .btn--big.ncm-btn-dark:is(:hover, :focus-visible), .ncm .ncm-feature:hover .btn--big.solid--lime { background: linear-gradient(145deg, #353535, #0a0a0a) !important; color: #fff !important; transform: translateY(-1px);
  box-shadow: 9px 9px 20px rgba(0,0,0,.24), -9px -9px 20px #fff, inset 1px 1px 0 rgba(255,255,255,.18); }
.ncm .ncm-feature .btn--big.solid--lime svg { stroke: #fff; }
.ncm .btn--big.ncm-btn-dark:active, .ncm .ncm-feature .btn--big.solid--lime:active { transform: none; background: #111 !important;
  box-shadow: 2px 2px 5px rgba(0,0,0,.15), -2px -2px 5px #fff, inset 4px 4px 9px #000, inset -3px -3px 7px rgba(255,255,255,.12); }

/* Mobile floating call button keeps its round shape */
.ncm #mobile-handler .btn--big { border-radius: 50%; }

/* Blog category filters: raised chips, the active one pressed in */
.ncm .ncm-blog-filter button { background: linear-gradient(145deg, #1c1c1c, #0a0a0a); border-color: rgba(255,255,255,.1); transition: var(--neu-ease);
  box-shadow: -3px -3px 7px rgba(255,255,255,.025), 5px 5px 12px rgba(0,0,0,.9), inset 1px 1px 0 rgba(255,255,255,.08); }
.ncm .ncm-blog-filter button:hover { border-color: rgba(255,255,255,.25); transform: translateY(-1px); }
.ncm .ncm-blog-filter button:active, .ncm .ncm-blog-filter button.is-active { transform: none; background: #0a0a0a; color: #fff; border-color: rgba(255,255,255,.35);
  box-shadow: -1px -1px 2px rgba(255,255,255,.02), inset 4px 4px 9px #000, inset -3px -3px 7px rgba(255,255,255,.08); }

@media (prefers-reduced-motion: reduce) { .ncm .btn--big, .ncm .ncm-blog-filter button { transform: none !important; } }

/* ---------- Service & industry landing pages ---------- */
.ncm-lp__eyebrow { margin: 26px 0 0; }
.ncm-lp__hero h1 { max-width: 22ch; }
.ncm-lp__ctas { margin-top: 34px; }
.ncm-lp__proof { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 26px; list-style: none; margin: 30px 0 0; padding: 0; font: 600 14px/1.4 Archivo, sans-serif; color: #c4c4c4; }
.ncm-lp__proof li::before { content: "✓"; margin-right: 8px; color: #fff; }
.ncm-links { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.ncm-link-card { display: flex; flex-direction: column; gap: 10px; padding: 28px 26px; border: 1px solid #e3e3e3; border-radius: 14px; background: #fff; color: #000; text-decoration: none; transition: transform .3s ease, border-color .3s ease, box-shadow .3s ease; }
.ncm-link-card:hover { transform: translateY(-4px); border-color: #000; box-shadow: 0 18px 40px rgba(0,0,0,.08); color: #000; }
.ncm-link-card__icon { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 12px; background: #000; color: #fff; margin-bottom: 8px; }
.ncm-link-card h2, .ncm-link-card h3 { margin: 0; font: 700 21px/1.3 Archivo, sans-serif; color: #000; text-transform: none; }
.ncm-link-card p { margin: 0; color: #555; font-size: 16px; line-height: 1.6; }
.ncm-link-card__more { margin-top: auto; padding-top: 6px; font: 700 15px/1 Archivo, sans-serif; }
.ncm-link-card__more span { display: inline-block; transition: transform .25s; }
.ncm-link-card:hover .ncm-link-card__more span { transform: translateX(4px); }
.ncm-hub__grid { background: #fff; padding: 72px 0 88px; }
.ncm-hub__note { max-width: 70ch; margin: 48px auto 0; text-align: center; color: #444; font-size: 18px; line-height: 1.7; }
.ncm-lp-cases .ncm-related__head h2, .ncm-cs-more .ncm-related__head h2 { color: #fff; }
.ncm-lp-cases .ncm-related__head a { color: #fff; }
.ncm-lp-faq { padding: 88px 0; }
.ncm-lp-faq .accordion__btm__inner p + p { margin-top: .8em; }
.ncm-lp-faq .accordion__btm__inner a, .faq-accordion .accordion__btm__inner a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.ncm-service-box { margin-top: 2.4em !important; padding: 26px 28px; border-radius: 14px; background: #000; color: #fff; }
.ncm-service-box__label { display: block; font: 700 12px/1 Archivo, sans-serif; letter-spacing: .14em; text-transform: uppercase; color: rgba(255,255,255,.65); }
.ncm-service-box strong { display: block; margin-top: 10px; font: 700 22px/1.3 Archivo, sans-serif; }
.ncm-service-box strong a, .ncm-prose .ncm-service-box strong a { color: #fff; text-decoration: none; }
.ncm-service-box p { margin: 8px 0 0 !important; color: #d0d0d0; font-size: 16px; line-height: 1.6; }
.ncm-prose .ncm-service-box__link { display: inline-block; margin-top: 14px; color: #fff; font: 700 15px/1 Archivo, sans-serif; text-decoration: none; }
.ncm-bento-links { display: flex; flex-wrap: wrap; gap: 8px 18px; margin-top: 16px; }
.ncm-bento-link { color: #fff; font: 700 15px/1.3 Archivo, sans-serif; text-decoration: underline; text-underline-offset: 4px; text-decoration-color: rgba(255,255,255,.4); }
.ncm-bento-link:hover { color: #fff; text-decoration-color: #fff; }
@media (max-width: 991px) {
  .ncm-bento-links { justify-content: center; }
  .ncm-bento-link { display: inline-flex; align-items: center; justify-content: center; gap: .3em; min-height: 44px; text-align: center; }
}
.ncm-industries-more { margin: 14px 0 0; }
.ncm-industries-more a { color: #fff; font: 700 16px/1.3 Archivo, sans-serif; text-decoration: underline; text-underline-offset: 4px; }
.ncm-social { display: flex; align-items: center; gap: 12px; }
.ncm-social__link { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; color: #fff; font: 600 14px/1 Archivo, sans-serif; text-decoration: none; }
.ncm-social__link:hover { color: #fff; text-decoration: underline; }
.ncm-cs__details dd a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 991px) { .ncm-links { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 575px) { .ncm-links { grid-template-columns: 1fr; } .ncm-link-card { padding: 24px 22px; } .ncm-hub__grid { padding: 48px 0 64px; } .ncm-lp__proof { flex-direction: column; align-items: center; gap: 8px; } }

/* Section eyebrows are <p> (headlines are the <h2>); keep the heading metrics they had as <h2> */
.home .section-header p.sh-micro { line-height: 1.2; }
.ncm-about__intro .section-header p.sh-micro { margin: 0 0 16px; font-size: 16px; }
.ncm-promise__content .section-header p.sh-micro { margin-bottom: 16px; }

/* Accessibility: readable footer labels on black; logo keeps its proportions when sized by width and max-height */
#wrapper-footer .c-gray { color: #a3a3a3 !important; }
.ncm-logo { object-fit: contain; }

/* About: founder band (reuses the homepage promise card) */
main#main section.ncm-founder.ncm-promise-section[class] { padding-top: 72px !important; }
.ncm-founder .ncm-promise__content p a { color: #000; text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 767px) { main#main section.ncm-founder.ncm-promise-section[class] { padding-top: 48px !important; } }

/* industry photos: homepage tiles (photo behind the label) and hub/related link cards (photo on top) */
.ncm-tile--photo { position: relative; overflow: hidden; isolation: isolate; min-height: 120px; display: flex; align-items: center; }
.ncm-tile__photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; transition: transform .6s ease; }
.ncm-tile--photo::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(0,0,0,.88) 0%, rgba(0,0,0,.7) 55%, rgba(0,0,0,.55) 100%); transition: background .4s ease; }
a:hover .ncm-tile--photo .ncm-tile__photo { transform: scale(1.06); }
a:hover .ncm-tile--photo::after { background: linear-gradient(90deg, rgba(0,0,0,.82) 0%, rgba(0,0,0,.6) 55%, rgba(0,0,0,.45) 100%); }
.industry-callout .ncm-tile--photo .card--service-tiles__icon { background: rgba(0,0,0,.45); backdrop-filter: blur(4px); }
@media (max-width: 991px) { .ncm-tile--photo::after { background: rgba(0,0,0,.68); } }
.ncm-link-card.has-photo { overflow: hidden; }
.ncm-link-card__photo { display: block; width: calc(100% + 52px); max-width: none; margin: -28px -26px 0; aspect-ratio: 16 / 9; object-fit: cover; transition: transform .6s ease; }
.ncm-link-card.has-photo .ncm-link-card__icon { margin-top: -38px; position: relative; border: 3px solid #fff; box-sizing: content-box; }
@media (max-width: 575px) { .ncm-link-card__photo { width: calc(100% + 44px); margin: -24px -22px 0; } }
.ncm-tile--photo::before { display: none; }

/* blog covers with a stock photo */
.ncm-cover__photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.ncm-cover.has-photo::before { mask-image: none; background: linear-gradient(180deg, rgba(0,0,0,.55) 0%, rgba(0,0,0,0) 32%, rgba(0,0,0,0) 62%, rgba(0,0,0,.6) 100%); z-index: 1; }
.ncm-cover.has-photo .ncm-cover__disc { display: none; }
.ncm-cover.has-photo .ncm-cover__cat, .ncm-cover.has-photo .ncm-cover__read { z-index: 2; color: #fff; }
.ncm-feature:hover .ncm-cover__photo, .ncm-post-card:hover .ncm-cover__photo { transform: scale(1.05); }

/* Remove diagonal stripe decoration on right of hero */
.hero--main-value::before { display: none !important; }
.cta-banner::before { display: none !important; }
