/* ==========================================================================
   NPCM 2026 — theme stylesheet
   Navy structures and acts · graphite supports · red marks.
   Square corners everywhere. 1px hairlines. One gradient ornament, three uses.
   Mobile-first adjustments live at the two breakpoints: 960px and 560px.
   ========================================================================== */

:root{
	--npcm-navy:#0C3A5A;
	--npcm-navy-deep:#082C46;
	--npcm-graphite:#5B5C60;
	--npcm-red:#8F2828;
	--npcm-ink:#2B3A44;
	--npcm-panel:#F1F3F4;
	--npcm-hairline:#DBDEE0;
	--npcm-tint:#C8D2DA;
	--npcm-rule:linear-gradient(90deg,#0C3A5A 0%,#0C3A5A 37.2%,#5B5C60 62.8%,#8F2828 88.4%,#8F2828 100%);
	--npcm-max:1280px;
	--npcm-gutter:40px;
	--npcm-ease:cubic-bezier(.22,.61,.36,1);
	--npcm-headroom:150px; /* sticky header clearance for anchor jumps */
}

*,*::before,*::after{box-sizing:border-box}
/* 112.5% root = 18px rem. Every rem-based size in the theme scales up ~12.5% from here. */
html{font-size:112.5%;scroll-behavior:smooth;-webkit-text-size-adjust:100%}
/* overflow-x:clip — NOT hidden. `hidden` makes body a scroll container,
   which silently breaks position:sticky on .npcm-header (and with it the
   condense-on-scroll behaviour and every scroll-margin-top calculation). */
body{margin:0;background:#fff;color:var(--npcm-ink);-webkit-font-smoothing:antialiased;overflow-x:clip}
img,svg{max-width:100%;height:auto}
h1,h2,h3,p{text-wrap:pretty}

/* Links: navy with a red underline so they never read as headings. */
a{color:var(--npcm-navy);text-decoration:underline;text-decoration-color:var(--npcm-red);text-decoration-thickness:1px;text-underline-offset:3px}
a:hover{color:var(--npcm-navy-deep);text-decoration-color:var(--npcm-navy)}
:focus-visible{outline:3px solid var(--npcm-red);outline-offset:2px}
.npcm-section--navy :focus-visible,.npcm-footer :focus-visible{outline-color:#fff}

.npcm-wrap{max-width:var(--npcm-max);margin-inline:auto;padding-inline:var(--npcm-gutter)}

/* ------------------------------------------------------------ type scale
   THREE layers of defence, because this broke twice:
   1. theme.json no longer sets a heading font-size at all.
   2. The preset variables are defined here too, so any surviving
      `font-size:var(--wp--preset--font-size--h1)` rule still resolves to the
      right value instead of collapsing to inherit.
   3. The sizes below are !important so no generated global-styles rule can
      take them, whatever order the stylesheets happen to load in.
   Do not remove the !important without re-testing H1 on a real install. */
:root{
	--wp--preset--font-size--h1:clamp(2.25rem,4.6vw,3.375rem);
	--wp--preset--font-size--h2:clamp(1.875rem,3.4vw,2.5rem);
	--wp--preset--font-size--h3:1.5rem;
	--wp--preset--font-size--lede:clamp(1.0625rem,1.6vw,1.25rem);
	--wp--preset--font-size--base:0.9375rem;
}
h1,h2,h3,.npcm-form__title,.npcm-formcard__title{font-family:var(--wp--preset--font-family--display,"Open Sans",Arial,sans-serif);font-weight:600;color:var(--npcm-navy)}
h1{font-size:clamp(2.25rem,4.6vw,3.375rem)!important;letter-spacing:-.015em;line-height:1.04;margin:0 0 22px}
h2{font-size:clamp(1.875rem,3.4vw,2.5rem)!important;letter-spacing:-.012em;line-height:1.12;margin:0 0 22px}
h3{font-size:1.5rem!important;line-height:1.2;margin:0 0 10px}
.npcm-lede{font-size:clamp(1.0625rem,1.6vw,1.25rem)!important}
/* Smaller headings that are NOT part of the display scale. */
.npcm-pkg__card h3,.npcm-vs__col h3{font-size:1.0625rem!important}
.npcm-step h3{font-size:1.125rem!important}
.npcm-dual__head h3{font-size:1.5rem!important}
p{margin:0 0 16px}
p:last-child{margin-bottom:0}
body{font-family:var(--wp--preset--font-family--body,"Source Sans 3",Arial,sans-serif);font-size:1rem;line-height:1.6}

/* --------------------------------------------------------- the gradient rule
   Permitted in exactly three places: page top edge, featured-panel top edge,
   footer edge. Not a divider, not an underline, not a hover state. */
.npcm-rule{height:3px;background:var(--npcm-rule);transform-origin:left center;animation:npcmRuleIn 1.1s var(--npcm-ease) both}
.npcm-rule--static{animation:none}
@keyframes npcmRuleIn{from{transform:scaleX(0)}to{transform:scaleX(1)}}

/* ------------------------------------------------------------------ header */
.npcm-utility{background:var(--npcm-panel);border-bottom:1px solid var(--npcm-hairline);font-size:.78rem;font-weight:600;letter-spacing:.04em;color:var(--npcm-graphite)}
.npcm-utility__inner{display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;padding-block:9px}

.npcm-header{position:sticky;top:0;z-index:40;background:rgba(255,255,255,.94);backdrop-filter:saturate(180%) blur(8px);border-bottom:1px solid var(--npcm-hairline);transition:box-shadow .3s ease}
.npcm-header.is-condensed{box-shadow:0 8px 24px rgba(12,58,90,.10)}

/* ONE flex row that wraps: the nav takes flex-basis 100% on desktop so it
   falls to a second line under the lockup; on mobile it shrinks back inline
   and becomes the hamburger. No duplicated markup, no JS. */
.wp-block-group.npcm-headrow{display:flex;align-items:center;flex-wrap:wrap;gap:20px;padding-block:16px;transition:padding .3s var(--npcm-ease)}
.npcm-header.is-condensed .npcm-headrow{padding-block:9px}

.npcm-logo{display:block;line-height:0;text-decoration:none;margin-right:auto;flex:0 0 auto}
.npcm-header .npcm-logo--full svg{width:300px;height:auto;max-width:100%;flex:0 0 auto;transition:width .3s var(--npcm-ease)}
.npcm-header.is-condensed .npcm-logo--full svg{width:282px}
.npcm-logo--compact{display:none;align-items:center;gap:12px}
.npcm-header .npcm-logo--compact svg{width:46px;height:46px;flex:0 0 46px}
.npcm-logo__name{font-family:var(--wp--preset--font-family--display,"Open Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif);font-weight:600;font-size:.9rem;line-height:1.28;color:var(--npcm-navy);max-width:17ch}

.npcm-portal{display:inline-flex;align-items:center;gap:8px;font-family:var(--wp--preset--font-family--display,"Open Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif);font-weight:600;font-size:.875rem;color:var(--npcm-navy);border:1px solid var(--npcm-navy);padding:10px 17px;text-decoration:none;line-height:1;min-height:44px;transition:background .22s ease,transform .22s var(--npcm-ease),box-shadow .22s ease}
.npcm-portal:hover{background:var(--npcm-panel);transform:translateY(-2px);box-shadow:0 6px 16px rgba(12,58,90,.14);text-decoration:none}

/* Primary nav — second row on desktop */
.npcm-nav{flex:1 0 100%;border-top:1px solid var(--npcm-hairline);margin-top:4px;background:transparent;transition:background .3s ease}
.npcm-header.is-condensed .npcm-nav{background:var(--npcm-panel)}
.npcm-nav .wp-block-navigation__container{gap:0}
.npcm-nav .wp-block-navigation-item__content{font-family:var(--wp--preset--font-family--display,"Open Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif);font-weight:600;font-size:.9rem;color:var(--npcm-graphite);text-decoration:none;padding:13px 20px;border-bottom:2px solid transparent;transition:color .22s ease,border-color .22s ease,background .22s ease}
.npcm-nav .wp-block-navigation-item__content:hover{color:var(--npcm-navy-deep);border-bottom-color:var(--npcm-red);background:var(--npcm-panel);text-decoration:none}
.npcm-nav .wp-block-navigation-item.current-menu-item .wp-block-navigation-item__content{color:var(--npcm-navy);border-bottom-color:var(--npcm-red)}
.npcm-nav .wp-block-navigation-item:first-child .wp-block-navigation-item__content{margin-left:-20px}

/* Mobile overlay (WordPress' own responsive container) */
.npcm-nav .wp-block-navigation__responsive-container-open,
.npcm-nav .wp-block-navigation__responsive-container-close{min-width:44px;min-height:44px;color:var(--npcm-navy)}
.npcm-nav .wp-block-navigation__responsive-container.is-menu-open{background:#fff;padding:24px var(--npcm-gutter)}
.npcm-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content{font-size:1.0625rem;padding:16px 0;border-bottom:1px solid var(--npcm-hairline);width:100%}
.npcm-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container{gap:0;align-items:stretch}
.npcm-nav .wp-block-navigation__responsive-close{max-width:var(--npcm-max)}

/* ----------------------------------------------------------------- sections */
.npcm-section{padding-block:96px;scroll-margin-top:var(--npcm-headroom);overflow:hidden}
.npcm-section--hero{padding-block:0;border-bottom:1px solid var(--npcm-hairline)}
.npcm-section--panel{background:var(--npcm-panel);border-top:1px solid var(--npcm-hairline);border-bottom:1px solid var(--npcm-hairline)}
.npcm-section--navy{background:linear-gradient(165deg,#0C3A5A 0%,#0C3A5A 42%,#082C46 100%);color:#fff}
.npcm-section--navy h2,.npcm-section--navy h3{color:#fff}
.npcm-section--navy .npcm-lede{color:var(--npcm-tint)}
.npcm-section--navy a{color:#fff;text-decoration-color:var(--npcm-tint)}

.npcm-intro{max-width:62ch;margin-bottom:40px}
.npcm-eyebrow{font-family:var(--wp--preset--font-family--display,"Open Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif);font-size:.75rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--npcm-red);margin:0 0 20px}
.npcm-eyebrow--onnavy{color:#fff}
.npcm-lede{font-size:clamp(1.0625rem,1.6vw,1.25rem);line-height:1.5;color:var(--npcm-graphite);margin:0 0 22px}
.npcm-meta{font-size:.78rem;font-weight:600;letter-spacing:.04em;color:var(--npcm-graphite);margin:0}
.npcm-closing{font-size:1.0625rem;color:var(--npcm-tint);margin:34px 0 0;max-width:70ch}
.npcm-num{font-family:var(--wp--preset--font-family--display,"Open Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif);font-weight:600;font-size:.75rem;letter-spacing:.12em;color:#fff}

/* --------------------------------------------------------------------- hero */
.wp-block-group.npcm-hero,.npcm-hero{display:grid;grid-template-columns:1.12fr 1fr;gap:72px;background:transparent}
.npcm-hero__copy{background:transparent;padding:104px 0;min-width:0}
.npcm-hero__aside{background:transparent;padding:104px 0;display:flex;align-items:center;min-width:0}
/* Never put [data-reveal] on a hero grid cell: the cell paints the white fill,
   so translating it exposes the grid's hairline background as a grey band. */
.npcm-hero__copy[data-reveal],.npcm-hero__aside[data-reveal]{transform:none!important;opacity:1!important}
.npcm-hero h1{max-width:22ch;margin-bottom:24px}
.npcm-hero__aside .npcm-proof{margin:0;border:0;border-top:1px solid var(--npcm-hairline)}
.npcm-hero__aside .npcm-proof__row{padding:18px 0}
.npcm-hero__aside .npcm-proof__row:hover{background:transparent}
.npcm-hero .npcm-lede{max-width:50ch;margin-bottom:30px}

/* -------------------------------------------------------------- proof card */
.npcm-proof{border:1px solid var(--npcm-hairline);border-top:3px solid var(--npcm-navy);width:100%;background:#fff}
.npcm-proof__row{display:flex;gap:14px;align-items:flex-start;padding:17px 20px;border-bottom:1px solid var(--npcm-hairline);transition:background .22s ease}
.npcm-proof__row:last-child{border-bottom:0}
.npcm-proof__row:hover{background:var(--npcm-panel)}
.npcm-proof__sq{width:10px;height:10px;flex:0 0 10px;margin-top:7px;display:block}
.npcm-proof__sq--navy{background:var(--npcm-navy)}
.npcm-proof__sq--graphite{background:var(--npcm-graphite)}
.npcm-proof__sq--red{background:var(--npcm-red)}
.npcm-proof__sq--white{background:#fff}
.npcm-proof__sq--tint{background:var(--npcm-tint)}
.npcm-proof__key{font-family:var(--wp--preset--font-family--display,"Open Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif);font-weight:600;font-size:.9375rem;color:var(--npcm-navy);margin:0}
.npcm-proof__detail{font-size:.84rem;color:var(--npcm-graphite);margin:2px 0 0}

/* ------------------------------------------------------------- dual panels */
.npcm-dual{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:rgba(255,255,255,.22)}
.npcm-dual__panel{background:linear-gradient(165deg,#0C3A5A 0%,#082C46 100%);padding:40px 36px}
.npcm-dual__head{display:flex;align-items:baseline;gap:14px;margin-bottom:20px}
.npcm-dual__head h3{margin:0;font-size:1.5rem}
.npcm-dual__body{font-size:1rem;color:var(--npcm-tint);margin:0 0 26px;max-width:44ch}
.npcm-dual__list{display:grid;gap:14px}
.npcm-dual__item{display:flex;gap:14px;align-items:flex-start;padding-top:14px;border-top:1px solid rgba(255,255,255,.2)}
.npcm-dual__key{font-family:var(--wp--preset--font-family--display,"Open Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif);font-weight:600;font-size:.9375rem;color:#fff;margin:0}
.npcm-dual__detail{font-size:.875rem;color:var(--npcm-tint);margin:2px 0 0}
.npcm-detect{display:grid;gap:1px;background:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.2)}
.npcm-detect__row{background:rgba(255,255,255,.05);padding:13px 16px;display:flex;gap:12px;align-items:baseline;transition:background .22s ease}
.npcm-detect__row:hover{background:rgba(255,255,255,.12)}
.npcm-detect__row span{font-family:var(--wp--preset--font-family--display,"Open Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif);font-weight:600;font-size:.72rem;letter-spacing:.1em;color:var(--npcm-tint);flex:0 0 22px}
.npcm-detect__row p{margin:0;font-size:.9rem;color:#fff}

/* -------------------------------------------------------------- split + list */
.wp-block-group.npcm-split{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start}
.npcm-split h2{margin:0 0 22px;max-width:22ch}
.npcm-split .npcm-lede{max-width:50ch}
.npcm-listcard{border:1px solid var(--npcm-hairline);background:#fff}
.npcm-listcard__head{margin:0;padding:18px 24px;border-bottom:1px solid var(--npcm-hairline);background:var(--npcm-panel);font-family:var(--wp--preset--font-family--display,"Open Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif);font-weight:600;font-size:.9375rem;color:var(--npcm-navy)}
.npcm-listcard__row{display:flex;gap:14px;align-items:flex-start;padding:17px 24px;border-bottom:1px solid var(--npcm-hairline);transition:background .22s ease,padding-left .22s var(--npcm-ease)}
.npcm-listcard__row:last-child{border-bottom:0}
.npcm-listcard__row:hover{background:var(--npcm-panel);padding-left:30px}
.npcm-listcard__key{font-family:var(--wp--preset--font-family--display,"Open Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif);font-weight:600;font-size:.9375rem;color:var(--npcm-navy);margin:0}
.npcm-listcard__detail{font-size:.875rem;color:var(--npcm-graphite);margin:2px 0 0}

/* ------------------------------------------------- hairline-gap tile grid */
.npcm-grid{display:grid;gap:1px;background:var(--npcm-hairline);border:1px solid var(--npcm-hairline)}
.npcm-grid--3{grid-template-columns:repeat(3,1fr)}
.npcm-tile{background:#fff;padding:24px 22px;transition:transform .22s var(--npcm-ease),box-shadow .22s ease}
.npcm-tile:hover{transform:translateY(-3px);box-shadow:0 8px 22px rgba(12,58,90,.13)}
.npcm-tile__title{font-family:var(--wp--preset--font-family--display,"Open Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif);font-weight:600;font-size:1.0625rem;color:var(--npcm-navy);margin:0 0 8px;transition:color .22s ease}
.npcm-tile:hover .npcm-tile__title{color:var(--npcm-navy-deep)}
.npcm-tile__body{font-size:.875rem;color:var(--npcm-graphite);margin:0}
.npcm-aftergrid{display:flex;gap:18px;align-items:center;flex-wrap:wrap;margin-top:30px}

/* ------------------------------------------------------------------ buttons */
.npcm-btnrow{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin-top:8px}
.wp-block-button__link{border-radius:0!important;font-family:var(--wp--preset--font-family--display,"Open Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif);font-weight:600;min-height:48px;display:inline-flex;align-items:center;text-decoration:none;transition:background .22s ease,transform .22s var(--npcm-ease),box-shadow .22s ease}
.wp-block-button__link:hover{transform:translateY(-2px);box-shadow:0 6px 16px rgba(12,58,90,.22);text-decoration:none}
.wp-block-button.is-style-outline .wp-block-button__link{background:transparent;color:var(--npcm-navy);border:1px solid var(--npcm-navy)}
.wp-block-button.is-style-outline .wp-block-button__link:hover{background:var(--npcm-panel);box-shadow:0 6px 16px rgba(12,58,90,.14)}
.npcm-section--navy .wp-block-button.is-style-outline .wp-block-button__link{color:#fff;border-color:#fff}
.npcm-section--navy .wp-block-button.is-style-outline .wp-block-button__link:hover{background:rgba(255,255,255,.1)}

/* ------------------------------------------- buttons in raw-HTML patterns
   The service pages are authored as HTML rather than core button blocks, so
   they need the same treatment under their own class. */
.npcm-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;background:var(--npcm-navy);color:#fff;font-family:var(--wp--preset--font-family--display,"Open Sans",Arial,sans-serif);font-weight:600;font-size:1rem;padding:15px 26px;min-height:48px;text-decoration:none;transition:background .22s ease,transform .22s var(--npcm-ease),box-shadow .22s ease}
.npcm-btn:hover{background:var(--npcm-navy-deep);color:#fff;transform:translateY(-2px);box-shadow:0 6px 16px rgba(12,58,90,.22);text-decoration:none}
.npcm-btn--outline{background:transparent;color:var(--npcm-navy);border:1px solid var(--npcm-navy)}
.npcm-btn--outline:hover{background:var(--npcm-panel);color:var(--npcm-navy-deep);box-shadow:0 6px 16px rgba(12,58,90,.14)}
.npcm-btn--onnavy{background:#fff;color:var(--npcm-navy);flex:0 0 auto}
.npcm-btn--onnavy:hover{background:var(--npcm-panel);color:var(--npcm-navy-deep);box-shadow:0 8px 22px rgba(0,0,0,.22)}

/* ---------------------------------------------------- 4-up tile grid + note */
.npcm-grid--4{grid-template-columns:repeat(4,1fr)}
.npcm-aftergrid__note{font-size:.875rem;color:var(--npcm-graphite);margin:16px 0 0;max-width:78ch}

/* --------------------------------------------------------- numbered steps */
.npcm-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:34px}
.npcm-step__num{display:block;font-family:var(--wp--preset--font-family--display,"Open Sans",Arial,sans-serif);font-weight:600;font-size:.875rem;letter-spacing:.12em;color:var(--npcm-red);padding-bottom:14px;margin-bottom:14px;border-bottom:2px solid var(--npcm-navy)}
.npcm-step h3{font-size:1.125rem;margin:0 0 8px}
.npcm-step p{font-size:.9375rem;color:var(--npcm-graphite);margin:0}

/* ------------------------------------------------------- contrast columns */
.npcm-vs{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--npcm-hairline);border:1px solid var(--npcm-hairline)}
.npcm-vs__col{background:#fff;padding:30px 30px 26px}
.npcm-vs__col--ours{border-top:3px solid var(--npcm-navy)}
.npcm-vs__tag{display:block;font-family:var(--wp--preset--font-family--display,"Open Sans",Arial,sans-serif);font-weight:600;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--npcm-graphite);margin-bottom:8px}
.npcm-vs__tag--ours{color:var(--npcm-red)}
.npcm-vs__col h3{font-size:1.0625rem;margin:0 0 4px}
.npcm-vs ul{list-style:none;margin:14px 0 0;padding:0}
.npcm-vs li{display:flex;gap:12px;align-items:flex-start;padding:13px 0;border-top:1px solid var(--npcm-hairline);font-size:.9375rem;line-height:1.45;color:var(--npcm-ink)}
.npcm-vs__col:not(.npcm-vs__col--ours) li{color:var(--npcm-graphite)}
.npcm-vs__icon{color:var(--npcm-navy);flex:0 0 auto;margin-top:3px;line-height:0}
.npcm-vs__icon--red{color:var(--npcm-red)}

/* ------------------------------------------------------- engagement cards */
.npcm-pkg{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--npcm-hairline);border:1px solid var(--npcm-hairline)}
.npcm-pkg__card{background:#fff;display:flex;flex-direction:column}
.npcm-pkg__card--core{background:var(--npcm-panel)}
.npcm-pkg__body{padding:28px 30px 26px}
.npcm-pkg__card--core .npcm-pkg__body{padding-top:25px}
.npcm-pkg__tag{display:block;font-family:var(--wp--preset--font-family--display,"Open Sans",Arial,sans-serif);font-weight:600;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--npcm-red);margin-bottom:6px}
.npcm-pkg__tag--muted{color:var(--npcm-graphite)}
.npcm-pkg__card h3{font-size:1.1875rem;margin:0 0 4px}
.npcm-pkg__rows{margin-top:14px}
.npcm-pkg__row{display:flex;gap:13px;align-items:flex-start;padding:14px 0;border-top:1px solid var(--npcm-hairline)}
.npcm-pkg__key{font-family:var(--wp--preset--font-family--display,"Open Sans",Arial,sans-serif);font-weight:600;font-size:.9375rem;color:var(--npcm-navy);margin:0}
.npcm-pkg__val{font-size:.84rem;color:var(--npcm-graphite);margin:2px 0 0}
.npcm-pkg__note{font-size:.84rem;color:var(--npcm-graphite);margin:16px 0 0;padding-top:14px;border-top:1px solid var(--npcm-hairline)}

/* ------------------------------------------------------ closing CTA band */
.npcm-cta{background:linear-gradient(165deg,#0C3A5A 0%,#0C3A5A 42%,#082C46 100%);color:#fff}
.npcm-cta__inner{display:flex;align-items:center;justify-content:space-between;gap:34px;flex-wrap:wrap;padding-block:62px}
.npcm-cta h2{color:#fff;margin:0 0 12px;max-width:26ch}
.npcm-cta p{color:var(--npcm-tint);font-size:1.0625rem;margin:0;max-width:52ch}

/* ------------------------------------------------------------ intake form */
.npcm-intake__cols{display:grid;grid-template-columns:1fr 1.05fr;gap:56px;align-items:start}
.npcm-intake__copy h2{margin:0 0 22px;max-width:20ch}
.npcm-intake__copy .npcm-lede{max-width:44ch;margin-bottom:30px}
.npcm-intake__copy .npcm-dual__list{max-width:42ch}
.npcm-formcard{background:#fff;border:1px solid var(--npcm-hairline);box-shadow:0 18px 48px rgba(8,44,70,.28)}
.npcm-form{padding:32px 30px;display:grid;gap:18px}
.npcm-form__intro{display:grid;gap:3px}
.npcm-form__title{font-family:var(--wp--preset--font-family--display,"Open Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif);font-weight:600;font-size:1.1875rem;color:var(--npcm-navy);margin:0}
.npcm-form__sub{font-size:.875rem;color:var(--npcm-graphite);margin:0}
.npcm-form__error{margin:0;padding:12px 14px;border:1px solid var(--npcm-red);border-left-width:3px;background:#fff;color:var(--npcm-navy);font-size:.9rem}
.npcm-form__hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.npcm-field label,.npcm-field__pair label{display:block;font-size:.78rem;font-weight:600;letter-spacing:.04em;color:var(--npcm-graphite);margin-bottom:7px}
.npcm-field__pair{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.npcm-form input[type=text],.npcm-form input[type=email],.npcm-form select,.npcm-form textarea{
	font-family:inherit;
	/* 16px minimum: anything smaller makes iOS Safari zoom the page on focus. */
	font-size:16px;
	color:var(--npcm-ink);background:#fff;border:1px solid var(--npcm-hairline);border-radius:0;
	padding:12px 14px;width:100%;min-height:48px;transition:border-color .22s ease,box-shadow .22s ease
}
.npcm-form textarea{resize:vertical;min-height:104px;line-height:1.5}
.npcm-form input:focus,.npcm-form select:focus,.npcm-form textarea:focus{outline:none;border-color:var(--npcm-navy);box-shadow:0 0 0 3px rgba(12,58,90,.12)}
.npcm-form select{appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%230C3A5A' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 13px center;padding-right:40px}
.npcm-submit{display:inline-flex;align-items:center;justify-content:center;gap:10px;background:var(--npcm-navy);color:#fff;border:0;cursor:pointer;font-family:var(--wp--preset--font-family--display,"Open Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif);font-weight:600;font-size:1rem;padding:15px 26px;min-height:52px;transition:background .22s ease,transform .22s var(--npcm-ease),box-shadow .22s ease}
.npcm-submit:hover{background:var(--npcm-navy-deep);transform:translateY(-2px);box-shadow:0 6px 16px rgba(12,58,90,.22)}
.npcm-form__fine,.npcm-formcard__fine{font-size:.84rem;color:var(--npcm-graphite);border-top:1px solid var(--npcm-hairline);padding-top:16px;margin:0}
.npcm-formcard__done{padding:44px 30px;display:grid;gap:16px;justify-items:start}
.npcm-formcard__mark{width:14px;height:14px;background:var(--npcm-navy);display:block}
.npcm-formcard__title{font-family:var(--wp--preset--font-family--display,"Open Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif);font-weight:600;font-size:1.375rem;color:var(--npcm-navy);margin:0;letter-spacing:-.01em}
.npcm-formcard__text{font-size:.97rem;color:var(--npcm-graphite);margin:0;max-width:40ch}

/* ------------------------------------------------------------------ footer */
.npcm-footer{background:var(--npcm-navy);color:#fff}
.npcm-footer__cols{display:grid;grid-template-columns:minmax(320px,1.4fr) 1fr 1fr;gap:34px;padding-block:44px 30px}
.npcm-footer__logo--full svg{width:300px}
.npcm-footer__logo--stacked{display:none}
.npcm-footer__logo--stacked svg{width:124px}
.npcm-footer__tagline{font-family:var(--wp--preset--font-family--display,"Open Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif);font-weight:600;font-size:.9375rem;color:#fff;margin:18px 0 0}
.npcm-footer__head{font-size:.75rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--npcm-tint);margin:0 0 14px}
.npcm-footer__list{list-style:none;margin:0;padding:0;display:grid;gap:9px;font-size:.9rem}
.npcm-footer__list a{color:#fff;text-decoration-color:var(--npcm-tint)}
.npcm-footer__plain{color:var(--npcm-tint)}
.npcm-footer__base{border-top:1px solid rgba(255,255,255,.18)}
.npcm-footer__baseinner{display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;padding-block:18px;font-size:.78rem;font-weight:600;letter-spacing:.04em;color:var(--npcm-tint)}
.npcm-footer__baseinner a{color:#fff;text-decoration:underline;text-decoration-color:rgba(255,255,255,.45);text-underline-offset:3px}
.npcm-footer__baseinner a:hover{color:#fff;text-decoration-color:#fff}

/* ------------------------------------------------------- scroll reveals
   The class on <html> is set by npcm.js before first paint. Without JS these
   rules never apply, so every section renders visible — the reveal can never
   strand content. */
.npcm-reveal-ready [data-reveal]{opacity:0;transform:translateY(18px);transition:opacity .8s var(--npcm-ease),transform .8s var(--npcm-ease);transition-delay:var(--d,0ms)}
.npcm-reveal-ready [data-reveal].is-revealed{opacity:1;transform:none}

/* ========================================================================
   BREAKPOINT 960px — nav collapses, two-column layouts stack
   ======================================================================== */
@media (max-width:960px){
	:root{--npcm-headroom:96px;--npcm-gutter:20px}

	.npcm-logo--full{display:none}
	.npcm-logo--compact{display:flex}
	.npcm-portal{order:3}
	/* Nav shrinks back inline so the hamburger sits beside the lockup. */
	.npcm-nav{flex:0 0 auto;border-top:0;margin-inline:0;padding-inline:0;background:transparent}
	.npcm-header.is-condensed .npcm-nav{background:transparent}

	/* Core's Navigation block switches to its overlay at 600px, but this
	   header collapses at 960px — the lockup cannot stay above its 275px
	   floor beside five inline items. Without this the 601–960px range
	   (iPad portrait included) gets no hamburger and no room for the menu.
	   !important because wp-block-library loads after the theme stylesheet. */
	.npcm-nav .wp-block-navigation__responsive-container-open:not(.always-shown){display:flex!important}
	.npcm-nav .wp-block-navigation__responsive-container:not(.is-menu-open){display:none!important}

	.npcm-section{padding-block:64px}
	.npcm-hero{grid-template-columns:1fr;gap:0}
	.npcm-hero__copy{padding:56px 0 32px}
	.npcm-hero__aside{padding:0 0 60px}
	.npcm-hero h1,.npcm-split h2,.npcm-intake__copy h2{max-width:none}

	.npcm-dual{grid-template-columns:1fr}
	.npcm-split{grid-template-columns:1fr;gap:40px}
	.npcm-grid--3{grid-template-columns:1fr 1fr}
	.npcm-intake__cols{grid-template-columns:1fr;gap:40px}

	.npcm-footer__cols{grid-template-columns:1fr 1fr}
	.npcm-footer__logo--full{display:none}
	.npcm-footer__logo--stacked{display:block}

	.npcm-grid--4{grid-template-columns:1fr 1fr}
	.npcm-steps{grid-template-columns:1fr;gap:26px}
	.npcm-vs,.npcm-pkg{grid-template-columns:1fr}
	.npcm-cta__inner{padding-block:48px}
}

/* ========================================================================
   BREAKPOINT 560px — single column, full-width actions
   ======================================================================== */
@media (max-width:560px){
	.npcm-utility__inner{flex-direction:column;gap:4px;text-align:left}
	.npcm-logo__name{font-size:.84rem;max-width:14ch}
	.npcm-portal{padding:10px 14px;font-size:.82rem}

	.npcm-section{padding-block:52px}
	.npcm-grid--3{grid-template-columns:1fr}
	.npcm-dual__panel{padding:30px 22px}
	.npcm-form{padding:26px 20px}
	.npcm-field__pair{grid-template-columns:1fr}

	/* Full-width tap targets on the smallest screens. */
	.npcm-btnrow,.npcm-btnrow .wp-block-button{width:100%}
	.npcm-btnrow .wp-block-button__link{width:100%;justify-content:center;text-align:center}
	.npcm-submit{width:100%}

	.npcm-footer__cols{grid-template-columns:1fr;gap:30px}
	.npcm-footer__baseinner{flex-direction:column;gap:6px}

	.npcm-grid--4{grid-template-columns:1fr}
	.npcm-vs__col,.npcm-pkg__body{padding-inline:22px}
	.npcm-btnrow .npcm-btn,.npcm-cta .npcm-btn{width:100%}
	.npcm-cta__inner{gap:24px}
}

/* ------------------------------------------------------- reduced motion */
@media (prefers-reduced-motion:reduce){
	html{scroll-behavior:auto}
	*,*::before,*::after{animation:none!important;transition:none!important}
	.npcm-reveal-ready [data-reveal]{opacity:1!important;transform:none!important}
}

/* ------------------------------------------------------------------ print */
@media print{
	*{print-color-adjust:exact;-webkit-print-color-adjust:exact}
	.npcm-header,.npcm-nav,.npcm-portal,.npcm-utility{display:none!important}
	[data-reveal]{opacity:1!important;transform:none!important}
	a{text-decoration:none;color:var(--npcm-navy)}
	.npcm-section{padding-block:24px;break-inside:avoid}
	.npcm-formcard{box-shadow:none}
}

/* ------------------------------------------- questionnaire hand-off card
   Replaces the old six-field intake form. The Ignition-hosted questionnaire
   is what creates the lead record, so it is the single action here. */
.npcm-qn{padding:32px 30px;display:grid;gap:0}
.npcm-qn__steps{margin:24px 0 26px}
.npcm-qn__step{padding:15px 0;border-top:1px solid var(--npcm-hairline);display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:baseline}
.npcm-qn__num{font-family:var(--wp--preset--font-family--display,"Open Sans",Arial,sans-serif);font-weight:600;font-size:.75rem;letter-spacing:.14em;color:var(--npcm-red)}
.npcm-qn__key{font-family:var(--wp--preset--font-family--display,"Open Sans",Arial,sans-serif);font-weight:600;font-size:1.03rem;color:var(--npcm-navy);line-height:1.3;margin:0}
.npcm-qn__detail{font-size:.94rem;color:var(--npcm-graphite);line-height:1.5;margin:3px 0 0}
.npcm-submit--link{text-decoration:none;justify-self:start}
.npcm-submit--link:hover{text-decoration:none;color:#fff}
.npcm-qn .npcm-form__fine{margin-top:26px}

/* --------------------------------------------------------------- legal pages
   Long-form prose. Narrow measure, hairline-separated headings, no cards.
   Every colour is stated explicitly so the section cannot inherit white text
   from a navy wrapper (or white-on-white from a light one) — a legal page has
   to stay legible wherever it is dropped in. */
.npcm-legal{background:#fff;color:var(--npcm-ink)}
.npcm-legal h1{color:var(--npcm-navy);max-width:22ch}
.npcm-legal .npcm-eyebrow{color:var(--npcm-red)}
.npcm-legal__lede{color:var(--npcm-graphite);max-width:60ch}
.npcm-legal__meta{font-size:.78rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--npcm-graphite);margin:0 0 44px}
.npcm-legal__body{max-width:66ch;color:var(--npcm-ink)}
.npcm-legal__body h2{color:var(--npcm-navy);font-size:1.375rem;margin:40px 0 12px;padding-top:22px;border-top:1px solid var(--npcm-hairline)}
.npcm-legal__body h2:first-child{margin-top:0}
.npcm-legal__body p{color:var(--npcm-ink);margin:0 0 14px}
.npcm-legal__body ul{margin:0 0 14px;padding-left:20px;display:grid;gap:9px}
.npcm-legal__body li{color:var(--npcm-ink);padding-left:2px}
.npcm-legal__body strong{color:var(--npcm-navy)}
.npcm-legal__body a{color:var(--npcm-navy);text-decoration:underline;text-decoration-color:var(--npcm-red)}
.npcm-legal__body a:hover{color:var(--npcm-navy-deep)}

/* ------------------------------------------------- hero asides, per page
   The hero structure is shared; the right column is not. Home carries firm
   proof, Tax carries the list of returns it files, Bookkeeping carries the
   monthly cycle — so each page's strongest fact sits beside its own headline. */
.npcm-files{width:100%;border-top:1px solid var(--npcm-hairline);padding-top:22px}
.npcm-files__cap,.npcm-proof__cap{font-family:var(--wp--preset--font-family--display,"Open Sans",Arial,sans-serif);font-weight:600;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--npcm-red);margin:0 0 18px}
.npcm-files__grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--npcm-hairline);border:1px solid var(--npcm-hairline)}
.npcm-files__item{background:#fff;margin:0;padding:14px 16px;font-family:var(--wp--preset--font-family--display,"Open Sans",Arial,sans-serif);font-weight:600;font-size:.9375rem;color:var(--npcm-navy);transition:background .22s ease}
.npcm-files__item:hover{background:var(--npcm-panel)}
.npcm-files__note{font-size:.84rem;line-height:1.5;color:var(--npcm-graphite);margin:18px 0 0}
.npcm-hero__aside .npcm-proof__cap{padding-bottom:0}
@media (max-width:560px){
	.npcm-files__grid{grid-template-columns:1fr}
}

/* Belt and braces on footer links. WordPress emits its own link colour from
   theme.json ( :root :where(a) ), and a Site-Editor customisation of the footer
   template part can reintroduce it — so white is forced here. A legal link that
   is invisible against navy is not an acceptable failure mode. */
.npcm-footer a,.npcm-footer__base a,.npcm-footer__baseinner a{color:#fff!important}
.npcm-footer__baseinner a{text-decoration:underline!important;text-decoration-color:rgba(255,255,255,.55)!important;text-underline-offset:3px}
.npcm-footer__baseinner a:hover{text-decoration-color:#fff!important}

/* ------------------------------------------------ bookkeeping engagement
   The engagement statement, its description, and the package table used to
   be three stacked blocks. They say one thing, so they sit together in the
   hero aside: four core items in a hairline grid, add-ons below the fold of
   the same card, clearly secondary. */
.npcm-eng{width:100%;border-top:1px solid var(--npcm-hairline);padding-top:22px}
.npcm-eng__cap{font-family:var(--wp--preset--font-family--display,"Open Sans",Arial,sans-serif);font-weight:600;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--npcm-red);margin:0 0 16px}
.npcm-eng__grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--npcm-hairline);border:1px solid var(--npcm-hairline)}
.npcm-eng__item{background:#fff;padding:13px 15px;transition:background .22s ease}
.npcm-eng__item:hover{background:var(--npcm-panel)}
.npcm-eng__key{font-family:var(--wp--preset--font-family--display,"Open Sans",Arial,sans-serif);font-weight:600;font-size:.9rem;line-height:1.25;color:var(--npcm-navy);margin:0}
.npcm-eng__val{font-size:.8rem;line-height:1.45;color:var(--npcm-graphite);margin:5px 0 0}
.npcm-eng__sub{font-family:var(--wp--preset--font-family--display,"Open Sans",Arial,sans-serif);font-weight:600;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--npcm-graphite);margin:22px 0 10px}
.npcm-eng__adds{display:grid;gap:1px;background:var(--npcm-hairline);border:1px solid var(--npcm-hairline)}
.npcm-eng__add{background:var(--npcm-panel);padding:12px 15px;display:grid;grid-template-columns:auto 1fr;gap:11px;align-items:baseline}
.npcm-eng__plus{color:var(--npcm-graphite);display:flex;align-items:center;justify-content:center}
.npcm-eng__note{font-size:.8rem;line-height:1.5;color:var(--npcm-graphite);margin:12px 0 0}
@media (max-width:560px){
	.npcm-eng__grid{grid-template-columns:1fr}
}

/* ---------------------------------------------------------- home services
   The hero headline is a promise; this row is the evidence for it. Four
   named services, hairline grid, sitting between the lede and the buttons. */
.npcm-svc{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--npcm-hairline);border:1px solid var(--npcm-hairline);margin:26px 0 30px}
.npcm-svc__item{background:#fff;padding:14px 16px;transition:background .22s ease}
.npcm-svc__item:hover{background:var(--npcm-panel)}
.npcm-svc__key{font-family:var(--wp--preset--font-family--display,"Open Sans",Arial,sans-serif);font-weight:600;font-size:.9rem;line-height:1.25;color:var(--npcm-navy);margin:0}
.npcm-svc__val{font-size:.8rem;line-height:1.45;color:var(--npcm-graphite);margin:5px 0 0}
@media (max-width:560px){
	.npcm-svc{grid-template-columns:1fr}
}

/* Advisory band inside the engagement card. Navy top edge marks it as the
   thing the grid above cannot show: the judgment behind the bookkeeping. */
.npcm-eng__adv{border-top:2px solid var(--npcm-navy);background:#fff;border-right:1px solid var(--npcm-hairline);border-bottom:1px solid var(--npcm-hairline);border-left:1px solid var(--npcm-hairline);padding:16px 15px;margin-top:22px}
.npcm-eng__advcap{font-family:var(--wp--preset--font-family--display,"Open Sans",Arial,sans-serif);font-weight:600;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--npcm-red);margin:0 0 8px}
.npcm-eng__advkey{font-family:var(--wp--preset--font-family--display,"Open Sans",Arial,sans-serif);font-weight:600;font-size:.9rem;line-height:1.3;color:var(--npcm-navy);margin:0}
.npcm-eng__advval{font-size:.8rem;line-height:1.5;color:var(--npcm-graphite);margin:6px 0 0}

/* ------------------------------------------------------------ 990 quote form
   Reachable only from the tax page. Two columns: the thresholds on the left so
   a prospect can see the decision is the IRS's, the four questions on the right.
   Colours are stated explicitly — this page must stay legible wherever it sits. */
.npcm-quote{background:#fff;color:var(--npcm-ink)}
.npcm-quote__cols{display:grid;grid-template-columns:1.05fr 1fr;gap:64px;align-items:start}
.npcm-quote__copy h1{color:var(--npcm-navy);max-width:20ch}
.npcm-quote__copy .npcm-lede{color:var(--npcm-graphite);max-width:52ch}
.npcm-quote__note{border-top:2px solid var(--npcm-navy);background:var(--npcm-panel);padding:16px 18px;margin:30px 0 0}
.npcm-quote__notecap{font-family:var(--wp--preset--font-family--display,"Open Sans",Arial,sans-serif);font-weight:600;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--npcm-red);margin:0 0 8px}
.npcm-quote__notebody{font-size:.9rem;line-height:1.55;color:var(--npcm-graphite);margin:0}
.npcm-quote__thresh{margin-top:28px}
.npcm-quote__threshrow{display:grid;grid-template-columns:auto 1fr;gap:24px;align-items:baseline;padding:11px 0;border-top:1px solid var(--npcm-hairline)}
.npcm-quote__threshrow:last-child{border-bottom:1px solid var(--npcm-hairline)}
.npcm-quote__threshform{font-family:var(--wp--preset--font-family--display,"Open Sans",Arial,sans-serif);font-weight:600;font-size:.9rem;color:var(--npcm-navy);white-space:nowrap}
.npcm-quote__threshtest{font-size:.84rem;line-height:1.45;color:var(--npcm-graphite);text-align:right;font-variant-numeric:tabular-nums}

.npcm-990{padding:30px 28px 28px}
.npcm-990__error{background:var(--npcm-panel);border-left:3px solid var(--npcm-red);color:var(--npcm-ink);font-size:.9rem;line-height:1.5;margin:0 0 18px;padding:11px 14px}
.npcm-990__hint{font-size:.82rem;line-height:1.5;color:var(--npcm-graphite);margin:-4px 0 18px}
.npcm-990__more{border-top:1px solid var(--npcm-hairline);margin:4px 0 22px;padding-top:14px}
.npcm-990__more summary{font-family:var(--wp--preset--font-family--display,"Open Sans",Arial,sans-serif);font-weight:600;font-size:.86rem;color:var(--npcm-navy);cursor:pointer}
.npcm-990__more summary:hover{color:var(--npcm-navy-deep)}
.npcm-990__more[open] summary{margin-bottom:14px}

.npcm-990__result{padding:30px 28px 28px}
.npcm-990__resultcap{font-family:var(--wp--preset--font-family--display,"Open Sans",Arial,sans-serif);font-weight:600;font-size:.7rem;letter-spacing:.15em;text-transform:uppercase;color:var(--npcm-red);margin:0 0 12px}
.npcm-990__resultform{font-family:var(--wp--preset--font-family--display,"Open Sans",Arial,sans-serif);font-weight:600;font-size:1.75rem;line-height:1.1;color:var(--npcm-navy);margin:0 0 12px}
.npcm-990__resultbody{font-size:.98rem;line-height:1.6;color:var(--npcm-ink);margin:0}
.npcm-990__resultcta{margin-top:24px}

@media (max-width:900px){
	.npcm-quote__cols{grid-template-columns:1fr;gap:40px}
}
@media (max-width:560px){
	.npcm-quote__threshrow{grid-template-columns:1fr;gap:3px}
	.npcm-quote__threshtest{text-align:left}
}

/* Closing line under the detection list — the human judgment that follows a flag. */
.npcm-dual__foot{font-size:.88rem;line-height:1.55;color:var(--npcm-muted,#C8D2DA);margin:16px 0 0}
.npcm-grid--4{grid-template-columns:repeat(4,1fr)}
@media (max-width:900px){.npcm-grid--4{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.npcm-grid--4{grid-template-columns:1fr}}

/* Honeypot. Off-screen rather than display:none — better bots skip the latter. */
.hp-wrap{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}

/* 990 form additions */
.npcm-990__msg{background:var(--npcm-panel);border-left:3px solid var(--npcm-red);color:var(--npcm-ink);font-size:.9rem;line-height:1.55;margin:0 0 18px;padding:11px 14px}
.npcm-990__msg a{color:var(--npcm-navy)}
.npcm-form__hint{font-size:.8rem;line-height:1.45;color:var(--npcm-graphite);margin:5px 0 0}
.npcm-990 .is-missing{border-color:var(--npcm-red);outline:2px solid rgba(143,40,40,.16);outline-offset:0}
.npcm-990__fieldset{border:0;margin:0 0 18px;padding:0}
.npcm-990__fieldset legend{font-family:var(--wp--preset--font-family--display,"Open Sans",Arial,sans-serif);font-weight:600;font-size:.86rem;color:var(--npcm-navy);padding:0;margin-bottom:2px}
.npcm-990__radios{display:flex;gap:10px;margin-top:10px}
.npcm-990__radio{display:flex;align-items:center;gap:8px;border:1px solid var(--npcm-hairline);padding:9px 16px;font-size:.9rem;color:var(--npcm-ink);cursor:pointer;transition:border-color .18s ease,background .18s ease}
.npcm-990__radio:hover{background:var(--npcm-panel)}
.npcm-990__radio:has(input:checked){border-color:var(--npcm-navy);background:var(--npcm-panel)}
.npcm-990__resultnext{font-size:.9rem;line-height:1.55;color:var(--npcm-graphite);border-top:1px solid var(--npcm-hairline);margin:18px 0 0;padding-top:14px}
.npcm-990__result:focus{outline:none}
.npcm-990__result:focus-visible{outline:3px solid var(--npcm-red);outline-offset:2px}

.npcm-990__picks{display:flex;gap:8px;margin-top:9px}
.npcm-990__pick{background:#fff;border:1px solid var(--npcm-hairline);color:var(--npcm-navy);font-family:var(--wp--preset--font-family--display,"Open Sans",Arial,sans-serif);font-weight:600;font-size:.82rem;padding:7px 13px;cursor:pointer;transition:border-color .18s ease,background .18s ease}
.npcm-990__pick:hover{background:var(--npcm-panel);border-color:var(--npcm-navy)}

/* Simplified 990 form: pick-buttons, checkbox rows, and the contact divider. */
.npcm-form__pseudolabel{display:block;font-family:var(--wp--preset--font-family--display,"Open Sans",Arial,sans-serif);font-weight:600;font-size:.86rem;color:var(--npcm-navy);margin-bottom:9px}
.npcm-990__picks{display:flex;flex-wrap:wrap;gap:8px}
.npcm-990__pick{background:#fff;border:1px solid var(--npcm-hairline);color:var(--npcm-navy);font-family:var(--wp--preset--font-family--display,"Open Sans",Arial,sans-serif);font-weight:600;font-size:.86rem;padding:11px 16px;min-height:44px;cursor:pointer;transition:border-color .18s ease,background .18s ease}
.npcm-990__pick:hover{background:var(--npcm-panel);border-color:var(--npcm-navy)}
.npcm-990__pick.is-on{background:var(--npcm-navy);border-color:var(--npcm-navy);color:#fff}
.npcm-990__fyewrap{margin-top:12px}
.npcm-990__checks{display:grid;gap:1px;background:var(--npcm-hairline);border:1px solid var(--npcm-hairline);margin:0 0 18px}
.npcm-990__check{background:#fff;display:grid;grid-template-columns:auto 1fr;gap:11px;align-items:start;padding:13px 15px;font-size:.9rem;line-height:1.45;color:var(--npcm-ink);cursor:pointer;transition:background .18s ease}
.npcm-990__check:hover{background:var(--npcm-panel)}
.npcm-990__check input{margin-top:3px}
.npcm-990__check em{font-style:normal;color:var(--npcm-graphite)}
.npcm-990__years{max-width:180px}
.npcm-990__divide{border-top:1px solid var(--npcm-hairline);margin:26px 0 18px;padding-top:16px}
.npcm-990__dividecap{font-family:var(--wp--preset--font-family--display,"Open Sans",Arial,sans-serif);font-weight:600;font-size:.7rem;letter-spacing:.15em;text-transform:uppercase;color:var(--npcm-red);margin:0}

.npcm-quote__steps{margin:30px 0 0}
.npcm-quote__step{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:baseline;padding:13px 0;border-top:1px solid var(--npcm-hairline)}
.npcm-quote__step:last-child{border-bottom:1px solid var(--npcm-hairline)}
.npcm-quote__stepnum{font-family:var(--wp--preset--font-family--display,"Open Sans",Arial,sans-serif);font-weight:600;font-size:.72rem;letter-spacing:.13em;color:var(--npcm-red)}
.npcm-quote__step p{font-size:.94rem;line-height:1.5;color:var(--npcm-ink);margin:0}
.npcm-quote__reassure{font-size:.86rem;line-height:1.55;color:var(--npcm-graphite);margin:18px 0 0}

/* Step two: the answer, then the ask. The answer is the reward for step one, so it
   carries the visual weight; the contact fields sit under a hairline as a small ask. */
.npcm-990__answer{padding:30px 28px 28px}
.npcm-990__answer:focus{outline:none}
.npcm-990__answer:focus-visible{outline:3px solid var(--npcm-red);outline-offset:2px}
.npcm-990__answercap{font-family:var(--wp--preset--font-family--display,"Open Sans",Arial,sans-serif);font-weight:600;font-size:.7rem;letter-spacing:.15em;text-transform:uppercase;color:var(--npcm-red);margin:0 0 12px}
.npcm-990__answerform{font-family:var(--wp--preset--font-family--display,"Open Sans",Arial,sans-serif);font-weight:600;font-size:2rem;line-height:1.08;color:var(--npcm-navy);margin:0 0 12px}
.npcm-990__answerreason{font-size:.98rem;line-height:1.6;color:var(--npcm-ink);margin:0}
.npcm-990__redo{background:none;border:0;padding:0;margin:14px 0 0;font-family:var(--wp--preset--font-family--display,"Open Sans",Arial,sans-serif);font-weight:600;font-size:.84rem;color:var(--npcm-navy);text-decoration:underline;text-decoration-color:var(--npcm-red);text-underline-offset:3px;cursor:pointer}
.npcm-990__redo:hover{color:var(--npcm-navy-deep)}
.npcm-990__answer .npcm-990{padding:0}
.npcm-990__next{font-size:.94rem;line-height:1.55;color:var(--npcm-graphite);margin:8px 0 0}
.npcm-990__booking{font-size:.86rem;line-height:1.55;color:var(--npcm-graphite);margin:16px 0 0}

/* "required" reads as a quiet marker, not part of the label sentence. */
.npcm-form__req{font-family:var(--wp--preset--font-family--display,"Open Sans",Arial,sans-serif);font-weight:600;font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--npcm-red);vertical-align:2px;margin-left:5px}

/* The note sits with the reason as a second sentence, not as a warning. */
.npcm-990__answernote{font-size:.94rem;line-height:1.6;color:var(--npcm-graphite);margin:10px 0 0}

/* Optional file field. The native input is hidden but focusable, so the styled
   label behaves like a button while keeping keyboard and screen-reader support. */
.npcm-990__file input[type="file"]{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.npcm-990__filerow{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.npcm-990__filebtn{background:#fff;border:1px solid var(--npcm-hairline);color:var(--npcm-navy);font-family:var(--wp--preset--font-family--display,"Open Sans",Arial,sans-serif);font-weight:600;font-size:.86rem;padding:11px 16px;min-height:44px;display:inline-flex;align-items:center;cursor:pointer;transition:border-color .18s ease,background .18s ease}
.npcm-990__filebtn:hover{background:var(--npcm-panel);border-color:var(--npcm-navy)}
.npcm-990__file input[type="file"]:focus-visible + .npcm-form__hint{outline:none}
.npcm-990__file:focus-within .npcm-990__filebtn{outline:3px solid var(--npcm-red);outline-offset:2px}
.npcm-990__filename{font-size:.88rem;color:var(--npcm-graphite);min-width:0;overflow-wrap:anywhere}
.npcm-990__filename.is-set{color:var(--npcm-ink)}
.npcm-990__fileclear{background:none;border:0;padding:0;font-family:var(--wp--preset--font-family--display,"Open Sans",Arial,sans-serif);font-weight:600;font-size:.82rem;color:var(--npcm-navy);text-decoration:underline;text-decoration-color:var(--npcm-red);text-underline-offset:3px;cursor:pointer}
.npcm-990__fileclear:hover{color:var(--npcm-navy-deep)}

/* State filing sits under the answer as its own small block: a second obligation,
   not a footnote on the federal one. Hairline above, no fill. */
.npcm-990__state{border-top:1px solid var(--npcm-hairline);margin-top:18px;padding-top:14px}
.npcm-990__statecap{font-family:var(--wp--preset--font-family--display,"Open Sans",Arial,sans-serif);font-weight:600;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--npcm-red);margin:0 0 7px}
.npcm-990__statebody{font-size:.94rem;line-height:1.6;color:var(--npcm-ink);margin:0}
.npcm-990__regstate{max-width:260px}

/* --------------------------------------------------------------- testimonials
   Staff quotes on the navy band. Namespaced .npcm-tmnl — NOT .npcm-quote, which
   is the 990 quote page's section wrapper and would inherit the navy fill. */
.npcm-tmnls{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(255,255,255,.22)}
.npcm-tmnl{background:linear-gradient(165deg,#0C3A5A 0%,#082C46 100%);margin:0;padding:28px 26px 26px;display:flex;flex-direction:column}
.npcm-tmnl__mark{display:block;width:26px;height:3px;background:var(--npcm-red);margin-bottom:18px}
.npcm-tmnl__body{margin:0 0 22px;font-size:.94rem;line-height:1.6;color:#fff;text-wrap:pretty}
.npcm-tmnl__by{margin-top:auto;border-top:1px solid rgba(255,255,255,.28);padding-top:14px}
.npcm-tmnl__name{display:block;font-family:var(--wp--preset--font-family--display,"Open Sans",Arial,sans-serif);font-weight:600;font-size:.9rem;color:#fff}
.npcm-tmnl__role{display:block;font-size:.84rem;color:var(--npcm-tint);margin-top:2px}

/* ------------------------------------------------------------------- roles
   A list, not cards: these are job titles, and a grid of tiles would overstate
   how different they are from one another. */
.npcm-roles{border:1px solid var(--npcm-hairline);background:#fff}
.npcm-role{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:baseline;padding:16px 20px;border-top:1px solid var(--npcm-hairline);transition:background .18s ease}
.npcm-role:first-child{border-top:0}
.npcm-role:hover{background:var(--npcm-panel)}
.npcm-role__sq{width:9px;height:9px;background:var(--npcm-navy);display:block;margin-top:6px}
.npcm-role__title{font-family:var(--wp--preset--font-family--display,"Open Sans",Arial,sans-serif);font-weight:600;font-size:1.03rem;line-height:1.3;color:var(--npcm-navy);margin:0}
.npcm-role__body{font-size:.9rem;line-height:1.5;color:var(--npcm-graphite);margin:4px 0 0}
.npcm-roles__note{font-size:.9rem;line-height:1.55;color:var(--npcm-graphite);margin:18px 0 0}

.npcm-tmnls--2{grid-template-columns:repeat(2,1fr)}
@media (max-width:900px){
	.npcm-tmnls{grid-template-columns:1fr}
}

/* ------------------------------------------------------------------- claims
   Brian's five short claims on the navy band. One line each, hairline between,
   number in tint. No bodies: the brevity IS the design. The paragraph-length
   version of the same five lives on the bookkeeping page. */
.npcm-claims{border-top:1px solid rgba(255,255,255,.28);max-width:74ch}
.npcm-claim{display:grid;grid-template-columns:auto 1fr;gap:22px;align-items:baseline;padding:20px 0;border-bottom:1px solid rgba(255,255,255,.28)}
.npcm-claim__num{font-family:var(--wp--preset--font-family--display,"Open Sans",Arial,sans-serif);font-weight:600;font-size:.72rem;letter-spacing:.12em;color:var(--npcm-tint)}
.npcm-claim__text{font-size:1.0625rem;line-height:1.5;color:#fff;margin:0;text-wrap:pretty}
.npcm-result{font-family:var(--wp--preset--font-family--display,"Open Sans",Arial,sans-serif);font-weight:600;font-size:clamp(1.125rem,1.7vw,1.375rem);line-height:1.4;color:#fff;margin:38px 0 0;max-width:44ch;text-wrap:pretty}

@media (max-width:560px){
	.npcm-claim{gap:14px}
	.npcm-claim__text{font-size:1rem}
}

/* The five claims in full, on the bookkeeping page. White ground, so the same
   two-column reading order works with navy titles. */
.npcm-detail{border-top:1px solid var(--npcm-hairline)}
.npcm-detail__row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);gap:16px 44px;align-items:start;padding:24px 0;border-bottom:1px solid var(--npcm-hairline)}
.npcm-detail__lead{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:baseline}
.npcm-detail__num{font-family:var(--wp--preset--font-family--display,"Open Sans",Arial,sans-serif);font-weight:600;font-size:.72rem;letter-spacing:.12em;color:var(--npcm-red)}
.npcm-detail__title{font-family:var(--wp--preset--font-family--display,"Open Sans",Arial,sans-serif);font-weight:600;font-size:1.125rem;line-height:1.25;color:var(--npcm-navy);margin:0}
.npcm-detail__body{font-size:.9375rem;line-height:1.6;color:var(--npcm-ink);margin:0;text-wrap:pretty}
@media (max-width:760px){
	.npcm-detail__row{grid-template-columns:1fr;gap:10px}
}

/* ------------------------------------------------------------- 990 inline
   The flow lives on the tax page now: three questions, the answer in place, then
   two paths. Square corners, hairlines, no fills beyond the panel grey. */
.npcm-990flow{max-width:860px;scroll-margin-top:90px}
.npcm-990--inline{display:grid;gap:22px}
.npcm-990__pair{display:grid;grid-template-columns:1fr 1fr;gap:18px 26px}
.npcm-990__aside{display:grid;grid-template-columns:auto 1fr;gap:14px 34px;align-items:start;padding:18px 0;border-top:1px solid var(--npcm-hairline,#DBDEE0);border-bottom:1px solid var(--npcm-hairline,#DBDEE0)}
.npcm-990__statepick{display:grid;gap:6px}
.npcm-990__statepick label{font-size:.78rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--npcm-graphite,#5B5C60)}
.npcm-990__statepick select{min-width:88px}
.npcm-990__extras{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,240px));gap:18px 26px}
.npcm-990__go{display:grid;gap:10px;justify-items:start}
.npcm-990__gofine{font-size:.82rem;line-height:1.5;color:var(--npcm-graphite,#5B5C60);margin:0}

/* ---------------------------------------------------------- contact block
   One form, not a choice. The upload leads because it is what decides whether a
   letter or a callback follows, and that is said once beside the field. */
.npcm-990__contact{border-top:1px solid var(--npcm-hairline,#DBDEE0);margin-top:30px;padding-top:26px}
.npcm-990__contact .npcm-form{display:grid;gap:18px;max-width:560px}
.npcm-990__file{background:#fff;border-top:3px solid var(--npcm-navy,#0C3A5A);padding:20px 22px 22px}
.npcm-990__whyfile{color:var(--npcm-ink,#2B3A44)}
.npcm-form__opt{font-size:.72rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--npcm-graphite,#5B5C60);margin-left:6px}

/* The questions dim rather than disappear when someone chooses the upload
   instead: they may want to do both, and a field that vanishes reads as lost. */
.npcm-990__ask{transition:opacity .18s ease}
.npcm-990__ask.is-dim{opacity:.45}
.npcm-990__ask.is-dim:focus-within,.npcm-990__ask.is-dim:hover{opacity:1}

.npcm-990__alt button{background:none;border:0;padding:0;font:inherit;font-size:.9375rem;color:var(--npcm-navy,#0C3A5A);text-decoration:underline;text-decoration-color:var(--npcm-red,#8F2828);text-underline-offset:3px;cursor:pointer}
.npcm-990__alt button:hover{color:#082C46}

/* Edge cases behind a disclosure. Four controls served about one visitor in six
   and cost every visitor attention; the backend defaults cover the rest. */
.npcm-990__more{margin-top:20px;border-top:1px solid var(--npcm-hairline,#DBDEE0);padding-top:16px}
.npcm-990__more summary{display:flex;align-items:center;gap:9px;list-style:none;cursor:pointer;font-size:.9375rem;color:var(--npcm-graphite,#5B5C60);width:fit-content}
.npcm-990__more summary::-webkit-details-marker{display:none}
.npcm-990__more summary::before{content:"";width:6px;height:6px;border:solid currentColor;border-width:2px 2px 0 0;transform:rotate(45deg);transition:transform .18s ease;flex:none}
.npcm-990__more[open] summary::before{transform:rotate(135deg)}
.npcm-990__more summary:hover{color:var(--npcm-navy,#0C3A5A)}
.npcm-990__morebody{display:grid;gap:20px;padding:20px 0 4px}
.npcm-990__check em{display:block;font-style:normal;font-size:.84rem;line-height:1.5;color:var(--npcm-graphite,#5B5C60);margin-top:3px}
.npcm-990__extras{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,240px));gap:18px 26px}

.npcm-990__talk{margin:22px 0 0;font-size:.9375rem;color:var(--npcm-ink,#2B3A44)}

/* letter_coming reads warmer: a tick and a heavier line. The other three are
   ordinary next steps and are styled as such. */
.npcm-990__result.is-letter .npcm-990__resultcap{display:flex;align-items:center;gap:11px;color:var(--npcm-navy,#0C3A5A)}
.npcm-990__result.is-letter .npcm-990__resultcap::before{content:"";width:9px;height:16px;border:solid var(--npcm-navy,#0C3A5A);border-width:0 2px 2px 0;transform:rotate(45deg) translateY(-3px);flex:none}
.npcm-990__result.is-letter .npcm-990__resultbody{font-weight:600;color:var(--npcm-navy,#0C3A5A)}

@media (max-width:560px){
	.npcm-990__pair{grid-template-columns:1fr}
}

/* --------------------------------------------------------- 990 section head
   The hero above this one is also eyebrow / big navy heading / grey lede, left
   aligned at nearly the same size, so two stacked headers read as a repeat. This
   one is a band instead: heading left, supporting line right, hairline under,
   at a size clearly subordinate to the H1. Different in shape rather than
   decorated, and it starts the form about sixty pixels higher. */
.npcm-990head{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:18px 48px;align-items:end;max-width:860px;padding-bottom:22px;margin-bottom:34px;border-bottom:1px solid var(--npcm-hairline,#DBDEE0)}
.npcm-990head h2{font-size:clamp(1.375rem,2.1vw,1.75rem);line-height:1.2;margin:0}
.npcm-990head .npcm-eyebrow{margin:0 0 10px}
.npcm-990head__note{font-size:.9375rem;line-height:1.6;color:var(--npcm-graphite,#5B5C60);margin:0;text-wrap:pretty}
@media (max-width:760px){
	.npcm-990head{grid-template-columns:1fr;gap:14px;align-items:start}
}

/* ------------------------------------------------------------ waiting state
   Reading a return runs well past a minute, and a label that does not move for
   that long gets refreshed. Two things move instead: an indeterminate bar, and a
   button label that advances through the real phases. Neither claims a
   percentage, because we do not have one and a stalled bar is worse than none. */
.npcm-990__wait{display:grid;gap:10px}
.npcm-990__bar{height:3px;background:var(--npcm-hairline,#DBDEE0);overflow:hidden}
.npcm-990__bar span{display:block;height:100%;width:38%;background:var(--npcm-navy,#0C3A5A);animation:npcm-990-slide 1.5s ease-in-out infinite}
@keyframes npcm-990-slide{
	0%{transform:translateX(-100%)}
	100%{transform:translateX(363%)}
}
.npcm-990__waitnote{font-size:.82rem;line-height:1.55;color:var(--npcm-graphite,#5B5C60);margin:0}
@media (prefers-reduced-motion:reduce){
	.npcm-990__bar span{width:100%;animation:npcm-990-pulse 1.8s ease-in-out infinite}
	@keyframes npcm-990-pulse{0%,100%{opacity:.25}50%{opacity:1}}
}

/* The hidden attribute has to beat the layout rules above it: a display value on
   a class is the same specificity and wins by source order, which is how the
   waiting bar ended up animating before anyone had pressed anything. */
.npcm-990flow [hidden]{display:none !important}

.npcm-990__resultmore{font-size:.9375rem;line-height:1.6;color:var(--npcm-graphite,#5B5C60);margin:14px 0 0;max-width:56ch;text-wrap:pretty}

.npcm-990__alt{display:grid;gap:6px;justify-items:start;margin:14px 0 0}
.npcm-990__altnote{font-size:.84rem;line-height:1.55;color:var(--npcm-graphite,#5B5C60);margin:0;max-width:52ch}

/* The submit button is a flex row of label + arrow with a 10px gap. Left in place
   during a submission the arrow keeps holding its slot, so the changing label sits
   off to the left of the button rather than centred in it — and an arrow means
   "go", which is not what is happening. Hide it, hold the width so the phase
   labels do not resize the button under the cursor, and drop the hover lift. */
.npcm-submit[aria-busy="true"] svg{display:none}
.npcm-submit[aria-busy="true"]{min-width:min(300px,100%);cursor:default}
.npcm-submit[aria-busy="true"]:hover{background:var(--npcm-navy);transform:none;box-shadow:none}

/* Where the answer came from, and what it does not cover. Lighter than the reason
   because they qualify it rather than state it, and present only when the figures
   were read off an uploaded return. */
.npcm-990__basis,.npcm-990__caveat{font-size:.875rem;line-height:1.6;color:var(--npcm-graphite,#5B5C60);margin:10px 0 0;max-width:60ch}

/* -------------------------------------------------------------- price table
   The prices are public, so they are set as a table rather than a card deck:
   figures right-aligned in tabular numerals, every cell on the row's baseline,
   hairlines doing the dividing. Reads like a schedule of fees, which is what it
   is. Source of truth is billing.v_tax_pricing; see inc/tax-pricing.php. */
.npcm-price{width:100%;border-collapse:collapse;margin:0;font-variant-numeric:tabular-nums}
.npcm-price thead th{font-family:var(--wp--preset--font-family--display,"Open Sans",Arial,sans-serif);font-weight:600;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--npcm-graphite,#5B5C60);text-align:right;padding:0 0 12px 22px;border-bottom:1px solid var(--npcm-hairline,#DBDEE0)}
.npcm-price thead th:first-child{text-align:left;padding-left:0}
.npcm-price tbody th{text-align:left;font-weight:400;vertical-align:baseline;padding:20px 22px 20px 0;border-bottom:1px solid var(--npcm-hairline,#DBDEE0)}
.npcm-price tbody td{text-align:right;vertical-align:baseline;white-space:nowrap;font-size:1rem;color:var(--npcm-ink,#2B3A44);padding:20px 0 20px 22px;border-bottom:1px solid var(--npcm-hairline,#DBDEE0)}
.npcm-price__form{display:block;font-family:var(--wp--preset--font-family--display,"Open Sans",Arial,sans-serif);font-weight:600;font-size:1.0625rem;line-height:1.2;color:var(--npcm-navy,#0C3A5A)}
.npcm-price__who{display:block;font-size:.9rem;line-height:1.55;color:var(--npcm-ink,#2B3A44);margin-top:5px;max-width:44ch;text-wrap:pretty}
.npcm-price__total{font-family:var(--wp--preset--font-family--display,"Open Sans",Arial,sans-serif);font-weight:600;color:var(--npcm-navy,#0C3A5A)}

@media (max-width:720px){
	.npcm-price thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
	.npcm-price tbody tr{display:block;border-bottom:1px solid var(--npcm-hairline,#DBDEE0);padding:20px 0 16px}
	.npcm-price tbody th{display:block;padding:0 0 12px;border:0}
	.npcm-price tbody td{display:flex;justify-content:space-between;align-items:baseline;gap:20px;padding:5px 0;border:0}
	.npcm-price tbody td::before{content:attr(data-label);font-size:.78rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--npcm-graphite,#5B5C60)}
}

/* How many states, and which one. The count drives the fee, so it leads. */
.npcm-990__statepair{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:18px 26px;align-items:start}
.npcm-990__statepair .npcm-990__statefield{max-width:180px}
@media (max-width:560px){
	.npcm-990__statepair{grid-template-columns:1fr}
}

/* Tax hero runs solo: the aside that used to sit beside it listed the same returns
   the price table now prices, and two form lists stacked was most of the scroll
   between the headline and the form. */
.npcm-hero--solo{grid-template-columns:1fr;gap:0}
.npcm-hero--solo .npcm-hero__copy{padding:82px 0 66px}
.npcm-hero--solo .npcm-lede{max-width:62ch}
@media (max-width:900px){
	.npcm-hero--solo .npcm-hero__copy{padding:56px 0 48px}
}


/* The form's own head, now a sub-head inside the pricing section rather than a
   second section header. */
.npcm-taxform{border-top:1px solid var(--npcm-hairline,#DBDEE0);margin-top:46px;padding-top:34px;margin-bottom:28px;max-width:64ch}
.npcm-taxform h3{font-family:var(--wp--preset--font-family--display,"Open Sans",Arial,sans-serif);font-weight:600;font-size:1.25rem;line-height:1.25;color:var(--npcm-navy,#0C3A5A);margin:0 0 8px}
.npcm-taxform p{font-size:.9375rem;line-height:1.6;color:var(--npcm-graphite,#5B5C60);margin:0;text-wrap:pretty}

/* --------------------------------------------------- v2.17 adjustments
   Tighter gap under the header, larger type in the hero side cards, and
   numbered lists shown without their numbers. */
.npcm-hero__copy,.npcm-hero__aside{padding-top:56px}
.npcm-hero--solo .npcm-hero__copy{padding-top:56px}
.npcm-legal{padding-top:56px}
.npcm-proof__key{font-size:1.0625rem}
.npcm-proof__detail{font-size:.95rem}
.npcm-eng__key,.npcm-eng__advkey{font-size:1rem}
.npcm-eng__val,.npcm-eng__advval{font-size:.9rem}
.npcm-eng__note{font-size:.875rem}
.npcm-files__item{font-size:1.0625rem}
.npcm-files__note{font-size:.95rem}
.npcm-claim,.npcm-detail__lead,.npcm-qn__step{grid-template-columns:1fr}
.npcm-claim__num,.npcm-detail__num,.npcm-step__num,.npcm-qn__num{display:none}
@media (max-width:960px){
	.npcm-hero__copy{padding-top:36px}
	.npcm-hero--solo .npcm-hero__copy{padding-top:36px}
	.npcm-legal{padding-top:36px}
}
/* ------------------------------------------------------- v2.21 homepage
   Our approach: single full-width lines (numbers hidden above). */
.npcm-claims,.npcm-result{max-width:none}
@media (min-width:1100px){.npcm-claim__text,.npcm-result{white-space:nowrap}}
#bookkeeping .npcm-btnrow{margin-top:40px}
#tax .npcm-intro h2{margin-bottom:34px}
/* Why NPCM: lede under the heading, small gap above it. */
#quality .npcm-intro h2{margin-bottom:12px}
#quality .npcm-approach__sub{font-size:clamp(1.125rem,1.6vw,1.25rem)!important;font-weight:400;color:var(--npcm-tint);margin:0 0 22px}
.npcm-formcard a:not(.npcm-submit){color:var(--npcm-navy);text-decoration-color:var(--npcm-navy)}
.npcm-intake__copy .npcm-intake__free{color:#fff;font-weight:600;margin-top:22px}

/* ----------------------------------------------------------- about page */
.npcm-about-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:56px;align-items:start}
.npcm-about-split h2{max-width:22ch}
.npcm-about-body{font-size:1.0625rem;line-height:1.6;color:var(--npcm-ink);margin:0 0 16px;max-width:52ch}
.npcm-about-mission{background:var(--npcm-panel);border:1px solid var(--npcm-hairline);border-top:3px solid var(--npcm-red);padding:34px 32px}
.npcm-about-mission .npcm-eyebrow{margin:0 0 14px}
.npcm-about-mission__text{font-family:var(--wp--preset--font-family--display,"Open Sans",Arial,sans-serif);font-weight:600;font-size:clamp(1.25rem,1.9vw,1.5rem);line-height:1.4;color:var(--npcm-navy);margin:0;text-wrap:pretty}
.npcm-about-areas{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:rgba(255,255,255,.22);border:1px solid rgba(255,255,255,.22)}
.npcm-about-area{background:linear-gradient(165deg,#0C3A5A 0%,#082C46 100%);padding:28px 26px}
.npcm-about-area__title{font-size:1.125rem!important;margin:0 0 8px;color:#fff}
.npcm-about-area__body{font-size:.9375rem;line-height:1.55;color:var(--npcm-tint);margin:0}

.npcm-team__head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:34px}
.npcm-team__head .npcm-intro{margin-bottom:0}
.npcm-team__head .npcm-lede{margin-bottom:0}
.npcm-team__nav{display:flex;gap:8px;flex:0 0 auto}
.npcm-team__btn{width:48px;height:48px;padding:0;border:1px solid var(--npcm-navy);background:#fff;color:var(--npcm-navy);display:flex;align-items:center;justify-content:center;cursor:pointer;border-radius:0;transition:background .18s ease,transform .18s ease,box-shadow .18s ease,opacity .18s ease}
.npcm-team__btn:hover{background:var(--npcm-panel);transform:translateY(-2px);box-shadow:0 6px 16px rgba(12,58,90,.14)}
.npcm-team__btn:disabled{opacity:.3;cursor:default;transform:none;box-shadow:none;background:#fff}
.npcm-team__track{display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 48px) / 3);gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding:4px 0 18px;scrollbar-width:thin;scrollbar-color:var(--npcm-tint) transparent}
.npcm-team__track:focus-visible{outline:3px solid var(--npcm-red);outline-offset:4px}
.npcm-moment{scroll-snap-align:start;margin:0;background:#fff;border:1px solid var(--npcm-hairline);display:flex;flex-direction:column;transition:transform .22s var(--npcm-ease),box-shadow .22s ease}
.npcm-moment:hover{transform:translateY(-3px);box-shadow:0 8px 22px rgba(12,58,90,.13)}
.npcm-moment__photo{aspect-ratio:4/3;background:var(--npcm-panel);border-bottom:1px solid var(--npcm-hairline);display:flex;align-items:center;justify-content:center;overflow:hidden}
.npcm-moment__photo img{width:100%;height:100%;object-fit:cover;display:block}
.npcm-moment__ph{font-family:var(--wp--preset--font-family--display,"Open Sans",Arial,sans-serif);font-weight:600;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--npcm-graphite)}
.npcm-moment__body{padding:18px 20px 22px}
.npcm-moment__tag{font-size:.75rem;font-weight:600;letter-spacing:.06em;color:var(--npcm-red);margin:0 0 6px}
.npcm-moment__title{font-family:var(--wp--preset--font-family--display,"Open Sans",Arial,sans-serif);font-weight:600;font-size:1.0625rem;line-height:1.3;color:var(--npcm-navy);margin:0 0 8px}
.npcm-moment__caption{font-size:.9rem;line-height:1.55;color:var(--npcm-ink);margin:0}

@media (max-width:960px){
	.npcm-about-split{grid-template-columns:1fr;gap:36px}
	.npcm-about-areas{grid-template-columns:1fr}
	.npcm-team__track{grid-auto-columns:calc((100% - 24px) / 2.15)}
}
@media (max-width:560px){
	.npcm-team__head{flex-direction:column;align-items:flex-start}
	.npcm-team__track{grid-auto-columns:80%}
	.npcm-about-mission{padding:26px 22px}
}
@media (prefers-reduced-motion:reduce){
	.npcm-team__track{scroll-behavior:auto}
	.npcm-moment:hover,.npcm-team__btn:hover{transform:none}
}
/* Team moments: with four cards, show them all on desktop, no scrolling. */
@media (min-width:961px){.npcm-team__track{grid-auto-columns:calc((100% - 72px) / 4)}}
/* v2.38: one-line bookkeeping heading; full-width mission statement. */
.npcm-split h2.npcm-oneline{max-width:none}
@media (min-width:961px){.npcm-split h2.npcm-oneline{white-space:nowrap}}
#firm .npcm-intro{margin-bottom:44px}
#firm .npcm-about-mission{padding:40px 44px}
#firm .npcm-about-mission__text{font-size:clamp(1.375rem,2.4vw,1.875rem);max-width:none}
/* v2.39: staff cards — portrait photo, role under the name. */
.npcm-moment--person .npcm-moment__photo{aspect-ratio:4/5}
.npcm-moment--person .npcm-moment__title{margin:0 0 2px}
.npcm-moment--person .npcm-moment__tag{margin:0 0 12px}
#firm .npcm-intro{margin-bottom:0}
/* ---------------------------------------------- v2.41 homepage: why NPCM
   Two columns on navy. Square icon tiles (no radius), hairline rows, red rule. */
.npcm-why{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:72px;align-items:start}
.npcm-why__h{font-size:clamp(1.75rem,2.7vw,2.375rem)!important;margin:0 0 14px;color:#fff}
@media (min-width:961px){.npcm-why__h{white-space:nowrap}}
.npcm-why__sub{font-size:clamp(1.0625rem,1.5vw,1.1875rem);line-height:1.5;color:var(--npcm-tint);margin:0}
.npcm-why__rule{display:block;width:54px;height:3px;background:var(--npcm-red);margin:30px 0 26px}
.npcm-why__result{font-family:var(--wp--preset--font-family--display,"Open Sans",Arial,sans-serif);font-weight:600;font-size:clamp(1.0625rem,1.5vw,1.25rem);line-height:1.5;color:#fff;margin:0}
.npcm-why__list{border-top:1px solid rgba(255,255,255,.2)}
.npcm-why__row{display:flex;gap:20px;align-items:flex-start;padding:22px 0;border-bottom:1px solid rgba(255,255,255,.2);transition:background .22s ease,padding-left .22s var(--npcm-ease)}
.npcm-why__row:hover{background:rgba(255,255,255,.04);padding-left:12px}
.npcm-why__icon{flex:0 0 44px;width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.18);color:var(--npcm-tint);transition:background .22s ease,color .22s ease}
.npcm-why__row:hover .npcm-why__icon{background:rgba(255,255,255,.14);color:#fff}
.npcm-why__key{font-family:var(--wp--preset--font-family--display,"Open Sans",Arial,sans-serif);font-weight:600;font-size:1.0625rem;line-height:1.3;color:#fff;margin:2px 0 4px}
.npcm-why__detail{font-size:.9375rem;line-height:1.5;color:var(--npcm-tint);margin:0}
@media (max-width:960px){.npcm-why{grid-template-columns:1fr;gap:40px}}
@media (max-width:560px){.npcm-why__row{gap:14px}}
@media (prefers-reduced-motion:reduce){.npcm-why__row:hover{padding-left:0}}
/* v2.43 bookkeeping page: 2-up service tiles, linked tile. */
.npcm-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.npcm-grid--2 .npcm-tile{padding:30px 28px}
.npcm-grid--2 .npcm-tile__title{font-size:1.1875rem}
.npcm-grid--2 .npcm-tile__body{font-size:.9375rem;line-height:1.6}
a.npcm-tile--link{display:block;text-decoration:none;color:inherit}
a.npcm-tile--link .npcm-tile__title::after{content:" \2192";color:var(--npcm-red)}
@media (max-width:760px){.npcm-grid--2,.npcm-grid--3{grid-template-columns:1fr}}
/* v2.44 bookkeeping plan: core + add-ons in one bordered module. */
.npcm-plan{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:1px;background:var(--npcm-hairline);border:1px solid var(--npcm-hairline);border-top:3px solid var(--npcm-navy)}
.npcm-plan__core,.npcm-plan__adds{background:#fff;display:flex;flex-direction:column}
.npcm-plan__head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin:0;padding:18px 24px;border-bottom:1px solid var(--npcm-hairline);background:var(--npcm-panel);font-family:var(--wp--preset--font-family--display,"Open Sans",Arial,sans-serif);font-weight:600;font-size:1rem;color:var(--npcm-navy)}
.npcm-plan__hint{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--npcm-red)}
.npcm-plan__rows .npcm-listcard__row:last-child{border-bottom:0}
.npcm-plan__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--npcm-hairline);flex:1}
.npcm-plan__add{background:#fff;padding:22px 24px;transition:background .22s ease}
.npcm-plan__add:hover{background:var(--npcm-panel)}
.npcm-plan__addkey{display:flex;align-items:center;gap:10px;font-family:var(--wp--preset--font-family--display,"Open Sans",Arial,sans-serif);font-weight:600;font-size:1.0625rem;color:var(--npcm-navy);margin:0 0 8px}
.npcm-plan__plus{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;flex:0 0 22px;background:var(--npcm-navy);color:#fff;font-size:.95rem;line-height:1}
.npcm-plan__addval{font-size:.9rem;line-height:1.55;color:var(--npcm-graphite);margin:0}
@media (max-width:960px){.npcm-plan{grid-template-columns:1fr}}
@media (max-width:560px){.npcm-plan__grid{grid-template-columns:1fr}.npcm-plan__head{flex-direction:column;gap:4px}}
/* v2.49 tax page: quote anchor clears the sticky header; visible field outlines. */
.npcm-quotewrap{scroll-margin-top:calc(var(--npcm-headroom) - 30px)}
.npcm-form input[type=text],.npcm-form input[type=email],.npcm-form select,.npcm-form textarea{border-color:#8E9AA3}
.npcm-form input[type=text]:hover,.npcm-form input[type=email]:hover,.npcm-form select:hover,.npcm-form textarea:hover{border-color:var(--npcm-navy)}
.npcm-form input::placeholder{color:#8E9AA3}
.npcm-990__filebtn{border-color:#8E9AA3}
.npcm-form__opt{font-weight:400;letter-spacing:0;color:var(--npcm-graphite)}
/* v2.52: unmistakable field boxes on the 990 forms (beats theme/global input styles). */
.npcm-990flow input[type=text],.npcm-990flow input[type=email],.npcm-990flow select{background:#fff!important;border:1.5px solid #6B7780!important;border-radius:0!important;box-shadow:inset 0 1px 2px rgba(12,58,90,.06)!important}
.npcm-990flow input[type=text]:hover,.npcm-990flow input[type=email]:hover,.npcm-990flow select:hover{border-color:var(--npcm-navy)!important}
.npcm-990flow input[type=text]:focus,.npcm-990flow input[type=email]:focus,.npcm-990flow select:focus{border-color:var(--npcm-navy)!important;box-shadow:0 0 0 3px rgba(12,58,90,.15)!important;outline:none}
.npcm-990flow .npcm-990__filebtn{border:1.5px solid #6B7780}
/* v2.53: four-step hiring process. */
.npcm-steps--4{grid-template-columns:repeat(4,minmax(0,1fr));gap:30px}
@media (max-width:1100px){.npcm-steps--4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:960px){.npcm-steps--4{grid-template-columns:1fr}}
/* ------------------------------------------------------------- contact page */
.npcm-contact{padding-block:72px 96px}
.npcm-contact__grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:64px;align-items:start}
.npcm-contact__h{font-size:clamp(2rem,3.4vw,2.625rem)!important;margin:10px 0 8px;padding-bottom:22px;border-bottom:1px solid var(--npcm-hairline)}
.npcm-contact__lede{font-size:1.0625rem;color:var(--npcm-graphite);margin:22px 0 26px}
.npcm-form.npcm-contact__form{padding:0;gap:22px;max-width:620px}
.npcm-contact__form input[type=text],.npcm-contact__form input[type=email],.npcm-contact__form textarea{background:#fff!important;border:1.5px solid #6B7780!important;border-radius:0!important;padding:15px 16px}
.npcm-contact__form textarea{min-height:170px}
.npcm-contact__form input:hover,.npcm-contact__form textarea:hover{border-color:var(--npcm-navy)!important}
.npcm-contact__form input:focus,.npcm-contact__form textarea:focus{border-color:var(--npcm-navy)!important;box-shadow:0 0 0 3px rgba(12,58,90,.15)!important;outline:none}
.npcm-contact__form ::placeholder{color:#6B7780;opacity:1}
.npcm-contact__send{width:100%}
.npcm-contact__msg{background:var(--npcm-panel);border-left:3px solid var(--npcm-red);padding:13px 16px;margin:0 0 22px;font-size:.95rem;color:var(--npcm-ink);max-width:620px}
.npcm-contact__msg--ok{border-left-color:var(--npcm-navy)}
.npcm-contact__aside{background:var(--npcm-panel);border:1px solid var(--npcm-hairline);border-top:3px solid var(--npcm-red);padding:28px 26px;margin-top:8px}
.npcm-contact__asidecap{font-family:var(--wp--preset--font-family--display,"Open Sans",Arial,sans-serif);font-weight:600;font-size:.72rem;letter-spacing:.15em;text-transform:uppercase;color:var(--npcm-red);margin:0 0 14px}
.npcm-contact__link{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 0;border-top:1px solid var(--npcm-hairline);color:inherit;text-decoration:none;transition:padding-left .22s var(--npcm-ease)}
.npcm-contact__link:hover{padding-left:6px;text-decoration:none}
.npcm-contact__link>span{display:grid;gap:3px}
.npcm-contact__linkkey{font-family:var(--wp--preset--font-family--display,"Open Sans",Arial,sans-serif);font-weight:600;font-size:1.0625rem;color:var(--npcm-navy);transition:color .18s ease}
.npcm-contact__link:hover .npcm-contact__linkkey{color:var(--npcm-blue,#0D669A)}
.npcm-contact__linkval{font-size:.9rem;line-height:1.5;color:var(--npcm-graphite)}
.npcm-contact__link svg{flex:0 0 auto;color:var(--npcm-navy);transition:transform .18s ease}
.npcm-contact__link:hover svg{transform:translateX(3px)}
.npcm-contact__link:focus-visible{outline:3px solid var(--npcm-red);outline-offset:2px}
.npcm-contact__direct{font-size:.9rem;color:var(--npcm-graphite);margin:6px 0 0;padding-top:16px;border-top:1px solid var(--npcm-hairline)}
.npcm-contact__direct a{color:var(--npcm-navy)}
@media (max-width:960px){.npcm-contact__grid{grid-template-columns:1fr;gap:44px}.npcm-contact{padding-block:48px 72px}}
@media (prefers-reduced-motion:reduce){.npcm-contact__link:hover{padding-left:0}.npcm-contact__link:hover svg{transform:none}}
.screen-reader-text{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
/* v2.56 contact: labels above fields, left-aligned navy button. */
.npcm-contact__form label{display:block;font-size:.78rem;font-weight:600;letter-spacing:.04em;color:var(--npcm-graphite);margin-bottom:7px}
.npcm-contact__form .npcm-form__field{display:block}
button.npcm-btn.npcm-contact__send{width:auto;justify-self:start;border:0;cursor:pointer;font-family:inherit}
/* ------------------------------------------------ v2.69 about: staff grid
   6 across, square corners, hairline photo frame; bio slides up over the
   photo on hover / keyboard focus / tap. */
.npcm-staff{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:28px 20px}
.npcm-staff__card{margin:0;outline:none}
.npcm-staff__photo{position:relative;aspect-ratio:4/5;overflow:hidden;background:#E3E9EE;border:1px solid var(--npcm-hairline);display:flex;align-items:flex-end;justify-content:center}
.npcm-staff__photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s var(--npcm-ease)}
.npcm-staff__sil{width:78%;height:auto;color:#B9C5CE;margin-bottom:-2%}
.npcm-staff__bio{position:absolute;inset:0;background:rgba(12,58,90,.94);color:#fff;padding:14px 14px 16px;display:flex;align-items:flex-end;overflow-y:auto;opacity:0;transform:translateY(8px);transition:opacity .22s ease,transform .22s var(--npcm-ease)}
.npcm-staff__bio p{font-size:.78rem;line-height:1.45;margin:0}
.npcm-staff__card[tabindex]{cursor:pointer}
.npcm-staff__card[tabindex]:hover .npcm-staff__bio,.npcm-staff__card[tabindex]:focus .npcm-staff__bio,.npcm-staff__card[tabindex]:focus-within .npcm-staff__bio{opacity:1;transform:none}
.npcm-staff__card[tabindex]:hover img{transform:scale(1.03)}
.npcm-staff__card[tabindex]:focus-visible .npcm-staff__photo{outline:3px solid var(--npcm-red);outline-offset:2px}
.npcm-staff__cap{padding-top:12px}
.npcm-staff__name{font-family:var(--wp--preset--font-family--display,"Open Sans",Arial,sans-serif);font-weight:600;font-size:.95rem;line-height:1.3;color:var(--npcm-navy);margin:0}
.npcm-staff__role{font-size:.78rem;font-weight:600;letter-spacing:.03em;line-height:1.35;color:var(--npcm-red);margin:3px 0 0}
@media (max-width:1100px){.npcm-staff{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (max-width:760px){.npcm-staff{grid-template-columns:repeat(3,minmax(0,1fr));gap:22px 14px}}
@media (max-width:480px){.npcm-staff{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (prefers-reduced-motion:reduce){.npcm-staff__bio{transform:none}.npcm-staff__card[tabindex]:hover img{transform:none}}
/* longer bios: slightly smaller text so they fit the photo */
.npcm-staff__bio{align-items:center}
.npcm-staff__bio p{font-size:.74rem;line-height:1.42}
/* very long bios: start at the top and scroll inside the photo rather than clip */
.npcm-staff__bio{align-items:flex-start}
.npcm-staff__bio p{margin:auto 0}
/* named staff without a photo: solid silhouette, like a profile placeholder */
.npcm-staff__avatar{position:absolute;inset:0;width:100%;height:100%;color:#1E2328;display:block}

/* ------------------------------------------------- v2.118 homepage photo hero
   Team-photo mosaic (navy duotone, assets/img/hero-team.jpg) behind the hero,
   darkened on the left for legibility. Copy on top; proof points become a
   three-column row along the bottom. */
.npcm-hero-photo{position:relative;color:#fff;border-bottom:0;
  background:linear-gradient(90deg,rgba(6,30,51,.84) 0%,rgba(8,40,66,.62) 50%,rgba(12,58,90,.28) 100%),url('../img/hero-team.jpg') center/cover no-repeat #0C3A5A}
.npcm-hero-photo .npcm-hero{grid-template-columns:1fr;gap:0}
.npcm-hero-photo .npcm-hero__copy{padding:96px 0 56px}
.npcm-hero-photo .npcm-hero__aside{padding:0 0 64px;display:block}
.npcm-hero-photo .npcm-eyebrow{color:#fff;opacity:.92}
.npcm-hero-photo h1{color:#fff;max-width:20ch}
.npcm-hero-photo .npcm-lede{color:rgba(255,255,255,.9);max-width:52ch}
.npcm-hero-photo .wp-block-button:not(.is-style-outline) .wp-block-button__link{background:var(--npcm-red);color:#fff;border:1px solid var(--npcm-red)}
.npcm-hero-photo .wp-block-button:not(.is-style-outline) .wp-block-button__link:hover{background:#7A2121;border-color:#7A2121;box-shadow:0 8px 22px rgba(0,0,0,.28)}
.npcm-hero-photo .wp-block-button.is-style-outline .wp-block-button__link{color:#fff;border:2px solid #fff;background:transparent}
.npcm-hero-photo .wp-block-button.is-style-outline .wp-block-button__link:hover{background:rgba(255,255,255,.12);box-shadow:none}
.npcm-hero-photo .wp-block-button__link:focus-visible{outline:3px solid #fff;outline-offset:3px}
.npcm-hero-photo .npcm-hero__aside .npcm-proof{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px;background:transparent;border:0;border-top:1px solid rgba(255,255,255,.3);padding-top:30px}
.npcm-hero-photo .npcm-hero__aside .npcm-proof__row{padding:0;border:0;background:transparent}
.npcm-hero-photo .npcm-proof__key{color:#fff}
.npcm-hero-photo .npcm-proof__detail{color:rgba(255,255,255,.82)}
.npcm-hero-photo .npcm-proof__sq--navy{background:#7FA8CC}
.npcm-hero-photo .npcm-proof__sq--graphite{background:#B9C2C9}
.npcm-hero-photo .npcm-proof__sq--red{background:#D04545}
@media (max-width:960px){
  .npcm-hero-photo{background:linear-gradient(180deg,rgba(6,30,51,.76) 0%,rgba(8,40,66,.7) 100%),url('../img/hero-team.jpg') center/cover no-repeat #0C3A5A}
  .npcm-hero-photo .npcm-hero__copy{padding:56px 0 40px}
  .npcm-hero-photo .npcm-hero__aside .npcm-proof{grid-template-columns:1fr;gap:20px}
}
/* v2.119: desktop hero is the supplied team-photo artwork, full width; the live
   text hero stays in the page for search/screen readers and shows on phones. */
.npcm-hero-img{display:none}
@media (min-width:961px){
  .npcm-hero-photo{background:#0C3A5A}
  .npcm-hero-img{display:block;position:relative;line-height:0}
  .npcm-hero-img img{display:block;width:100%;height:auto}
  .npcm-hero-img__hit{position:absolute;display:block;font-size:0;color:transparent;overflow:hidden;transition:box-shadow .18s ease,transform .18s ease}
  .npcm-hero-img__hit:hover{box-shadow:0 8px 22px rgba(0,0,0,.3);transform:translateY(-2px)}
  .npcm-hero-img__hit:focus-visible{outline:3px solid #fff;outline-offset:3px}
  .npcm-hero-photo>.npcm-wrap{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
}
/* v2.120: real-shape silhouettes; grid shows only actual staff, last row centered */
.npcm-staff__photo img.npcm-staff__avatar{position:absolute;inset:auto auto 0 50%;transform:translateX(-50%);width:80%;height:auto;object-fit:contain;display:block}
.npcm-staff__card:hover .npcm-staff__photo img.npcm-staff__avatar{transform:translateX(-50%)}
.npcm-staff{display:flex;flex-wrap:wrap;justify-content:center;gap:28px 20px}
.npcm-staff__card{flex:0 0 calc((100% - 100px) / 6);max-width:calc((100% - 100px) / 6)}
@media (max-width:1100px){.npcm-staff__card{flex-basis:calc((100% - 60px) / 4);max-width:calc((100% - 60px) / 4)}}
@media (max-width:760px){.npcm-staff{gap:22px 14px}.npcm-staff__card{flex-basis:calc((100% - 28px) / 3);max-width:calc((100% - 28px) / 3)}}
@media (max-width:480px){.npcm-staff__card{flex-basis:calc((100% - 14px) / 2);max-width:calc((100% - 14px) / 2)}}
/* v2.143 contact: right panel starts on the rule under the heading */
.npcm-contact__grid{grid-template-rows:auto auto;row-gap:0}
.npcm-contact__head{grid-column:1;grid-row:1}
.npcm-contact__head .npcm-contact__h{margin-bottom:0}
.npcm-contact__main{grid-column:1;grid-row:2}
.npcm-contact__aside{grid-column:2;grid-row:2;align-self:start;margin-top:0}
@media (max-width:960px){.npcm-contact__head,.npcm-contact__main,.npcm-contact__aside{grid-column:1;grid-row:auto}.npcm-contact__aside{margin-top:44px}}
/* v2.147 contact: solid blue send button (beats form/button resets) */
.npcm-contact__form button.npcm-contact__send{display:inline-flex!important;align-items:center;justify-content:center;width:auto!important;min-height:52px;padding:15px 32px!important;background:#0D669A!important;color:#fff!important;border:0!important;border-radius:0!important;font-family:var(--wp--preset--font-family--display,"Open Sans",Arial,sans-serif)!important;font-weight:600!important;font-size:1rem!important;line-height:1;cursor:pointer;transition:background .15s ease,transform .18s ease,box-shadow .18s ease}
.npcm-contact__form button.npcm-contact__send:hover{background:#0A4A6E!important;transform:translateY(-2px);box-shadow:0 6px 16px rgba(13,102,154,.25)}
.npcm-contact__form button.npcm-contact__send:focus-visible{outline:3px solid var(--npcm-red);outline-offset:2px}
@media (prefers-reduced-motion:reduce){.npcm-contact__form button.npcm-contact__send:hover{transform:none}}
/* ------------------------------------------------ v2.149 mobile menu
   Our own hamburger + panel (≤960px); the WordPress nav block stays desktop-only. */
.npcm-mnav__btn,.npcm-mnav{display:none}
@media (max-width:960px){
  .npcm-nav{display:none!important}
  .npcm-header{position:sticky}
  .npcm-mnav__btn{display:inline-flex;align-items:center;justify-content:center;order:4;width:44px;height:44px;padding:0;margin-left:4px;background:#fff;border:1px solid var(--npcm-hairline);border-radius:0;color:var(--npcm-navy);cursor:pointer}
  .npcm-mnav__btn:focus-visible{outline:3px solid var(--npcm-red);outline-offset:2px}
  .npcm-mnav__close{display:none}
  .npcm-mnav__btn[aria-expanded="true"] .npcm-mnav__open{display:none}
  .npcm-mnav__btn[aria-expanded="true"] .npcm-mnav__close{display:block}
  .npcm-mnav{display:block;order:5;flex:1 0 100%;max-height:0;overflow:hidden;transition:max-height .28s var(--npcm-ease)}
  .npcm-mnav.is-open{max-height:80vh;overflow-y:auto;border-top:1px solid var(--npcm-hairline)}
  .npcm-mnav ul{list-style:none;margin:0;padding:6px 0 10px}
  .npcm-mnav li a{display:block;padding:14px 2px;border-bottom:1px solid var(--npcm-hairline);font-family:var(--wp--preset--font-family--display,"Open Sans",Arial,sans-serif);font-weight:600;font-size:1.0625rem;color:var(--npcm-navy);text-decoration:none}
  .npcm-mnav li a:hover{color:var(--npcm-navy-deep);background:var(--npcm-panel)}
  .npcm-mnav__portal a{color:var(--npcm-red)!important}
}
@media (max-width:560px){
  .npcm-header .npcm-portal{display:none}
  .npcm-logo__name{font-size:.82rem}
}
@media (prefers-reduced-motion:reduce){.npcm-mnav{transition:none}}
/* v2.150 mobile menu fix: panel drops below the header as an overlay, so the
   header's own height/overflow can't clip it; Client Portal button stays visible. */
@media (max-width:960px){
  .npcm-header{position:sticky;overflow:visible!important}
  .npcm-header .npcm-headrow{position:relative;overflow:visible!important}
  .npcm-mnav{position:absolute;left:0;right:0;top:100%;z-index:1000;flex:none;max-height:none;overflow:visible;transition:none;background:#fff;box-shadow:0 14px 28px rgba(12,58,90,.18);border-top:1px solid var(--npcm-hairline);display:none}
  .npcm-mnav.is-open{display:block;max-height:calc(100vh - 140px);overflow-y:auto}
  .npcm-mnav ul{padding:4px var(--npcm-gutter,20px) 12px}
}
@media (max-width:560px){
  .npcm-header .npcm-portal{display:inline-flex!important;padding:9px 12px;font-size:.82rem}
  .npcm-header .npcm-portal svg{display:none}
}
/* v2.151: on phones the menu button sits beside the logo, portal button after it */
@media (max-width:960px){
  .npcm-header .npcm-logo--compact{flex:1 1 auto;min-width:0}
  .npcm-header .npcm-portal{order:3}
  .npcm-header .npcm-mnav__btn{order:4;flex:0 0 44px}
}
