/* nsi-2026. Generated by tools/build_css.py from assets/css/src. Edit the sources, not this file. */
/* ===== 00-base.css ===== */
/* Tokens and base, from the chosen design (07-design-concepts-v4/final/style.css lines 1 to 116).
   Values unchanged. Every class of the design is kept with the nsi- prefix. */
:root {
  --navy: #0C1D3D;
  --navy-2: #13284f;
  --orange: #E87A00;
  --orange-dk: #D67306;
  --tint: #F2F5F7;
  --tint-2: #F4F4F4;
  --ink: #121212;
  --grey: #6B6B6B;
  --white: #ffffff;
  --body: #3b3f45;
  --line: #D8DEE4;
  --line-dk: rgba(255, 255, 255, 0.16);
  --wa: #25D366;

  --font: 'Montserrat', system-ui, sans-serif;
  --r: 4px;
  --wrap: 1240px;
  --gut: 24px;
  --focus: 0 0 0 3px var(--white), 0 0 0 5px var(--orange);
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { transition: none !important; } }

body {
  margin: 0;
  font-family: var(--font);
  font-size: 16px;
  line-height: 1.65;
  color: var(--ink);
  background: var(--white);
  overflow-x: hidden;
}
img { display: block; max-width: 100%; height: auto; }
a { color: var(--navy); text-underline-offset: 3px; }
a:focus-visible, button:focus-visible, summary:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, [tabindex]:focus-visible {
  outline: none;
  box-shadow: var(--focus);
  border-radius: 2px;
}
h1, h2, h3 { margin: 0; color: var(--navy); line-height: 1.2; font-weight: 700; }
h4 { margin: 0; color: var(--navy); font-weight: 700; }
p { margin: 0; }
ul, ol, dl, dd { margin: 0; padding: 0; }
figure { margin: 0; }

.nsi-wrap { width: 100%; max-width: var(--wrap); margin: 0 auto; padding: 0 var(--gut); }
.nsi-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.nsi-ico { width: 18px; height: 18px; fill: currentColor; flex: none; }

/* ---------- WordPress defaults the design does not have ---------- */
.wp-site-blocks, .wp-site-blocks > *, .nsi-main, .wp-block-post-content { margin: 0; padding: 0; }
.wp-block-post-content > *, .nsi-main > *, :where(.nsi-main, .wp-block-post-content) .wp-block-group > * { margin-block: 0; }
.wp-block-group { box-sizing: border-box; }
.wp-block-image { margin: 0; }
.wp-block-image img { box-sizing: border-box; vertical-align: bottom; }
.wp-block-image :where(figcaption) { margin: 0; }
.wp-block-list { list-style: none; margin: 0; padding: 0; }
ol.wp-block-list, ul.wp-block-list { padding-left: 0; }
.wp-block-buttons { margin: 0; }
.wp-block-buttons > .wp-block-button { margin: 0; }
.wp-block-table { margin: 0; }
.wp-block-details { margin: 0; }
.wp-block-details summary { margin: 0; }
.wp-block-template-part:has(> .nsi-hdr), .wp-block-template-part:has(> .nsi-ftr) { display: contents; }
.skip-link.screen-reader-text:focus { background: var(--white); color: var(--navy); font: 600 15px var(--font); padding: 8px 14px; box-shadow: var(--focus); }
mark.nsi-mark { color: inherit; }

/* ---------- Kicker: small label with a counter bell mark ---------- */
.nsi-kicker {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--navy);
  margin-bottom: 14px;
}
.nsi-kicker::before {
  content: "";
  width: 10px;
  height: 10px;
  background: var(--orange);
  border-radius: 50% 50% 0 0;
}
.nsi-kicker--light { color: var(--white); }

/* ---------- Buttons: square shouldered, 4px corners. The design's a.btn is core/button with a
   block style (is-style-nsi-*), or a plain link with .nsi-btn in the plugin's markup. ---------- */
.nsi-btn,
.wp-block-button .wp-block-button__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 44px;
  padding: 10px 18px;
  border: 2px solid transparent;
  border-radius: var(--r);
  font: 600 15px/1.2 var(--font);
  text-decoration: none;
  text-align: center;
  cursor: pointer;
  box-shadow: none;
  word-break: normal;
  transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}
