/*
 * Shared visual system for every content page except the approved homepage.
 * This layer deliberately follows each page stylesheet so the site's content
 * and page-specific layouts stay intact while colour, type and surfaces align.
 */

body:not(.page-home) {
  --nl-theme-ink: #252333;
  --nl-theme-copy: #5f5869;
  --nl-theme-purple: #7850ae;
  --nl-theme-lavender: #a78bfa;
  --nl-theme-lavender-soft: #f5f3f8;
  --nl-theme-lavender-pale: #faf8fc;
  --nl-theme-line: #e3d9ec;
  --nl-theme-line-strong: #c5add9;
  --nl-theme-shadow: 0 12px 30px rgba(73, 50, 86, .08);
  color: var(--nl-theme-ink);
  background: #fff;
  font-family: Manrope, Arial, Helvetica, sans-serif;
  -webkit-font-smoothing: antialiased;
}

/* --------------------------------------------------------------------------
   Package family — PDF-led layouts shared by Packages, Essentials, Elevate,
   Momentum, Bespoke and Lead Magnets & Tools. All selectors are scoped so the
   rest of the site remains untouched.
   -------------------------------------------------------------------------- */
body #main-content .pkg-page {
  --pkg-ink: #252333;
  --pkg-copy: #625b6d;
  --pkg-purple: #7650e8;
  --pkg-purple-deep: #5f39dc;
  --pkg-lavender: #9a76bd;
  --pkg-soft: #f5f1fa;
  --pkg-pale: #fbf9fd;
  --pkg-line: #e4d9ee;
  --pkg-shadow: 0 12px 32px rgba(70, 48, 88, .075);
  color: var(--pkg-ink);
  background: #fff;
  font-family: Manrope, Arial, Helvetica, sans-serif;
}

body #main-content .pkg-page * { box-sizing: border-box; }
body #main-content .pkg-page a { text-decoration: none; }
body #main-content .pkg-page .pkg-shell {
  width: min(1160px, calc(100% - 64px)) !important;
  margin-inline: auto !important;
}
body #main-content .pkg-page .pkg-section {
  position: relative;
  padding: clamp(52px, 6vw, 76px) 0;
  border-top: 1px solid var(--pkg-line) !important;
  background: #fff !important;
}
body #main-content .pkg-page .pkg-section.pkg-soft,
body #main-content .pkg-page .pkg-hero {
  background:
    radial-gradient(circle at 8% 0, rgba(255,255,255,.9), transparent 28%),
    radial-gradient(circle at 96% 8%, rgba(220,207,236,.48), transparent 31%),
    var(--pkg-soft) !important;
}
body #main-content .pkg-page .pkg-keyline::after {
  content: "";
  display: block;
  width: min(75%, 860px);
  height: 1px;
  margin: clamp(40px, 5vw, 62px) auto 0;
  background: var(--pkg-line);
}
body #main-content .pkg-page .pkg-eyebrow {
  margin: 0 0 10px;
  color: #8664aa !important;
  font-size: .72rem !important;
  font-weight: 800 !important;
  line-height: 1.35 !important;
  letter-spacing: .16em !important;
  text-transform: uppercase;
}
body #main-content .pkg-page h1,
body #main-content .pkg-page h2,
body #main-content .pkg-page h3,
body #main-content .pkg-page p { margin-top: 0; }
body #main-content .pkg-page h1 {
  max-width: 760px;
  margin-bottom: 16px;
  color: var(--pkg-ink) !important;
  font-size: clamp(2.15rem, 1.68rem + 1.65vw, 3rem) !important;
  font-weight: 650 !important;
  line-height: 1.08 !important;
  letter-spacing: -.045em !important;
}
body #main-content .pkg-page h1 span,
body #main-content .pkg-page h2 span { color: var(--pkg-lavender) !important; }
body #main-content .pkg-page h2 {
  margin-bottom: 12px;
  color: var(--pkg-ink) !important;
  font-size: clamp(1.75rem, 1.47rem + .92vw, 2.3rem) !important;
  font-weight: 620 !important;
  line-height: 1.18 !important;
  letter-spacing: -.038em !important;
}
body #main-content .pkg-page h3 {
  margin-bottom: 8px;
  color: var(--pkg-ink) !important;
  font-size: 1rem !important;
  font-weight: 680 !important;
  line-height: 1.35 !important;
  letter-spacing: -.018em !important;
}
body #main-content .pkg-page :where(p, li) {
  color: var(--pkg-copy) !important;
  font-size: .94rem;
  line-height: 1.68;
}
body #main-content .pkg-page .pkg-lead {
  color: #3f3949 !important;
  font-size: 1.02rem !important;
  font-weight: 560;
  line-height: 1.62 !important;
}
body #main-content .pkg-page .pkg-heading {
  max-width: 800px;
  margin: 0 auto 28px;
  text-align: center;
}
body #main-content .pkg-page .pkg-heading > p:last-child { margin-bottom: 0; }
body #main-content .pkg-page .pkg-card {
  min-width: 0;
  border: 1px solid var(--pkg-line) !important;
  border-radius: 15px !important;
  background: rgba(255,255,255,.94) !important;
  box-shadow: var(--pkg-shadow) !important;
}
body #main-content .pkg-page .pkg-card-pad { padding: 22px; }
body #main-content .pkg-page .pkg-icon {
  width: 44px;
  height: 44px;
  display: inline-grid;
  place-items: center;
  flex: 0 0 auto;
  border: 1px solid #dfd1ed;
  border-radius: 50%;
  background: #f1eafb;
  color: var(--pkg-purple);
  font-size: 1rem;
  font-weight: 800;
}
body #main-content .pkg-page .pkg-number {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  border-radius: 11px;
  background: linear-gradient(145deg, #8965ef, #663ee0);
  color: #fff;
  font-size: .78rem;
  font-weight: 800;
  box-shadow: 0 8px 16px rgba(95,57,220,.2);
}
body #main-content .pkg-page .pkg-actions {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  margin-top: 22px;
}
body #main-content .pkg-page .pkg-button {
  min-height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  padding: 12px 20px;
  border: 1px solid #7650e8;
  border-radius: 10px;
  font-size: .82rem;
  font-weight: 700;
  transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
}
body #main-content .pkg-page .pkg-button:hover { transform: translateY(-2px); }
body #main-content .pkg-page .pkg-button-primary {
  background: linear-gradient(135deg, #7c55eb, #6540df);
  color: #fff !important;
  box-shadow: 0 10px 22px rgba(95,57,220,.2);
}
body #main-content .pkg-page .pkg-button-secondary {
  background: rgba(255,255,255,.82);
  color: #5f39dc !important;
}
body #main-content .pkg-page .pkg-hero {
  padding: clamp(42px, 5.5vw, 68px) 0;
  border-bottom: 1px solid var(--pkg-line);
}
body.page-essentials #main-content .pkg-page .pkg-hero {
  padding-top: 24px !important;
}
body #main-content .pkg-page .pkg-hero-grid {
  min-height: 0 !important;
  display: grid;
  grid-template-columns: minmax(0,.9fr) minmax(420px,1.1fr);
  gap: clamp(32px, 5vw, 70px) !important;
  align-items: center !important;
  padding: 0 !important;
}
body #main-content .pkg-page .pkg-hero-copy { align-self: center !important; }
body #main-content .pkg-page .pkg-hero-copy p { max-width: 650px; }
body #main-content .pkg-page .pkg-price {
  display: flex;
  align-items: baseline;
  gap: 7px;
  margin: 18px 0 0;
  color: var(--pkg-ink);
}
body #main-content .pkg-page .pkg-price strong {
  color: var(--pkg-ink);
  font-size: clamp(1.65rem, 1.4rem + .8vw, 2.15rem);
  line-height: 1;
}
body #main-content .pkg-page .pkg-price span { color: var(--pkg-copy); font-size: .82rem; }
body #main-content .pkg-page .pkg-hero-art {
  align-self: center !important;
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
}
body #main-content .pkg-page .pkg-hero-art img {
  width: 100%;
  max-width: 680px;
  height: auto;
  display: block;
  border-radius: 22px;
  filter: saturate(.96) contrast(1.015);
  -webkit-mask-image: radial-gradient(ellipse 86% 88% at 52% 50%, #000 70%, transparent 100%);
  mask-image: radial-gradient(ellipse 86% 88% at 52% 50%, #000 70%, transparent 100%);
}
body #main-content .pkg-page .pkg-hero-art.pkg-hero-art-laptop {
  min-height: 0 !important;
  padding: 0 !important;
}
/* Align every package laptop with the first line of its H1 on desktop. */
@media (min-width: 1041px) {
  body #main-content .pkg-page .pkg-hero-grid > .pkg-hero-art.pkg-hero-art-laptop {
    align-self: start !important;
    margin-top: 26px !important;
  }
}
body #main-content .pkg-page .pkg-hero-art.pkg-hero-art-laptop::before,
body #main-content .pkg-page .pkg-hero-art.pkg-hero-art-laptop::after {
  content: none !important;
  display: none !important;
}
body #main-content .pkg-page .pkg-hero-art img.pkg-hero-laptop {
  display: block !important;
  width: 100% !important;
  max-width: 680px !important;
  height: auto !important;
  margin: 0 auto !important;
  object-fit: contain !important;
  object-position: center !important;
  clip-path: none !important;
  -webkit-mask-image: none;
  mask-image: none;
  filter: none !important;
  transform: none !important;
}
body:not(.page-home) #main-content .case-study-hero-art {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
}
body:not(.page-home) #main-content .case-study-hero-art img {
  display: block !important;
  width: 100% !important;
  max-width: 680px !important;
  height: auto !important;
  margin: 0 auto !important;
  border-radius: 22px;
  object-fit: contain !important;
}

