/* Policy layouts only. Existing service, About, and Contact styles are unchanged. */
.ntsp-policy .ntsp-policy-width {
  width: min(820px, calc(100% - 80px));
  max-width: none;
  margin-inline: auto;
}
.ntsp-policy .ntsp-policy-hero {
  margin: 0;
  padding-block: 46px 42px;
  color: #fff;
  background: var(--ntsp-navy);
}
.ntsp-policy .ntsp-policy-hero .ntsp-eyebrow { color: var(--ntsp-bright); }
.ntsp-policy .ntsp-policy-hero h1 {
  font-size: clamp(34px, 4vw, 50px);
  line-height: 1.13;
  margin-block: 12px 16px;
}
.ntsp-policy .ntsp-policy-hero .ntsp-policy-intro {
  color: #d0dce4;
  font-size: 17px;
  max-width: 700px;
}
.ntsp-policy .ntsp-policy-hero .ntsp-policy-updated {
  display: inline-block;
  margin-top: 24px;
  padding-left: 12px;
  border-left: 3px solid var(--ntsp-bright);
  color: #d0dce4;
  font-size: 14px;
}
.ntsp-policy .ntsp-policy-main { margin: 0; padding-block: 50px 64px; }
.ntsp-policy .ntsp-policy-copy { color: var(--ntsp-ink); font-size: 17px; line-height: 1.8; }
.ntsp-policy .ntsp-policy-copy :is(p, li) { color: #405563; }
.ntsp-policy .ntsp-policy-copy > * { margin-block: 0; }
.ntsp-policy .ntsp-policy-copy > * + * { margin-top: 18px; }
.ntsp-policy .ntsp-policy-copy :is(h2, h3, h4) { scroll-margin-top: 48px; }
.ntsp-policy .ntsp-policy-copy h2 {
  margin-top: 42px;
  padding-top: 30px;
  border-top: 1px solid var(--ntsp-line);
  font-size: clamp(24px, 2.3vw, 29px);
  line-height: 1.3;
  letter-spacing: -.02em;
}
.ntsp-policy .ntsp-policy-copy > h2:first-child { margin-top: 0; padding-top: 0; border-top: 0; }
.ntsp-policy .ntsp-policy-copy h3 { margin-top: 26px; font-size: 21px; line-height: 1.35; }
.ntsp-policy .ntsp-policy-copy h4 { margin-top: 22px; font-size: 18px; line-height: 1.4; }
.ntsp-policy .ntsp-policy-copy :is(ul, ol) { padding-left: 1.5em; }
.ntsp-policy .ntsp-policy-copy li + li { margin-top: 8px; }
.ntsp-policy .ntsp-policy-copy li > :is(ul, ol) { margin-top: 8px; }
.ntsp-policy a { color: var(--ntsp-accent); }
.ntsp-policy .ntsp-policy-copy :is(p, li, a) { overflow-wrap: anywhere; }
.ntsp-policy .ntsp-policy-copy .wp-block-table { overflow-x: auto; }
.ntsp-policy .ntsp-policy-copy table { border-collapse: collapse; width: 100%; font-size: 15px; }
.ntsp-policy .ntsp-policy-copy :is(th, td) { border: 1px solid var(--ntsp-line); padding: 10px 12px; vertical-align: top; }
.ntsp-policy .ntsp-policy-copy th { background: var(--ntsp-mist); text-align: left; }
.ntsp-policy .ntsp-policy-copy blockquote {
  margin-inline: 0;
  border-left: 3px solid var(--ntsp-bright);
  padding: 18px 22px;
  background: var(--ntsp-mist);
}
.ntsp-policy .ntsp-policy-links {
  margin-top: 44px;
  padding: 22px 24px;
  border-left: 3px solid var(--ntsp-bright);
  background: var(--ntsp-mist);
}
.ntsp-policy .ntsp-policy-links > * { margin-block: 0; }
.ntsp-policy .ntsp-policy-links > * + * { margin-top: 8px; }
.ntsp-policy .ntsp-policy-links p { font-size: 15px; }
@media (max-width: 600px) {
  .ntsp-policy .ntsp-policy-width { width: calc(100% - 40px); }
  .ntsp-policy .ntsp-policy-hero { padding-block: 36px; }
  .ntsp-policy .ntsp-policy-main { padding-block: 36px 46px; }
  .ntsp-policy .ntsp-policy-copy { font-size: 16px; line-height: 1.75; }
  .ntsp-policy .ntsp-policy-copy h2 { margin-top: 32px; padding-top: 24px; }
  .ntsp-policy .ntsp-policy-links { padding: 20px; }
}
@media print {
  .ntsp-policy .ntsp-policy-hero { color: #132b3c; background: #fff; padding-block: 20px; }
  .ntsp-policy .ntsp-policy-hero :is(.ntsp-policy-intro, .ntsp-policy-updated) { color: #405563; }
  .ntsp-policy .ntsp-policy-width { width: 100%; }
  .ntsp-policy .ntsp-policy-main { padding-block: 20px; }
  .ntsp-policy .ntsp-policy-copy :is(h2, h3, h4) { break-after: avoid; }
}

/* Plain-content fallback (1.2.1). The policy templates also accept ordinary
   headings and paragraphs without the optional ntsp-policy pattern wrapper.
   Scope to the two policy templates; preserve complete policy patterns. */
:is(.page-template-techen-terms-page, .page-template-techen-privacy-page) .ntsp-page > .wp-block-post-content:not(:has(.ntsp-policy)) {
  width: min(820px, calc(100% - 80px));
  max-width: none;
  min-width: 0;
  margin: 0 auto;
  padding: 50px 0 64px;
  color: var(--nt-ink, #132b3c);
  font-size: 17px;
  line-height: 1.8;
}
:is(.page-template-techen-terms-page, .page-template-techen-privacy-page) .ntsp-page > .wp-block-post-content:not(:has(.ntsp-policy)) > * {
  max-width: 100%; margin-block: 0;
}
:is(.page-template-techen-terms-page, .page-template-techen-privacy-page) .ntsp-page > .wp-block-post-content:not(:has(.ntsp-policy)) > * + * {
  margin-top: 18px;
}
:is(.page-template-techen-terms-page, .page-template-techen-privacy-page) .ntsp-page > .wp-block-post-content:not(:has(.ntsp-policy)) :is(p, li) {
  color: #405563; overflow-wrap: anywhere;
}
:is(.page-template-techen-terms-page, .page-template-techen-privacy-page) .ntsp-page > .wp-block-post-content:not(:has(.ntsp-policy)) a {
  color: var(--nt-accent, #007fa3); overflow-wrap: anywhere;
}
:is(.page-template-techen-terms-page, .page-template-techen-privacy-page) .ntsp-page > .wp-block-post-content:not(:has(.ntsp-policy)) :is(h1, h2, h3, h4) {
  color: var(--nt-ink, #132b3c); overflow-wrap: break-word; scroll-margin-top: 48px;
}
:is(.page-template-techen-terms-page, .page-template-techen-privacy-page) .ntsp-page > .wp-block-post-content:not(:has(.ntsp-policy)) h1 {
  font-size: clamp(34px, 4vw, 50px); line-height: 1.13;
}
:is(.page-template-techen-terms-page, .page-template-techen-privacy-page) .ntsp-page > .wp-block-post-content > .ntsp-policy-title {
  font-weight: 650;
  letter-spacing: -.035em;
}
:is(.page-template-techen-terms-page, .page-template-techen-privacy-page) .ntsp-page > .wp-block-post-content:not(:has(.ntsp-policy)) h2 {
  margin-top: 42px; padding-top: 30px; border-top: 1px solid #dce5e9; font-size: clamp(24px, 2.3vw, 29px); line-height: 1.3; letter-spacing: -.02em;
}
:is(.page-template-techen-terms-page, .page-template-techen-privacy-page) .ntsp-page > .wp-block-post-content:not(:has(.ntsp-policy)) > h2:first-child {
  margin-top: 0; padding-top: 0; border-top: 0;
}
:is(.page-template-techen-terms-page, .page-template-techen-privacy-page) .ntsp-page > .wp-block-post-content:not(:has(.ntsp-policy)) h3 {
  margin-top: 26px; font-size: 21px; line-height: 1.35;
}
:is(.page-template-techen-terms-page, .page-template-techen-privacy-page) .ntsp-page > .wp-block-post-content:not(:has(.ntsp-policy)) h4 {
  margin-top: 22px; font-size: 18px; line-height: 1.4;
}
:is(.page-template-techen-terms-page, .page-template-techen-privacy-page) .ntsp-page > .wp-block-post-content:not(:has(.ntsp-policy)) :is(ul, ol) {
  padding-left: 1.5em;
}
:is(.page-template-techen-terms-page, .page-template-techen-privacy-page) .ntsp-page > .wp-block-post-content:not(:has(.ntsp-policy)) li + li {
  margin-top: 8px;
}
:is(.page-template-techen-terms-page, .page-template-techen-privacy-page) .ntsp-page > .wp-block-post-content:not(:has(.ntsp-policy)) li > :is(ul, ol) {
  margin-top: 8px;
}
:is(.page-template-techen-terms-page, .page-template-techen-privacy-page) .ntsp-page > .wp-block-post-content:not(:has(.ntsp-policy)) .wp-block-table {
  overflow-x: auto;
}
:is(.page-template-techen-terms-page, .page-template-techen-privacy-page) .ntsp-page > .wp-block-post-content:not(:has(.ntsp-policy)) table {
  border-collapse: collapse; width: 100%; font-size: 15px;
}
:is(.page-template-techen-terms-page, .page-template-techen-privacy-page) .ntsp-page > .wp-block-post-content:not(:has(.ntsp-policy)) :is(th, td) {
  border: 1px solid #dce5e9; padding: 10px 12px; vertical-align: top; overflow-wrap: anywhere;
}
:is(.page-template-techen-terms-page, .page-template-techen-privacy-page) .ntsp-page > .wp-block-post-content:not(:has(.ntsp-policy)) th {
  background: #f2f6f7; text-align: left;
}
:is(.page-template-techen-terms-page, .page-template-techen-privacy-page) .ntsp-page > .wp-block-post-content:not(:has(.ntsp-policy)) blockquote {
  margin-inline: 0; border-left: 3px solid #25b9dd; padding: 18px 22px; background: #f2f6f7;
}
:is(.page-template-techen-terms-page, .page-template-techen-privacy-page) .ntsp-page > .wp-block-post-content:not(:has(.ntsp-policy)) img {
  max-width: 100%; height: auto;
}
@media (max-width: 600px) {
  :is(.page-template-techen-terms-page, .page-template-techen-privacy-page) .ntsp-page > .wp-block-post-content:not(:has(.ntsp-policy)) { width: calc(100% - 40px); padding-block: 36px 46px; font-size: 16px; line-height: 1.75; }
  :is(.page-template-techen-terms-page, .page-template-techen-privacy-page) .ntsp-page > .wp-block-post-content:not(:has(.ntsp-policy)) h2 { margin-top: 32px; padding-top: 24px; }
  :is(.page-template-techen-terms-page, .page-template-techen-privacy-page) .ntsp-page > .wp-block-post-content:not(:has(.ntsp-policy)) > h2:first-child { margin-top: 0; padding-top: 0; }
}
@media print {
  :is(.page-template-techen-terms-page, .page-template-techen-privacy-page) .ntsp-page > .wp-block-post-content:not(:has(.ntsp-policy)) { width: 100%; padding-block: 20px; }
  :is(.page-template-techen-terms-page, .page-template-techen-privacy-page) .ntsp-page > .wp-block-post-content:not(:has(.ntsp-policy)) :is(h1, h2, h3, h4) { break-after: avoid; }
}

/* Continuous white policy panel with grey outer gutters (1.2.2).
   The panel follows the 1180px header width; the prose remains at most 820px. */
:is(.page-template-techen-terms-page, .page-template-techen-privacy-page) .ntsp-page,
.ntsp-policy .ntsp-policy-main {
  background: #eef1f3;
}
.ntsp-policy .ntsp-policy-main {
  padding: 0;
}
:is(.page-template-techen-terms-page, .page-template-techen-privacy-page) .ntsp-page > .wp-block-post-content:not(:has(.ntsp-policy)),
.ntsp-policy .ntsp-policy-main > .ntsp-policy-width {
  box-sizing: border-box;
  width: min(1180px, calc(100% - 80px));
  margin: 0 auto;
  padding: 50px clamp(24px, 4vw, 60px) 64px;
  background: #fff;
}
:is(.page-template-techen-terms-page, .page-template-techen-privacy-page) .ntsp-page > .wp-block-post-content:not(:has(.ntsp-policy)) > *,
.ntsp-policy .ntsp-policy-main > .ntsp-policy-width > * {
  max-width: min(820px, 100%);
  margin-inline: auto;
}
@media (max-width: 600px) {
  :is(.page-template-techen-terms-page, .page-template-techen-privacy-page) .ntsp-page > .wp-block-post-content:not(:has(.ntsp-policy)),
  .ntsp-policy .ntsp-policy-main > .ntsp-policy-width {
    width: calc(100% - 40px);
    padding: 36px 20px 46px;
  }
}
@media print {
  :is(.page-template-techen-terms-page, .page-template-techen-privacy-page) .ntsp-page,
  .ntsp-policy .ntsp-policy-main {
    background: #fff;
  }
  :is(.page-template-techen-terms-page, .page-template-techen-privacy-page) .ntsp-page > .wp-block-post-content:not(:has(.ntsp-policy)),
  .ntsp-policy .ntsp-policy-main > .ntsp-policy-width {
    width: 100%;
    padding: 20px 0;
  }
  :is(.page-template-techen-terms-page, .page-template-techen-privacy-page) .ntsp-page > .wp-block-post-content:not(:has(.ntsp-policy)) > *,
  .ntsp-policy .ntsp-policy-main > .ntsp-policy-width > * {
    max-width: 100%;
  }
}