.wp-block-button.nsi-btn-lg .wp-block-button__link { min-height: 52px; padding: 14px 22px; font-size: 16px; }
.nsi-btn--block, .wp-block-button.nsi-btn-block, .wp-block-button.nsi-btn-block .wp-block-button__link { width: 100%; }
.nsi-btn--orange, .wp-block-button.is-style-nsi-orange .wp-block-button__link { background: var(--orange); color: var(--navy); }
.nsi-btn--orange:hover, .wp-block-button.is-style-nsi-orange .wp-block-button__link:hover { background: var(--orange-dk); color: var(--navy); }
.nsi-btn--navy, .wp-block-button.is-style-nsi-navy .wp-block-button__link { background: var(--navy); color: var(--white); }
.nsi-btn--navy:hover, .wp-block-button.is-style-nsi-navy .wp-block-button__link:hover { background: var(--navy-2); color: var(--white); }
.nsi-btn--navy-line, .wp-block-button.is-style-nsi-navy-line .wp-block-button__link { background: transparent; color: var(--navy); border-color: var(--navy); }
.nsi-btn--navy-line:hover, .wp-block-button.is-style-nsi-navy-line .wp-block-button__link:hover { background: var(--navy); color: var(--white); }
.nsi-btn--line-light, .wp-block-button.is-style-nsi-line-light .wp-block-button__link { background: transparent; color: var(--white); border-color: rgba(255,255,255,.55); }
.nsi-btn--line-light:hover, .wp-block-button.is-style-nsi-line-light .wp-block-button__link:hover { background: var(--white); color: var(--navy); border-color: var(--white); }
.nsi-btn--wa { background: var(--wa); color: var(--navy); }
.nsi-btn--wa:hover { background: #1fbd5a; color: var(--navy); }

/* Button rows: the design's flex rows of a.btn. core/buttons adds its own flex layout; these
   rules restate the design's. */
.wp-block-buttons.nsi-hero__cta, .wp-block-buttons.nsi-ofc-btns, .wp-block-buttons.nsi-bb-btns, .wp-block-buttons.nsi-row-btns { display: flex; flex-wrap: wrap; }
.wp-block-buttons.nsi-hero__cta { gap: 12px; margin-top: 32px; }
.wp-block-buttons.nsi-ofc-btns { gap: 10px; }
.wp-block-buttons.nsi-bb-btns { gap: 12px; margin-top: 28px; }
.wp-block-buttons.nsi-row-btns { gap: 12px; margin-top: 24px; }
.wp-block-buttons.nsi-areas__btns, .wp-block-buttons.nsi-fees__btns { display: block; flex: none; }

/* The design's a.arrow-link: on a plain link in the plugin's markup, and on the link inside a
   paragraph with the class in block content (the paragraph is a flex box, so its height is the
   link's). */
a.nsi-arrow-link, .nsi-arrow-link a {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-weight: 600;
  color: var(--navy);
  text-decoration: none;
  border-bottom: 2px solid var(--orange);
  padding-bottom: 2px;
}
p.nsi-arrow-link { display: flex; }
a.nsi-arrow-link::after, .nsi-arrow-link a::after { content: "\2192"; transition: transform .15s ease; }
a.nsi-arrow-link:hover::after, .nsi-arrow-link a:hover::after { transform: translateX(3px); }

/* The design's section head, shared by every page */
.nsi-sect { padding: 64px 0; }
.nsi-head {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 8px 64px;
  align-items: end; padding-top: 28px; margin-bottom: 48px;
  border-top: 4px solid var(--navy);
}
.nsi-head .nsi-kicker { grid-column: 1 / -1; margin-bottom: 0; }
.nsi-head h2 { font-size: clamp(28px, 3vw, 40px); letter-spacing: -0.01em; }
.nsi-head__lede { color: var(--grey); font-size: 17px; }
.nsi-head--row { grid-template-columns: minmax(0, 1fr) auto; }
.nsi-head--row > div .nsi-kicker { margin-bottom: 8px; }
@media (max-width: 1024px) { .nsi-head { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 700px) {
  :root { --gut: 16px; }
  .nsi-sect { padding: 48px 0; }
  .nsi-head--row { grid-template-columns: minmax(0, 1fr); }
}

/* ===== 20-header.css ===== */
/* Header, from the chosen design (style.css "Header" and its 1080px block). Values unchanged.
   The design's nav list is the tree menu's top list (.nsi-mm-top); the Services mega panel and
   the phone accordion are additions in the design's colours and shapes. */
.nsi-hdr { background: var(--navy); color: var(--white); position: relative; z-index: 20; }
.nsi-hdr__in { display: flex; align-items: center; gap: 28px; min-height: 84px; }
.nsi-hdr__logo img { width: 164px; }
.nsi-hdr__logo a { display: block; }
.nsi-hdr__nav { display: flex; align-items: center; gap: 28px; margin-left: auto; }
.nsi-mm-top { list-style: none; display: flex; gap: 26px; margin: 0; padding: 0; }
.nsi-mm-top > li { display: flex; align-items: center; }
.nsi-mm-top-a { color: var(--white); text-decoration: none; font-weight: 500; font-size: 15px; padding: 6px 0; border-bottom: 2px solid transparent; }
.nsi-mm-top-a:hover { border-bottom-color: var(--orange); color: var(--white); }
.nsi-hdr__cta { display: flex; gap: 10px; }
.nsi-hdr__toggle { display: none; }
.nsi-hdr__toggle-txt { line-height: 1; }
.nsi-hdr ul, .nsi-hdr li { list-style: none; margin: 0; padding: 0; }

/* The caret that opens Services, a cluster or (on phones) a list */
.nsi-mm-caret {
  display: inline-grid; place-items: center; width: 22px; height: 22px; margin-left: 2px; padding: 0;
  background: transparent; border: 0; color: inherit; cursor: pointer;
}
.nsi-mm-caret::before { content: ""; width: 7px; height: 7px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: translateY(-2px) rotate(45deg); transition: transform .15s ease; }
.nsi-mm-caret[aria-expanded="true"]::before { transform: translateY(2px) rotate(-135deg); }

/* ---------- Mega panel, desktop ---------- */
.nsi-mm-mega { display: none; }
.nsi-mm-hubhead, .nsi-mm-row { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin: 0; }
@media (min-width: 1081px) {
  .nsi-mm-mega {
    position: absolute; left: 0; right: 0; top: 100%; background: var(--white); color: var(--ink);
    border-top: 3px solid var(--orange); box-shadow: 0 30px 60px -30px rgba(12, 29, 61, .55); padding: 32px 0 28px;
  }
  .nsi-mm-has:hover > .nsi-mm-mega, .nsi-mm-has:focus-within > .nsi-mm-mega, .nsi-mm-has.nsi-open > .nsi-mm-mega { display: block; }
  .nsi-mm-has.nsi-shut > .nsi-mm-mega { display: none; }
  .nsi-mm-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px; }
  .nsi-mm-hub { border-top: 4px solid var(--navy); padding-top: 14px; }
  .nsi-mm-hubhead .nsi-mm-caret, .nsi-mm-row .nsi-mm-caret { display: none; }
  .nsi-mm-a1 { font-weight: 700; font-size: 17px; color: var(--navy); text-decoration: none; line-height: 1.3; }
  .nsi-mm-a1:hover { text-decoration: underline; text-decoration-color: var(--orange); text-underline-offset: 4px; }
  .nsi-mm-l2 { margin-top: 10px; }
  .nsi-mm-l2 > li { border-bottom: 1px solid var(--line); }
  .nsi-mm-a2 { display: block; padding: 7px 0; font-weight: 600; font-size: 14.5px; line-height: 1.35; color: var(--navy); text-decoration: none; }
  .nsi-mm-a2:hover { text-decoration: underline; text-decoration-color: var(--orange); text-underline-offset: 4px; }
  .nsi-mm-l3 { margin: 0 0 8px; padding-left: 12px; border-left: 3px solid var(--orange); }
  .nsi-mm-a3 { display: block; padding: 2px 0; font-weight: 500; font-size: 14px; color: var(--body); text-decoration: none; line-height: 1.45; }
  .nsi-mm-a3:hover { color: var(--navy); text-decoration: underline; text-decoration-color: var(--orange); }
  .nsi-mm-foot { margin-top: 24px; padding: 16px 20px; background: var(--tint); border-radius: var(--r); }
  .nsi-mm-foot-a { font-weight: 600; font-size: 15px; color: var(--navy); text-decoration-color: var(--orange); text-decoration-thickness: 2px; }
}

/* ---------- Up to 1080px: the design's menu panel, with the tree as an accordion ---------- */
@media (max-width: 1080px) {
  .nsi-hdr__in { min-height: 72px; }
  .nsi-hdr__logo img { width: 140px; }
  .nsi-hdr__toggle {
    display: inline-flex; align-items: center; gap: 10px;
    margin-left: auto; min-height: 44px; padding: 8px 14px;
    background: transparent; color: var(--white);
    border: 2px solid rgba(255,255,255,.55); border-radius: var(--r);
    font: 600 15px var(--font); cursor: pointer;
  }
  .nsi-hdr__bars, .nsi-hdr__bars::before, .nsi-hdr__bars::after { display: block; width: 18px; height: 2px; background: currentColor; position: relative; }
  .nsi-hdr__bars::before, .nsi-hdr__bars::after { content: ""; position: absolute; left: 0; }
  .nsi-hdr__bars::before { top: -6px; }
  .nsi-hdr__bars::after { top: 6px; }
  .nsi-hdr__nav {
    display: none;
    position: absolute; left: 0; right: 0; top: 100%;
    flex-direction: column; align-items: stretch; gap: 18px;
    background: var(--navy); padding: 8px var(--gut) 24px;
    border-top: 1px solid var(--line-dk);
    max-height: calc(100vh - 72px); overflow-y: auto;
  }
  .nsi-hdr__nav.is-open { display: flex; }
  .nsi-mm-top { flex-direction: column; gap: 0; }
  .nsi-mm-top > li { display: block; position: relative; }
  .nsi-mm-top-a { display: block; padding: 12px 0; border-bottom: 1px solid var(--line-dk); }
  .nsi-mm-top-a:hover { border-bottom-color: var(--line-dk); text-decoration: underline; text-decoration-color: var(--orange); text-underline-offset: 5px; }
  .nsi-mm-has > .nsi-mm-caret { position: absolute; right: 0; top: 0; width: 48px; height: 48px; }
  .nsi-mm-has.nsi-open > .nsi-mm-mega { display: block; padding: 4px 0 8px 14px; border-bottom: 1px solid var(--line-dk); }
  .nsi-mm-mega .nsi-wrap { padding: 0; }
  .nsi-mm-hub + .nsi-mm-hub { border-top: 1px solid var(--line-dk); }
  .nsi-mm-hubhead .nsi-mm-caret, .nsi-mm-row .nsi-mm-caret { width: 44px; height: 44px; flex: none; }
  .nsi-mm-a1 { display: block; flex: 1; padding: 10px 0; font-weight: 600; font-size: 15px; color: var(--white); text-decoration: none; }
  .nsi-mm-l2 { display: none; padding: 0 0 10px 14px; }
  .nsi-mm-hub.nsi-open > .nsi-mm-l2 { display: block; }
  .nsi-mm-a2 { display: block; flex: 1; padding: 8px 0; font-weight: 500; font-size: 15px; color: rgba(255,255,255,.9); text-decoration: none; }
  .nsi-mm-l3 { display: none; margin: 0 0 6px; padding-left: 12px; border-left: 3px solid var(--orange); }
  .nsi-mm-has3.nsi-open > .nsi-mm-l3 { display: block; }
  .nsi-mm-a3 { display: block; padding: 6px 0; font-size: 14.5px; color: rgba(255,255,255,.82); text-decoration: none; }
  .nsi-mm-foot { padding: 8px 0 0; }
  .nsi-mm-foot-a { display: block; padding: 8px 0; font-weight: 600; font-size: 15px; color: var(--white); text-decoration-color: var(--orange); }
  .nsi-hdr__cta .nsi-btn { flex: 1; }
}
/* Below 340px the logo shrinks to the room the menu button leaves, so the header never overflows. */
@media (max-width: 339px) {
  .nsi-hdr__in { gap: 16px; }
  .nsi-hdr__logo { min-width: 0; flex: 1 1 auto; }
  .nsi-hdr__logo img { width: 100%; max-width: 140px; }
  .nsi-hdr__toggle { flex: none; }
}

/* ===== 30-home.css ===== */
/* Home sections, from the chosen design (style.css "Hero" to "FAQ", the borrowed sections and
   the responsive blocks). Values unchanged. Selector changes where a block's markup differs from
   the design's are noted beside the rule. */

/* ---------- Hero ---------- */
.nsi-hero { background: var(--tint); padding: 72px 0 88px; }
.nsi-hero__in { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 64px; align-items: start; }
.nsi-hero__h1 { font-size: clamp(36px, 4.6vw, 64px); line-height: 1.08; letter-spacing: -0.02em; }
.nsi-mark { background: linear-gradient(transparent 70%, rgba(232, 122, 0, .55) 70%); padding: 0 2px; }
.nsi-hero__copy { min-width: 0; }
.nsi-hero__lede { margin-top: 24px; font-size: 18px; color: var(--body); }

.nsi-prep { list-style: none; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: 44px; border-top: 2px solid var(--navy); }
.nsi-prep li { padding: 14px 14px 0 0; display: flex; flex-direction: column; gap: 2px; }
.nsi-prep li + li { padding-left: 14px; border-left: 1px solid var(--line); }
.nsi-prep__verb { font-weight: 700; color: var(--navy); font-size: 15px; }
.nsi-prep__obj { font-size: 13px; color: var(--grey); line-height: 1.45; }

/* ---------- Counter card (nsi/counter-card) ---------- */
.nsi-counter { position: relative; }
.nsi-counter__card {
  position: relative;
  background: var(--navy);
  color: var(--white);
  border-radius: 6px 6px 0 0;
  box-shadow: 0 30px 60px -30px rgba(12, 29, 61, .55);
}
.nsi-counter__top { padding: 26px 28px 18px; display: flex; flex-direction: column; gap: 4px; }
.nsi-counter__label { font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--orange); }
.nsi-counter__title { color: var(--white); font-size: 24px; }
.nsi-counter__tabs {
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
  border-top: 1px solid var(--line-dk); border-bottom: 1px solid var(--line-dk);
}
.nsi-counter__tabs.is-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.nsi-counter__tabs.is-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.nsi-counter__tabs button {
  background: transparent; color: rgba(255,255,255,.82);
  border: 0; border-right: 1px solid var(--line-dk);
  padding: 14px 10px; min-height: 56px;
  font: 600 13px/1.3 var(--font); text-align: left; cursor: pointer;
  position: relative;
}
.nsi-counter__tabs button:last-child { border-right: 0; }
.nsi-counter__tabs button:hover { color: var(--white); background: rgba(255,255,255,.05); }
.nsi-counter__tabs button[aria-selected="true"] { color: var(--white); background: var(--navy-2); }
.nsi-counter__tabs button[aria-selected="true"]::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 3px; background: var(--orange); }
.nsi-counter__tabs button:focus-visible { box-shadow: inset 0 0 0 2px var(--orange); }
.nsi-counter__panel { padding: 22px 28px 8px; min-height: 290px; }
.nsi-counter__panel.is-single { min-height: 0; border-top: 1px solid var(--line-dk); }
.nsi-counter__panel:focus-visible { box-shadow: inset 0 0 0 2px var(--orange); }
.nsi-bring { list-style: none; counter-reset: b; margin: 0; padding: 0; }
.nsi-bring li {
  counter-increment: b;
  position: relative;
  padding: 11px 0 11px 44px;
  border-bottom: 1px solid var(--line-dk);
  font-size: 15px; line-height: 1.5;
}
.nsi-bring li:last-child { border-bottom: 0; }
.nsi-bring li::before {
  content: counter(b, decimal-leading-zero);
  position: absolute; left: 0; top: 11px;
  font-size: 13px; font-weight: 700; color: var(--orange);
  letter-spacing: .04em;
}
.nsi-bring a { color: var(--white); text-decoration-color: var(--orange); }
.nsi-counter__note { margin: 6px 0 14px; padding: 10px 14px; background: rgba(255,255,255,.07); border-radius: var(--r); font-size: 14px; color: var(--white); }
.nsi-counter__foot {
  display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 8px 20px;
  padding: 16px 28px 22px; border-top: 1px dashed rgba(255,255,255,.28);
  font-size: 14px; color: rgba(255,255,255,.85);
}
.nsi-counter__foot a { color: var(--white); font-weight: 600; text-decoration-color: var(--orange); text-decoration-thickness: 2px; }
.nsi-counter__ledge {
  height: 16px; margin: 0 -18px;
  background: var(--navy-2);
  border-top: 3px solid var(--orange);
  border-radius: 0 0 4px 4px;
  box-shadow: 0 12px 24px -12px rgba(12,29,61,.5);
}