/* Pilio and Nafi now use real, optimised laptop images in their hero grids.
   Retire the older generated artwork supplied by the legacy polish stylesheet. */
body.page-portfolio--pilio-group #main-content .page-content .nlpil-hero-grid::before,
body.page-portfolio--pilio-group #main-content .page-content .nlpil-hero-grid::after,
body.page-portfolio--nafi-natural-fibres #main-content .page-content .nlnafi-hero-grid::before,
body.page-portfolio--nafi-natural-fibres #main-content .page-content .nlnafi-hero-grid::after {
  content: none !important;
  display: none !important;
  background-image: none !important;
}

body.page-portfolio--pilio-group #main-content .page-content .nlpil-hero-grid > .case-study-hero-art,
body.page-portfolio--nafi-natural-fibres #main-content .page-content .nlnafi-hero-grid > .case-study-hero-art {
  grid-column: 2 !important;
  grid-row: 1 !important;
  place-self: center end !important;
  width: min(100%, 500px) !important;
}

@media (max-width: 980px) {
  body.page-portfolio--pilio-group #main-content .page-content .nlpil-hero-grid > .case-study-hero-art,
  body.page-portfolio--nafi-natural-fibres #main-content .page-content .nlnafi-hero-grid > .case-study-hero-art {
    grid-column: 1 !important;
    grid-row: 2 !important;
    justify-self: center !important;
    width: min(82vw, 500px) !important;
  }
}
body #main-content .pkg-page .pkg-list {
  display: grid;
  gap: 8px;
  margin: 14px 0 0;
  padding: 0;
  list-style: none;
}
body #main-content .pkg-page .pkg-list li {
  position: relative;
  padding-left: 22px;
  font-size: .86rem;
  line-height: 1.5;
}
body #main-content .pkg-page .pkg-list li::before {
  content: "✓";
  position: absolute;
  left: 0;
  top: 0;
  color: var(--pkg-purple);
  font-weight: 900;
}
body #main-content .pkg-page .pkg-grid-2,
body #main-content .pkg-page .pkg-grid-3,
body #main-content .pkg-page .pkg-grid-4,
body #main-content .pkg-page .pkg-grid-5,
body #main-content .pkg-page .pkg-grid-6,
body #main-content .pkg-page .pkg-grid-7 {
  display: grid;
  gap: 14px;
}
body #main-content .pkg-page .pkg-grid-2 { grid-template-columns: repeat(2,minmax(0,1fr)); }
body #main-content .pkg-page .pkg-grid-3 { grid-template-columns: repeat(3,minmax(0,1fr)); }
body #main-content .pkg-page .pkg-grid-4 { grid-template-columns: repeat(4,minmax(0,1fr)); }
body #main-content .pkg-page .pkg-grid-5 { grid-template-columns: repeat(5,minmax(0,1fr)); }
body #main-content .pkg-page .pkg-grid-6 { grid-template-columns: repeat(6,minmax(0,1fr)); }
body #main-content .pkg-page .pkg-grid-7 { grid-template-columns: repeat(7,minmax(0,1fr)); }
body #main-content .pkg-page .pkg-feature {
  padding: 20px 17px;
  text-align: center;
}
body #main-content .pkg-page .pkg-feature .pkg-icon { margin-bottom: 12px; }
body #main-content .pkg-page .pkg-feature p { margin-bottom: 0; font-size: .78rem; line-height: 1.52; }
body #main-content .pkg-page .pkg-feature h3 { font-size: .92rem !important; }
body #main-content .pkg-page .pkg-band {
  padding: 17px 20px;
  border: 1px solid var(--pkg-line);
  border-radius: 12px;
  background: #f1eafa;
  color: #6944d9;
  font-size: .85rem;
  font-weight: 680;
  text-align: center;
}
body #main-content .pkg-page .pkg-split {
  display: grid;
  grid-template-columns: minmax(0,.88fr) minmax(0,1.12fr);
  gap: clamp(28px, 5vw, 64px);
  align-items: start;
}
body #main-content .pkg-page .pkg-panel { padding: 25px; }
body #main-content .pkg-page .pkg-panel > :last-child { margin-bottom: 0; }
body #main-content .pkg-page .pkg-method-card {
  position: relative;
  padding: 22px 18px 18px;
  overflow: visible;
}
body #main-content .pkg-page .pkg-method-card .pkg-letter {
  display: inline-flex;
  align-items: baseline;
  gap: 8px;
  margin-bottom: 10px;
}
body #main-content .pkg-page .pkg-method-card .pkg-letter strong {
  color: var(--pkg-purple);
  font-size: 2rem;
  line-height: 1;
}
body #main-content .pkg-page .pkg-method-card:not(:last-child)::after {
  content: "→";
  position: absolute;
  top: 50%;
  right: -15px;
  z-index: 2;
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  border: 1px solid var(--pkg-line);
  border-radius: 50%;
  background: #fff;
  color: var(--pkg-purple);
  font-weight: 800;
  transform: translateY(-50%);
}
body #main-content .pkg-page .pkg-method-card p { margin-bottom: 0; font-size: .8rem; line-height: 1.52; }
body #main-content .pkg-page .pkg-foundation-map {
  display: grid;
  grid-template-columns: minmax(0,1fr) 180px minmax(0,1fr);
  gap: 14px;
  align-items: center;
}
body #main-content .pkg-page .pkg-map-side { display: grid; gap: 10px; }
body #main-content .pkg-page .pkg-map-item {
  display: grid;
  grid-template-columns: 30px 1fr;
  gap: 10px;
  align-items: start;
  padding: 12px 14px;
}
body #main-content .pkg-page .pkg-map-item b {
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #f0e8fa;
  color: var(--pkg-purple);
  font-size: .68rem;
}
body #main-content .pkg-page .pkg-map-item h3 { margin: 0 0 3px; font-size: .85rem !important; }
body #main-content .pkg-page .pkg-map-item p { margin: 0; font-size: .72rem; line-height: 1.45; }
body #main-content .pkg-page .pkg-map-hub {
  aspect-ratio: 1;
  display: grid;
  place-items: center;
  padding: 22px;
  border: 1px solid #cdb9df;
  border-radius: 50%;
  background: radial-gradient(circle, #fff 35%, #eee4f8 100%);
  color: #6846a7;
  font-weight: 760;
  text-align: center;
  box-shadow: 0 0 0 12px rgba(240,232,248,.6);
}
body #main-content .pkg-page .pkg-package-list { display: grid; gap: 14px; }
body #main-content .pkg-page .pkg-package-row {
  display: grid;
  grid-template-columns: 46px minmax(0,1fr) minmax(205px,.34fr);
  gap: 18px;
  align-items: start;
  padding: 22px;
}
body #main-content .pkg-page .pkg-package-main .pkg-eyebrow { margin-bottom: 4px; }
body #main-content .pkg-page .pkg-package-main h3 {
  margin-bottom: 6px;
  font-size: 1.22rem !important;
}
body #main-content .pkg-page .pkg-package-main p { margin-bottom: 12px; }
body #main-content .pkg-page .pkg-method-mini {
  display: grid;
  grid-template-columns: repeat(4,minmax(0,1fr));
  gap: 6px;
}
body #main-content .pkg-page .pkg-method-mini span {
  padding: 8px 7px;
  border-radius: 7px;
  background: #f3eef9;
  color: #665e70;
  font-size: .68rem;
  font-weight: 650;
  text-align: center;
}
body #main-content .pkg-page .pkg-package-price {
  padding-left: 18px;
  border-left: 1px solid var(--pkg-line);
}
body #main-content .pkg-page .pkg-package-price strong {
  display: block;
  color: var(--pkg-ink);
  font-size: 1.45rem;
  line-height: 1.1;
}
body #main-content .pkg-page .pkg-package-price small { color: var(--pkg-copy); }
body #main-content .pkg-page .pkg-package-price p { margin: 10px 0; font-size: .78rem; line-height: 1.5; }
body #main-content .pkg-page .pkg-text-link {
  color: var(--pkg-purple-deep) !important;
  font-size: .8rem;
  font-weight: 750;
}
body #main-content .pkg-page .pkg-credentials {
  padding: 24px;
}
body #main-content .pkg-page .pkg-credential-row {
  display: grid;
  grid-template-columns: 145px repeat(5,minmax(0,1fr));
  gap: 12px;
  align-items: center;
  padding: 15px 0;
}
body #main-content .pkg-page .pkg-credential-row + .pkg-credential-row { border-top: 1px solid var(--pkg-line); }
body #main-content .pkg-page .pkg-credential-label { font-size: .75rem; font-weight: 760; color: #5f5769; }
body #main-content .pkg-page .pkg-credential {
  min-width: 0;
  display: grid;
  justify-items: center;
  gap: 7px;
  min-height: 94px;
  padding: 8px;
  border-left: 1px solid var(--pkg-line);
  text-align: center;
}
body #main-content .pkg-page .pkg-credential img { width: 44px; height: 44px; object-fit: contain; }
body #main-content .pkg-page .pkg-credential strong { font-size: .72rem; line-height: 1.25; }
body #main-content .pkg-page .pkg-credential span { color: var(--pkg-copy); font-size: .64rem; line-height: 1.3; }
body #main-content .pkg-page .pkg-credential .pkg-years {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  color: var(--pkg-purple);
  font-size: 1.35rem;
  font-weight: 800;
}
body #main-content .pkg-page .pkg-faq { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
body #main-content .pkg-page .pkg-faq details { padding: 0 18px; }
body #main-content .pkg-page .pkg-faq summary {
  padding: 17px 24px 17px 0;
  color: var(--pkg-ink);
  font-size: .88rem;
  font-weight: 680;
  cursor: pointer;
}
body #main-content .pkg-page .pkg-faq details p { padding: 0 0 17px; margin: 0; font-size: .82rem; }
body #main-content .pkg-page .pkg-final { padding: 24px 0 30px; background: #fff !important; }
body #main-content .pkg-page .pkg-final-panel {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  gap: 28px;
  align-items: center;
  padding: clamp(26px, 4vw, 38px);
  border: 1px solid var(--pkg-line);
  border-radius: 18px;
  background:
    radial-gradient(circle at 96% 25%, rgba(202,180,225,.48), transparent 30%),
    linear-gradient(135deg, #f4eefb, #faf8fd);
}
body #main-content .pkg-page .pkg-final-panel h2 { margin-bottom: 8px; }
body #main-content .pkg-page .pkg-final-panel p { margin-bottom: 0; max-width: 660px; }
body #main-content .pkg-page .pkg-final-panel .pkg-actions { margin-top: 0; justify-content: flex-end; }
body #main-content .pkg-page.pkg-overview .pkg-overview-hero { text-align: center; }
body #main-content .pkg-page.pkg-overview .pkg-overview-hero h1,
body #main-content .pkg-page.pkg-overview .pkg-overview-hero .pkg-lead { margin-inline: auto; }
body #main-content .pkg-page .pkg-garden { width: min(950px, 100%); margin: 24px auto 0; }
body #main-content .pkg-page .pkg-garden img { display: block; width: 100%; height: auto; }
body #main-content .pkg-page .pkg-route-grid { margin-top: 18px; }
body #main-content .pkg-page .pkg-route-grid .pkg-feature { padding: 18px 10px; }
body #main-content .pkg-page .pkg-route-grid .pkg-feature h3 { margin-bottom: 3px; font-size: .78rem !important; }
body #main-content .pkg-page .pkg-route-grid .pkg-feature p { font-size: .68rem; }
body #main-content .pkg-page .pkg-statements .pkg-card { padding: 26px; }
body #main-content .pkg-page .pkg-statements .pkg-card h2 { font-size: 1.65rem !important; }

