/*
Theme Name: Netwell
Theme URI: https://www.netwell-systems.com/
Author: Netwell Systems Pte. Ltd.
Description: Block theme for Netwell Systems (NSPL). Palette per client brief: gray surfaces, charcoal bands and text; orange actions, strips and emphasis; logo red as a small accent only. All text colour pairs meet WCAG 2.2 AA. Requires the Netwell Core must-use plugin.
Version: 2.3.0
Requires at least: 6.6
Requires PHP: 8.1
License: Proprietary
Text Domain: netwell
*/

:root {
	--nspl-grad: var(--wp--preset--gradient--brand);
	--nspl-radius: 10px;
	--nspl-radius-sm: 6px;
	--nspl-shadow: var(--wp--preset--shadow--card);
	--nspl-focus: 0 0 0 3px #fff, 0 0 0 5px var(--wp--preset--color--accent-dark);
}

html { scroll-padding-top: 5.5rem; }
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }
body { overflow-wrap: break-word; }
:where(a, button, input, select, textarea, summary):focus-visible { outline: none; box-shadow: var(--nspl-focus); border-radius: 3px; }
img { max-width: 100%; height: auto; }
code { font-family: var(--wp--preset--font-family--mono); font-size: .92em; background: #efeff1; padding: .1em .35em; border-radius: 4px; }

.skip-link.screen-reader-text:focus { clip: auto; clip-path: none; width: auto; height: auto; position: fixed; top: .5rem; left: 1rem; z-index: 100000; background: var(--wp--preset--color--dark); color: #fff; padding: .5rem 1rem; border-radius: var(--nspl-radius-sm); }

/* Shared */
.nspl-main > * { margin-block: 0; }
.nspl-section { padding-block: var(--wp--preset--spacing--60); }
.nspl-section-head { margin-bottom: var(--wp--preset--spacing--40); }
.nspl-section-head > * { max-width: 760px; } /* left-aligned with the card grid, text kept to a readable measure */
.nspl-lead { font-size: var(--wp--preset--font-size--lg); color: var(--wp--preset--color--ink-2); }
.nspl-muted, .nspl-card__meta { color: var(--wp--preset--color--muted); font-size: var(--wp--preset--font-size--xs); }
.nspl-eyebrow { display: flex; align-items: center; gap: .5em; font-size: var(--wp--preset--font-size--xs); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--wp--preset--color--accent); margin: 0 0 .5rem; }
.nspl-eyebrow::before { content: ''; flex: none; width: 1.5em; height: 3px; border-radius: 2px; background: var(--nspl-grad); }
.nspl-dark .nspl-eyebrow, .nspl-page-hero .nspl-eyebrow, .nspl-hero .nspl-eyebrow { color: var(--wp--preset--color--orange-light); }
.nspl-dark a:not(.wp-element-button):not(.nspl-btn), .nspl-page-hero a { color: var(--wp--preset--color--orange-light); }
.nspl-dark .nspl-lead, .nspl-page-hero .nspl-lead { color: var(--wp--preset--color--on-dark); }

/* Buttons (block buttons get orange from theme.json; outline variant and plain-link buttons here) */
.wp-element-button, .nspl-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; text-decoration: none; transition: background-color .15s, color .15s, border-color .15s; }
.is-style-nspl-ghost .wp-block-button__link, .nspl-btn--ghost { background: transparent !important; color: var(--wp--preset--color--accent) !important; border: 2px solid currentColor !important; }
.is-style-nspl-ghost .wp-block-button__link:hover, .nspl-btn--ghost:hover { background: var(--wp--preset--color--orange-soft) !important; }
.nspl-dark .is-style-nspl-ghost .wp-block-button__link, .nspl-hero .is-style-nspl-ghost .wp-block-button__link, .nspl-panel--cta .nspl-btn--ghost { color: #fff !important; }
.nspl-dark .is-style-nspl-ghost .wp-block-button__link:hover, .nspl-hero .is-style-nspl-ghost .wp-block-button__link:hover, .nspl-panel--cta .nspl-btn--ghost:hover { background: rgba(255,255,255,.1) !important; }
.nspl-btn { padding: .6rem 1.15rem; border-radius: var(--nspl-radius-sm); font-weight: 650; font-size: var(--wp--preset--font-size--sm); border: 2px solid transparent; }
.nspl-btn--accent { background: var(--wp--preset--color--orange); color: var(--wp--preset--color--ink) !important; }
.nspl-btn--accent:hover { background: #e0660c; }
.nspl-btn-row { display: flex; flex-wrap: wrap; gap: .75rem; }

/* Header: charcoal top bar (principal partners, phone, email) scrolls away; the white main bar stays sticky. */
.nspl-header { --nspl-topbar-h: 38px; position: sticky; top: calc(-1 * var(--nspl-topbar-h)); z-index: 50; background: #fff; border-bottom: 1px solid var(--wp--preset--color--line); box-shadow: 0 6px 18px rgba(28,29,33,.08); }
.admin-bar .nspl-header { top: calc(var(--wp-admin--admin-bar--height, 32px) - var(--nspl-topbar-h)); }
.nspl-header::after { content: ''; position: absolute; inset: auto 0 -1px 0; height: 4px; background: var(--nspl-grad); }
.nspl-header > .nspl-topbar { max-width: none !important; margin-left: calc(-1 * var(--wp--style--root--padding-left, 0px)) !important; margin-right: calc(-1 * var(--wp--style--root--padding-right, 0px)) !important; margin-top: 0 !important; }
.nspl-topbar { background: var(--wp--preset--color--darker); color: var(--wp--preset--color--on-dark); font-size: var(--wp--preset--font-size--xs); border-bottom: 2px solid var(--wp--preset--color--orange); }
.nspl-topbar__inner { max-width: 1200px; margin: 0 auto; padding: 0 1rem; min-height: calc(var(--nspl-topbar-h) - 2px); display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.nspl-topbar p { margin: 0; display: flex; align-items: center; flex-wrap: wrap; }
.nspl-topbar a { color: var(--wp--preset--color--on-dark); text-decoration: none; display: inline-flex; align-items: center; gap: .35rem; min-height: 32px; }
.nspl-topbar a:hover { color: var(--wp--preset--color--orange-light); text-decoration: underline; }
.nspl-topbar__label { color: var(--wp--preset--color--orange-light); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; margin-right: .9rem; }
.nspl-topbar__partners a { font-weight: 600; }
.nspl-topbar__partners a + a::before { content: ''; width: 5px; height: 5px; border-radius: 50%; background: var(--wp--preset--color--orange); margin: 0 .7rem; }
.nspl-topbar__contact { gap: 1.25rem; }
.nspl-topbar__contact svg { color: var(--wp--preset--color--orange); flex: none; }
@media (max-width: 1000px) { .nspl-topbar__partners { display: none !important; } .nspl-topbar__inner { justify-content: center; } }
@media (max-width: 480px) { .nspl-topbar__contact a[href^="mailto"] { display: none; } }
.nspl-nav > .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content { font-weight: 650; position: relative; }
.nspl-nav > .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content::after { content: ''; position: absolute; left: .35rem; right: .35rem; bottom: -2px; height: 3px; border-radius: 2px; background: var(--wp--preset--color--orange); transform: scaleX(0); transition: transform .15s; }
.nspl-nav > .wp-block-navigation__container > .wp-block-navigation-item:hover > .wp-block-navigation-item__content::after, .nspl-nav > .wp-block-navigation__container > .current-menu-item > .wp-block-navigation-item__content::after { transform: scaleX(1); }
@media (prefers-reduced-motion: reduce) { .nspl-nav .wp-block-navigation-item__content::after { transition: none; } }
.nspl-header__inner { min-height: 68px; gap: 1rem; }
.nspl-logo { display: inline-flex; align-items: center; gap: .6rem; text-decoration: none; color: var(--wp--preset--color--dark); flex: none; }
/* Client logo (red NS mark + NETWELL wordmark, white background JPEG). On dark backgrounds it sits on a white plate. */
.nspl-logo__img { display: block; height: 52px; width: auto; }
.nspl-logo--inv { background: #fff; padding: .4rem .6rem; border-radius: var(--nspl-radius-sm); }
.nspl-logo--inv .nspl-logo__img { height: 56px; }
@media (max-width: 600px) { .nspl-logo__img { height: 44px; } }
.nspl-logo__text { font-size: 1.15rem; white-space: nowrap; color: var(--wp--preset--color--dark); }
.nspl-logo__text strong { font-weight: 800; }
.nspl-logo--inv .nspl-logo__text { color: #fff; }
.nspl-nav { flex: 1; }
.nspl-nav .wp-block-navigation-item__content { color: var(--wp--preset--color--dark); text-decoration: none; padding: .5rem .35rem; }
.nspl-nav .wp-block-navigation-item__content:hover, .nspl-nav .current-menu-item > .wp-block-navigation-item__content { color: var(--wp--preset--color--accent); }
.nspl-nav .wp-block-navigation__submenu-container { border: 1px solid var(--wp--preset--color--line) !important; border-radius: var(--nspl-radius); box-shadow: var(--nspl-shadow); padding: .5rem !important; min-width: 270px !important; }
.nspl-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content { font-weight: 500; color: var(--wp--preset--color--ink-2); border-radius: var(--nspl-radius-sm); padding: .45rem .6rem; }
.nspl-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { background: var(--wp--preset--color--orange-soft); color: var(--wp--preset--color--accent-dark); }
.nspl-nav .nspl-nav-all > a { font-weight: 650 !important; color: var(--wp--preset--color--accent) !important; }
.nspl-nav .wp-block-navigation__responsive-container-open, .nspl-nav .wp-block-navigation__responsive-container-close { min-width: 44px; min-height: 44px; justify-content: center; }
.nspl-header__actions { gap: .75rem; flex: none; }
.nspl-header-search .wp-block-search__inside-wrapper { border: 1.5px solid #8a8d94 !important; border-radius: var(--nspl-radius-sm); padding: 0 !important; background: #fff; }
.nspl-header-search input { border: 0 !important; min-height: 42px; padding: .4rem .7rem !important; width: 220px; font-size: var(--wp--preset--font-size--sm); }
.nspl-header-search .wp-block-search__button { background: var(--wp--preset--color--bg-alt) !important; color: var(--wp--preset--color--dark) !important; min-width: 44px; margin: 0 !important; border-radius: 0 var(--nspl-radius-sm) var(--nspl-radius-sm) 0 !important; }
.nspl-header-cta .wp-block-button__link { background: var(--wp--preset--color--orange); color: var(--wp--preset--color--ink); white-space: nowrap; }
.nspl-header-cta .wp-block-button__link:hover { background: #e0660c; color: var(--wp--preset--color--ink); }
.nspl-header-search .wp-block-search__button { min-height: 42px; border: 1.5px solid #8a8d94 !important; border-radius: var(--nspl-radius-sm) !important; }
.nspl-header-search.wp-block-search__searchfield-hidden .wp-block-search__inside-wrapper { border: 0 !important; }
.nspl-header-search:not(.wp-block-search__searchfield-hidden) { position: absolute; right: 1rem; top: 12px; z-index: 5; background: #fff; }
@media (max-width: 1100px) { .nspl-header .nspl-header-search { display: none; } }
@media (max-width: 640px) { .nspl-header .wp-block-button.nspl-header-cta { display: none; } .nspl-logo__text { font-size: 1.05rem; } }

/* Page hero (charcoal with orange glow and brand strip) */
.nspl-page-hero { position: relative; padding-block: 2rem 3rem !important; }
.nspl-page-hero::after, .nspl-hero::after { content: ''; position: absolute; inset: auto 0 0 0; height: 4px; background: var(--nspl-grad); z-index: 2; }
/* Every hero child spans the 1200px column (left-aligned); long text keeps a readable measure via right padding. */
.nspl-page-hero > * { width: 100%; max-width: 1200px !important; margin-left: auto !important; margin-right: auto !important; box-sizing: border-box; }
.nspl-page-hero h1 { color: #fff; margin-block: .25rem 1rem !important; text-wrap: balance; padding-right: max(0px, calc(100% - 26ch)); }
.nspl-page-hero .nspl-lead { padding-right: max(0px, calc(100% - 70ch)); }
.nspl-page-hero .nspl-muted, .nspl-dark .nspl-muted { color: #c9cbd1; }
.nspl-page-hero .nspl-product-meta, .nspl-byline { color: var(--wp--preset--color--on-dark); font-size: var(--wp--preset--font-size--sm); margin: .5rem 0 0; }
.nspl-page-hero .nspl-product-meta code { background: rgba(255,255,255,.12); color: #fff; }
.nspl-page-hero .wp-block-search { max-width: 560px; margin-top: 1rem; }
.nspl-breadcrumb { font-size: var(--wp--preset--font-size--xs); margin-bottom: 1rem; }
.nspl-breadcrumb ol { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: .35rem; }
.nspl-breadcrumb li { color: #c9cbd1; }
.nspl-breadcrumb li + li::before { content: '/'; margin-right: .35rem; color: #9a9da5; }
.nspl-breadcrumb [aria-current] { color: #fff; }

/* Home hero: photo under a charcoal overlay with an orange glow so text contrast never depends on the photo */
.nspl-hero { position: relative; color: var(--wp--preset--color--on-dark); padding-block: var(--wp--preset--spacing--60) !important; }
.nspl-hero .wp-block-cover__image-background { filter: saturate(.85); }
.nspl-hero::before { content: ''; position: absolute; inset: 0; z-index: 1; background: radial-gradient(900px 520px at 90% 0%, rgba(244,122,32,.35) 0%, transparent 60%), radial-gradient(700px 420px at 60% 110%, rgba(244,122,32,.18) 0%, transparent 60%), linear-gradient(90deg, rgba(28,29,33,0) 0%, rgba(28,29,33,.92) 24%, rgba(28,29,33,.92) 76%, rgba(28,29,33,0) 100%); }
@media (max-width: 1000px) { .nspl-hero::before { background: linear-gradient(rgba(28,29,33,.9), rgba(28,29,33,.9)); } }
.nspl-hero .wp-block-cover__inner-container { position: relative; z-index: 3; }
.nspl-hero__copy { max-width: 680px; }
.nspl-hero__title { color: #fff; font-size: var(--wp--preset--font-size--hero); margin: .25rem 0 1rem; }
.nspl-hero__title em { font-style: normal; background: linear-gradient(90deg, #ffa45c, #ffb877 60%, #ffd0a3); -webkit-background-clip: text; background-clip: text; color: transparent; }
@media (forced-colors: active) { .nspl-hero__title em { color: CanvasText; background: none; } }
.nspl-hero .nspl-lead { color: var(--wp--preset--color--on-dark); }

/* Trust strip */
.nspl-trust { background: var(--wp--preset--color--dark); border-bottom: 0; }
.nspl-trust__list { list-style: none; margin: 0 auto; padding: 1.5rem 0; display: grid; gap: 1rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 900px) { .nspl-trust__list { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.nspl-trust__list li { display: grid; gap: .25rem; border-left: 3px solid var(--wp--preset--color--orange); padding-left: .75rem; }
.nspl-trust__list li:nth-child(even) { border-color: #8a8d94; }
.nspl-trust__list strong { font-size: var(--wp--preset--font-size--lg); color: var(--wp--preset--color--orange-light); }
.nspl-trust__list span { font-size: var(--wp--preset--font-size--sm); color: var(--wp--preset--color--on-dark); }

/* Cards (query loops and shortcode lists share the same markup classes) */
.nspl-cards { list-style: none; padding: 0; margin: 0 0 1.5rem; display: grid !important; gap: 1.5rem; grid-template-columns: 1fr !important; }
@media (min-width: 640px) { .nspl-cards { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } }
@media (min-width: 1000px) { .nspl-cards:not(.nspl-cards--2) { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; } }
.nspl-cards--models { grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)) !important; }
.nspl-card { position: relative; display: flex; flex-direction: column; margin: 0 !important; background: #fff; border: 1px solid var(--wp--preset--color--line); border-radius: var(--nspl-radius); overflow: hidden; transition: box-shadow .15s; height: 100%; }
.nspl-card::before { content: ''; position: absolute; inset: 0 0 auto 0; height: 4px; z-index: 2; background: var(--wp--preset--color--orange); transform: scaleX(.18); transform-origin: left; transition: transform .2s; }
.nspl-card:hover, .nspl-card:focus-within { box-shadow: var(--nspl-shadow); }
.nspl-card:hover::before, .nspl-card:focus-within::before { transform: scaleX(1); }
@media (prefers-reduced-motion: reduce) { .nspl-card, .nspl-card::before { transition: none; } }
.nspl-card__img { margin: 0 !important; aspect-ratio: 16 / 10; background: linear-gradient(135deg, #3b3e44, #2a2c31); overflow: hidden; }
.nspl-card__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.nspl-cards--models .nspl-card__img { aspect-ratio: 4 / 3; display: grid; place-items: center; }
.nspl-cards--models .nspl-card__img img { object-fit: contain; background: #fff; }
.nspl-card__ph { font-family: var(--wp--preset--font-family--mono); font-weight: 700; color: var(--wp--preset--color--muted); }
.nspl-card__body { padding: 1.25rem 1.5rem 1.5rem; display: flex; flex-direction: column; gap: .5rem; flex: 1; }
.nspl-card__body > * { margin: 0 !important; }
.nspl-card h2, .nspl-card h3 { font-size: 1.15rem; }
.nspl-card h2 a, .nspl-card h3 a { color: var(--wp--preset--color--dark); text-decoration: none; }
.nspl-card h2 a::after, .nspl-card h3 a::after { content: ''; position: absolute; inset: 0; z-index: 1; }
.nspl-card:hover h2 a, .nspl-card:hover h3 a { color: var(--wp--preset--color--accent); }
.nspl-card p, .nspl-card .wp-block-post-excerpt { color: var(--wp--preset--color--ink-2); font-size: var(--wp--preset--font-size--sm); }
.nspl-card .wp-block-post-excerpt__more-text { display: none; }
.nspl-more { margin-top: auto !important; padding-top: .5rem; font-weight: 650; font-size: var(--wp--preset--font-size--sm); color: var(--wp--preset--color--accent) !important; }
.nspl-card__meta a { color: var(--wp--preset--color--accent); text-decoration: none; position: relative; z-index: 2; font-weight: 650; }
.nspl-query .wp-block-post-template { margin: 0; }

/* Industry tiles */
.nspl-tiles { display: grid !important; gap: 1rem; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
@media (min-width: 1000px) { .nspl-tiles { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; } }
.nspl-tile { position: relative; margin: 0 !important; border-radius: var(--nspl-radius); overflow: hidden; aspect-ratio: 4 / 3; background: linear-gradient(135deg, var(--wp--preset--color--dark-2), var(--wp--preset--color--darker)); }
.nspl-tile:nth-child(3n+2) { background: linear-gradient(135deg, var(--wp--preset--color--dark), var(--wp--preset--color--accent-dark)); }
.nspl-tile__img { position: absolute !important; inset: 0; margin: 0 !important; height: 100% !important; }
.nspl-tile__img img { width: 100%; height: 100% !important; object-fit: cover; transition: transform .3s; }
.nspl-tile::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(28,29,33,0) 30%, rgba(28,29,33,.9) 100%); }
.nspl-tile:hover .nspl-tile__img img { transform: scale(1.04); }
@media (prefers-reduced-motion: reduce) { .nspl-tile__img img { transition: none; } }
.nspl-tile__title { position: absolute !important; left: 1rem; right: 1rem; bottom: .9rem; margin: 0 !important; z-index: 2; font-size: 1.05rem !important; }
.nspl-tile__title a { color: #fff !important; text-decoration: none; }
.nspl-tile__title a::after { content: ''; position: absolute; inset: -100vh -100vw; }
.nspl-tile__title a:hover { text-decoration: underline; }
.nspl-tile:has(a:focus-visible) { box-shadow: var(--nspl-focus); }

/* Steps, checks, tags */
.nspl-steps { list-style: none; padding: 0; counter-reset: step; display: grid; gap: 1rem; margin: 0 0 1.5rem; }
@media (min-width: 1000px) { .nspl-steps--row { grid-template-columns: repeat(5, 1fr); } }
.nspl-steps li { counter-increment: step; position: relative; padding: 1rem 1rem 1rem 3.5rem; background: #fff; border: 1px solid var(--wp--preset--color--line); border-radius: var(--nspl-radius); margin: 0; }
.nspl-steps li::before { content: counter(step); position: absolute; left: 1rem; top: 1rem; width: 1.9rem; height: 1.9rem; border-radius: 50%; background: var(--wp--preset--color--orange); color: var(--wp--preset--color--ink); font-weight: 700; display: grid; place-items: center; font-size: var(--wp--preset--font-size--sm); }
.nspl-steps li:nth-child(even)::before { background: var(--wp--preset--color--dark); color: #fff; }
.nspl-steps strong { display: block; color: var(--wp--preset--color--dark); }
.nspl-checks, .is-style-nspl-checks { list-style: none; padding-left: 0; }
.nspl-checks li, .is-style-nspl-checks li { position: relative; padding-left: 1.75rem; }
.nspl-checks li::before, .is-style-nspl-checks li::before { content: ''; position: absolute; left: 0; top: .45em; width: 1rem; height: .55rem; border-left: 3px solid var(--wp--preset--color--orange); border-bottom: 3px solid var(--wp--preset--color--orange); transform: rotate(-45deg); }
.nspl-tags { display: flex; flex-wrap: wrap; gap: .5rem; list-style: none; padding: 0; margin: 0 0 1rem; }
.nspl-tags li { margin: 0; }
.nspl-tags a, .nspl-tags span, .nspl-tags li:not(:has(a, span)) { display: inline-block; padding: .3rem .8rem; border: 1px solid var(--wp--preset--color--line); border-radius: 999px; font-size: var(--wp--preset--font-size--sm); text-decoration: none; color: var(--wp--preset--color--ink-2); background: #fff; }
.nspl-tags a:hover { border-color: var(--wp--preset--color--accent); color: var(--wp--preset--color--accent); }
.nspl-tags--regions span { border-left: 3px solid var(--wp--preset--color--orange); }
.nspl-timeline { list-style: none; padding-left: 0; border-left: 3px solid var(--wp--preset--color--orange); }
.nspl-timeline li { padding: 0 0 1rem 1.5rem; position: relative; }
.nspl-timeline li::before { content: ''; position: absolute; left: -9px; top: .4em; width: 15px; height: 15px; border-radius: 50%; background: #fff; border: 3px solid var(--wp--preset--color--dark); }
.nspl-timeline strong { display: block; color: var(--wp--preset--color--dark); }

/* Digital & AI section (charcoal with orange glow) */
.nspl-ai { position: relative; }
.nspl-ai::before, .nspl-cta-band::before, .nspl-footer::before, .nspl-panel--cta::before { content: ''; position: absolute; inset: 0 0 auto 0; height: 4px; background: var(--nspl-grad); }
.nspl-ai .nspl-checks li::before { border-color: var(--wp--preset--color--orange-light); }
.nspl-ai__img img { border-radius: var(--nspl-radius); box-shadow: 0 20px 50px rgba(0,0,0,.35); }

/* CTA band + panel */
.nspl-cta-band { position: relative; padding-block: var(--wp--preset--spacing--50) !important; background: linear-gradient(120deg, #f47a20 0%, #f47a20 60%, #e8691a 100%) !important; color: var(--wp--preset--color--ink) !important; }
.nspl-cta-band h2 { color: var(--wp--preset--color--ink) !important; }
.nspl-cta-band p { color: var(--wp--preset--color--ink); margin: 0; }
.nspl-cta-band::before { background: var(--wp--preset--color--dark) !important; }
.nspl-cta-band .wp-block-button:not(.is-style-nspl-ghost) .wp-block-button__link { background: var(--wp--preset--color--darker); color: #fff; }
.nspl-cta-band .wp-block-button:not(.is-style-nspl-ghost) .wp-block-button__link:hover { background: var(--wp--preset--color--dark-2); }
.nspl-cta-band .is-style-nspl-ghost .wp-block-button__link { color: var(--wp--preset--color--ink) !important; }
.nspl-cta-band .is-style-nspl-ghost .wp-block-button__link:hover { background: rgba(255,255,255,.25) !important; }
.nspl-panel { background: var(--wp--preset--color--bg-alt); border: 1px solid var(--wp--preset--color--line); border-radius: var(--nspl-radius); padding: 1.5rem; }
.nspl-panel + .nspl-panel { margin-top: 1rem; }
.nspl-panel h2 { font-size: 1.15rem; }
.nspl-panel--cta { position: relative; overflow: hidden; background: radial-gradient(400px 240px at 100% 0%, rgba(244,122,32,.35) 0%, transparent 70%), var(--wp--preset--color--dark); color: var(--wp--preset--color--on-dark); border-color: var(--wp--preset--color--dark); }
.nspl-panel--cta h2 { color: #fff; margin-top: 0; }
.nspl-panel--cta p { color: #c9cbd1; font-size: var(--wp--preset--font-size--sm); }
.nspl-aside-phone a { color: #fff; font-weight: 650; }
@media (min-width: 782px) { .nspl-aside > * { position: sticky; top: 6rem; } }

/* Content layout */
.nspl-split { gap: var(--wp--preset--spacing--50) !important; }
.nspl-prose { min-width: 0; }
.nspl-prose > *, .nspl-page-body .wp-block-post-content > * { max-width: 72ch; }
.nspl-page-body .wp-block-post-content > * { margin-left: 0 !important; } /* left edge matches the hero */
.nspl-prose .wp-block-post-featured-image { max-width: none; margin-bottom: 1.5rem; }
.nspl-prose .wp-block-post-featured-image img { border-radius: var(--nspl-radius); }
.nspl-prose h2, .nspl-page-body h2 { margin-top: 2rem; }
.nspl-related-block { margin-top: 2.5rem; padding: 1.5rem; background: var(--wp--preset--color--bg-alt); border-radius: var(--nspl-radius); border-left: 4px solid var(--wp--preset--color--orange); }
.nspl-related-block h2 { margin-top: 0; font-size: var(--wp--preset--font-size--lg); }
.nspl-related-block h3 { font-size: var(--wp--preset--font-size--sm); text-transform: uppercase; letter-spacing: .06em; color: var(--wp--preset--color--muted); margin: 1rem 0 .5rem; }
.nspl-related { display: flex; flex-wrap: wrap; gap: .5rem; list-style: none; padding: 0; }
.nspl-related li { margin: 0; }
.nspl-related a { display: inline-block; padding: .25rem .75rem; background: #fff; border: 1px solid var(--wp--preset--color--line); border-radius: 999px; text-decoration: none; font-size: var(--wp--preset--font-size--sm); }
.nspl-note { border-left: 4px solid var(--wp--preset--color--orange); background: var(--wp--preset--color--orange-soft); padding: 1rem 1.25rem; border-radius: 0 var(--nspl-radius-sm) var(--nspl-radius-sm) 0; margin-top: 2rem; }
.nspl-note p { margin: 0; }

/* Tables */
.wp-block-table, .nspl-table-wrap { overflow-x: auto; border: 1px solid var(--wp--preset--color--line); border-radius: var(--nspl-radius); margin: 0 0 1.5rem; }
.wp-block-table table, .nspl-table-wrap table, .wp-block-term-description table { width: 100%; border-collapse: collapse; }
.wp-block-table td, .wp-block-table th, .nspl-table-wrap td, .nspl-table-wrap th { border: 0; border-top: 1px solid var(--wp--preset--color--line); padding: .75rem 1rem; text-align: left; vertical-align: top; }
.wp-block-table thead th, .nspl-table-wrap thead th { background: var(--wp--preset--color--bg-alt); color: var(--wp--preset--color--dark); border-top: 0; box-shadow: inset 0 -2px 0 var(--wp--preset--color--orange); }
.wp-block-table tr:first-child td { border-top: 0; }

/* FAQ (Details blocks) */
.nspl-faq { margin-block: 0 .75rem !important; background: #fff; border: 1px solid var(--wp--preset--color--line); border-radius: var(--nspl-radius-sm); padding: 0 !important; }
.nspl-faq summary { cursor: pointer; padding: 1rem; font-weight: 650; color: var(--wp--preset--color--dark); }
.nspl-faq summary::marker { color: var(--wp--preset--color--orange); }
.nspl-faq[open] { border-color: var(--wp--preset--color--orange); }
.nspl-faq > :not(summary) { padding: 0 1rem 1rem; margin: 0; }

/* Badges */
.nspl-badge { display: inline-flex; font-size: var(--wp--preset--font-size--xs); font-weight: 700; padding: .2em .6em; border-radius: 999px; background: #eceef1; color: var(--wp--preset--color--ink-2); white-space: nowrap; }
.nspl-badge--current { background: #e3f4ea; color: #16794c; }
.nspl-badge--mature { background: #e4e5e9; color: var(--wp--preset--color--ink-2); }
.nspl-badge--legacy, .nspl-badge--replacement-available { background: var(--wp--preset--color--orange-soft); color: var(--wp--preset--color--accent-dark); }
.nspl-badge--obsolete { background: var(--wp--preset--color--crimson-soft); color: #b42318; }
.nspl-verify-banner { background: #8f1111; color: #fff; text-align: center; font-size: var(--wp--preset--font-size--sm); padding: .5rem 1rem; }

/* Product gallery */
.nspl-product-gallery { margin-bottom: 2rem !important; }
.nspl-product-gallery img { background: #fff; object-fit: contain !important; border: 1px solid var(--wp--preset--color--line); border-radius: var(--nspl-radius-sm); }
.nspl-brand-group + .nspl-brand-group { margin-top: 3rem; }

/* Search boxes */
.nspl-big-search { max-width: 640px; margin-bottom: 2rem; }
.nspl-big-search .wp-block-search__input { min-height: 48px; border: 1.5px solid #8a8d94; border-radius: var(--nspl-radius-sm); padding: .6rem .9rem; font-size: var(--wp--preset--font-size--md); }
.nspl-page-hero .nspl-big-search .wp-block-search__input { border-color: transparent; }
.nspl-big-search .wp-block-search__button { background: var(--wp--preset--color--orange); color: var(--wp--preset--color--ink); border: 0; border-radius: var(--nspl-radius-sm); font-weight: 650; padding-inline: 1.25rem; }
.nspl-results .wp-block-post-template { list-style: none; padding: 0; display: grid; gap: 1rem; }
.nspl-result { padding: 1rem 1.25rem; border: 1px solid var(--wp--preset--color--line); border-radius: var(--nspl-radius); }
.nspl-result h2 { margin: 0 0 .25rem; }

/* Forms */
.nspl-form { display: grid; gap: 1rem; max-width: 760px; }
.nspl-form__grid { display: grid; gap: 1rem 1.25rem; align-items: start; }
@media (min-width: 640px) { .nspl-form__grid { grid-template-columns: 1fr 1fr; } .nspl-field--wide { grid-column: 1 / -1; } }
.nspl-field { display: grid; gap: .25rem; }
.nspl-field label { font-weight: 650; font-size: var(--wp--preset--font-size--sm); color: var(--wp--preset--color--dark); }
.nspl-field .req { color: #b42318; }
.nspl-hint { font-size: var(--wp--preset--font-size--xs); color: var(--wp--preset--color--muted); margin: 0; }
.nspl-field input, .nspl-field select, .nspl-field textarea { box-sizing: border-box; font: inherit; width: 100%; min-height: 44px; padding: .55rem .75rem; border: 1.5px solid #8a8d94; border-radius: var(--nspl-radius-sm); background: #fff; color: var(--wp--preset--color--ink); }
.nspl-field textarea { min-height: 8rem; resize: vertical; }
.nspl-field input:focus, .nspl-field select:focus, .nspl-field textarea:focus { outline: none; border-color: var(--wp--preset--color--accent); box-shadow: 0 0 0 3px rgba(244,122,32,.3); }
.nspl-field [aria-invalid='true'] { border-color: #b42318; }
.nspl-field input[type='file'] { padding: .45rem; }
.nspl-error { color: #b42318; font-size: var(--wp--preset--font-size--xs); font-weight: 650; margin: 0; }
.nspl-check { display: flex; gap: .75rem; align-items: flex-start; font-size: var(--wp--preset--font-size--sm); font-weight: 400 !important; }
.nspl-check input { width: 1.25rem; height: 1.25rem; min-height: 0; margin-top: .15rem; flex: none; }
.nspl-form__summary { background: #fdeceb; border-left: 4px solid #b42318; padding: 1rem 1.25rem; border-radius: 0 var(--nspl-radius-sm) var(--nspl-radius-sm) 0; }
.nspl-form__summary h2 { font-size: var(--wp--preset--font-size--md); color: #b42318; margin: 0 0 .5rem; }
.nspl-form__summary a { color: #b42318; }
.nspl-status--ok { background: #e3f4ea; color: #16794c; padding: 1rem; border-radius: var(--nspl-radius-sm); font-weight: 600; }
.nspl-hp { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }

/* Footer */
.nspl-footer { position: relative; padding-block: var(--wp--preset--spacing--60) 1.5rem !important; font-size: var(--wp--preset--font-size--sm); color: #c9cbd1; }
.nspl-footer a { color: var(--wp--preset--color--on-dark); text-decoration: none; }
.nspl-footer a:hover { color: var(--wp--preset--color--orange-light); text-decoration: underline; }
.nspl-address { font-style: normal; line-height: 1.8; }
.nspl-footer-nav { display: grid; gap: 1.5rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 768px) { .nspl-footer-nav { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.nspl-footer-nav h2 { font-size: var(--wp--preset--font-size--sm); color: #fff; text-transform: uppercase; letter-spacing: .06em; margin: 0 0 .75rem; }
.nspl-footer-nav ul, .nspl-legal-links { list-style: none; padding: 0; margin: 0; }
.nspl-footer-nav li { margin: 0 0 .5rem; }
.nspl-footer__legal { margin-top: 2rem; padding-top: 1rem; border-top: 1px solid #4a4d55; }
.nspl-footer__legal p { margin: 0; }
.nspl-legal-links { display: flex; flex-wrap: wrap; gap: 1rem; }

/* Principal partners (homepage) */
.nspl-partners { list-style: none; padding: 0; margin: 0 0 1.5rem; display: grid; gap: 1rem; grid-template-columns: 1fr; }
@media (min-width: 640px) { .nspl-partners { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1000px) { .nspl-partners { grid-template-columns: repeat(5, minmax(0, 1fr)); } }
.nspl-partner { position: relative; display: flex; flex-direction: column; gap: .4rem; margin: 0; padding: 1.25rem 1.25rem 1.1rem; background: var(--wp--preset--color--bg-alt); border-radius: var(--nspl-radius); border-top: 4px solid var(--wp--preset--color--orange); transition: background-color .15s, box-shadow .15s; }
.nspl-partner:hover, .nspl-partner:focus-within { background: #fff; box-shadow: var(--nspl-shadow); }
.nspl-partner > * { margin: 0; }
.nspl-partner__mark { font-size: 1.35rem !important; font-weight: 800; line-height: 1.15; letter-spacing: -.01em; color: var(--wp--preset--color--dark); min-height: 2.4em; display: flex; align-items: flex-end; }
.nspl-partner h3 a { color: inherit; text-decoration: none; }
.nspl-partner__name { font-size: var(--wp--preset--font-size--sm); color: var(--wp--preset--color--ink-2); }
.nspl-partner h3 a::after { content: ''; position: absolute; inset: 0; }
.nspl-partner:hover h3 a { color: var(--wp--preset--color--accent); }
.nspl-partner__country { font-size: var(--wp--preset--font-size--xs); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--wp--preset--color--muted); }
.nspl-partner__lines { list-style: none; padding: .5rem 0 0; margin: .25rem 0 0 !important; border-top: 1px solid var(--wp--preset--color--line); font-size: var(--wp--preset--font-size--xs); color: var(--wp--preset--color--ink-2); display: grid; gap: .3rem; }
.nspl-partner__lines li { position: relative; padding-left: .9rem; }
.nspl-partner__lines li::before { content: ''; position: absolute; left: 0; top: .5em; width: 5px; height: 5px; border-radius: 50%; background: var(--wp--preset--color--orange); }
.nspl-partner__lines li:nth-child(n+4) { display: none; } /* three lines keep the cards even; the partner page lists all */
.nspl-partner .nspl-more { margin-top: auto !important; }

/* Partner product cards (photos are on white, uncropped) */
.nspl-cards.nspl-cards--featured { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 1rem; }
@media (min-width: 800px) { .nspl-cards.nspl-cards--featured { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; } }
.nspl-prose .nspl-cards.nspl-cards--featured, .nspl-page-body .nspl-cards.nspl-cards--featured { max-width: none; }
@media (min-width: 800px) { .nspl-prose .nspl-cards.nspl-cards--featured { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; } }
.nspl-cards--featured .nspl-card__img, .nspl-card__img--product { background: #fff; border-bottom: 1px solid var(--wp--preset--color--line); }
.nspl-cards--featured .nspl-card__img, .nspl-card__img--product { position: relative; }
.nspl-cards--featured .nspl-card__img img, .nspl-card__img--product img { position: absolute; inset: 0; width: 100% !important; height: 100% !important; object-fit: contain !important; padding: .75rem; box-sizing: border-box; }
.nspl-cards--featured .nspl-card__img:has(.nspl-card__ph) { background: linear-gradient(135deg, var(--wp--preset--color--bg-alt), #dcdde1); }
.nspl-cards--featured .nspl-card__ph { color: var(--wp--preset--color--ink-2); text-align: center; padding: 1rem; }
.nspl-cards--featured .nspl-card__body { padding: 1rem 1.1rem 1.2rem; gap: .3rem; }
.nspl-cards--featured h3 { font-size: 1rem; }
.nspl-card__brand { font-size: var(--wp--preset--font-size--xs); font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--wp--preset--color--accent); }
.nspl-subhead { font-size: var(--wp--preset--font-size--sm); font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--wp--preset--color--muted); margin: 2rem 0 .75rem; }
.nspl-tags--families a { font-weight: 600; }

/* Mobile navigation overlay: left-aligned, flat list with grouped sub-items */
.wp-block-navigation__responsive-container.is-menu-open { padding: 1.25rem 1rem 2rem !important; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { align-items: stretch !important; padding-top: 3rem !important; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { align-items: stretch !important; gap: 0 !important; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { align-items: flex-start !important; border-bottom: 1px solid var(--wp--preset--color--line); padding-block: .35rem; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { font-size: 1.05rem; font-weight: 700; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { border: 0 !important; box-shadow: none !important; padding: 0 0 .5rem .75rem !important; min-width: 0 !important; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item { border: 0; padding: 0; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { font-size: var(--wp--preset--font-size--sm); font-weight: 500; padding: .35rem 0; }

/* Product photos on product pages: whole product visible, moderate size */
.nspl-prose figure.nspl-product-gallery { max-width: 560px; margin-bottom: 2rem; background: #fff; border: 1px solid var(--wp--preset--color--line); border-radius: var(--nspl-radius); padding: 1rem; }
.nspl-prose figure.nspl-product-gallery img { border: 0; max-height: 380px; width: 100%; object-fit: contain !important; }

/* Homepage built from blocks (Pages → Home) */
.nspl-home .wp-block-post-content > * { margin-block: 0; }
.nspl-trust__list li { color: var(--wp--preset--color--on-dark); font-size: var(--wp--preset--font-size--sm); margin: 0; }
.nspl-trust__list li strong { display: block; }
.nspl-tags--regions li { border-left: 3px solid var(--wp--preset--color--orange) !important; }
.nspl-cards > .nspl-card { list-style: none; }

/* =====================================================================================================
   VERSION 2 (client review, Oct 2026): modern and alive, product flyouts, short lifecycle pages, mobile-first.
   ===================================================================================================== */
:root {
	--nspl-r: 16px;
	--nspl-r-sm: 10px;
	--nspl-lift: 0 2px 4px rgba(29,31,35,.04), 0 18px 40px -12px rgba(29,31,35,.22);
	--nspl-ease: cubic-bezier(.2,.7,.2,1);
	--nspl-grid: linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px) 0 0 / 32px 32px, linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px) 0 0 / 32px 32px;
}

/* Type: modern display face for headings, larger and tighter section titles */
h1, h2, h3, h4, .nspl-hero__title, .nspl-partner__mark, .nspl-trust__list strong { font-family: var(--wp--preset--font-family--display); }
.nspl-section-head h2, .nspl-main .nspl-section > h2 { font-size: clamp(1.7rem, 1.1rem + 2.2vw, 2.6rem); line-height: 1.12; }
.nspl-section-head .nspl-lead { font-size: clamp(1.02rem, .95rem + .35vw, 1.2rem); }
.nspl-eyebrow { letter-spacing: .12em; }

/* Buttons: softer corners, lift on hover */
.wp-element-button, .nspl-btn { border-radius: var(--nspl-r-sm) !important; transition: transform .2s var(--nspl-ease), box-shadow .2s var(--nspl-ease), background-color .15s, color .15s !important; }
.wp-element-button:hover, .nspl-btn:hover { transform: translateY(-2px); box-shadow: 0 10px 22px -10px rgba(244,122,32,.65); }

/* Cards and tiles: rounder, lift and image zoom on hover */
.nspl-card, .nspl-partner, .nspl-tile, .nspl-steps li, .nspl-panel, .nspl-faq, .wp-block-table, .nspl-table-wrap { border-radius: var(--nspl-r) !important; }
.nspl-card { transition: transform .25s var(--nspl-ease), box-shadow .25s var(--nspl-ease), border-color .25s; }
.nspl-card:hover, .nspl-card:focus-within { transform: translateY(-4px); box-shadow: var(--nspl-lift); border-color: transparent; }
.nspl-card__img img { transition: transform .5s var(--nspl-ease); }
.nspl-card:hover .nspl-card__img img { transform: scale(1.05); }
.nspl-cards--featured .nspl-card:hover .nspl-card__img img { transform: scale(1.06); }
.nspl-cards--featured .nspl-card__img, .nspl-card__img--product { background: radial-gradient(120% 90% at 50% 0%, #fff 0%, #f1f2f4 100%); }
.nspl-tile { box-shadow: 0 10px 30px -18px rgba(0,0,0,.6); }
.nspl-tile::after { background: linear-gradient(180deg, rgba(28,29,33,0) 35%, rgba(28,29,33,.92) 100%); transition: opacity .3s; }
.nspl-tile:hover .nspl-tile__img img { transform: scale(1.08); }
.nspl-partner { transition: transform .25s var(--nspl-ease), box-shadow .25s var(--nspl-ease), background-color .2s; }
.nspl-partner:hover, .nspl-partner:focus-within { transform: translateY(-4px); box-shadow: var(--nspl-lift); }

/* Steps: numbered timeline feel */
.nspl-steps li { transition: transform .25s var(--nspl-ease), box-shadow .25s var(--nspl-ease); }
.nspl-steps li:hover { transform: translateY(-3px); box-shadow: var(--nspl-lift); }
.nspl-steps li::before { box-shadow: 0 0 0 5px rgba(244,122,32,.18); }

/* Dark sections feel digital: faint grid + slow moving glow */
.nspl-ai { background: var(--nspl-grid), var(--wp--preset--gradient--purple) !important; }
.nspl-trust { background: var(--nspl-grid), var(--wp--preset--color--dark); }
.nspl-page-hero { background: var(--nspl-grid), var(--wp--preset--gradient--charcoal) !important; overflow: hidden; }
.nspl-footer { background: var(--nspl-grid), var(--wp--preset--color--darker) !important; }
.nspl-ai { overflow: hidden; }
.nspl-ai::after, .nspl-page-hero::before { content: ''; position: absolute; width: 60vmax; height: 60vmax; right: -20vmax; top: -30vmax; border-radius: 50%; background: radial-gradient(circle, rgba(244,122,32,.28), rgba(244,122,32,0) 60%); pointer-events: none; z-index: 0; }
.nspl-ai > *, .nspl-page-hero > * { position: relative; z-index: 1; }
@media (prefers-reduced-motion: no-preference) {
	.nspl-ai::after, .nspl-page-hero::before { animation: nspl-drift 18s ease-in-out infinite alternate; }
	@keyframes nspl-drift { from { transform: translate(0, 0) scale(1); } to { transform: translate(-12vmax, 10vmax) scale(1.15); } }
}
.nspl-ai__img img { border-radius: var(--nspl-r); }

/* Hero: animated data network canvas sits above the photo overlay, below the text */
.nspl-hero__net { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 2; pointer-events: none; opacity: .55; }

/* Scroll reveal (only when JavaScript runs and motion is allowed; content is visible otherwise) */
@media (prefers-reduced-motion: no-preference) {
	.nspl-js [data-reveal] { opacity: 0; transform: translateY(22px); transition: opacity .7s var(--nspl-ease), transform .7s var(--nspl-ease); transition-delay: calc(var(--i, 0) * 70ms); }
	.nspl-js [data-reveal].is-in { opacity: 1; transform: none; }
}

/* Brand logo strip */
.nspl-logos { list-style: none; margin: 0 0 2rem; padding: 0; display: flex; flex-wrap: wrap; gap: .75rem; align-items: stretch; }
.nspl-logos li { margin: 0; flex: 1 1 140px; }
.nspl-logos a { display: grid; place-items: center; height: 72px; padding: .75rem 1rem; background: #fff; border: 1px solid var(--wp--preset--color--line); border-radius: var(--nspl-r-sm); transition: transform .2s var(--nspl-ease), box-shadow .2s var(--nspl-ease); }
.nspl-logos a:hover, .nspl-logos a:focus-visible { transform: translateY(-3px); box-shadow: var(--nspl-lift); }
.nspl-logos img { max-height: 44px; width: auto; max-width: 100%; object-fit: contain; filter: grayscale(1); opacity: .8; transition: filter .25s, opacity .25s; }
.nspl-logos a:hover img, .nspl-logos a:focus-visible img { filter: none; opacity: 1; }
.nspl-brand-logo { display: inline-grid; place-items: center; background: #fff; border-radius: var(--nspl-r-sm); padding: .6rem 1rem; margin-bottom: 1rem; }
.nspl-brand-logo img { max-height: 48px; width: auto; }

/* Product flyouts: photo + title; the description opens on hover, keyboard focus or tap */
.nspl-flys { display: grid !important; gap: 1.25rem; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); margin: 0 0 2.5rem; }
.nspl-flys > * { margin: 0 !important; }
.nspl-flys--apps { grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); }
.nspl-fly { position: relative; display: flex; flex-direction: column; background: #fff; border: 1px solid var(--wp--preset--color--line); border-radius: var(--nspl-r); overflow: hidden; cursor: pointer; transition: transform .25s var(--nspl-ease), box-shadow .25s var(--nspl-ease); }
.nspl-fly > * { margin: 0 !important; }
.nspl-fly:hover, .nspl-fly:focus-visible, .nspl-fly.is-open { transform: translateY(-4px); box-shadow: var(--nspl-lift); }
.nspl-fly:focus-visible { outline: 3px solid var(--wp--preset--color--orange); outline-offset: 2px; }
.nspl-fly__img { aspect-ratio: 4 / 3; display: grid; place-items: center; padding: 1rem; background: radial-gradient(120% 90% at 50% 0%, #fff 0%, #eef0f2 100%); }
.nspl-fly__img img { width: 100%; height: 100%; object-fit: contain; }
.nspl-fly--app .nspl-fly__img { aspect-ratio: 16 / 10; padding: .5rem; background: #fff; }
.nspl-fly__title { font-size: .98rem !important; line-height: 1.35; padding: .85rem 1rem 1rem; border-top: 1px solid var(--wp--preset--color--line); }
.nspl-fly::after { content: '+'; position: absolute; top: .6rem; right: .6rem; width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; background: var(--wp--preset--color--orange); color: var(--wp--preset--color--ink); font: 700 20px/1 var(--wp--preset--font-family--display); box-shadow: 0 4px 12px rgba(244,122,32,.45); transition: transform .25s var(--nspl-ease); z-index: 3; }
.nspl-fly:hover::after, .nspl-fly.is-open::after, .nspl-fly:focus-visible::after { transform: rotate(45deg); }
.nspl-fly__panel { position: absolute; inset: 0; z-index: 2; padding: 1.1rem 1.1rem 1.25rem; overflow: auto; background: linear-gradient(160deg, rgba(42,44,49,.97), rgba(28,29,33,.98)); color: var(--wp--preset--color--on-dark); font-size: var(--wp--preset--font-size--sm); line-height: 1.5; opacity: 0; transform: translateY(12px); visibility: hidden; transition: opacity .25s var(--nspl-ease), transform .25s var(--nspl-ease), visibility 0s .25s; }
.nspl-fly__panel p { margin: 0 2rem .6rem 0; color: #fff; }
.nspl-fly__panel ul { margin: 0; padding-left: 1.1rem; color: var(--wp--preset--color--on-dark); }
.nspl-fly__panel li { margin: 0 0 .3rem; }
.nspl-fly__panel li::marker { color: var(--wp--preset--color--orange-light); }
@media (hover: hover) { .nspl-fly:hover .nspl-fly__panel { opacity: 1; transform: none; visibility: visible; transition-delay: 0s; } }
.nspl-fly:focus-visible .nspl-fly__panel, .nspl-fly.is-open .nspl-fly__panel { opacity: 1; transform: none; visibility: visible; transition-delay: 0s; }
/* Without JavaScript the text simply sits under the photo */
html:not(.nspl-js) .nspl-fly__panel { position: static; opacity: 1; transform: none; visibility: visible; background: none; color: var(--wp--preset--color--ink-2); padding-top: 0; }
html:not(.nspl-js) .nspl-fly__panel p { color: var(--wp--preset--color--ink-2); }
html:not(.nspl-js) .nspl-fly::after { display: none; }
/* Product line pages use the full width for the grid */
.single-nspl_product .nspl-prose figure.nspl-fly__img { max-width: none; }

/* Home: animated applications strip */
.nspl-apps { list-style: none; margin: 0; padding: 0; display: grid; gap: 1.25rem; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
.nspl-apps li { margin: 0; }
.nspl-apps a { position: relative; display: flex; flex-direction: column; height: 100%; background: #fff; color: var(--wp--preset--color--dark); text-decoration: none; border-radius: var(--nspl-r); overflow: hidden; border: 1px solid rgba(255,255,255,.08); transition: transform .25s var(--nspl-ease), box-shadow .25s var(--nspl-ease); }
.nspl-apps a:hover, .nspl-apps a:focus-visible { transform: translateY(-5px); box-shadow: 0 24px 50px -20px rgba(0,0,0,.8); }
.nspl-apps img { width: 100%; aspect-ratio: 16 / 10; object-fit: contain; background: #fff; padding: .4rem; }
.nspl-apps span { display: block; padding: .8rem 1rem 1rem; font: 650 .98rem/1.35 var(--wp--preset--font-family--display); border-top: 1px solid var(--wp--preset--color--line); }
.nspl-apps small { display: block; font: 600 .75rem/1.4 var(--wp--preset--font-family--system); color: var(--wp--preset--color--accent); text-transform: uppercase; letter-spacing: .08em; margin-bottom: .2rem; }
.nspl-apps-section { background: var(--nspl-grid), var(--wp--preset--color--darker); color: var(--wp--preset--color--on-dark); position: relative; overflow: hidden; }
.nspl-apps-section h2 { color: #fff; }
.nspl-apps-section .nspl-lead { color: var(--wp--preset--color--on-dark); }
.nspl-apps-section .nspl-eyebrow { color: var(--wp--preset--color--orange-light); }
.nspl-apps-section a:not(.nspl-apps a) { color: var(--wp--preset--color--orange-light); }

/* Lifecycle Support pages: short and simple */
.nspl-checks--grid { display: grid; gap: .75rem; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); padding: 0; }
.nspl-checks--grid li { background: #fff; border: 1px solid var(--wp--preset--color--line); border-radius: var(--nspl-r-sm); padding: 1rem 1rem 1rem 2.9rem !important; font-weight: 600; color: var(--wp--preset--color--dark); margin: 0; }
.nspl-checks--grid li::before { left: 1.05rem !important; top: 1.35rem !important; }
.nspl-steps--row3 { grid-template-columns: 1fr; }
@media (min-width: 700px) { .nspl-steps--row3 { grid-template-columns: repeat(3, 1fr); } }

/* Lifecycle pages and product lines: the hero is the summary, so the body opens straight into content */
.single-nspl .nspl-prose > .wp-block-post-content > h2:first-child, .single-nspl_product .nspl-prose > .wp-block-post-content > h2:first-child { margin-top: 0; }

/* Mobile action bar */
.nspl-mobile-bar { display: none; }
@media (max-width: 781px) {
	.nspl-mobile-bar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 60; display: grid; grid-template-columns: 1fr 1.4fr; gap: .5rem; padding: .55rem .75rem calc(.55rem + env(safe-area-inset-bottom, 0px)); background: rgba(28,29,33,.94); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); box-shadow: 0 -8px 24px rgba(0,0,0,.2); }
	.nspl-mobile-bar a { display: flex; align-items: center; justify-content: center; gap: .45rem; min-height: 46px; border-radius: var(--nspl-r-sm); font: 700 .95rem/1 var(--wp--preset--font-family--display); text-decoration: none; }
	.nspl-mobile-bar a:first-child { color: #fff; border: 1.5px solid rgba(255,255,255,.35); }
	.nspl-mobile-bar a:last-child { background: var(--wp--preset--color--orange); color: var(--wp--preset--color--ink); }
	body { padding-bottom: calc(66px + env(safe-area-inset-bottom, 0px)); }
	.nspl-vs { bottom: calc(76px + env(safe-area-inset-bottom, 0px)) !important; left: 10px !important; transform: scale(.88); transform-origin: left bottom; }
}

/* ---------- Mobile (phone) layout ---------- */
@media (max-width: 781px) {
	.nspl-section { padding-block: 2.75rem !important; }
	.nspl-section-head { margin-bottom: 1.25rem; }
	.nspl-header__inner { min-height: 60px; }
	.nspl-logo__img { height: 40px !important; }
	.nspl-topbar__inner { min-height: 30px; }
	.nspl-header { --nspl-topbar-h: 32px; }
	.nspl-header .nspl-header-cta { display: none; }

	/* Hero: same content, phone-sized */
	.nspl-hero { min-height: 0 !important; padding-block: 2.5rem 2.25rem !important; }
	.nspl-hero__title { font-size: clamp(1.75rem, 7.4vw, 2.2rem) !important; line-height: 1.12; }
	.nspl-hero .nspl-lead { font-size: 1rem; line-height: 1.55; }
	.nspl-hero .wp-block-buttons { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; }
	.nspl-hero .wp-block-button:first-child { grid-column: 1 / -1; }
	.nspl-hero .wp-block-button__link { width: 100%; padding-inline: .6rem; font-size: .92rem; }

	/* Facts strip: two by two */
	.nspl-trust__list { grid-template-columns: 1fr 1fr !important; gap: 1rem .75rem; padding-block: 1.25rem; }
	.nspl-trust__list li { font-size: .8rem; line-height: 1.35; }

	/* Swipeable card rows on the homepage instead of one long column */
	.nspl-home :is(.nspl-cards, .nspl-partners, .nspl-apps, .nspl-steps--row) { display: flex !important; flex-wrap: nowrap; gap: .85rem !important; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: 16px; margin-inline: calc(-1 * var(--wp--style--root--padding-left, 16px)); padding: .25rem var(--wp--style--root--padding-left, 16px) 1rem; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
	.nspl-home :is(.nspl-cards, .nspl-partners, .nspl-apps, .nspl-steps--row)::-webkit-scrollbar { display: none; }
	.nspl-home :is(.nspl-cards, .nspl-partners, .nspl-apps, .nspl-steps--row) > * { flex: 0 0 78%; scroll-snap-align: start; }
	.nspl-home .nspl-cards--featured > * { flex-basis: 62%; }
	.nspl-home .nspl-steps--row > * { flex-basis: 70%; }
	.nspl-home .wp-block-post-template.nspl-cards > li { flex: 0 0 78%; }
	.nspl-home .nspl-card p:not(.nspl-more), .nspl-home .nspl-card .wp-block-post-excerpt { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
	.nspl-swipe-hint { display: flex !important; }

	/* Industry tiles: compact two-column grid */
	.nspl-tiles { gap: .6rem; }
	.nspl-tile__title { font-size: .92rem !important; left: .7rem; right: .7rem; bottom: .6rem; }

	/* Product flyouts: two per row */
	.nspl-flys { grid-template-columns: 1fr 1fr; gap: .75rem; }
	.nspl-flys--apps { grid-template-columns: 1fr; }
	.nspl-fly__title { font-size: .84rem !important; padding: .65rem .7rem .75rem; }
	.nspl-fly__img { padding: .6rem; }
	.nspl-fly__panel { font-size: .82rem; padding: .85rem; }
	.nspl-fly::after { width: 26px; height: 26px; font-size: 17px; }

	/* Inner pages */
	.nspl-page-hero { padding-block: 1.5rem 2rem !important; }
	.nspl-page-hero h1 { font-size: clamp(1.6rem, 7vw, 2rem) !important; }
	.nspl-split { gap: 1.5rem !important; }
	.nspl-aside > * { position: static; }
	.nspl-footer-nav { gap: 1.25rem; }
	.nspl-footer { padding-block: 2.5rem 1.25rem !important; }
	.nspl-cta-band .wp-block-buttons { display: grid !important; grid-template-columns: 1fr; gap: .5rem; }
	.nspl-cta-band .wp-block-button__link { width: 100%; }
	.nspl-logos li { flex-basis: calc(50% - .4rem); }
	.nspl-logos a { height: 60px; }
}
.nspl-swipe-hint { display: none; align-items: center; gap: .4rem; font-size: .8rem; color: var(--wp--preset--color--muted); margin: -.5rem 0 .75rem; }

/* Product line pages (V2): full-width flyout grid, enquiry panel after it */
.single-nspl_product .nspl-split { flex-direction: column !important; }
.single-nspl_product .nspl-split > .wp-block-column { flex-basis: auto !important; width: 100%; }
.single-nspl_product .nspl-prose > *, .single-nspl_product .nspl-prose .wp-block-post-content > * { max-width: none; }
.single-nspl_product .nspl-prose .wp-block-post-content > p { max-width: 72ch; }
.single-nspl_product .nspl-aside > * { position: static; max-width: 640px; }
.nspl-fly__img { position: relative; }
.nspl-fly__img img { position: absolute; inset: 1rem; width: calc(100% - 2rem) !important; height: calc(100% - 2rem) !important; object-fit: contain !important; }
.nspl-fly--app .nspl-fly__img img { inset: .5rem; width: calc(100% - 1rem) !important; height: calc(100% - 1rem) !important; }
@media (min-width: 1100px) { .single-nspl_product .nspl-flys:not(.nspl-flys--apps) { grid-template-columns: repeat(4, 1fr); } .single-nspl_product .nspl-flys--apps { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 781px) { .nspl-fly__img img { inset: .6rem; width: calc(100% - 1.2rem) !important; height: calc(100% - 1.2rem) !important; } }
/* Phones: an opened flyout spans the row and its text flows under the photo */
@media (max-width: 781px) {
	.nspl-fly.is-open { grid-column: 1 / -1; transform: none; }
	.nspl-fly.is-open .nspl-fly__img { aspect-ratio: 16 / 9; }
	.nspl-fly.is-open .nspl-fly__panel { position: static; inset: auto; overflow: visible; font-size: .9rem; padding: 1rem 1rem 1.15rem; }
	.nspl-fly.is-open .nspl-fly__panel p { margin-right: 0; }
}
/* Partner logos in their official colours (as supplied in the client's Drive), always */
.nspl-logos img { filter: none; opacity: 1; }
.nspl-logos li { flex-basis: 150px; }

/* =====================================================================================================
   VERSION 2.1 (client feedback, 23 Oct 2026): lifecycle support short and simple; more alive; phone-first.
   ===================================================================================================== */

/* Lifecycle tiles: icon + title + one line, the whole tile is the link */
.nspl-lcs { list-style: none; margin: 0 0 1.25rem; padding: 0; display: grid; gap: .85rem; grid-template-columns: 1fr; }
@media (min-width: 640px) { .nspl-lcs { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1000px) { .nspl-lcs { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.nspl-lcs--stack { grid-template-columns: 1fr; gap: .6rem; margin: 0; }
.nspl-lc { margin: 0; }
.nspl-lc__link { position: relative; display: flex; align-items: center; gap: 1rem; height: 100%; box-sizing: border-box; padding: 1rem 1.1rem; background: #fff; border: 1px solid var(--wp--preset--color--line); border-radius: var(--nspl-r); color: var(--wp--preset--color--dark); text-decoration: none; overflow: hidden; transition: transform .25s var(--nspl-ease), box-shadow .25s var(--nspl-ease), border-color .25s; }
.nspl-lc__link::before { content: ''; position: absolute; inset: 0 auto 0 0; width: 4px; background: var(--nspl-grad); transform: scaleY(0); transform-origin: bottom; transition: transform .3s var(--nspl-ease); }
.nspl-lc__link:hover, .nspl-lc__link:focus-visible { transform: translateY(-3px); box-shadow: var(--nspl-lift); border-color: transparent; }
.nspl-lc__link:hover::before, .nspl-lc__link:focus-visible::before { transform: scaleY(1); }
.nspl-lc__ico { flex: none; display: grid; place-items: center; width: 52px; height: 52px; border-radius: 14px; background: var(--wp--preset--color--orange-soft); color: var(--wp--preset--color--accent-dark); transition: background-color .25s, color .25s, transform .35s var(--nspl-ease); }
.nspl-lc__link:hover .nspl-lc__ico, .nspl-lc__link:focus-visible .nspl-lc__ico { background: var(--wp--preset--color--orange); color: var(--wp--preset--color--ink); transform: rotate(-6deg) scale(1.05); }
.nspl-lc__body { display: grid; gap: .15rem; min-width: 0; flex: 1; }
.nspl-lc__title { font: 700 1.02rem/1.25 var(--wp--preset--font-family--display); }
.nspl-lc__text { font-size: var(--wp--preset--font-size--sm); line-height: 1.45; color: var(--wp--preset--color--ink-2); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.nspl-lc__go { flex: none; font-weight: 700; color: var(--wp--preset--color--accent); transition: transform .25s var(--nspl-ease); }
.nspl-lc__link:hover .nspl-lc__go { transform: translateX(4px); }
.nspl-lifecycle { background: radial-gradient(800px 300px at 100% 0%, rgba(244,122,32,.08), transparent 70%), var(--wp--preset--color--bg-alt); }

/* Services: four lifecycle stages (Plan → Build → Run → Grow) */
.nspl-stages { list-style: none; margin: 0; padding: 0; display: grid; gap: 1.5rem; counter-reset: none; }
@media (min-width: 900px) { .nspl-stages { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.25rem; } }
.nspl-stage { margin: 0; position: relative; }
.nspl-stage__head { display: flex; align-items: center; gap: .75rem; margin: 0 0 .9rem; position: relative; }
.nspl-stage__head strong { display: block; font: 800 1.25rem/1.1 var(--wp--preset--font-family--display); color: var(--wp--preset--color--dark); }
.nspl-stage__head small { display: block; font-size: var(--wp--preset--font-size--xs); color: var(--wp--preset--color--muted); letter-spacing: .02em; }
.nspl-stage__n { flex: none; position: relative; z-index: 1; width: 2.4rem; height: 2.4rem; border-radius: 50%; display: grid; place-items: center; font: 800 1rem/1 var(--wp--preset--font-family--display); background: var(--wp--preset--color--orange); color: var(--wp--preset--color--ink); box-shadow: 0 0 0 6px rgba(244,122,32,.16); }
.nspl-stage:nth-child(even) .nspl-stage__n { background: var(--wp--preset--color--dark); color: #fff; box-shadow: 0 0 0 6px rgba(42,44,49,.12); }
@media (min-width: 900px) {
	/* connecting line between the stage numbers */
	.nspl-stage:not(:last-child) .nspl-stage__head::after { content: ''; position: absolute; left: 2.4rem; right: -1.25rem; top: 50%; height: 2px; background: linear-gradient(90deg, rgba(244,122,32,.6), rgba(244,122,32,.1)); z-index: 0; }
	.nspl-stage__head > span:last-child { position: relative; z-index: 1; background: #fff; padding-right: .6rem; }
	.nspl-stages .nspl-lc__link { flex-direction: column; align-items: flex-start; gap: .7rem; padding: 1.1rem; }
	.nspl-stages .nspl-lc__go { position: absolute; right: 1rem; top: 1.1rem; }
	.nspl-stages .nspl-lc__ico { width: 46px; height: 46px; }
}
@media (max-width: 899px) {
	/* phones/tablets: a vertical timeline */
	.nspl-stage::before { content: ''; position: absolute; left: calc(1.2rem - 1px); top: 2.4rem; bottom: -1.5rem; width: 2px; background: linear-gradient(rgba(244,122,32,.5), rgba(244,122,32,.08)); }
	.nspl-stage:last-child::before { display: none; }
	.nspl-stage .nspl-lcs--stack { padding-left: 3.15rem; }
}

/* More alive: frosted sticky header, scroll progress, shimmering hero accent, moving sheen on the CTA band */
/* The blur sits on a layer behind the header: a backdrop-filter on the header itself would trap the
   full-screen mobile menu (position: fixed) inside the header box. */
.nspl-header { background: transparent; isolation: isolate; }
.nspl-header::before { content: ''; position: absolute; inset: 0; z-index: -1; background: rgba(255,255,255,.86); -webkit-backdrop-filter: saturate(1.6) blur(14px); backdrop-filter: saturate(1.6) blur(14px); pointer-events: none; }
.nspl-progress { position: fixed; left: 0; top: 0; z-index: 10000; height: 3px; width: 100%; background: var(--nspl-grad); transform-origin: 0 50%; transform: scaleX(var(--p, 0)); pointer-events: none; }
.admin-bar .nspl-progress { top: var(--wp-admin--admin-bar--height, 32px); }
@media (prefers-reduced-motion: no-preference) {
	.nspl-hero__title em { background-size: 220% 100%; background-image: linear-gradient(90deg, #ff9a4a 0%, #ffd0a3 25%, #ff9a4a 50%, #ffd0a3 75%, #ff9a4a 100%); animation: nspl-shimmer 6s linear infinite; }
	@keyframes nspl-shimmer { to { background-position: -220% 0; } }
	.nspl-cta-band { overflow: hidden; }
	.nspl-cta-band::after { content: ''; position: absolute; inset: 0; background: linear-gradient(110deg, transparent 30%, rgba(255,255,255,.18) 45%, transparent 60%); transform: translateX(-100%); animation: nspl-sheen 7s ease-in-out infinite; pointer-events: none; }
	@keyframes nspl-sheen { 0%, 55% { transform: translateX(-100%); } 85%, 100% { transform: translateX(100%); } }
	.nspl-trust__list li { transition: transform .3s var(--nspl-ease); }
	.nspl-trust__list li:hover { transform: translateY(-3px); }
}
.nspl-cta-band > * { position: relative; z-index: 1; }

/* Phones */
@media (max-width: 781px) {
	.nspl-lcs { grid-template-columns: 1fr; gap: .6rem; }
	.nspl-lc__link { padding: .8rem .9rem; gap: .8rem; }
	.nspl-lc__ico { width: 44px; height: 44px; border-radius: 12px; }
	.nspl-lc__ico .nspl-ico { width: 24px; height: 24px; }
	.nspl-lc__title { font-size: .98rem; }
	.nspl-lc__text { font-size: .85rem; }
	/* The facts strip text stays clear of the floating version switch */
	.nspl-hero { padding-bottom: 2.75rem !important; }
	/* Version switch (review only): compact, right-hand corner above the call bar */
	.nspl-vs { left: auto !important; right: 8px; transform: scale(.78) !important; transform-origin: right bottom !important; opacity: .9; }
	.nspl-vs__label { display: none; }
}
/* While the mobile menu is open, the call bar and the version switch step aside so every menu item can be tapped */
html.has-modal-open .nspl-mobile-bar, html.has-modal-open .nspl-vs { display: none !important; }
html.has-modal-open body { padding-bottom: 0; }
/* Tablets and small laptops (600–1099px): the nine-item menu does not fit on one line, so keep the hamburger
   menu until the full menu has room (WordPress switches to the full menu at 600px by default). */
@media (min-width: 600px) and (max-width: 1099px) {
	.nspl-nav .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
	.nspl-nav .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
	.nspl-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close { display: flex; }
	.nspl-nav.wp-block-navigation { flex: 0 0 auto; margin-left: auto; }
	/* open menu reads from the left, as on phones */
	.nspl-nav .is-menu-open :is(.wp-block-navigation__responsive-dialog, .wp-block-navigation__responsive-container-content, .wp-block-navigation__container) { width: 100%; align-items: stretch !important; justify-content: flex-start !important; }
	.nspl-nav .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item { width: 100%; }
}

/* =====================================================================================================
   About page (Oct 2026): full-width sections instead of one narrow text column.
   ===================================================================================================== */
.nspl-page-body .wp-block-post-content > .nspl-about-row { max-width: none !important; margin-left: 0 !important; margin-right: 0 !important; }
.nspl-page-body .wp-block-post-content > .nspl-about-row + .nspl-about-row { margin-top: clamp(3.25rem, 6vw, 5.5rem) !important; }
.nspl-about-row h2 { margin-top: 0 !important; font-size: clamp(1.6rem, 1.1rem + 1.8vw, 2.35rem); line-height: 1.14; max-width: 24ch; }
.wp-block-columns.nspl-about-row { gap: clamp(2rem, 5vw, 4.5rem) !important; }
.wp-block-columns.nspl-about-region { gap: 1.25rem !important; }
.nspl-about-row p:not(.nspl-eyebrow):not(.nspl-about-photo__tag) { color: var(--wp--preset--color--ink-2); }
.nspl-about-intro .wp-block-column:first-child > p:not(.nspl-eyebrow) { font-size: var(--wp--preset--font-size--md); line-height: 1.7; }

/* Key facts under the intro */
.nspl-about-facts { list-style: none; padding: 0; margin: 1.75rem 0 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.nspl-about-facts li { margin: 0; padding: .2rem 0 .2rem 1rem; border-left: 3px solid var(--wp--preset--color--orange); font-size: var(--wp--preset--font-size--sm); color: var(--wp--preset--color--ink-2); line-height: 1.35; }
.nspl-about-facts li:nth-child(2) { border-color: var(--wp--preset--color--dark); }
.nspl-about-facts strong { display: block; font: 800 clamp(1.6rem, 1.2rem + 1.2vw, 2.2rem)/1.1 var(--wp--preset--font-family--display); color: var(--wp--preset--color--dark); margin-bottom: .15rem; }

/* Photos: rounded, lifted, with a brand-gradient block offset behind */
.nspl-about-photo { position: relative; margin: 0 !important; }
.nspl-about-photo::before { content: ""; position: absolute; inset: 18px -18px -18px 18px; border-radius: var(--nspl-r); background: var(--nspl-grad); opacity: .9; z-index: 0; }
.nspl-about-photo--dark::before { background: var(--wp--preset--color--dark); opacity: 1; }
.nspl-about-photo__img { position: relative; z-index: 1; margin: 0 !important; }
.nspl-about-photo__img img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--nspl-r); box-shadow: var(--nspl-lift); }
.nspl-about-photo__tag { position: absolute; z-index: 2; left: 1rem; bottom: 1rem; margin: 0 !important; padding: .45rem .9rem; border-radius: 999px; background: rgba(28,29,33,.82); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); color: #fff !important; font-size: var(--wp--preset--font-size--xs); font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }

/* Icon cards (customers, principles) */
.nspl-about-cards { display: grid; gap: 1rem; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: 1.75rem; }
.nspl-about-card { margin: 0 !important; padding: 1.5rem 1.4rem 1.4rem; background: #fff; border: 1px solid var(--wp--preset--color--line); border-radius: var(--nspl-r); transition: transform .25s var(--nspl-ease), box-shadow .25s var(--nspl-ease), border-color .25s; }
.nspl-about-card:hover { transform: translateY(-4px); box-shadow: var(--nspl-lift); border-color: transparent; }
.nspl-about-card > * { margin: 0 !important; }
.nspl-about-card h3 { font-size: 1.05rem; margin: 1rem 0 .4rem !important; color: var(--wp--preset--color--dark); }
.nspl-about-card p { font-size: var(--wp--preset--font-size--sm); line-height: 1.55; }
.nspl-ico-badge { display: inline-grid; place-items: center; width: 52px; height: 52px; border-radius: 14px; background: var(--wp--preset--color--orange-soft); color: var(--wp--preset--color--accent-dark); transition: background-color .25s, color .25s, transform .35s var(--nspl-ease); }
.nspl-about-card:hover .nspl-ico-badge { background: var(--wp--preset--color--orange); color: var(--wp--preset--color--ink); transform: rotate(-6deg); }

/* History: horizontal timeline on a soft panel */
.nspl-about-history { padding: clamp(1.75rem, 4vw, 3rem); border-radius: var(--nspl-r); background: radial-gradient(700px 260px at 100% 0%, rgba(244,122,32,.10), transparent 70%), var(--wp--preset--color--bg-alt); }
.nspl-htimeline { list-style: none; padding: 0; margin: 2rem 0 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2rem; }
.nspl-htimeline li { position: relative; margin: 0; padding-top: 2.4rem; color: var(--wp--preset--color--ink-2); font-size: var(--wp--preset--font-size--sm); line-height: 1.6; }
.nspl-htimeline li::before { content: ""; position: absolute; left: 0; top: 0; width: 18px; height: 18px; border-radius: 50%; background: var(--wp--preset--color--orange); box-shadow: 0 0 0 6px rgba(244,122,32,.18); z-index: 1; }
.nspl-htimeline li:nth-child(2)::before { background: var(--wp--preset--color--dark); box-shadow: 0 0 0 6px rgba(42,44,49,.12); }
.nspl-htimeline li::after { content: ""; position: absolute; left: 18px; right: -2rem; top: 8px; height: 2px; background: linear-gradient(90deg, rgba(244,122,32,.55), rgba(244,122,32,.12)); }
.nspl-htimeline li:last-child::after { display: none; }
.nspl-htimeline strong { display: block; font: 800 1.35rem/1.2 var(--wp--preset--font-family--display); color: var(--wp--preset--color--dark); margin-bottom: .35rem; }

/* Industry links under the experience text */
.nspl-tags--links { margin-top: 1.25rem; }
.nspl-tags--links a { font-weight: 600; }

/* Regional network + contact panels */
.nspl-about-region .wp-block-column { display: flex; }
.nspl-about-panel { flex: 1; margin: 0 !important; padding: clamp(1.5rem, 3vw, 2.25rem); border-radius: var(--nspl-r); background: var(--wp--preset--color--bg-alt); }
.nspl-about-panel > * { margin-block: 0 .9rem !important; }
.nspl-about-panel h3 { font-size: 1.3rem; margin-top: 1rem !important; color: var(--wp--preset--color--dark); }
.nspl-about-panel--dark { position: relative; overflow: hidden; background: radial-gradient(420px 240px at 100% 0%, rgba(244,122,32,.35), transparent 70%), var(--wp--preset--color--dark); color: var(--wp--preset--color--on-dark); }
.nspl-about-panel--dark h3 { color: #fff; margin-top: 0 !important; }
.nspl-about-panel--dark p, .nspl-about-panel--dark .nspl-address { color: var(--wp--preset--color--on-dark) !important; line-height: 1.7; }
.nspl-about-panel--dark a:not(.wp-element-button) { color: var(--wp--preset--color--orange-light); }
.nspl-about-panel .wp-block-buttons { margin-top: 1.25rem !important; }

/* Tablets and phones */
@media (max-width: 1279px) {
	.nspl-about-photo { margin-right: 18px !important; } /* room for the offset block behind the photo */
}
@media (max-width: 1000px) {
	.nspl-about-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 781px) {
	.nspl-about-photo { margin-right: 18px !important; }
	.nspl-about-exp .wp-block-column:first-child { order: 2; }
	.nspl-about-cards { grid-template-columns: 1fr; gap: .75rem; }
	.nspl-about-card { display: grid; grid-template-columns: 52px 1fr; column-gap: 1rem; align-items: start; padding: 1.1rem; }
	.nspl-about-card .nspl-ico-badge { grid-row: span 2; }
	.nspl-about-card h3 { margin: .1rem 0 .3rem !important; }
	.nspl-htimeline { grid-template-columns: 1fr; gap: 1.5rem; }
	.nspl-htimeline li { padding: 0 0 0 2.2rem; }
	.nspl-htimeline li::after { left: 8px; right: auto; top: 18px; bottom: -1.5rem; width: 2px; height: auto; background: linear-gradient(rgba(244,122,32,.55), rgba(244,122,32,.12)); }
	.nspl-about-facts { gap: .6rem; }
	.nspl-about-facts li { padding-left: .7rem; font-size: .8rem; }
}