/* ---------- Counter windows ---------- */
.nsi-windows { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 48px; }
.nsi-window { display: flex; flex-direction: column; border-bottom: 10px solid var(--navy); }
.nsi-window__sign {
  display: flex; align-items: baseline; justify-content: space-between;
  background: var(--navy); color: var(--white);
  margin: 0 10px; padding: 14px 18px 12px;
  border-radius: 6px 6px 0 0;
}
.nsi-window__no { font-size: 34px; font-weight: 700; color: var(--orange); line-height: 1; letter-spacing: -0.02em; }
.nsi-window__tag { font-size: 12px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: rgba(255,255,255,.8); }
.nsi-window__body {
  flex: 1; display: flex; flex-direction: column; gap: 12px;
  margin: 0 10px; padding: 24px 22px 26px;
  background: var(--tint);
  border-left: 1px solid var(--line); border-right: 1px solid var(--line);
}
.nsi-window__body h3 { font-size: 20px; }
.nsi-window__body h3 a { text-decoration: none; }
.nsi-window__body h3 a:hover { text-decoration: underline; text-decoration-color: var(--orange); }
.nsi-window__body > p { color: var(--body); font-size: 15px; }
.nsi-window__links { list-style: none; margin-top: auto; padding-top: 8px; border-top: 1px solid var(--line); }
.nsi-window__links a { display: flex; justify-content: space-between; gap: 12px; padding: 9px 0; font-weight: 600; font-size: 15px; text-decoration: none; }
.nsi-window__links a::after { content: "\2192"; color: var(--orange-dk); }
.nsi-window__links a:hover { text-decoration: underline; }

.nsi-behind {
  display: flex; flex-wrap: wrap; align-items: center; gap: 16px 28px;
  margin-top: 40px; padding: 20px 24px;
  border: 1px solid var(--line); border-radius: var(--r);
}
.nsi-behind__label { font-weight: 700; color: var(--navy); }
.nsi-behind__list { list-style: none; display: flex; flex-wrap: wrap; gap: 8px 22px; flex: 1; }
.nsi-behind__list li { font-size: 15px; color: var(--body); display: flex; align-items: center; gap: 8px; }
.nsi-behind__list li::before { content: ""; width: 6px; height: 6px; background: var(--orange); border-radius: 50%; }

/* ---------- Areas ---------- */
.nsi-areas { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); gap: 72px; align-items: start; }
.nsi-areas__intro h2 { font-size: clamp(28px, 3vw, 40px); }
.nsi-areas__intro > p { margin-top: 18px; color: var(--body); }
.nsi-areas__photo { margin: 28px 0; }
.nsi-areas__intro > .nsi-areas__photo { margin: 28px 0; }
.nsi-areas__photo img { border-radius: 6px; aspect-ratio: 16 / 10; object-fit: cover; width: 100%; }
.nsi-areas__index { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 40px; border-top: 4px solid var(--navy); padding-top: 28px; }
.nsi-areas__group { min-width: 0; }
.nsi-areas__h { font-size: 13px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; margin-bottom: 6px; }
.nsi-areas__list { list-style: none; }
.nsi-areas__list a {
  display: flex; justify-content: space-between; align-items: center; gap: 12px;
  padding: 13px 0; border-bottom: 1px solid var(--line);
  font-size: 18px; font-weight: 600; text-decoration: none; color: var(--navy);
}
.nsi-areas__list a::after { content: "\2192"; color: var(--orange-dk); transition: transform .15s ease; }
.nsi-areas__list a:hover::after { transform: translateX(4px); }
.nsi-areas__list a:hover { color: var(--ink); }
.nsi-areas__oncall { margin-top: 36px; padding: 20px; background: var(--tint); border-radius: 6px; }
.nsi-areas__oncall p { font-size: 15px; color: var(--body); }
.nsi-areas__oncall a { font-weight: 600; }

/* ---------- Document services ---------- */
.nsi-docs { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: 24px; }
.nsi-docs__photo { margin: 0; }
.nsi-docs__photo img { width: 100%; height: 100%; object-fit: cover; border-radius: 6px; }
.nsi-docs__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.nsi-doc { border: 1px solid var(--line); border-top: 4px solid var(--orange); border-radius: 0 0 6px 6px; padding: 24px 24px 22px; }
.nsi-doc h3 { font-size: 19px; margin-bottom: 14px; }
.nsi-doc h3 a { text-decoration: none; }
.nsi-doc h3 a::after { content: " \2192"; color: var(--orange-dk); }
.nsi-doc h3 a:hover { text-decoration: underline; }
.nsi-doc__dl { display: flex; flex-direction: column; gap: 12px; }
.nsi-doc__dl .nsi-dt { font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: .1em; color: var(--grey); }
.nsi-doc__dl .nsi-dd { font-size: 15px; color: var(--body); }

/* ---------- Lanes ---------- */
.nsi-lanes {
  display: grid;
  grid-template-columns: 150px repeat(7, minmax(0, 1fr));
  grid-template-rows: repeat(3, auto);
  column-gap: 12px; row-gap: 0;
  border-top: 1px solid var(--line);
}
.nsi-lanes__label {
  grid-column: 1 / -1; align-self: stretch; display: flex; flex-direction: column; gap: 6px;
  border-bottom: 1px solid var(--line);
  font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; color: var(--navy);
  padding: 28px 12px 18px 0;
}
.nsi-lanes__label > * { width: 136px; }
.nsi-lanes__name { line-height: 1.65; }
.nsi-lanes__small { display: block; font-size: 13px; font-weight: 500; text-transform: none; letter-spacing: 0; color: var(--grey); line-height: 1.45; }
.nsi-lanes__label--us { grid-row: 1; }
.nsi-lanes__label--you { grid-row: 2; }
.nsi-lanes__label--notary { grid-row: 3; }
.nsi-step {
  margin: 14px 0; padding: 16px 16px 18px;
  border-radius: 6px; display: flex; flex-direction: column; gap: 6px;
  position: relative;
}
.nsi-lanes > .nsi-step { margin: 14px 0; }
.nsi-step h3 { font-size: 15px; line-height: 1.3; }
.nsi-step p { font-size: 13.5px; line-height: 1.5; color: var(--body); }
.nsi-step .nsi-step__n { font-size: 13px; font-weight: 700; color: var(--navy); width: 28px; height: 28px; border-radius: 50%; border: 2px solid var(--orange); display: inline-flex; align-items: center; justify-content: center; line-height: 1.65; }
.nsi-step .nsi-step__who { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; font-size: 12px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--grey); line-height: 1.65; }
.nsi-step--us { background: var(--tint); grid-row: 1; }
.nsi-step--you { background: var(--white); border: 2px solid var(--navy); grid-row: 2; }
.nsi-step--notary { background: var(--navy); grid-row: 3; }
.nsi-step--notary h3, .nsi-step--notary p { color: var(--white); }
.nsi-step--notary .nsi-step__n { color: var(--white); }
.nsi-s1 { grid-column: 2; } .nsi-s2 { grid-column: 3; } .nsi-s3 { grid-column: 4; } .nsi-s4 { grid-column: 5; }
.nsi-s5 { grid-column: 6; } .nsi-s6a, .nsi-s6b { grid-column: 7; } .nsi-s7 { grid-column: 8; }
.nsi-step { z-index: 1; }

.nsi-turned { margin-top: 64px; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2.2fr); gap: 48px; }
.nsi-turned__head h3 { font-size: 24px; }
.nsi-turned__head p { margin-top: 12px; color: var(--grey); }
.nsi-turned__list { list-style: none; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 32px; counter-reset: t; }
.nsi-turned__list li {
  counter-increment: t; position: relative;
  padding: 16px 0 16px 48px; border-top: 1px solid var(--line);
  font-size: 15px; color: var(--body);
}
.nsi-turned__list li::before {
  content: counter(t, decimal-leading-zero);
  position: absolute; left: 0; top: 16px;
  font-weight: 700; color: var(--navy); font-size: 14px;
  border-bottom: 2px solid var(--orange); line-height: 1.3;
}
.nsi-turned__list strong { color: var(--navy); }