@media (max-width: 1040px) {
  body #main-content .pkg-page .pkg-hero-grid,
  body #main-content .pkg-page .pkg-split,
  body #main-content .pkg-page .pkg-final-panel { grid-template-columns: 1fr; }
  body #main-content .pkg-page .pkg-hero-art { max-width: 720px; margin-inline: auto; }
  body #main-content .pkg-page .pkg-grid-7 { grid-template-columns: repeat(4,minmax(0,1fr)); }
  body #main-content .pkg-page .pkg-grid-6,
  body #main-content .pkg-page .pkg-grid-5 { grid-template-columns: repeat(3,minmax(0,1fr)); }
  body #main-content .pkg-page .pkg-grid-4 { grid-template-columns: repeat(2,minmax(0,1fr)); }
  body #main-content .pkg-page .pkg-credential-row { grid-template-columns: repeat(3,minmax(0,1fr)); }
  body #main-content .pkg-page .pkg-credential-label { grid-column: 1/-1; }
  body #main-content .pkg-page .pkg-credential { border-left: 0; }
  body #main-content .pkg-page .pkg-final-panel .pkg-actions { justify-content: flex-start; }
}

@media (max-width: 780px) {
  body #main-content .pkg-page .pkg-shell { width: min(100% - 36px, 1160px) !important; }
  body #main-content .pkg-page .pkg-section { padding: 50px 0; }
  body #main-content .pkg-page .pkg-package-row { grid-template-columns: 42px 1fr; }
  body #main-content .pkg-page .pkg-package-price { grid-column: 2; padding: 14px 0 0; border-top: 1px solid var(--pkg-line); border-left: 0; }
  body #main-content .pkg-page .pkg-foundation-map { grid-template-columns: 1fr; }
  body #main-content .pkg-page .pkg-map-hub { width: 150px; margin: 10px auto; order: -1; }
  body #main-content .pkg-page .pkg-grid-3,
  body #main-content .pkg-page .pkg-grid-7 { grid-template-columns: repeat(2,minmax(0,1fr)); }
  body #main-content .pkg-page .pkg-faq { grid-template-columns: 1fr; }
  body #main-content .pkg-page .pkg-method-card::after { display: none !important; }
}

