:root {
  --ps-gutter: clamp(1.25rem, 4vw, 3rem);
  --ps-content: 720px;
  --ps-wide: 1240px;
  --ps-section-space: clamp(3.75rem, 7.5vw, 7rem);
  --ps-border: var(--wp--preset--color--border, #cbd8d5);
  scroll-behavior: smooth;
}

* { box-sizing: border-box; }
html { text-rendering: optimizeLegibility; }
body { margin: 0; overflow-wrap: break-word; }
img { height: auto; max-width: 100%; }
a, button, input, select, textarea { outline-offset: 4px; }
:focus-visible { outline: 3px solid var(--wp--preset--color--accent, #006d77); }
.has-ink-background-color :focus-visible, .ps-site-footer :focus-visible { outline-color: var(--wp--preset--color--paper, #fbfcf8); }

p, li { max-width: 68ch; }
h1, h2, h3 { text-wrap: balance; }
h1 { max-width: 18ch; }
h2 { max-width: 24ch; }
h3 { max-width: 30ch; }
a { text-underline-offset: 0.18em; text-decoration-thickness: 0.08em; }
a:hover { text-decoration-thickness: 0.13em; }

.ps-site-header {
  background: rgba(252, 252, 249, 0.98);
  border-bottom: 1px solid var(--ps-border);
  position: relative;
  z-index: 10;
}
.ps-site-header > .wp-block-group,
.ps-site-footer > .wp-block-group {
  padding: 1rem max(var(--ps-gutter), calc((100vw - var(--ps-wide)) / 2));
}
.ps-site-header > .wp-block-group { gap: 1rem 2rem; min-height: 4.5rem; }
.ps-site-header .wp-block-site-title { margin: 0; white-space: nowrap; }
.ps-site-header .wp-block-site-title a { color: var(--wp--preset--color--ink, #132238); text-decoration: none; }
.ps-site-main { min-height: 60vh; }
.ps-content-shell { padding-left: 1.25rem; padding-right: 1.25rem; padding-bottom: var(--ps-section-space); padding-top: var(--ps-section-space); }

/* Insights and long-form technical publishing. */
.ps-article { max-width: var(--ps-content); }
.ps-article-title { margin-bottom: 1rem; }
.ps-article-meta,
.ps-article-list-meta {
  color: var(--wp--preset--color--muted, #53636b);
  font-family: var(--wp--preset--font-family--mono, monospace);
  font-size: var(--wp--preset--font-size--metadata, 0.8125rem);
  gap: 0.5rem 1rem;
}
.ps-article-meta { border-bottom: 1px solid var(--ps-border); margin-bottom: clamp(2rem, 5vw, 3.5rem); padding-bottom: 1.25rem; }
.ps-article-meta > * + *::before,
.ps-article-list-meta > * + *::before { content: "·"; margin-right: 1rem; }
.ps-article-content { font-size: 1.0625rem; line-height: 1.75; }
.ps-article-content > h2 { margin-top: clamp(2.75rem, 7vw, 4.5rem); }
.ps-article-content > h3 { margin-top: clamp(2rem, 5vw, 3rem); }
.ps-article-content > h2 + *,
.ps-article-content > h3 + * { margin-top: 1rem; }
.ps-article-content ul,
.ps-article-content ol { padding-inline-start: 1.5rem; }
.ps-article-content li + li { margin-top: 0.5rem; }
.ps-article-content :not(pre) > code {
  background: var(--wp--preset--color--soft, #edf3f1);
  border: 1px solid var(--ps-border);
  border-radius: 3px;
  font-family: var(--wp--preset--font-family--mono, monospace);
  font-size: 0.9em;
  padding: 0.1em 0.3em;
}
.ps-article-content pre,
.ps-article-content .wp-block-code {
  background: var(--wp--preset--color--ink, #132238);
  border: 1px solid #263a50;
  color: var(--wp--preset--color--paper, #fbfcf8);
  font-family: var(--wp--preset--font-family--mono, monospace);
  line-height: 1.65;
  max-width: 100%;
  overflow-x: auto;
  padding: clamp(1rem, 4vw, 1.5rem);
  tab-size: 2;
  white-space: pre;
}
.ps-article-content pre code { color: inherit; font-family: inherit; }
.ps-article-content .wp-block-table { margin-block: 2rem; overflow-x: auto; }
.ps-article-content table { border-collapse: collapse; min-width: 36rem; width: 100%; }
.ps-article-content th,
.ps-article-content td { border: 1px solid var(--ps-border); padding: 0.75rem; text-align: left; vertical-align: top; }
.ps-article-content th { background: var(--wp--preset--color--soft, #edf3f1); }
.ps-article-content blockquote { border-left: 3px solid var(--wp--preset--color--accent, #006d77); margin: 2rem 0; padding-left: clamp(1rem, 4vw, 1.5rem); }
.ps-article-content figure { margin-block: clamp(2rem, 6vw, 3.5rem); }
.ps-article-content figcaption { color: var(--wp--preset--color--muted, #53636b); font-size: var(--wp--preset--font-size--small, 0.9375rem); line-height: 1.5; }
.ps-article-footer { border-top: 1px solid var(--ps-border); margin-top: clamp(3rem, 8vw, 5rem); padding-top: 1.25rem; }
.ps-article-footer .wp-block-post-terms { color: var(--wp--preset--color--muted, #53636b); font-size: var(--wp--preset--font-size--small, 0.9375rem); }
.ps-related-content,
.ps-article-cta {
  margin-block: clamp(2.5rem, 7vw, 4.5rem);
  max-width: 100%;
}
.ps-related-content { border-top: 1px solid var(--ps-border); padding-top: clamp(1.5rem, 5vw, 2.5rem); }
.ps-related-content-grid { display: grid; gap: 1rem; }
.ps-related-content-item {
  background: var(--wp--preset--color--surface, #fff);
  border: 1px solid var(--ps-border);
  border-top: 3px solid var(--wp--preset--color--accent, #006d77);
  min-width: 0;
  padding: clamp(1.125rem, 4vw, 1.5rem);
}
.ps-related-content-item > :first-child { margin-top: 0; }
.ps-related-content-item > :last-child { margin-bottom: 0; }
.ps-related-content-item h3 { font-size: var(--wp--preset--font-size--card-title, 1.375rem); }
.ps-related-content-item a { overflow-wrap: anywhere; }
.ps-article-cta {
  border: 1px solid var(--ps-border);
  border-left: 4px solid var(--wp--preset--color--accent, #006d77);
  padding: clamp(1.25rem, 5vw, 2rem);
}
.ps-article-cta > :first-child { margin-top: 0; }
.ps-article-cta > :last-child { margin-bottom: 0; }
.ps-article-cta .wp-block-buttons { margin-top: 1.5rem; }
.ps-article-cta-boundary { color: var(--wp--preset--color--muted, #53636b); margin-top: 1rem; }
.ps-index-intro { font-size: var(--wp--preset--font-size--lead, 1.25rem); margin-bottom: clamp(2.5rem, 6vw, 4rem); }
.ps-article-list .wp-block-post-template { display: grid; gap: 1rem; }
.ps-article-list-item { border-top: 1px solid var(--ps-border); padding-block: clamp(1.5rem, 5vw, 2.5rem); }
.ps-article-list-item .wp-block-post-title { margin: 0 0 0.75rem; }
.ps-article-list-item .wp-block-post-title a { color: var(--wp--preset--color--ink, #132238); }
.ps-article-list-item .wp-block-post-excerpt { margin-top: 1rem; }
.ps-article-list-item .wp-block-post-excerpt__more-link { font-weight: 700; }
.wp-block-query-pagination { border-top: 1px solid var(--ps-border); gap: 0.75rem; margin-top: 2rem; padding-top: 1.5rem; }
.wp-block-query-pagination a,
.wp-block-query-pagination .page-numbers { min-height: 2.75rem; min-width: 2.75rem; padding: 0.65rem; }

.ps-preview-navigation ul,
.ps-public-navigation ul {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem 1.5rem;
  list-style: none;
  margin: 0;
  padding: 0;
}
.ps-preview-navigation a,
.ps-public-navigation a {
  color: var(--wp--preset--color--ink, #132238);
  display: inline-flex;
  font-size: var(--wp--preset--font-size--small, 0.9375rem);
  font-weight: 650;
  min-height: 2.75rem;
  align-items: center;
  text-decoration: none;
}
.ps-preview-navigation a:hover,
.ps-public-navigation a:hover { color: var(--wp--preset--color--accent, #006d77); }
.ps-preview-navigation li:not(:last-child) a[aria-current="page"],
.ps-preview-navigation li:not(:last-child) a.ps-current-section,
.ps-public-navigation li:not(:last-child) a[aria-current="page"],
.ps-public-navigation li:not(:last-child) a.ps-current-section {
  box-shadow: inset 0 -2px var(--wp--preset--color--accent, #006d77);
  color: var(--wp--preset--color--accent, #006d77);
}
.ps-preview-navigation li:last-child a,
.ps-public-navigation li:last-child a {
  background: var(--wp--preset--color--ink, #132238);
  border: 1px solid var(--wp--preset--color--ink, #132238);
  border-radius: 4px;
  color: #fff;
  padding: 0.25rem 0.875rem;
}
.ps-preview-navigation li:last-child a:hover,
.ps-public-navigation li:last-child a:hover { background: var(--wp--preset--color--accent, #006d77); border-color: var(--wp--preset--color--accent, #006d77); }
.ps-preview-navigation li:last-child a[aria-current="page"],
.ps-public-navigation li:last-child a[aria-current="page"] { background: var(--wp--preset--color--accent, #006d77); border-color: var(--wp--preset--color--accent, #006d77); }

.ps-hero, .ps-section { padding: var(--ps-section-space) var(--ps-gutter); }
.ps-hero {
  background: var(--wp--preset--color--soft, #edf3f1);
  border-bottom: 1px solid var(--ps-border);
  overflow: hidden;
  position: relative;
}
.ps-hero::after {
  border-left: 1px solid rgba(0, 109, 119, 0.2);
  border-top: 1px solid rgba(0, 109, 119, 0.2);
  content: "";
  height: clamp(7rem, 18vw, 15rem);
  position: absolute;
  right: max(var(--ps-gutter), calc((100vw - var(--ps-wide)) / 2));
  top: 0;
  width: clamp(7rem, 18vw, 15rem);
  pointer-events: none;
}
.ps-hero > * { position: relative; z-index: 1; }
.ps-hero h1 { margin-bottom: clamp(1.25rem, 3vw, 2rem); }
.ps-hero .has-large-font-size { line-height: 1.5; max-width: 60ch; }
.ps-hero > .wp-block-group__inner-container > p:not(.ps-eyebrow),
.ps-hero > p:not(.ps-eyebrow) { max-width: 62ch; }
.ps-eyebrow {
  color: #006d77;
  font-family: var(--wp--preset--font-family--mono, monospace);
  font-size: var(--wp--preset--font-size--metadata, 0.8125rem);
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1.4;
  margin-bottom: 1rem;
  text-transform: uppercase;
}
.has-ink-background-color .ps-eyebrow { color: var(--wp--preset--color--paper, #fbfcf8); }
.has-ink-background-color a:not(.wp-element-button), .ps-site-footer a:not(.wp-element-button) { color: var(--wp--preset--color--paper, #fbfcf8); text-decoration: underline; }
.has-ink-background-color.ps-section { border-block: 1px solid #263a50; position: relative; }
.has-ink-background-color.ps-section::after {
  border: 1px solid rgba(252, 252, 249, 0.22);
  content: "01 / REPORT";
  font-family: var(--wp--preset--font-family--mono, monospace);
  font-size: 0.7rem;
  letter-spacing: 0.1em;
  padding: 1rem;
  position: absolute;
  right: var(--ps-gutter);
  top: var(--ps-section-space);
}
.has-soft-background-color.ps-section { border-block: 1px solid var(--ps-border); }
.ps-section + .ps-section:not(.has-background) { border-top: 1px solid var(--ps-border); }
.ps-section > h2 + p { font-size: var(--wp--preset--font-size--lead, 1.25rem); max-width: 60ch; }

.ps-cta-actions { align-items: center; display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: 2rem; }
.wp-element-button, button, input[type="submit"] {
  border: 1px solid var(--wp--preset--color--accent, #006d77);
  cursor: pointer;
  min-height: 2.875rem;
  transition: background-color 150ms ease, border-color 150ms ease, color 150ms ease, transform 150ms ease;
}
.wp-element-button:hover, button:not(:disabled):hover, input[type="submit"]:hover { background: var(--wp--preset--color--ink, #132238); border-color: var(--wp--preset--color--ink, #132238); }
.wp-element-button:active, button:not(:disabled):active { transform: translateY(1px); }
.ps-button-outline { background: transparent; border: 1px solid currentColor; color: var(--wp--preset--color--accent, #006d77); }
.ps-button-outline:hover { background: var(--wp--preset--color--accent, #006d77); border-color: var(--wp--preset--color--accent, #006d77); color: #fff; }

.ps-card-grid { display: grid; gap: clamp(0.875rem, 2vw, 1.25rem); }
.ps-card {
  background: var(--wp--preset--color--surface, #fff);
  border: 1px solid var(--ps-border);
  border-top: 3px solid var(--wp--preset--color--accent, #006d77);
  margin: 0;
  min-height: 9rem;
  padding: clamp(1.25rem, 3vw, 2rem);
}
.ps-card strong:first-child { display: inline-block; font-family: var(--wp--preset--font-family--editorial, Georgia, serif); font-size: var(--wp--preset--font-size--card-title, 1.375rem); font-weight: 600; line-height: 1.2; margin-bottom: 1.25rem; }
.ps-price { color: var(--wp--preset--color--ink, #132238); font-family: var(--wp--preset--font-family--mono, monospace); font-weight: 750; }

input, select, textarea {
  background: var(--wp--preset--color--surface, #fff);
  border: 1px solid var(--wp--preset--color--muted, #53636b);
  border-radius: 3px;
  color: var(--wp--preset--color--ink, #132238);
  font: inherit;
  max-width: 100%;
  min-height: 3rem;
  padding: 0.75rem 0.875rem;
  width: 100%;
}
textarea { min-height: 9rem; resize: vertical; }
label { display: inline-block; font-size: var(--wp--preset--font-size--small, 0.9375rem); font-weight: 700; margin-bottom: 0.375rem; }
input:focus, select:focus, textarea:focus { border-color: var(--wp--preset--color--accent, #006d77); box-shadow: 0 0 0 1px var(--wp--preset--color--accent, #006d77); }
input:disabled, select:disabled, textarea:disabled, button:disabled { cursor: not-allowed; opacity: 0.62; }
.ps-contact-form { max-width: 44rem; }
.ps-contact-form form { display: grid; gap: 1rem; margin-top: 2rem; }
.ps-contact-form--wpforms .wpforms-field { padding-block: 0.5rem; }
.ps-contact-form--wpforms .wpforms-field-label { color: var(--wp--preset--color--ink, #14213d); display: block; font-weight: 700; margin-bottom: 0.375rem; }
.ps-contact-form--wpforms input:not([type="checkbox"]):not([type="radio"]),
.ps-contact-form--wpforms select,
.ps-contact-form--wpforms textarea { background: var(--wp--preset--color--paper, #fbfcf8); border: 1px solid var(--ps-border); border-radius: 0.25rem; box-sizing: border-box; color: var(--wp--preset--color--ink, #14213d); font: inherit; max-width: 100%; min-height: 2.75rem; padding: 0.75rem; width: 100%; }
.ps-contact-form--wpforms input:focus-visible,
.ps-contact-form--wpforms select:focus-visible,
.ps-contact-form--wpforms textarea:focus-visible { border-color: var(--wp--preset--color--accent, #006d77); outline: 3px solid var(--wp--preset--color--accent, #006d77); outline-offset: 2px; }
.ps-contact-form--wpforms .wpforms-required-label,
.ps-contact-form--wpforms .wpforms-error { color: #9b2c2c; }
.ps-contact-form--wpforms .wpforms-field-description,
.ps-contact-form--wpforms .wpforms-error { display: block; font-size: var(--wp--preset--font-size--small, 0.9375rem); margin-top: 0.375rem; }
.ps-contact-form--wpforms .wpforms-confirmation-container-full,
.ps-contact-form--wpforms .wpforms-error-container { border: 2px solid var(--wp--preset--color--accent, #006d77); padding: 1rem; }
.ps-safety { background: #fff8e8; border: 1px solid #e1c78e; border-left: 4px solid var(--wp--preset--color--warning, #8a5700); color: #4e360b; font-size: var(--wp--preset--font-size--small, 0.9375rem); padding: 1rem; }

.ps-site-footer { border-top: 4px solid var(--wp--preset--color--accent, #006d77); }
.ps-site-footer > .wp-block-group { min-height: 10rem; padding-bottom: clamp(2rem, 5vw, 4rem); padding-top: clamp(2rem, 5vw, 4rem); }
.ps-site-footer .wp-block-site-title { margin: 0; }
.ps-site-footer p { color: #dce5e3; font-size: var(--wp--preset--font-size--small, 0.9375rem); margin: 0; }

.wp-block-post-template { display: grid; gap: 1.5rem; }
.wp-block-post-template > li { border-top: 1px solid var(--ps-border); padding-top: 1.5rem; }
.wp-block-query-pagination { border-top: 1px solid var(--ps-border); margin-top: 3rem; padding-top: 1.5rem; }

@media (min-width: 48rem) {
  .ps-card-grid { grid-template-columns: repeat(auto-fit, minmax(min(17rem, 100%), 1fr)); }
  .ps-related-content-grid { grid-template-columns: repeat(auto-fit, minmax(min(14rem, 100%), 1fr)); }
  .ps-site-header { position: sticky; top: 0; }
  .admin-bar .ps-site-header { top: 46px; }
}

@media (min-width: 783px) {
  .admin-bar .ps-site-header { top: 32px; }
}

@media (min-width: 64rem) {
  .ps-hero { padding-bottom: clamp(5.5rem, 8vw, 8rem); padding-top: clamp(5.5rem, 8vw, 8rem); }
}

@media (max-width: 47.99rem) {
  :root { --ps-section-space: clamp(3rem, 12vw, 4.25rem); }
  .ps-site-header > .wp-block-group { align-items: flex-start; flex-direction: column; gap: 0.5rem; min-height: 0; padding-bottom: 0.625rem; padding-top: 0.75rem; }
  .ps-preview-navigation, .ps-public-navigation { border-top: 1px solid var(--ps-border); padding-top: 0.375rem; width: 100%; }
  .ps-preview-navigation ul, .ps-public-navigation ul { gap: 0 0.25rem; }
  .ps-preview-navigation a, .ps-public-navigation a { min-height: 2.75rem; padding-inline: 0.375rem; }
  .ps-preview-navigation li:last-child a, .ps-public-navigation li:last-child a { padding-inline: 0.75rem; }
  .ps-site-footer > .wp-block-group { align-items: flex-start; flex-direction: column; gap: 0.5rem; min-height: 0; padding-bottom: 1.75rem; padding-top: 1.75rem; }
  .ps-hero::after { opacity: 0.55; right: -2rem; }
  .has-ink-background-color.ps-section::after { display: none; }
  .ps-cta-actions { align-items: stretch; flex-direction: column; }
  .ps-cta-actions .wp-element-button { justify-content: center; text-align: center; width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; }
}