/* ---------- Fee board ---------- */
.nsi-fees { border: 2px solid var(--navy); border-radius: 6px; overflow: hidden; }
.nsi-fees__rail {
  display: flex; justify-content: space-between;
  background: var(--navy); color: var(--white);
  padding: 12px 24px; font-size: 12px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase;
}
.nsi-fees__rail span:last-child { color: var(--orange); }
.nsi-fees__board { list-style: none; display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.nsi-fees__board.is-6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.nsi-fees__board.is-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.nsi-fees__board.is-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.nsi-fees__board.is-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.nsi-fees__board.is-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.nsi-fees__board li + li { border-left: 1px solid var(--line); }
.nsi-fees__board a {
  display: flex; flex-direction: column; justify-content: space-between; gap: 18px;
  height: 100%; padding: 22px 18px 20px;
  text-decoration: none; color: var(--navy);
  border-bottom: 4px solid transparent; transition: border-color .15s ease, background-color .15s ease;
}
.nsi-fees__board a:hover { background: var(--tint); border-bottom-color: var(--orange); }
.nsi-fees__item { font-size: 14px; font-weight: 600; line-height: 1.35; }
.nsi-fees__amt { font-size: 28px; font-weight: 700; line-height: 1; letter-spacing: -0.01em; white-space: nowrap; }
.nsi-fees__amt small { display: block; font-size: 12px; font-weight: 500; color: var(--grey); letter-spacing: .04em; margin-bottom: 6px; }
.nsi-fees__foot {
  display: flex; align-items: center; justify-content: space-between; gap: 20px 40px;
  padding: 20px 24px; background: var(--tint); border-top: 1px solid var(--line);
}
.nsi-fees__line { font-size: 15px; color: var(--body); flex: 1; }
.nsi-fees__foot .wp-block-buttons { flex: none; }

/* ---------- FAQ ---------- */
.nsi-faq { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.8fr); gap: 64px; }
.nsi-faq__intro h2 { font-size: clamp(28px, 3vw, 40px); }
.nsi-faq__intro p { margin-top: 16px; color: var(--body); }
.nsi-faq__list { border-top: 4px solid var(--navy); }
.nsi-faq__list details { border-bottom: 1px solid var(--line); }
.nsi-faq__list summary {
  list-style: none; cursor: pointer;
  display: flex; justify-content: space-between; align-items: center; gap: 20px;
  padding: 20px 0; font-weight: 600; font-size: 17px; color: var(--navy);
}
.nsi-faq__list summary::-webkit-details-marker { display: none; }
.nsi-faq__list summary::after {
  content: "+"; flex: none; width: 32px; height: 32px; border-radius: var(--r);
  display: flex; align-items: center; justify-content: center;
  background: var(--tint); color: var(--navy); font-size: 20px; font-weight: 500;
}
.nsi-faq__list details[open] summary::after { content: "\2212"; background: var(--orange); }
.nsi-faq__list details > :not(summary) { padding: 0 48px 0 0; color: var(--body); }
.nsi-faq__list details > :last-child { padding-bottom: 22px; }
.nsi-faq__list details > :not(summary) + :not(summary) { margin-top: 12px; }
.nsi-faq__list details ul { list-style: disc; padding-left: 20px; }
.nsi-faq__list details ol { list-style: decimal; padding-left: 20px; }
.nsi-faq__list details li + li { margin-top: 4px; }

/* ---------- Contact ---------- */
.nsi-contact { background: var(--navy); color: var(--white); padding: 96px 0; }
.nsi-contact__in { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 72px; align-items: start; }
.nsi-contact h2 { color: var(--white); font-size: clamp(28px, 3vw, 40px); }
.nsi-contact__info > p { margin-top: 16px; color: rgba(255,255,255,.85); }
.nsi-contact__info .nsi-contact__body { margin-top: 16px; color: rgba(255,255,255,.85); }
.nsi-contact__info .nsi-contact__body > * + * { margin-top: 12px; }
.nsi-contact__info .nsi-contact__body a { color: var(--white); text-decoration-color: var(--orange); }
.nsi-contact__dl { margin-top: 32px; border-top: 1px solid var(--line-dk); }
.nsi-contact__dl > div { display: grid; grid-template-columns: 170px minmax(0, 1fr); gap: 16px; padding: 14px 0; border-bottom: 1px solid var(--line-dk); }
.nsi-contact__dl .nsi-dt { font-size: 13px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--orange); padding-top: 2px; }
.nsi-contact__dl .nsi-dd { color: var(--white); }
.nsi-contact__dl a { color: var(--white); text-decoration-color: var(--orange); text-decoration-thickness: 2px; }
.nsi-contact__note { margin-top: 20px; font-size: 14px; color: rgba(255,255,255,.75) !important; }
.nsi-form { background: var(--white); color: var(--ink); border-radius: 6px 6px 0 0; padding: 32px; border-bottom: 12px solid var(--navy-2); position: relative; }
.nsi-form::after { content: ""; position: absolute; left: -14px; right: -14px; bottom: -12px; height: 12px; background: var(--navy-2); border-top: 3px solid var(--orange); border-radius: 0 0 4px 4px; }
.nsi-form__title { font-size: 22px; margin-bottom: 20px; }
.nsi-form__row { display: flex; flex-direction: column; gap: 6px; margin-bottom: 16px; }
.nsi-form label { font-size: 14px; font-weight: 600; color: var(--navy); }
.nsi-form input, .nsi-form select, .nsi-form textarea {
  font: 400 16px var(--font); color: var(--ink);
  padding: 12px 14px; min-height: 48px;
  border: 1.5px solid #9aa4b0; border-radius: var(--r); background: var(--white); width: 100%;
  margin: 0;
}
.nsi-form textarea { resize: vertical; }
.nsi-form input:focus-visible, .nsi-form select:focus-visible, .nsi-form textarea:focus-visible { border-color: var(--navy); }
.nsi-form__small { margin-top: 14px; font-size: 13px; color: var(--grey); }

/* ---------- Offices: stack of file dividers (concept 3) ---------- */
.nsi-ofc-stack { list-style: none; display: grid; gap: 10px; }
.nsi-ofc-st { display: flex; flex-direction: column; }
.nsi-ofc-tab {
  align-self: flex-start; margin-left: calc(var(--i, 0) * 12%);
  display: inline-flex; align-items: center; min-height: 40px; padding: 8px 24px 8px 18px;
  background: var(--tint); color: var(--navy); font-size: 16px; font-weight: 700; line-height: 1.3;
  border-radius: 6px 6px 0 0;
}
/* style="--i:n" of the design, as a class per step */
.nsi-ofc-i0 { --i: 0; } .nsi-ofc-i1 { --i: 1; } .nsi-ofc-i2 { --i: 2; } .nsi-ofc-i3 { --i: 3; } .nsi-ofc-i4 { --i: 4; }
.nsi-ofc-i5 { --i: 5; } .nsi-ofc-i6 { --i: 6; } .nsi-ofc-i7 { --i: 7; }
.nsi-ofc-body {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr) minmax(0, .9fr); gap: 32px;
  background: var(--tint); padding: 24px 32px; border-radius: 6px;
}
.nsi-ofc-st:first-child .nsi-ofc-body { border-top-left-radius: 0; }
.nsi-ofc-k { display: block; font-size: 12px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--grey); margin-bottom: 4px; }
.nsi-ofc-body p { font-size: 15px; color: var(--ink); }
.nsi-ofc-body p.nsi-ofc-k { font-size: 12px; color: var(--grey); }
.nsi-ofc-body a { font-weight: 600; text-decoration-color: var(--orange); text-decoration-thickness: 2px; }
.nsi-ofc-note { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 32px; align-items: center; margin-top: 32px; }
.nsi-ofc-note > p { color: var(--grey); }

/* ---------- Plain explainers (concept 5) ---------- */
.nsi-xpl-grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 64px; align-items: stretch; }
.nsi-xpl-photo { margin: 0; min-height: 100%; }
.nsi-xpl-photo img { width: 100%; height: 100%; min-height: 420px; object-fit: cover; border-radius: 6px; }
.nsi-xpl-body h2 { font-size: clamp(28px, 3vw, 40px); letter-spacing: -0.01em; margin-bottom: 24px; }
.nsi-xpl-list { list-style: none; border-top: 4px solid var(--navy); }
.nsi-xpl-item { padding: 24px 0; border-bottom: 1px solid var(--line); }
.nsi-xpl-list h3 { font-size: 20px; margin-bottom: 8px; }
.nsi-xpl-list h3 a {
  text-decoration: none;
  background-image: linear-gradient(var(--orange), var(--orange)); background-size: 0 2px;
  background-repeat: no-repeat; background-position: 0 100%; transition: background-size .2s ease;
}
.nsi-xpl-list h3 a:hover { background-size: 100% 2px; }
.nsi-xpl-list p { color: var(--body); }
.nsi-xpl-glossary {
  margin: 56px 0 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
  border: 1px solid var(--line); border-radius: 6px;
}
.nsi-xpl-glossary > div { padding: 24px 26px; border-left: 1px solid var(--line); }
.nsi-xpl-glossary > div:first-child { border-left: 0; }
.nsi-xpl-glossary .nsi-dt { font-weight: 700; color: var(--navy); margin-bottom: 6px; }
.nsi-xpl-glossary .nsi-dd { font-size: 15px; color: var(--body); }

/* ---------- Business Bay office: the folder (concept 3's hero) ---------- */
.nsi-bb-grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: 64px; align-items: center; }
.nsi-bb-copy h2 { font-size: clamp(28px, 3vw, 40px); letter-spacing: -0.01em; }
.nsi-bb-lead { margin-top: 18px; font-size: 17px; color: var(--body); }
.nsi-bb-meta {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 32px;
  margin-top: 28px; padding-top: 24px; border-top: 1px solid var(--line);
}
.nsi-bb-meta .nsi-dt { font-size: 12px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--navy); }
.nsi-bb-meta .nsi-dd { margin-top: 4px; font-size: 15px; color: var(--body); }
.nsi-bb-note { margin-top: 20px; font-size: 14px; color: var(--grey); }
.nsi-bb-photo { margin: 0; }
.nsi-bb-folder { position: relative; padding-top: 16px; }
.nsi-bb-folder::before {
  content: ""; position: absolute; z-index: 0;
  top: 34px; right: -14px; left: 34px; bottom: -14px;
  background: var(--orange); border-radius: 6px 0 6px 6px;
}
.nsi-bb-folder::after {
  content: ""; position: absolute; z-index: 0;
  top: 0; right: -14px; width: 156px; height: 35px;
  background: var(--orange); border-radius: 6px 6px 0 0;
}
.nsi-bb-tab {
  position: relative; z-index: 1; display: inline-flex; align-items: center;
  height: 34px; margin-top: 16px; padding: 0 22px 0 16px;
  background: var(--navy); color: var(--white);
  font-size: 12px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase;
  border-radius: 6px 6px 0 0;
}
.nsi-bb-photo-body { position: relative; z-index: 1; background: var(--navy); padding: 10px; border-radius: 0 6px 6px 6px; }
.nsi-bb-photo-body img { width: 100%; aspect-ratio: 5 / 4; object-fit: cover; object-position: 55% 60%; border-radius: 2px; }
.nsi-bb-cap {
  position: relative; z-index: 1; margin-top: 30px;
  font-size: 14px; color: var(--grey); padding-left: 14px; border-left: 3px solid var(--orange);
}