@media (max-width: 560px) {
  body #main-content .pkg-page .pkg-actions { align-items: stretch; }
  body #main-content .pkg-page .pkg-button { width: 100%; }
  body #main-content .pkg-page .pkg-grid-2,
  body #main-content .pkg-page .pkg-grid-3,
  body #main-content .pkg-page .pkg-grid-4,
  body #main-content .pkg-page .pkg-grid-5,
  body #main-content .pkg-page .pkg-grid-6,
  body #main-content .pkg-page .pkg-grid-7 { grid-template-columns: 1fr; }
  body #main-content .pkg-page .pkg-package-row { grid-template-columns: 1fr; }
  body #main-content .pkg-page .pkg-package-price { grid-column: 1; }
  body #main-content .pkg-page .pkg-method-mini { grid-template-columns: repeat(2,minmax(0,1fr)); }
  body #main-content .pkg-page .pkg-credential-row { grid-template-columns: repeat(2,minmax(0,1fr)); }
  body #main-content .pkg-page .pkg-feature { text-align: left; }
  body #main-content .pkg-page .pkg-feature .pkg-icon { margin-bottom: 10px; }
}

body:not(.page-home) #main-content,
body:not(.page-home) #main-content :where(input, select, textarea, button) {
  font-family: Manrope, Arial, Helvetica, sans-serif;
}

body:not(.page-home) #main-content {
  overflow: hidden;
  color: var(--nl-theme-ink);
  background: #fff;
}

body:not(.page-home) #main-content > :where(div, section, article),
body:not(.page-home) #main-content .page-content,
body:not(.page-home) #main-content :is(
  [class$="-page"],
  .nl-insights,
  .nl-article,
  .nlq-wrap,
  .nlg-checker
) {
  color: var(--nl-theme-ink);
  background: #fff;
  font-family: Manrope, Arial, Helvetica, sans-serif;
}

/* A calmer, consistent reading hierarchy. */
body:not(.page-home) #main-content h1 {
  max-width: 820px;
  color: var(--nl-theme-ink) !important;
  font-size: clamp(2.25rem, 1.72rem + 2.05vw, 3.25rem) !important;
  font-weight: 600 !important;
  line-height: 1.1 !important;
  letter-spacing: -.045em !important;
  text-wrap: balance;
}

body:not(.page-home) #main-content h1 span {
  color: #9270b8 !important;
}

body:not(.page-home) #main-content h2 {
  color: var(--nl-theme-ink) !important;
  font-size: clamp(1.75rem, 1.45rem + 1.15vw, 2.35rem) !important;
  font-weight: 580 !important;
  line-height: 1.2 !important;
  letter-spacing: -.036em !important;
  text-wrap: balance;
}

body:not(.page-home) #main-content h3 {
  color: var(--nl-theme-ink) !important;
  font-size: clamp(1.15rem, 1.04rem + .42vw, 1.38rem) !important;
  font-weight: 600 !important;
  line-height: 1.35 !important;
  letter-spacing: -.025em !important;
}

body:not(.page-home) #main-content h4 {
  color: var(--nl-theme-ink) !important;
}

body:not(.page-home) #main-content :where(p, li, dt, dd) {
  line-height: 1.75;
}

body:not(.page-home) #main-content p:not([class*="label"]):not([class*="kicker"]):not([class*="eyebrow"]),
body:not(.page-home) #main-content :where(li, dt) {
  color: var(--nl-theme-copy) !important;
}

body:not(.page-home) #main-content dd {
  color: var(--nl-theme-ink) !important;
}

body:not(.page-home) #main-content :is(
  [class*="eyebrow"],
  [class*="kicker"],
  [class$="-label"],
  [class*="section-label"],
  [class*="panel-label"],
  [class*="card-label"],
  [class*="facts-label"]
) {
  color: #8664aa !important;
  font-weight: 700 !important;
  letter-spacing: .13em !important;
  text-transform: uppercase;
}

/* Keep every page on the same, generous content grid. */
body:not(.page-home) #main-content :is([class*="-container"], [class*="-shell"]) {
  width: min(1180px, calc(100% - 80px)) !important;
  margin-inline: auto !important;
}

/*
 * Alternating editorial strips. Direct-section pages and wrapped pages are
 * both covered; insight article subsections retain a continuous reading flow.
 */
body:not(.page-home) #main-content > section,
body:not(.page-home) #main-content > div[class$="-page"] > section,
body:not(.page-home) #main-content .page-content > :is(section, div)[class$="-page"] > section,
body:not(.page-home) #main-content .page-content > :is(.nl-insights, .nlq-wrap, .nlg-checker) > section {
  position: relative;
  border-top: 1px solid var(--nl-theme-line) !important;
  background-color: #fff !important;
  background-image: radial-gradient(circle at 96% 2%, rgba(231, 222, 241, .3), transparent 28%) !important;
}

body:not(.page-home) #main-content > section:nth-of-type(odd),
body:not(.page-home) #main-content > div[class$="-page"] > section:nth-of-type(odd),
body:not(.page-home) #main-content .page-content > :is(section, div)[class$="-page"] > section:nth-of-type(odd),
body:not(.page-home) #main-content .page-content > :is(.nlq-wrap, .nlg-checker) > section:nth-of-type(odd) {
  background-color: var(--nl-theme-lavender-soft) !important;
  background-image: radial-gradient(circle at 8% 0, rgba(255, 255, 255, .86), transparent 31%) !important;
}

/* Pages whose hero is a header begin their alternating section rhythm on white. */
body:not(.page-home) #main-content .page-content > :is(
  .nl-insights,
  .nlcs-page,
  .nlnafi-page,
  .nloes-page,
  .nlpil-page,
  .nlsep-page
) > section:nth-of-type(odd) {
  background-color: #fff !important;
  background-image: radial-gradient(circle at 96% 2%, rgba(231, 222, 241, .3), transparent 28%) !important;
}

body:not(.page-home) #main-content .page-content > :is(
  .nl-insights,
  .nlcs-page,
  .nlnafi-page,
  .nloes-page,
  .nlpil-page,
  .nlsep-page
) > section:nth-of-type(even) {
  background-color: var(--nl-theme-lavender-soft) !important;
  background-image: radial-gradient(circle at 8% 0, rgba(255, 255, 255, .86), transparent 31%) !important;
}

/* Hero strips echo the homepage without introducing heavy colour blocks. */
body:not(.page-home) #main-content :is(
  [class$="-hero"],
  .nl-insights-hero
) {
  position: relative;
  border-top: 0 !important;
  border-bottom: 1px solid var(--nl-theme-line) !important;
  background-color: var(--nl-theme-lavender-soft) !important;
  background-image: radial-gradient(ellipse at 88% 18%, rgba(214, 196, 233, .48), transparent 43%) !important;
}

body:not(.page-home) #main-content [class*="-hero-grid"] {
  min-height: 0 !important;
  gap: clamp(30px, 5vw, 62px) !important;
  padding-top: clamp(44px, 6vw, 68px) !important;
  padding-bottom: clamp(48px, 6.5vw, 74px) !important;
  align-items: center !important;
}

body:not(.page-home) #main-content :is([class*="hero-lead"], [class*="hero-intro"], [class*="subtitle"], [class$="-lead"]) {
  max-width: 760px;
  color: var(--nl-theme-copy) !important;
  font-size: clamp(1.04rem, .98rem + .28vw, 1.18rem) !important;
  line-height: 1.7 !important;
}