/* ---------- Latest guides (concept 3) ---------- */
.nsi-gd-list { list-style: none; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; margin: 0; padding: 0; }
.nsi-gd-card { display: flex; flex-direction: column; }
.nsi-gd-img { position: relative; padding-top: 18px; }
.nsi-gd-img::before {
  content: ""; position: absolute; top: 0; left: 0; width: 44%; height: 22px;
  background: var(--navy); border-radius: 6px 6px 0 0;
}
.nsi-gd-img img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border-top: 4px solid var(--navy); border-radius: 0 6px 6px 6px; }
.nsi-gd-body { flex: 1; display: flex; flex-direction: column; gap: 10px; padding: 24px 0 0; }
.nsi-gd-kind { font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--grey); }
.nsi-gd-card h3 { font-size: 19px; line-height: 1.3; }
.nsi-gd-card h3 a { text-decoration: none; }
.nsi-gd-card h3 a:hover { text-decoration: underline; text-decoration-color: var(--orange); text-underline-offset: 4px; }
.nsi-gd-body > p:not(.nsi-gd-kind) { color: var(--body); font-size: 15px; }
.nsi-gd-card .nsi-arrow-link { align-self: flex-start; margin-top: auto; font-size: 14px; }

/* ---------- Responsive, from the design ---------- */
@media (max-width: 1200px) {
  .nsi-fees__board { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .nsi-fees__board.is-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .nsi-fees__board.is-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .nsi-fees__board li + li { border-left: 0; }
  .nsi-fees__board li { border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
  .nsi-fees__board li:nth-child(4n) { border-right: 0; }
  .nsi-lanes { grid-template-columns: 110px repeat(7, minmax(0, 1fr)); column-gap: 8px; }
  .nsi-lanes > .nsi-step, .nsi-step { padding: 12px 10px 14px; }
}

@media (max-width: 1024px) {
  .nsi-hero { padding: 56px 0 72px; }
  .nsi-hero__in { grid-template-columns: minmax(0, 1fr); gap: 48px; }
  .nsi-windows { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .nsi-areas { grid-template-columns: minmax(0, 1fr); gap: 48px; }
  .nsi-docs { grid-template-columns: minmax(0, 1fr); }
  .nsi-docs__photo img { aspect-ratio: 21 / 8; height: auto; }
  .nsi-turned { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .nsi-faq { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .nsi-contact__in { grid-template-columns: minmax(0, 1fr); gap: 56px; }

  /* lanes become a list with lane tags */
  .nsi-lanes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; background: none; border-top: 0; }
  .nsi-lanes__label { display: none; }
  .nsi-lanes > .nsi-step, .nsi-step { grid-row: auto !important; grid-column: auto !important; margin: 0; }
  .nsi-step .nsi-step__who { position: static; width: auto; height: auto; overflow: visible; clip: auto; }
  .nsi-step--notary .nsi-step__who { color: rgba(255,255,255,.8); }
  .nsi-lanes > .nsi-step, .nsi-step { padding: 16px; }
  .nsi-step h3 { font-size: 16px; }
  .nsi-step p { font-size: 14px; }

  .nsi-ofc-body { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .nsi-ofc-body > div:first-child { grid-column: 1 / -1; }
  .nsi-ofc-note { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .nsi-xpl-grid { grid-template-columns: minmax(0, 1fr); gap: 40px; }
  .nsi-xpl-photo img { min-height: 0; aspect-ratio: 16 / 9; }
  .nsi-xpl-glossary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .nsi-xpl-glossary > div:nth-child(3) { border-left: 0; }
  .nsi-xpl-glossary > div:nth-child(n+3) { border-top: 1px solid var(--line); }
  .nsi-bb-grid { grid-template-columns: minmax(0, 1fr); gap: 48px; }
}

@media (max-width: 700px) {
  .nsi-hero__lede { font-size: 16px; }
  .nsi-hero__cta .wp-block-button, .nsi-hero__cta .wp-block-button .wp-block-button__link { width: 100%; }
  .nsi-prep { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .nsi-prep li:nth-child(3) { padding-left: 0; border-left: 0; }
  .nsi-prep li { padding-bottom: 12px; }
  .nsi-counter__tabs, .nsi-counter__tabs.is-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .nsi-counter__tabs button:nth-child(2) { border-right: 0; }
  .nsi-counter__tabs button:nth-child(-n+2) { border-bottom: 1px solid var(--line-dk); }
  .nsi-counter__top, .nsi-counter__panel, .nsi-counter__foot { padding-left: 20px; padding-right: 20px; }
  .nsi-counter__panel { min-height: 0; }
  .nsi-counter__ledge { margin: 0 -8px; }
  .nsi-windows { grid-template-columns: minmax(0, 1fr); row-gap: 32px; }
  .nsi-behind { flex-direction: column; align-items: flex-start; }
  .nsi-behind__list { flex-direction: column; flex: none; }
  .nsi-areas__index { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .nsi-docs__grid { grid-template-columns: minmax(0, 1fr); }
  .nsi-lanes { grid-template-columns: minmax(0, 1fr); }
  .nsi-turned__list { grid-template-columns: minmax(0, 1fr); }
  .nsi-fees__board, .nsi-fees__board.is-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .nsi-fees__board li:nth-child(4n) { border-right: 1px solid var(--line); }
  .nsi-fees__board li:nth-child(2n) { border-right: 0; }
  .nsi-fees__amt { font-size: 24px; }
  .nsi-fees__foot { flex-direction: column; align-items: stretch; }
  .nsi-contact { padding: 72px 0; }
  .nsi-contact__dl > div { grid-template-columns: minmax(0, 1fr); gap: 2px; }
  .nsi-form { padding: 24px 20px; }
  .nsi-form::after { left: -8px; right: -8px; }
  .nsi-faq__list details > :not(summary) { padding-right: 0; }

  .nsi-ofc-tab { margin-left: calc(var(--i, 0) * 5%); }
  .nsi-xpl-glossary { grid-template-columns: minmax(0, 1fr); }
  .nsi-xpl-glossary > div, .nsi-xpl-glossary > div:nth-child(3) { border-left: 0; }
  .nsi-xpl-glossary > div + div { border-top: 1px solid var(--line); }
  .nsi-bb-meta { grid-template-columns: minmax(0, 1fr); }
  .nsi-bb-btns .wp-block-button, .nsi-bb-btns .wp-block-button .wp-block-button__link { width: 100%; }
  .nsi-gd-list { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .nsi-ofc-btns .wp-block-button, .nsi-ofc-btns .wp-block-button .wp-block-button__link { width: 100%; }
}

@media (max-width: 560px) {
  .nsi-ofc-body { grid-template-columns: minmax(0, 1fr); gap: 12px; padding: 16px; }
  .nsi-ofc-tab { font-size: 14px; padding: 6px 16px 6px 12px; }
  .nsi-bb-folder::before { right: -8px; bottom: -8px; left: 24px; top: 30px; }
  .nsi-bb-folder::after { right: -8px; width: 110px; height: 31px; }
  .nsi-bb-tab { height: 30px; }
  .nsi-bb-photo-body { padding: 6px; }
}

/* ===== 40-footer.css ===== */
/* Footer, from the chosen design (style.css "Footer" and its responsive lines). Values unchanged.
   The design's nav columns are groups (core/group has no nav tag); the logo is an image block. */
.nsi-ftr { background: var(--navy); color: rgba(255,255,255,.85); border-top: 1px solid var(--line-dk); }
.nsi-ftr__in { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, .9fr) minmax(0, 1.35fr); gap: 40px; padding-top: 64px; padding-bottom: 48px; }
.nsi-ftr__col { min-width: 0; }
.nsi-ftr__brand img { width: 180px; }
.nsi-ftr__brand p { margin-top: 16px; font-size: 14px; }
.nsi-ftr h2 { color: var(--white); font-size: 14px; letter-spacing: .08em; text-transform: uppercase; margin-bottom: 14px; }
.nsi-ftr ul { list-style: none; display: flex; flex-direction: column; gap: 10px; font-size: 14px; margin: 0; padding: 0; }
.nsi-ftr a { color: rgba(255,255,255,.88); text-decoration: none; }
.nsi-ftr a:hover { color: var(--white); text-decoration: underline; text-decoration-color: var(--orange); }
.nsi-ftr li { overflow-wrap: anywhere; }
.nsi-ftr__base { border-top: 1px solid var(--line-dk); padding-top: 20px; padding-bottom: 28px; font-size: 13px; color: rgba(255,255,255,.7); }
/* Developer credit in the bottom bar: the bar's own colour, smaller text, links underlined. */
.nsi-ftr__base .nsi-credit { margin-top: 6px; overflow-wrap: anywhere; }
.nsi-ftr__base .nsi-credit a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.nsi-ftr__base .nsi-credit a:hover, .nsi-ftr__base .nsi-credit a:focus-visible { color: var(--white); text-decoration-color: var(--orange); }

@media (max-width: 1024px) {
  .nsi-ftr__in { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .nsi-ftr__brand { grid-column: 1 / -1; }
}
@media (max-width: 700px) {
  .nsi-ftr__in { grid-template-columns: minmax(0, 1fr); gap: 32px; }
}

/* ===== 50-inner.css ===== */
/* Inner pages: the page heroes, the opening text, the reading column and the blog post. Every
   piece is made from the home design's own parts and values (hero field, kicker, counter card,
   folder, area index, section head, contact band). */

/* ---------- Page hero: the home hero's tint field ---------- */
.nsi-ph { background: var(--tint); padding: 40px 0 72px; }
.nsi-ph__in { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 64px; align-items: start; }
.nsi-ph__in.is-narrow { grid-template-columns: minmax(0, 1fr); }
.nsi-ph__copy { min-width: 0; }
.nsi-ph__copy > .nsi-bc { margin-bottom: 28px; }
.nsi-ph__h1 { font-size: clamp(32px, 3.6vw, 52px); line-height: 1.1; letter-spacing: -0.02em; }
.nsi-ph__lede { margin-top: 24px; font-size: 18px; color: var(--body); }
.nsi-ph--post .nsi-ph__h1, .nsi-ph--guides .nsi-ph__h1 { font-size: clamp(32px, 3.6vw, 52px); }
.nsi-ph--guides { padding-bottom: 56px; }
.nsi-ph__photo img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 6px; }
.nsi-ph--explainer .nsi-ph__in { grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); align-items: center; }
.nsi-ph--area .nsi-ph__in { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); }
.nsi-ph .nsi-bb-photo { margin-top: 8px; }
.nsi-ph__counter { margin-top: 8px; }
.nsi-ph__fees .nsi-fees { background: var(--white); }
.nsi-ph__fees .nsi-fees__board, .nsi-ph__fees .nsi-fees__board.is-7 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.nsi-ph__fees .nsi-fees__board li + li { border-left: 0; }
.nsi-ph__fees .nsi-fees__board li { border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.nsi-ph__fees .nsi-fees__board li:nth-child(2n) { border-right: 0; }
.nsi-ph__fees .nsi-fees__board li:last-child:nth-child(odd) { grid-column: 1 / -1; border-right: 0; }
.nsi-ph__fees .nsi-fees__board a { flex-direction: row; align-items: flex-end; padding: 16px 18px; }
.nsi-ph__fees .nsi-fees__amt { font-size: 24px; }
.nsi-ph__fees .nsi-fees__foot { flex-direction: column; align-items: stretch; }

/* ---------- The opening text and the short lines (the drafts' "At a glance", shown as a
   dotted list, never under that name) ---------- */
.nsi-x-intro { padding-bottom: 16px; }
.nsi-intro { display: grid; grid-template-columns: minmax(0, 1fr); gap: 40px 64px; }
.nsi-intro.is-2 { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); }
.nsi-intro__text { font-size: 17px; color: var(--body); }
.nsi-intro__short { border-top: 4px solid var(--navy); padding-top: 20px; }
.nsi-short { list-style: none; display: flex; flex-direction: column; gap: 12px; }
.nsi-short li { position: relative; padding-left: 20px; font-size: 15px; color: var(--body); }
.nsi-short li::before { content: ""; position: absolute; left: 0; top: .62em; width: 6px; height: 6px; background: var(--orange); border-radius: 50%; }
.nsi-intro__short > p + *, .nsi-intro__short > * + p { margin-top: 12px; }
.nsi-intro__short > p { font-size: 15px; color: var(--body); }

/* ---------- Prose inside components: paragraphs, lists, quotes and source lines ---------- */
.nsi-prose > * + * { margin-top: 14px; }
.nsi-prose a { text-decoration-color: var(--orange); text-decoration-thickness: 2px; }
.nsi-prose strong { color: var(--navy); }
.nsi-prose .nsi-xticks, .nsi-prose .nsi-list { list-style: none; display: flex; flex-direction: column; gap: 8px; }
.nsi-xticks li, .nsi-list li { position: relative; padding-left: 20px; }
.nsi-xticks li::before, .nsi-list li::before { content: ""; position: absolute; left: 0; top: .66em; width: 6px; height: 6px; background: var(--orange); border-radius: 50%; }
ol.nsi-xticks, .nsi-olist { list-style: none; counter-reset: o; display: flex; flex-direction: column; gap: 8px; }
ol.nsi-xticks li, .nsi-olist li { counter-increment: o; position: relative; padding-left: 36px; }
ol.nsi-xticks li::before, .nsi-olist li::before {
  content: counter(o, decimal-leading-zero); width: auto; height: auto; background: none; border-radius: 0; top: 0;
  font-size: 13px; font-weight: 700; color: var(--navy); border-bottom: 2px solid var(--orange); line-height: 1.5;
}
.nsi-quote { margin: 0; padding: 4px 0 4px 18px; border-left: 3px solid var(--orange); }
.nsi-quote p { font-size: 17px; color: var(--navy); font-weight: 500; }
.nsi-src { font-size: 13px; color: var(--grey); overflow-wrap: anywhere; }
.nsi-src a { color: var(--grey); }
.nsi-table { margin: 0; overflow-x: auto; }
.nsi-table table { width: 100%; border-collapse: collapse; font-size: 15px; }
.nsi-table th, .nsi-table td { text-align: left; vertical-align: top; padding: 12px 14px; border-bottom: 1px solid var(--line); }
.nsi-table thead th { background: var(--navy); color: var(--white); font-size: 13px; letter-spacing: .06em; text-transform: uppercase; }

/* ---------- Explainer: the reading column with its contents rail ---------- */
.nsi-art-grid { display: grid; grid-template-columns: minmax(0, 280px) minmax(0, 1fr); gap: 64px; align-items: start; }
.nsi-toc { position: sticky; top: 24px; border-top: 4px solid var(--navy); padding-top: 18px; }
.nsi-toc__label { font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--grey); margin-bottom: 8px; }
.nsi-toc__list { list-style: none; }
.nsi-toc__list a { display: block; padding: 9px 0; border-bottom: 1px solid var(--line); font-size: 14px; font-weight: 600; line-height: 1.4; color: var(--navy); text-decoration: none; }
.nsi-toc__list a:hover { text-decoration: underline; text-decoration-color: var(--orange); }
.nsi-article { min-width: 0; }
.nsi-article > * + * { margin-top: 48px; }
.nsi-art-part > h2 { font-size: clamp(24px, 2.4vw, 32px); letter-spacing: -0.01em; margin-bottom: 16px; padding-top: 24px; border-top: 4px solid var(--navy); }
.nsi-art-part > .nsi-kicker { margin-bottom: 10px; }
.nsi-art-part > .nsi-kicker + h2 { border-top: 0; padding-top: 0; }
.nsi-art-part > * + * { margin-top: 16px; }
.nsi-art-part > h2 + * { margin-top: 0; }
.nsi-art-part.nsi-prose > p, .nsi-art-intro > p { font-size: 17px; color: var(--body); }
.nsi-art-intro { font-size: 17px; }
.nsi-art-photo img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 6px; }

/* ---------- Contact band on inner pages and the contact page ---------- */
.nsi-contact--inner { margin-top: 0; }
.nsi-contact__info .nsi-bc { margin-bottom: 28px; }
.nsi-contact__info .nsi-bc a, .nsi-contact__info .nsi-bc li { color: rgba(255,255,255,.85); }
.nsi-contact__info .nsi-bc li + li::before { color: var(--orange); }
.nsi-contact__info .nsi-bc [aria-current] { color: var(--white); }
.nsi-contact--first { padding-top: 48px; }
.nsi-contact--first .nsi-ph__h1 { color: var(--white); }
.nsi-contact__h { margin-top: 36px; font-size: 24px !important; }
.nsi-contact__body ul { list-style: none; display: flex; flex-direction: column; gap: 8px; }
.nsi-contact__body li { position: relative; padding-left: 20px; }
.nsi-contact__body li::before { content: ""; position: absolute; left: 0; top: .66em; width: 6px; height: 6px; background: var(--orange); border-radius: 50%; }

/* ---------- Blog post (single.html) ---------- */
.nsi-post-grid { display: grid; grid-template-columns: minmax(0, 280px) minmax(0, 1fr); gap: 64px; align-items: start; }
.nsi-post-side { position: sticky; top: 24px; display: flex; flex-direction: column; gap: 24px; }
.nsi-toc2 { border-top: 4px solid var(--navy); padding-top: 18px; }
.nsi-toc2 ol { list-style: none; margin: 0; padding: 0; }
.nsi-toc2 a { display: block; padding: 9px 0; border-bottom: 1px solid var(--line); font-size: 14px; font-weight: 600; line-height: 1.4; color: var(--navy); text-decoration: none; }
.nsi-post-ask { padding: 20px; background: var(--tint); border-radius: 6px; }
.nsi-post-ask__label { font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--grey); margin-bottom: 6px; }
.nsi-post-ask__v a { font-weight: 600; text-decoration-color: var(--orange); }
.nsi-post-main { min-width: 0; }
.nsi-post-photo img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 6px; margin-bottom: 32px; }
.nsi-post-main .nsi-prose { font-size: 17px; color: var(--body); }
.nsi-post-main .nsi-prose h2 { font-size: clamp(24px, 2.4vw, 30px); margin-top: 40px; }
.nsi-post-main .nsi-prose h3 { font-size: 20px; margin-top: 28px; }
.nsi-post-main .nsi-prose ul { list-style: disc; padding-left: 22px; }
.nsi-post-main .nsi-prose ol { list-style: decimal; padding-left: 22px; }
.nsi-post-main .nsi-prose img { border-radius: 6px; }
.nsi-pm { display: flex; flex-wrap: wrap; gap: 6px 18px; margin-top: 18px; font-size: 14px; color: var(--grey); }
.nsi-pm > span + span::before { content: ""; display: inline-block; width: 6px; height: 6px; margin: 0 12px 2px 0; background: var(--orange); border-radius: 50%; }

/* ---------- Guides hub, archives and search (query loop cards) ---------- */
.nsi-posts-band { padding-top: 32px; }
.nsi-post-list .nsi-gd-list { margin: 0; }
.nsi-post-card .nsi-gd-img { margin: 0; }
.nsi-post-card .nsi-gd-img a { display: block; }
.nsi-post-card h2, .nsi-post-card h3 { font-size: 19px; line-height: 1.3; }
.nsi-post-card h2 a, .nsi-post-card h3 a { text-decoration: none; }
.nsi-post-card .nsi-post-excerpt p { color: var(--body); font-size: 15px; }
.nsi-post-card .wp-block-post-excerpt__more-link { display: inline-flex; margin-top: 10px; font-weight: 600; font-size: 14px; color: var(--navy); text-decoration: none; border-bottom: 2px solid var(--orange); }
.nsi-post-card .wp-block-post-date { font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--grey); }
.nsi-pager { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 40px; font-weight: 600; }
.nsi-pager a, .nsi-pager .page-numbers { display: inline-flex; min-width: 44px; min-height: 44px; align-items: center; justify-content: center; padding: 0 12px; border: 2px solid var(--navy); border-radius: var(--r); color: var(--navy); text-decoration: none; }
.nsi-pager .current { background: var(--navy); color: var(--white); }

/* ---------- Responsive ---------- */
@media (max-width: 1024px) {
  .nsi-ph { padding: 32px 0 56px; }
  .nsi-ph__in, .nsi-ph--explainer .nsi-ph__in, .nsi-ph--area .nsi-ph__in { grid-template-columns: minmax(0, 1fr); gap: 48px; }
  .nsi-intro.is-2 { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .nsi-art-grid, .nsi-post-grid { grid-template-columns: minmax(0, 1fr); gap: 40px; }
  .nsi-toc, .nsi-post-side { position: static; }
}
@media (max-width: 700px) {
  .nsi-ph__lede { font-size: 16px; }
  .nsi-ph .nsi-hero__cta .wp-block-button, .nsi-ph .nsi-hero__cta .wp-block-button .wp-block-button__link { width: 100%; }
  .nsi-intro__text, .nsi-art-part.nsi-prose > p, .nsi-art-intro > p, .nsi-post-main .nsi-prose { font-size: 16px; }
  .nsi-ph__fees .nsi-fees__board a { flex-direction: column; align-items: flex-start; }
  .nsi-table th, .nsi-table td { padding: 10px; }
}

/* ===== 60-sections.css ===== */
/* The typed section library (tools/sections.py). Each type is drawn with a component of the
   chosen home design: the values are the design's, the class names say which component.
   Every band is a white .nsi-sect with the design's section head. */

.nsi-x .nsi-head { margin-bottom: 40px; }
/* Long source links and legal names never push a phone screen wider (inner pages only; the home
   page is the design's own text, which always fits). */
:where(.nsi-x, .nsi-art-band, .nsi-x-intro, .nsi-x-faq, .nsi-contact--inner, .nsi-contact--first, .nsi-ph, .nsi-cn, .nsi-cm-band) :where(p, li, h1, h2, h3, summary) { overflow-wrap: anywhere; }
.nsi-ofc-stack { grid-template-columns: minmax(0, 1fr); }
.nsi-ofc-st, .nsi-xpanel__body { min-width: 0; }
.nsi-x-pre { margin-bottom: 28px; color: var(--body); }
.nsi-x-foot { margin-top: 28px; color: var(--body); }
.nsi-head__lede.nsi-prose > * + * { margin-top: 10px; }
.nsi-x + .nsi-x, .nsi-x-intro + .nsi-x { padding-top: 16px; }

/* steps: the "How it works" step cards (tint, number ring) in one row */
.nsi-xsteps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.nsi-xsteps.is-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.nsi-xsteps.is-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.nsi-xsteps .nsi-step, .nsi-xchecks .nsi-step { margin: 0; padding: 20px 20px 22px; gap: 8px; }
.nsi-xsteps .nsi-step h3, .nsi-xchecks .nsi-step h3 { font-size: 17px; }
.nsi-xsteps .nsi-step p:not(.nsi-step__n), .nsi-xchecks .nsi-step p:not(.nsi-step__n) { font-size: 15px; line-height: 1.55; }

/* route: the counter card's numbered list (01, 02 in orange) on white, ruled */
.nsi-xroute { list-style: none; counter-reset: r; border-top: 1px solid var(--line); }
.nsi-xroute li { counter-increment: r; position: relative; padding: 14px 0 14px 52px; border-bottom: 1px solid var(--line); color: var(--body); }
.nsi-xroute li::before { content: counter(r, decimal-leading-zero); position: absolute; left: 0; top: 14px; font-size: 14px; font-weight: 700; color: var(--orange-dk); letter-spacing: .04em; }
.nsi-xroute strong { color: var(--navy); }
.nsi-xroute__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 56px; align-items: start; }
.nsi-xroute__media img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 6px; }