/* Soft glass-like panels replace the previous dark utility blocks. */
body:not(.page-home) #main-content :is(
  [class*="route-panel"],
  [class*="hero-panel"],
  [class*="hero-card"],
  [class*="dark-card"],
  [class$="-facts"],
  [class*="investment-panel"],
  [class*="scope-panel"],
  [class*="pricing-panel"],
  [class*="connected-panel"],
  [class*="focus-panel"],
  [class*="included-panel"]
) {
  color: var(--nl-theme-ink) !important;
  border: 1px solid rgba(255, 255, 255, .9) !important;
  border-radius: 20px !important;
  background: linear-gradient(135deg, rgba(255, 255, 255, .82), rgba(249, 246, 252, .94)) !important;
  box-shadow: var(--nl-theme-shadow), inset 0 1px 0 #fff !important;
}

body:not(.page-home) #main-content :is(
  [class*="route-panel"],
  [class*="hero-panel"],
  [class*="hero-card"],
  [class*="dark-card"],
  [class$="-facts"],
  [class*="investment-panel"],
  [class*="scope-panel"],
  [class*="pricing-panel"],
  [class*="connected-panel"],
  [class*="focus-panel"],
  [class*="included-panel"]
) :where(h2, h3, h4, strong, dd) {
  color: var(--nl-theme-ink) !important;
}

body:not(.page-home) #main-content :is(
  [class*="route-panel"],
  [class*="hero-panel"],
  [class*="hero-card"],
  [class*="dark-card"],
  [class$="-facts"]
) :where(p, small, span, dt) {
  color: var(--nl-theme-copy) !important;
}

body:not(.page-home) #main-content :is(
  [class*="route-list"],
  [class*="panel-list"]
) a {
  color: var(--nl-theme-ink) !important;
  border: 1px solid #ece4f2 !important;
  background: rgba(255, 255, 255, .76) !important;
  box-shadow: 0 4px 12px rgba(73, 50, 86, .04) !important;
}

body:not(.page-home) #main-content :is(
  [class*="route-list"],
  [class*="panel-list"]
) a:hover {
  border-color: #d7c4e7 !important;
  background: #f5effa !important;
}

/* One fine keyline and a restrained shadow for cards and grouped content. */
body:not(.page-home) #main-content article:not(.nl-article):not([class$="-page"]),
body:not(.page-home) #main-content :is(
  [class$="-card"],
  [class$="-panel"],
  [class$="-box"]
) {
  border-color: var(--nl-theme-line) !important;
  border-radius: 17px !important;
  box-shadow: 0 8px 22px rgba(73, 50, 86, .065) !important;
}

body:not(.page-home) #main-content article:not(.nl-article):not([class$="-page"]) {
  color: var(--nl-theme-ink) !important;
  background: rgba(255, 255, 255, .9) !important;
}

body:not(.page-home) #main-content article:not(.nl-article):not([class$="-page"]) h2,
body:not(.page-home) #main-content :is([class$="-card"], [class$="-panel"], [class$="-box"]) h2 {
  font-size: clamp(1.35rem, 1.22rem + .48vw, 1.62rem) !important;
}

/*
 * Named legacy surfaces that used navy background images. Background-image
 * must be reset explicitly: changing only background-color leaves a dark
 * gradient visible above it.
 */
body:not(.page-home) #main-content :is(
  .nlb-option-card-featured,
  .nlb-scope-panel,
  .nlc-dark-card,
  .nlc-option-dark,
  .nlev-route-card-featured,
  .nlev-investment-panel,
  .nle-connected-foundation,
  .nle-expectation-panel,
  .nle-investment-promise-block,
  .nl-start-box,
  .nl-card-top,
  .nl-approach,
  .nlm-example-card-featured,
  .nlm-connected-panel,
  .nlm-included-panel,
  .nlm-price-card-featured,
  .nlm-tier-card-featured,
  .nlm-price-option-featured,
  .nlp-route-panel,
  .nlnafi-facts,
  .nlnafi-delivered-strip,
  .nloes-facts,
  .nloes-checker-journey,
  .nlpil-facts,
  .nlsep-facts,
  .nlcs-facts,
  .nlpf-panel,
  .nlpt-summary,
  .nlwd-hero-panel,
  .nlwh-hero-panel,
  .nlwi-hero-panel,
  .nlwr-hero-panel,
  .nlws-route-panel
) {
  color: var(--nl-theme-ink) !important;
  border: 1px solid var(--nl-theme-line) !important;
  background: linear-gradient(135deg, rgba(255, 255, 255, .96), rgba(246, 241, 250, .94)) !important;
  box-shadow: var(--nl-theme-shadow), inset 0 1px 0 #fff !important;
}

body:not(.page-home) #main-content :is(
  .nlc-call,
  .nlc-cta,
  .nl-deeper,
  .nlp-bespoke,
  .nlnafi-learning,
  .nloes-results,
  .nlcs-results,
  .nlpf-cta,
  .nlpt-contents,
  .nlq-process-section,
  .nlg-proof-strip,
  .nlwd-navy,
  .nlwh-navy,
  .nlwi-navy,
  .nlwr-navy,
  .nlws-foundation
) {
  color: var(--nl-theme-ink) !important;
  border-color: var(--nl-theme-line) !important;
  background-color: var(--nl-theme-lavender-soft) !important;
  background-image: radial-gradient(circle at 9% 0, rgba(255, 255, 255, .86), transparent 32%) !important;
}

body:not(.page-home) #main-content :is(
  .nlb-option-card-featured,
  .nlb-scope-panel,
  .nlc-dark-card,
  .nlc-option-dark,
  .nlev-route-card-featured,
  .nlev-investment-panel,
  .nle-connected-foundation,
  .nle-expectation-panel,
  .nle-investment-promise-block,
  .nl-start-box,
  .nl-card-top,
  .nl-approach,
  .nlm-example-card-featured,
  .nlm-connected-panel,
  .nlm-included-panel,
  .nlm-price-card-featured,
  .nlm-tier-card-featured,
  .nlm-price-option-featured,
  .nlp-route-panel,
  .nlnafi-facts,
  .nlnafi-delivered-strip,
  .nloes-facts,
  .nloes-checker-journey,
  .nlpil-facts,
  .nlsep-facts,
  .nlcs-facts,
  .nlpf-panel,
  .nlpt-summary,
  .nlwd-hero-panel,
  .nlwh-hero-panel,
  .nlwi-hero-panel,
  .nlwr-hero-panel,
  .nlws-route-panel,
  .nlc-call,
  .nlc-cta,
  .nl-deeper,
  .nlp-bespoke,
  .nlnafi-learning,
  .nloes-results,
  .nlcs-results,
  .nlpf-cta,
  .nlpt-contents,
  .nlq-process-section,
  .nlg-proof-strip,
  .nlwd-navy,
  .nlwh-navy,
  .nlwi-navy,
  .nlwr-navy,
  .nlws-foundation
) :where(h1, h2, h3, h4, strong, dd) {
  color: var(--nl-theme-ink) !important;
}

body:not(.page-home) #main-content :is(
  .nlb-option-card-featured,
  .nlb-scope-panel,
  .nlc-dark-card,
  .nlc-option-dark,
  .nlev-route-card-featured,
  .nlev-investment-panel,
  .nle-connected-foundation,
  .nle-expectation-panel,
  .nle-investment-promise-block,
  .nl-start-box,
  .nl-card-top,
  .nl-approach,
  .nlm-example-card-featured,
  .nlm-connected-panel,
  .nlm-included-panel,
  .nlm-price-card-featured,
  .nlm-tier-card-featured,
  .nlm-price-option-featured,
  .nlp-route-panel,
  .nlnafi-facts,
  .nlnafi-delivered-strip,
  .nloes-facts,
  .nloes-checker-journey,
  .nlpil-facts,
  .nlsep-facts,
  .nlcs-facts,
  .nlpf-panel,
  .nlpt-summary,
  .nlwd-hero-panel,
  .nlwh-hero-panel,
  .nlwi-hero-panel,
  .nlwr-hero-panel,
  .nlws-route-panel,
  .nlc-call,
  .nlc-cta,
  .nl-deeper,
  .nlp-bespoke,
  .nlnafi-learning,
  .nloes-results,
  .nlcs-results,
  .nlpf-cta,
  .nlpt-contents,
  .nlq-process-section,
  .nlg-proof-strip,
  .nlwd-navy,
  .nlwh-navy,
  .nlwi-navy,
  .nlwr-navy,
  .nlws-foundation
) :where(p, li, span, small, dt) {
  color: var(--nl-theme-copy) !important;
}