/* clauses: the numbered list on a tint sheet under the navy rule */
.nsi-xclauses { background: var(--tint); border-top: 4px solid var(--navy); border-radius: 0 0 6px 6px; padding: 24px 28px 12px; }
.nsi-xclauses__name { font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--orange-dk); margin-bottom: 4px; }
.nsi-xclauses .nsi-bring li { border-bottom-color: var(--line); color: var(--body); }
.nsi-xclauses .nsi-bring li::before { color: var(--orange-dk); }
.nsi-xclauses strong { color: var(--navy); }

/* checks: the "you" step cards (white, navy frame) */
.nsi-xchecks { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.nsi-xchecks.is-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.nsi-xchecks .nsi-step { grid-row: auto; }

/* tiles: the counter windows (navy sign with the number, tint body) */
.nsi-xtiles.is-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.nsi-xtiles .nsi-window__body h3 { font-size: 19px; }
.nsi-xtiles .nsi-window__body p, .nsi-xtiles .nsi-window__body li { color: var(--body); font-size: 15px; }

/* docs: the counter card (navy, numbered, orange ledge), with any text after it beside it */
.nsi-xdocs { display: grid; grid-template-columns: minmax(0, 1fr); gap: 40px 64px; max-width: 100%; }
.nsi-xdocs.has-side { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); align-items: start; }
.nsi-xcounter .nsi-counter__panel { padding-bottom: 12px; }
.nsi-xcounter .nsi-bring strong { color: var(--white); }
.nsi-xdocs__side { color: var(--body); }
.nsi-ph__counter .nsi-bring strong { color: var(--white); }

/* warn: "Why people are turned away at the counter" (two numbered columns) */
.nsi-x-warn .nsi-turned__list.is-1 { grid-template-columns: minmax(0, 1fr); }

/* table and fees: the fee board frame (navy 2px, 6px corners) with a navy header row */
.nsi-xtable { border: 2px solid var(--navy); border-radius: 6px; overflow: hidden; }
.nsi-xtable .wp-block-table { margin: 0; overflow-x: auto; }
.nsi-xtable table { width: 100%; border-collapse: collapse; font-size: 15px; }
.nsi-xtable th, .nsi-xtable td { text-align: left; vertical-align: top; padding: 14px 18px; border-bottom: 1px solid var(--line); color: var(--body); }
.nsi-xtable tbody tr:last-child th, .nsi-xtable tbody tr:last-child td { border-bottom: 0; }
.nsi-xtable thead th { background: var(--navy); color: var(--white); font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.nsi-xtable thead th:last-child { color: var(--orange); }
.nsi-xtable tbody th { color: var(--navy); font-weight: 600; }
.nsi-xtable tbody tr:nth-child(even) { background: var(--tint); }
.nsi-xtable.is-fees tbody td:last-child { font-weight: 700; color: var(--navy); white-space: nowrap; }
.nsi-xfees__foot { display: block; }
.nsi-xfees__foot > * + * { margin-top: 10px; }

/* panels: the office stack (tabs stepping right over tint bodies) */
.nsi-xpanels { gap: 14px; }
.nsi-xpanel.is-fine .nsi-ofc-tab { margin-left: calc(var(--i, 0) * 6%); }
.nsi-xpanel__body { background: var(--tint); padding: 24px 32px; border-radius: 6px; color: var(--body); }
.nsi-xpanel:first-child .nsi-xpanel__body { border-top-left-radius: 0; }
.nsi-xpanel__body .nsi-xtable__t table { width: 100%; border-collapse: collapse; font-size: 15px; background: var(--white); }
.nsi-xpanel__body .nsi-xtable__t th, .nsi-xpanel__body .nsi-xtable__t td { text-align: left; padding: 10px 12px; border-bottom: 1px solid var(--line); }
.nsi-xpanel__body .nsi-xtable__t thead th { background: var(--navy); color: var(--white); font-size: 12px; letter-spacing: .1em; text-transform: uppercase; }

/* ticks: the "Behind every window" box (1px rule, orange dots) */
.nsi-xticks__box { display: block; margin-top: 0; padding: 22px 26px; }
.nsi-xticks__box .nsi-xticks { list-style: none; display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px 32px; color: var(--body); }
.nsi-xticks__box .nsi-xticks.is-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.nsi-xticks strong { color: var(--navy); }

/* chips: the area list rows, in columns, without arrows */
.nsi-xchips { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 32px; }
.nsi-xchips li { padding: 12px 0; border-bottom: 1px solid var(--line); font-weight: 600; color: var(--navy); }

/* callout: the office caption (orange left rule) */
.nsi-xcallout { padding: 4px 0 4px 18px; border-left: 3px solid var(--orange); }
.nsi-xcallout p { font-size: 18px; color: var(--navy); font-weight: 500; line-height: 1.55; }
.nsi-xcallout__wrap { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); gap: 24px 64px; align-items: start; padding-top: 28px; border-top: 4px solid var(--navy); }
.nsi-xcallout__wrap > h2 { font-size: clamp(24px, 2.4vw, 32px); }