body:not(.page-home) #main-content :is(
  .nlb-option-card-featured,
  .nlb-scope-panel,
  .nlc-dark-card,
  .nlc-option-dark,
  .nlev-route-card-featured,
  .nlev-investment-panel,
  .nle-connected-foundation,
  .nle-expectation-panel,
  .nle-investment-promise-block,
  .nl-start-box,
  .nl-card-top,
  .nl-approach,
  .nlm-example-card-featured,
  .nlm-connected-panel,
  .nlm-included-panel,
  .nlm-price-card-featured,
  .nlm-tier-card-featured,
  .nlm-price-option-featured,
  .nlp-route-panel,
  .nlnafi-facts,
  .nlnafi-delivered-strip,
  .nloes-facts,
  .nloes-checker-journey,
  .nlpil-facts,
  .nlsep-facts,
  .nlcs-facts,
  .nlpf-panel,
  .nlpt-summary,
  .nlwd-hero-panel,
  .nlwh-hero-panel,
  .nlwi-hero-panel,
  .nlwr-hero-panel,
  .nlws-route-panel,
  .nlc-call,
  .nlc-cta,
  .nl-deeper,
  .nlp-bespoke,
  .nlnafi-learning,
  .nloes-results,
  .nlcs-results,
  .nlpf-cta,
  .nlpt-contents,
  .nlq-process-section,
  .nlg-proof-strip,
  .nlwd-navy,
  .nlwh-navy,
  .nlwi-navy,
  .nlwr-navy,
  .nlws-foundation
) :is(a[class*="btn"], a[class*="button"], button[class*="btn"], button[class*="button"]) span {
  color: inherit !important;
}

body:not(.page-home) #main-content :where(.nlg-table, .nlpt-table) th {
  color: var(--nl-theme-ink) !important;
  border-color: var(--nl-theme-line) !important;
  background: #eee5f6 !important;
}

/* Shared homepage-inspired buttons: tactile, polished and clearly prioritised. */
body:not(.page-home) #main-content :is(
  a[class*="-btn"],
  button[class*="-btn"],
  a[class*="-button"],
  button[class*="-button"],
  .nl-service-cta > a,
  form button[type="submit"]
) {
  min-height: 48px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 12px !important;
  padding: 12px 20px !important;
  color: #694490 !important;
  border: 1px solid rgba(255, 255, 255, .92) !important;
  border-radius: 11px !important;
  background: #f5f3f8 !important;
  box-shadow: 5px 5px 12px #dcd6e5, -5px -5px 12px rgba(255, 255, 255, .96) !important;
  font-size: .875rem !important;
  font-weight: 600 !important;
  line-height: 1.45 !important;
  text-decoration: none !important;
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease !important;
}

body:not(.page-home) #main-content :is(
  a[class*="-btn"],
  button[class*="-btn"],
  a[class*="-button"],
  button[class*="-button"],
  .nl-service-cta > a,
  form button[type="submit"]
):hover {
  transform: translateY(-2px) !important;
  background: #eee5f6 !important;
  box-shadow: 0 9px 22px rgba(117, 80, 148, .18) !important;
}

body:not(.page-home) #main-content :is(
  a[class*="primary"],
  button[class*="primary"],
  form button[type="submit"]
) {
  color: #fff !important;
  border-color: #8b68ac !important;
  background: linear-gradient(135deg, #9b7bc2, #8563ae) !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .28), 0 7px 16px rgba(86, 58, 111, .16) !important;
}

body:not(.page-home) #main-content :is(
  a[class*="primary"],
  button[class*="primary"],
  form button[type="submit"]
):hover {
  color: #fff !important;
  background: linear-gradient(135deg, #8c6bb4, #77569f) !important;
}

/* Closing and contact sections stay obvious but light. */
body:not(.page-home) #main-content :is(
  [class$="-cta"],
  [class*="closing"],
  [class*="-call"]
) {
  color: var(--nl-theme-ink) !important;
  border-color: var(--nl-theme-line) !important;
  background-color: var(--nl-theme-lavender-soft) !important;
  background-image: radial-gradient(ellipse at 50% 0, rgba(255, 255, 255, .82), transparent 58%) !important;
}

body:not(.page-home) #main-content :is(
  [class$="-cta"],
  [class*="closing"],
  [class*="-call"]
) :where(h2, h3, strong) {
  color: var(--nl-theme-ink) !important;
}

/* Article pages remain calm and readable, with their support modules softened. */
body:not(.page-home) #main-content :is(.nlg-page, .nl-article) :is(.nlg-case-study, .nlg-related, .nlg-cta, .nl-case-study, .nl-faq, .nl-closing-cta, .nl-sources, .nl-sidebar-box) {
  color: var(--nl-theme-ink) !important;
  border-color: var(--nl-theme-line) !important;
  background-color: var(--nl-theme-lavender-soft) !important;
  background-image: none !important;
}

body:not(.page-home) #main-content :is(.nlg-page, .nl-article) :is(.nlg-case-study, .nlg-related, .nlg-cta, .nl-case-study, .nl-faq, .nl-closing-cta, .nl-sources, .nl-sidebar-box) :where(h2, h3, strong) {
  color: var(--nl-theme-ink) !important;
}

/* Forms and interactive tools use the same clean surface and focus colour. */
body:not(.page-home) #main-content :where(input, select, textarea) {
  color: var(--nl-theme-ink) !important;
  border: 1px solid #d8cce2 !important;
  border-radius: 10px !important;
  background: #fff !important;
  box-shadow: inset 0 1px 2px rgba(73, 50, 86, .04) !important;
}

body:not(.page-home) #main-content :where(input, select, textarea):focus {
  border-color: #9270b8 !important;
  outline: 3px solid rgba(167, 139, 250, .24) !important;
  outline-offset: 1px;
}

body:not(.page-home) #main-content a:not([class*="btn"]):not([class*="button"]):not(.site-logo) {
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

@media (max-width: 1000px) {
  body:not(.page-home) #main-content :is([class*="-container"], [class*="-shell"]) {
    width: calc(100% - 48px) !important;
  }

  body:not(.page-home) #main-content [class*="-hero-grid"] {
    gap: 34px !important;
    padding-top: 44px !important;
    padding-bottom: 52px !important;
  }
}

@media (max-width: 760px) {
  body:not(.page-home) #main-content :is([class*="-container"], [class*="-shell"]) {
    width: calc(100% - 36px) !important;
  }

  body:not(.page-home) #main-content h1 {
    font-size: clamp(2.15rem, 9.2vw, 2.85rem) !important;
  }

  body:not(.page-home) #main-content h2 {
    font-size: clamp(1.62rem, 7vw, 2rem) !important;
  }

  body:not(.page-home) #main-content [class*="-hero-grid"] {
    padding-top: 36px !important;
    padding-bottom: 42px !important;
  }

  body:not(.page-home) #main-content :is(
    a[class*="-btn"],
    button[class*="-btn"],
    a[class*="-button"],
    button[class*="-button"],
    .nl-service-cta > a,
    form button[type="submit"]
  ) {
    max-width: 100%;
    white-space: normal;
  }
}

@media (max-width: 480px) {
  body:not(.page-home) #main-content :is([class*="-container"], [class*="-shell"]) {
    width: calc(100% - 28px) !important;
  }
}

/* Client Foundation: keep the step numerals legible inside lavender circles. */
body:not(.page-home) #main-content .nlq-process article > span {
  color: #fff !important;
  background: #9270b8 !important;
  box-shadow: 0 6px 14px rgba(116, 82, 151, .17) !important;
}

/*
 * Website services family: lighter full-width bands and the clearer tile
 * treatment already established on the interactive client tools.
 */
body:not(.page-home) #main-content :is(
  .nlws-trust-strip,
  .nlwi-subnav,
  .nlwd-subnav,
  .nlwr-subnav,
  .nlwh-subnav
) {
  padding-block: 14px !important;
  color: var(--nl-theme-ink) !important;
  border-top: 1px solid var(--nl-theme-line) !important;
  border-bottom: 1px solid var(--nl-theme-line) !important;
  background: #fff !important;
}

body:not(.page-home) #main-content :is(
  .nlwi-subnav-grid,
  .nlwd-subnav-grid,
  .nlwr-subnav-grid,
  .nlwh-subnav-grid
) {
  gap: 8px !important;
}

body:not(.page-home) #main-content :is(
  .nlwi-subnav,
  .nlwd-subnav,
  .nlwr-subnav,
  .nlwh-subnav
) a {
  padding: 11px 12px !important;
  color: #5f4a70 !important;
  border: 1px solid #ebe2f1 !important;
  border-radius: 11px !important;
  background: #f8f4fb !important;
  box-shadow: 0 3px 9px rgba(73, 50, 86, .04) !important;
}

body:not(.page-home) #main-content :is(
  .nlwi-subnav,
  .nlwd-subnav,
  .nlwr-subnav,
  .nlwh-subnav
) a:hover {
  color: #694490 !important;
  border-color: #d5c0e6 !important;
  background: #f1e9f7 !important;
}

body:not(.page-home) #main-content .nlws-trust-grid {
  gap: 12px !important;
}

body:not(.page-home) #main-content .nlws-trust-grid > div {
  min-height: 78px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 13px 16px !important;
  border: 1px solid #e7dced !important;
  border-radius: 14px !important;
  background: linear-gradient(145deg, #fff, #f8f4fb) !important;
  box-shadow: 0 6px 15px rgba(73, 50, 86, .055) !important;
}

body:not(.page-home) #main-content .nlws-trust-grid > div + div {
  border-left: 1px solid #e7dced !important;
}

body:not(.page-home) #main-content .nlws-trust-grid strong {
  color: #76559b !important;
  font-size: .95rem;
}

body:not(.page-home) #main-content .nlws-trust-grid span {
  margin-top: 3px;
  color: var(--nl-theme-copy) !important;
  font-size: .75rem;
}

/* Remove the last saturated legacy service bands. */
body:not(.page-home) #main-content :is(
  .nlws-foundation,
  .nlws-start,
  .nlwi-navy,
  .nlwd-navy,
  .nlwr-navy,
  .nlwh-navy,
  .nlwi-cta,
  .nlwd-cta,
  .nlwr-cta,
  .nlwh-cta
) {
  color: var(--nl-theme-ink) !important;
  border-top: 1px solid var(--nl-theme-line) !important;
  border-bottom: 1px solid var(--nl-theme-line) !important;
  background-color: var(--nl-theme-lavender-soft) !important;
  background-image: radial-gradient(ellipse at 8% 0, rgba(255, 255, 255, .9), transparent 38%) !important;
}

body:not(.page-home) #main-content :is(
  .nlws-foundation,
  .nlws-start,
  .nlwi-navy,
  .nlwd-navy,
  .nlwr-navy,
  .nlwh-navy,
  .nlwi-cta,
  .nlwd-cta,
  .nlwr-cta,
  .nlwh-cta
) :where(h2, h3, h4, strong) {
  color: var(--nl-theme-ink) !important;
}

body:not(.page-home) #main-content :is(
  .nlws-foundation,
  .nlws-start,
  .nlwi-navy,
  .nlwd-navy,
  .nlwr-navy,
  .nlwh-navy,
  .nlwi-cta,
  .nlwd-cta,
  .nlwr-cta,
  .nlwh-cta
) :where(p, li) {
  color: var(--nl-theme-copy) !important;
}

/* Prominent cards and linked tiles receive one lavender keyline and lift. */
body:not(.page-home) #main-content :is(
  .nlws-service-row,
  .nlws-choice-grid article,
  .nlws-package-grid article,
  .nlws-proof-grid a,
  .nlws-guidance-grid a,
  .nlws-foundation-links a,
  .nlwi-panel-list div,
  .nlwd-panel-list div,
  .nlwr-panel-list div,
  .nlwh-panel-list div,
  .nlwi-question-grid div,
  .nlwd-question-grid div,
  .nlwr-question-grid div,
  .nlwi-foundation-grid article,
  .nlwd-foundation-grid article,
  .nlwr-foundation-grid article,
  .nlwh-foundation-grid article,
  .nlwi-improvement-grid article,
  .nlwd-improvement-grid article,
  .nlwr-improvement-grid article,
  .nlwh-improvement-grid article,
  .nlwd-split-grid article,
  .nlwr-split-grid article,
  .nlwh-split-grid article,
  .nlwr-three-grid article,
  .nlwi-package-grid article,
  .nlwd-package-grid article,
  .nlwr-package-grid article,
  .nlwh-package-grid article,
  .nlwi-proof-grid a,
  .nlwd-proof-grid a,
  .nlwr-proof-grid a,
  .nlwh-proof-grid a,
  .nlwi-related-grid a,
  .nlwd-related-grid a,
  .nlwr-related-grid a,
  .nlwh-related-grid a,
  .nlwi-dark-links a,
  .nlwd-dark-links a,
  .nlwh-dark-links a
) {
  color: var(--nl-theme-ink) !important;
  border: 1px solid #e7dced !important;
  border-radius: 17px !important;
  background: linear-gradient(145deg, #fff, #faf7fd) !important;
  box-shadow: inset 0 3px 0 #d5c0e6, 0 8px 22px rgba(73, 50, 86, .065) !important;
}

body:not(.page-home) #main-content :is(
  .nlws-route-list a,
  .nlwi-list li,
  .nlwd-list li,
  .nlwr-list li,
  .nlwh-list li
) {
  color: var(--nl-theme-copy) !important;
  border: 1px solid #e9e0f0 !important;
  border-radius: 13px !important;
  background: rgba(255, 255, 255, .9) !important;
  box-shadow: 0 4px 12px rgba(73, 50, 86, .04) !important;
}

body:not(.page-home) #main-content :is(
  .nlws-service-number,
  .nlws-route-list > a > span
) {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  color: #fff !important;
  border-radius: 50% !important;
  background: #9270b8 !important;
  box-shadow: 0 6px 14px rgba(116, 82, 151, .17) !important;
}

body:not(.page-home) #main-content .nlws-route-list > a > span {
  width: 34px;
  height: 34px;
  margin-top: -1px;
}

body:not(.page-home) #main-content :is(
  .nlwi-panel-list,
  .nlwd-panel-list,
  .nlwr-panel-list,
  .nlwh-panel-list
) span {
  color: #8664aa !important;
}

body:not(.page-home) #main-content :is(
  .nlwi-panel-list,
  .nlwd-panel-list,
  .nlwr-panel-list,
  .nlwh-panel-list
) strong {
  color: var(--nl-theme-ink) !important;
}

@media (max-width: 760px) {
  body:not(.page-home) #main-content .nlws-trust-grid {
    gap: 9px !important;
  }

  body:not(.page-home) #main-content .nlws-trust-grid > div {
    min-height: 72px;
    padding-inline: 10px !important;
  }

  body:not(.page-home) #main-content :is(
    .nlwi-subnav-grid,
    .nlwd-subnav-grid,
    .nlwr-subnav-grid,
    .nlwh-subnav-grid
  ) {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 430px) {
  body:not(.page-home) #main-content :is(
    .nlwi-subnav-grid,
    .nlwd-subnav-grid,
    .nlwr-subnav-grid,
    .nlwh-subnav-grid
  ) {
    grid-template-columns: 1fr !important;
  }
}