/* split: the plain explainers grid (photo, then the text on the navy rule) */
.nsi-xsplit .nsi-xsplit__photo img { width: 100%; height: 100%; min-height: 320px; object-fit: cover; border-radius: 6px; }
.nsi-xsplit__body { border-top: 4px solid var(--navy); padding-top: 24px; }
.nsi-xsplit__body > h2 { font-size: clamp(24px, 2.4vw, 32px); margin-bottom: 16px; }
.nsi-xsplit__text { color: var(--body); }

/* folder: the Business Bay folder */
.nsi-xfolder__copy > h2 { margin-bottom: 18px; }
.nsi-xfolder__copy .nsi-prose, .nsi-xfolder__copy > .nsi-prose { color: var(--body); }

/* numbered: the section head grid, title left and text right */
.nsi-xnum { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); gap: 24px 64px; padding-top: 28px; border-top: 4px solid var(--navy); }
.nsi-xnum__n { font-size: 34px; font-weight: 700; color: var(--orange); line-height: 1; letter-spacing: -0.02em; margin-bottom: 12px; }
.nsi-xnum__head h2 { font-size: clamp(24px, 2.4vw, 32px); }
.nsi-xnum__body { color: var(--body); }

/* notes: the document cards (orange top rule) */
.nsi-xnotes.is-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.nsi-xnote { color: var(--body); }

/* topics: the glossary grid (ruled cells, one per short section) */
.nsi-xtopics { margin: 0; }
.nsi-xtopics.is-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.nsi-xtopics.is-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.nsi-xtopics > div:first-child { border-left: 0; }
.nsi-xtopic__h { font-size: 20px; margin-bottom: 10px; }
.nsi-xtopic { color: var(--body); font-size: 15px; }

/* qa: the home FAQ (questions that open, the heading beside them) */
.nsi-xqa.is-article { grid-template-columns: minmax(0, 1fr); gap: 16px; }
.nsi-xqa.is-article .nsi-faq__intro h2 { font-size: clamp(24px, 2.4vw, 32px); }

/* sources: a closed details list at the foot */
.nsi-sources-band { padding: 0 0 56px; }
.nsi-sources { border-top: 1px solid var(--line); padding-top: 16px; }
.nsi-sources summary { cursor: pointer; font-weight: 600; font-size: 15px; color: var(--navy); }
.nsi-src-list { list-style: none; margin-top: 12px; display: flex; flex-direction: column; gap: 6px; font-size: 13px; color: var(--grey); }
.nsi-src-list li { overflow-wrap: anywhere; }
.nsi-src-list a { color: var(--grey); }

@media (max-width: 1024px) {
  .nsi-xsteps, .nsi-xsteps.is-3, .nsi-xchecks.is-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .nsi-xroute__grid, .nsi-xdocs.has-side, .nsi-xcallout__wrap, .nsi-xnum { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .nsi-xchips { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .nsi-xtopics.is-3 { grid-template-columns: minmax(0, 1fr); }
  .nsi-xtopics.is-3 > div + div { border-left: 0; border-top: 1px solid var(--line); }
  .nsi-xnotes.is-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .nsi-xsplit .nsi-xsplit__photo img { min-height: 0; aspect-ratio: 16 / 9; }
}
@media (max-width: 700px) {
  .nsi-xsteps, .nsi-xsteps.is-2, .nsi-xchecks, .nsi-xtiles.is-2, .nsi-xnotes.is-3, .nsi-xtopics.is-2 { grid-template-columns: minmax(0, 1fr); }
  .nsi-xtopics.is-2 > div + div { border-left: 0; border-top: 1px solid var(--line); }
  .nsi-xticks__box .nsi-xticks.is-2, .nsi-xchips { grid-template-columns: minmax(0, 1fr); }
  .nsi-xclauses { padding: 20px 18px 8px; }
  .nsi-xpanel__body { padding: 16px; }
  .nsi-xtable th, .nsi-xtable td { padding: 10px 12px; font-size: 14px; }
  .nsi-xtable.is-fees tbody td:last-child { white-space: normal; }
}

/* ===== 70-tree.css ===== */
/* The site tree blocks of the NSI Tools plugin: breadcrumbs, the cluster pages, the area index
   beside the area page headings, "More in this cluster" and the guides hub. Drawn with the home
   design's windows, document cards, area list and guide cards. */

/* ---------- Breadcrumbs ---------- */
.nsi-bc ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 4px 0; font-size: 13px; font-weight: 500; color: var(--grey); }
.nsi-bc li { display: inline-flex; align-items: center; }
.nsi-bc li + li::before { content: "/"; margin: 0 10px; color: var(--orange-dk); font-weight: 600; }
.nsi-bc a { color: var(--navy); text-decoration: none; }
.nsi-bc a:hover { text-decoration: underline; text-decoration-color: var(--orange); }
.nsi-bc [aria-current] { color: var(--ink); }

/* ---------- Cluster pages (nsi/cluster-nav) ---------- */
.nsi-cn-windows { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.nsi-cn-windows.is-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.nsi-cn-windows.is-1 { grid-template-columns: minmax(0, 1fr); }
.nsi-cn-windows .nsi-window__body > p { font-size: 15px; }
.nsi-cn-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: 40px 48px; align-items: start; }
.nsi-cn-grid.is-side-only { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.nsi-cn-grid.is-side-only .nsi-cn-side { display: contents; }
.nsi-cn-side { display: flex; flex-direction: column; gap: 24px; }
.nsi-cn-main { display: flex; flex-direction: column; gap: 40px; min-width: 0; }
.nsi-cn-card h3 { font-size: 19px; margin-bottom: 10px; }
.nsi-cn-card h3 a { text-decoration: none; }
.nsi-cn-card h3 a::after { content: " \2192"; color: var(--orange-dk); }
.nsi-cn-card h3 a:hover { text-decoration: underline; }
.nsi-cn-card p:not(.nsi-cn-label) { font-size: 15px; color: var(--body); }
.nsi-cn-label { font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: .1em; color: var(--grey); margin-bottom: 6px; }
.nsi-cn-sibs { columns: 2; column-gap: 32px; }
.nsi-cn-sibs li { break-inside: avoid; }
.nsi-cn-block > .nsi-areas__h { margin-bottom: 10px; }

/* ---------- The area index beside the area page headings (nsi/area-list) ---------- */
.nsi-al { min-width: 0; }
.nsi-al__index { background: var(--white); padding: 24px 28px 28px; border-radius: 0 0 6px 6px; }
.nsi-al__index.is-1 { grid-template-columns: minmax(0, 1fr); }
.nsi-al .nsi-areas__list a, .nsi-al .nsi-al-here { font-size: 16px; padding: 10px 0; }
.nsi-al-here {
  display: flex; justify-content: space-between; align-items: center; gap: 12px;
  border-bottom: 1px solid var(--line); font-weight: 700; color: var(--ink);
}
.nsi-al-here::after { content: ""; width: 10px; height: 10px; background: var(--orange); border-radius: 50% 50% 0 0; flex: none; }
/* Below 1025px the hero stacks and the index would sit between the heading and the answer: the
   render prints a second copy folded in a closed details element, shown only at that width. */
.nsi-al__fold { display: none; }
.nsi-al__sum {
  list-style: none; cursor: pointer;
  display: flex; justify-content: space-between; align-items: center; gap: 16px;
  min-height: 48px; padding: 12px 20px; background: var(--white); border-top: 4px solid var(--navy); border-radius: 0 0 6px 6px;
  font-size: 13px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--navy);
}
.nsi-al__sum::-webkit-details-marker { display: none; }
.nsi-al__sum::after {
  content: "+"; flex: none; width: 32px; height: 32px; border-radius: var(--r);
  display: flex; align-items: center; justify-content: center;
  background: var(--tint); color: var(--navy); font-size: 20px; font-weight: 500; letter-spacing: 0;
}
.nsi-al__fold[open] .nsi-al__sum { border-radius: 0; }
.nsi-al__fold[open] .nsi-al__sum::after { content: "\2212"; background: var(--orange); }
.nsi-al__fold .nsi-al__index { border-top: 1px solid var(--line); padding-top: 16px; }
.nsi-al__fold .nsi-areas__group:first-child > .nsi-areas__h { display: none; } /* the summary already names it */
@media (max-width: 1024px) {
  .nsi-al__wide { display: none; }
  .nsi-al__fold { display: block; }
}

/* ---------- More in this cluster (nsi/cluster-more) ---------- */
.nsi-cm { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: 32px 56px; align-items: start; }
.nsi-cm.is-list-only { grid-template-columns: minmax(0, 1fr); }
.nsi-cm-hub { margin-top: 0; }
.nsi-cm-hub p + p { margin-top: 8px; }
.nsi-cm-hub a { font-size: 18px; }
.nsi-cm-list { columns: 2; column-gap: 40px; }
.nsi-cm.is-list-only .nsi-cm-list { columns: 3; }
.nsi-cm-list li { break-inside: avoid; }
.nsi-cm-list li.is-l3 a { padding-left: 18px; font-size: 16px; font-weight: 500; }
.nsi-cm-band { padding-top: 32px; }

/* ---------- Guides hub (nsi/guides) and the other post lists ---------- */
.nsi-gh + .nsi-gh { padding-top: 16px; }
.nsi-gd-card.no-photo .nsi-gd-body { padding-top: 0; border-top: 4px solid var(--navy); padding-top: 20px; }
.nsi-lg .nsi-head { margin-bottom: 40px; }

@media (max-width: 1024px) {
  .nsi-cn-windows, .nsi-cn-windows.is-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .nsi-cn-grid, .nsi-cm { grid-template-columns: minmax(0, 1fr); }
  .nsi-cm.is-list-only .nsi-cm-list { columns: 2; }
}
@media (max-width: 700px) {
  .nsi-cn-windows, .nsi-cn-windows.is-2, .nsi-cn-grid.is-side-only { grid-template-columns: minmax(0, 1fr); }
  .nsi-cn-sibs, .nsi-cm-list, .nsi-cm.is-list-only .nsi-cm-list { columns: 1; }
  .nsi-al__index { padding: 20px; }
}