/* Insights articles: use the hub's purple button treatment for clear actions.
   Breadcrumbs, citations, paragraph links and in-page navigation stay as text links. */
body[class*="page-insights--"] #main-content :is(
  .nlg-btn,
  .nlg-cost > a,
  .nlg-path article > a,
  .nlg-case-study > a,
  .nlg-case > a,
  .nlg-related-grid article > a,
  .nlg-related-insight > a,
  .nl-related-insight > a,
  .nl-service-cta > a,
  .nlg-sidebar-box:not(nav) > a,
  .nl-sidebar-box:not(nav) > a
) {
  width: fit-content !important;
  min-height: 48px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 12px !important;
  margin-top: 12px;
  padding: 12px 18px !important;
  color: #fff !important;
  border: 1px solid #7850ae !important;
  border-radius: 8px !important;
  background: #7850ae !important;
  box-shadow: 0 7px 16px rgba(86, 58, 111, .14) !important;
  font-size: .875rem !important;
  font-weight: 800 !important;
  line-height: 1.4 !important;
  text-align: center;
  text-decoration: none !important;
  transition: transform .18s ease, background .18s ease, box-shadow .18s ease !important;
}

body[class*="page-insights--"] #main-content :is(
  .nlg-btn,
  .nlg-cost > a,
  .nlg-path article > a,
  .nlg-case-study > a,
  .nlg-case > a,
  .nlg-related-grid article > a,
  .nlg-related-insight > a,
  .nl-related-insight > a,
  .nl-service-cta > a,
  .nlg-sidebar-box:not(nav) > a,
  .nl-sidebar-box:not(nav) > a
):hover {
  color: #fff !important;
  background: #65418f !important;
  box-shadow: 0 9px 22px rgba(86, 58, 111, .2) !important;
  transform: translateY(-2px) !important;
}

body[class*="page-insights--"] #main-content :is(
  .nlg-sidebar-box:not(nav),
  .nl-sidebar-box:not(nav)
) > a {
  width: 100% !important;
  margin-bottom: 10px;
}

@media (max-width: 560px) {
  body[class*="page-insights--"] #main-content :is(
    .nlg-btn,
    .nlg-cost > a,
    .nlg-path article > a,
    .nlg-case-study > a,
    .nlg-case > a,
    .nlg-related-grid article > a,
    .nlg-related-insight > a,
    .nl-related-insight > a,
    .nl-service-cta > a
  ) {
    width: 100% !important;
    white-space: normal !important;
  }
}

/* Final package-family authority: this sits after the legacy site-wide theme. */
body[class*="page-"] #main-content .pkg-page { background: #fff !important; }
body[class*="page-"] #main-content .pkg-page .pkg-section {
  padding: clamp(52px, 6vw, 76px) 0 !important;
  border-top: 1px solid var(--pkg-line) !important;
  background-color: #fff !important;
  background-image: none !important;
}
body[class*="page-"] #main-content .pkg-page .pkg-section.pkg-soft,
body[class*="page-"] #main-content .pkg-page .pkg-hero {
  background-color: var(--pkg-soft) !important;
  background-image: radial-gradient(circle at 8% 0, rgba(255,255,255,.9), transparent 28%), radial-gradient(circle at 96% 8%, rgba(220,207,236,.48), transparent 31%) !important;
}
body[class*="page-"] #main-content .pkg-page .pkg-card {
  border: 1px solid var(--pkg-line) !important;
  border-radius: 15px !important;
  background: rgba(255,255,255,.94) !important;
  box-shadow: var(--pkg-shadow) !important;
}
body[class*="page-"] #main-content .pkg-page .pkg-button-primary {
  border-color: #7650e8 !important;
  background: linear-gradient(135deg,#7c55eb,#6540df) !important;
  color: #fff !important;
}
body[class*="page-"] #main-content .pkg-page .pkg-button-secondary {
  border-color: #7650e8 !important;
  background: rgba(255,255,255,.86) !important;
  color: #5f39dc !important;
}
body[class*="page-"] #main-content .pkg-page .pkg-icon,
body[class*="page-"] #main-content .pkg-page .pkg-number {
  color: #7650e8 !important;
  background: #f1eafb !important;
  border-color: #dfd1ed !important;
}
body[class*="page-"] #main-content .pkg-page .pkg-number {
  color: #fff !important;
  background: linear-gradient(145deg,#8965ef,#663ee0) !important;
}
body[class*="page-"] #main-content .pkg-page .pkg-card-pad > .pkg-number,
body[class*="page-"] #main-content .pkg-page .pkg-panel > .pkg-number { margin-bottom: 15px; }
body[class*="page-"] #main-content .pkg-page .pkg-band {
  border: 1px solid var(--pkg-line) !important;
  background: #f1eafa !important;
  color: #6944d9 !important;
}
body[class*="page-"] #main-content .pkg-page .pkg-package-row { padding: 22px !important; }
body[class*="page-"] #main-content .pkg-page .pkg-final { background: #fff !important; }
body[class*="page-"] #main-content .pkg-page .pkg-final-panel {
  background: radial-gradient(circle at 96% 25%,rgba(202,180,225,.48),transparent 30%), linear-gradient(135deg,#f4eefb,#faf8fd) !important;
}

@media (max-width: 780px) {
  body[class*="page-"] #main-content .pkg-page .pkg-section { padding: 50px 0 !important; }
}

/* Website Services: preserve the hero artwork ratio at every viewport. */
body.page-website-services #main-content .nlws-hero-art img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  max-height: none !important;
  aspect-ratio: auto !important;
  object-fit: contain !important;
}

/* Website Services: use the same purple link-button language as Insights. */
body[class^="page-website-"] #main-content :is(
  .nlws-text-link,
  .nlws-choice-grid article > a,
  .nlwd-dark-link,
  .nlwh-text-link
)[href^="/website-services/"] {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 12px !important;
  width: fit-content !important;
  min-height: 48px !important;
  margin-top: 10px !important;
  padding: 12px 18px !important;
  border: 0 !important;
  border-radius: 8px !important;
  background: #7850ae !important;
  color: #fff !important;
  font-size: 14px !important;
  font-weight: 800 !important;
  line-height: 1.45 !important;
  text-decoration: none !important;
  transition: background 180ms ease, transform 180ms ease !important;
}

body[class^="page-website-"] #main-content :is(
  .nlws-text-link,
  .nlws-choice-grid article > a,
  .nlwd-dark-link,
  .nlwh-text-link
)[href^="/website-services/"]:hover {
  background: #0f172a !important;
  transform: translateY(-2px) !important;
}

/* Linked information cards keep their card layout, with a consistent button CTA. */
body[class^="page-website-"] #main-content :is(
  .nlwi-dark-links,
  .nlwd-dark-links,
  .nlwh-dark-links,
  .nlwr-related-grid,
  .nlwi-related-grid,
  .nlwd-related-grid,
  .nlwh-related-grid
) a[href^="/website-services/"] > span:last-child {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: fit-content !important;
  min-height: 44px !important;
  margin-top: 14px !important;
  padding: 10px 16px !important;
  border-radius: 8px !important;
  background: #7850ae !important;
  color: #fff !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  line-height: 1.4 !important;
}

body[class^="page-website-"] #main-content :is(
  .nlwi-dark-links,
  .nlwd-dark-links,
  .nlwh-dark-links,
  .nlwr-related-grid,
  .nlwi-related-grid,
  .nlwd-related-grid,
  .nlwh-related-grid
) a[href^="/website-services/"]:hover > span:last-child {
  background: #0f172a !important;
  transform: translateY(-2px) !important;
}

@media (max-width: 560px) {
  body[class^="page-website-"] #main-content :is(
    .nlws-text-link,
    .nlws-choice-grid article > a,
    .nlwd-dark-link,
    .nlwh-text-link
  )[href^="/website-services/"] {
    width: 100% !important;
    white-space: normal !important;
  }
}
