/* ═══ COLOR FLOW MAP (from design-spec.theme_context_map) ═══
 * index.html (psq-page--dark-top):
 *   nav        → transparent-on-dark (scroll: solid #0F2240)  | logo-light | links: #E8F0F8
 *   hero       → DARK  (#0A1628)    | text: #E8F0F8
 *   problem-strip → DARK-ALT (#0F2240) | text: #E8F0F8
 *   how-it-works  → DARK  (#0A1628)  | text: #E8F0F8
 *   variant-output → DARK-ALT (#0F2240) | text: #E8F0F8
 *   use-cases-grid → LIGHT (#F4F7FB)  | text: #0A1628
 *   trust-signals  → LIGHT (#F4F7FB)  | text: #0A1628
 *   cta-strip  → DARK  (#0A1628)    | text: #E8F0F8
 *   footer     → DARK  (#060E1B)    | text: #8BAAC8
 *
 * pricing.html / research.html / contact.html / blog/* / legal/* (psq-page--light-top):
 *   nav        → solid white (#FFFFFF) immediately  | logo-dark | links: #0A1628
 *   hero       → LIGHT (#F4F7FB)   | text: #0A1628
 *   content    → WHITE (#FFFFFF)   | text: #0A1628
 *   cta-strip  → DARK (#0A1628)    | text: #E8F0F8
 *   footer     → DARK (#060E1B)    | text: #8BAAC8
 *
 * login/*.html (psq-page--dark-top):
 *   nav (standalone)  → transparent dark
 *   auth-layout → DARK (#0A1628)   | auth-panel: DARK-ALT (#0F2240)
 *   auth-side   → DARK (#0A1628)   | text: #E8F0F8
 *   auth-panel  → DARK-ALT (#0F2240) | text: #E8F0F8
 *
 * ADJACENT SAME-POLARITY SEPARATOR:
 *   dark → dark-alt: natural separation by bg step
 *   light → light: subtle border-top
 * ═══════════════════════════════════════════════════════════════ */

/* =============================================================
   RESET & BASE
   ============================================================= */
*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  font-size: 16px;
  scroll-behavior: smooth;
}

body {
  font-family: Inter, system-ui, sans-serif;
  font-size: 0.9375rem;
  line-height: 1.7;
  background: #FFFFFF;
  color: #0A1628;
  -webkit-font-smoothing: antialiased;
}

body.psq-page--dark-top {
  background: #0A1628;
}

body.psq-page--light-top {
  background: #F4F7FB;
}

/* =============================================================
   CSS CUSTOM PROPERTIES
   ============================================================= */
:root {
  --psq-navy:         #0A1628;
  --psq-navy-alt:     #0F2240;
  --psq-navy-deep:    #060E1B;
  --psq-teal:         #00C4B4;
  --psq-teal-aa:      #007A6E;
  --psq-crimson:      #FF6B5B;
  --psq-amber:        #F5A623;
  --psq-light:        #F4F7FB;
  --psq-cream:        #EDF2F7;
  --psq-white:        #FFFFFF;
  --psq-fg-dark-1:    #E8F0F8;
  --psq-fg-dark-2:    #8BAAC8;
  --psq-fg-dark-m:    #5A7A9A;
  --psq-fg-light-1:   #0A1628;
  --psq-fg-light-2:   #3D5470;
  --psq-border-dark:  rgba(139,170,200,0.12);
  --psq-border-light: rgba(10,22,40,0.12);
  --psq-radius:       8px;
  --psq-radius-lg:    12px;
  --psq-transition:   0.18s ease;
  --psq-container:    1200px;
  --psq-container-narrow: 840px;
}

/* =============================================================
   TYPOGRAPHY
   ============================================================= */
h1, h2, h3, h4, h5, h6 {
  font-family: "Inter Tight", Inter, system-ui, sans-serif;
  font-weight: 700;
  line-height: 1.12;
  letter-spacing: -0.02em;
}

h1 { font-size: 2.5rem; }
h2 { font-size: 1.875rem; letter-spacing: -0.015em; }
h3 { font-size: 1.375rem; letter-spacing: -0.01em; }
h4 { font-size: 1.125rem; letter-spacing: 0; font-weight: 600; }

.psq-display {
  font-family: "Inter Tight", Inter, system-ui, sans-serif;
  font-size: 3.5rem;
  font-weight: 700;
  line-height: 1.08;
  letter-spacing: -0.02em;
}

.psq-eyebrow {
  font-size: 0.8125rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--psq-teal-aa);
}

.psq-mono {
  font-family: "IBM Plex Mono", "JetBrains Mono", monospace;
  font-size: 0.875rem;
  line-height: 1.6;
}

p { line-height: 1.7; }

a { color: inherit; text-decoration: none; }

/* Eyebrow colors by context — base above, variants below */
.psq-section--dark .psq-eyebrow,
.psq-section--dark-alt .psq-eyebrow,
.psq-hero .psq-eyebrow,
.psq-footer .psq-eyebrow { color: var(--psq-teal); }

/* =============================================================
   LAYOUT UTILITIES
   ============================================================= */
.psq-container {
  max-width: var(--psq-container);
  margin: 0 auto;
  padding: 0 24px;
}

.psq-container--narrow {
  max-width: var(--psq-container-narrow);
  margin: 0 auto;
  padding: 0 24px;
}

.psq-section--dark {
  background: var(--psq-navy);
}

.psq-section--dark-alt {
  background: var(--psq-navy-alt);
}

.psq-section--light {
  background: var(--psq-light);
}

.psq-section--white {
  background: var(--psq-white);
}

.psq-section--deep {
  background: var(--psq-navy-deep);
}

/* =============================================================
   NAVIGATION
   ============================================================= */
.psq-nav {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1000;
  transition: background var(--psq-transition), box-shadow var(--psq-transition);
}

/* Dark-top pages: start transparent */
body.psq-page--dark-top .psq-nav {
  background: transparent;
}

body.psq-page--dark-top .psq-nav--scrolled {
  background: var(--psq-navy-alt);
  box-shadow: 0 1px 0 var(--psq-border-dark);
}

/* Light-top pages: always solid white */
body.psq-page--light-top .psq-nav {
  background: var(--psq-white);
  box-shadow: 0 1px 0 var(--psq-border-light);
}

.psq-nav__inner {
  display: flex;
  align-items: center;
  height: 64px;
  max-width: var(--psq-container);
  margin: 0 auto;
  padding: 0 24px;
  gap: 0;
}

.psq-nav__logo {
  display: flex;
  align-items: center;
  flex-shrink: 0;
  margin-right: auto;
}

.psq-nav__logo img {
  height: 32px;
  width: auto;
  max-width: 180px;
  display: block;
}

/* Logo variant selection by page theme */
body.psq-page--dark-top .psq-nav__logo .psq-logo-dark { display: none; }
body.psq-page--dark-top .psq-nav__logo .psq-logo-light { display: block; }
body.psq-page--light-top .psq-nav__logo .psq-logo-light { display: none; }
body.psq-page--light-top .psq-nav__logo .psq-logo-dark { display: block; }

/* When scrolled on dark-top, nav goes solid dark-alt — still shows logo-light */
body.psq-page--dark-top .psq-nav--scrolled .psq-logo-light { display: block; }
body.psq-page--dark-top .psq-nav--scrolled .psq-logo-dark { display: none; }

.psq-nav__links {
  display: flex;
  align-items: center;
  list-style: none;
  gap: 2px;
  margin: 0 16px;
}

/* Nav link colors — dark-top: white; light-top: dark */
body.psq-page--dark-top .psq-nav__link {
  color: var(--psq-fg-dark-1);
}

body.psq-page--light-top .psq-nav__link {
  color: var(--psq-fg-light-1);
}

.psq-nav__link {
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 6px 12px;
  border-radius: var(--psq-radius);
  font-size: 0.9rem;
  font-weight: 500;
  transition: background var(--psq-transition), color var(--psq-transition);
  white-space: nowrap;
}

body.psq-page--dark-top .psq-nav__link:hover {
  background: rgba(232,240,248,0.08);
  color: var(--psq-fg-dark-1);
}

body.psq-page--light-top .psq-nav__link:hover {
  background: rgba(10,22,40,0.06);
  color: var(--psq-fg-light-1);
}

/* Dropdown nav item */
.psq-nav__dropdown {
  position: relative;
}

.psq-nav__dropdown-toggle {
  background: transparent;
  border: none;
  font-family: inherit;
  font-size: 0.9rem;
  font-weight: 500;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 6px 12px;
  border-radius: var(--psq-radius);
  transition: background var(--psq-transition), color var(--psq-transition);
  white-space: nowrap;
}

body.psq-page--dark-top .psq-nav__dropdown-toggle {
  color: var(--psq-fg-dark-1);
}

body.psq-page--light-top .psq-nav__dropdown-toggle {
  color: var(--psq-fg-light-1);
}

body.psq-page--dark-top .psq-nav__dropdown-toggle:hover {
  background: rgba(232,240,248,0.08);
}

body.psq-page--light-top .psq-nav__dropdown-toggle:hover {
  background: rgba(10,22,40,0.06);
}

.psq-nav__dropdown-icon {
  transition: transform 0.2s ease;
  font-size: 0.75rem;
}

.psq-nav__dropdown.is-open .psq-nav__dropdown-icon {
  transform: rotate(180deg);
}

/* Dropdown menu — dark context (dark-top nav) */
.psq-nav__dropdown-menu {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  min-width: 220px;
  border-radius: var(--psq-radius-lg);
  padding: 8px;
  list-style: none;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-6px);
  transition: opacity 0.18s ease, transform 0.18s ease, visibility 0.18s ease;
  z-index: 100;
}

body.psq-page--dark-top .psq-nav__dropdown-menu {
  background: var(--psq-navy-alt);
  border: 1px solid var(--psq-border-dark);
  box-shadow: 0 8px 32px rgba(0,0,0,0.4);
}

body.psq-page--light-top .psq-nav__dropdown-menu {
  background: var(--psq-white);
  border: 1px solid var(--psq-border-light);
  box-shadow: 0 8px 24px rgba(10,22,40,0.12);
}

.psq-nav__dropdown.is-open .psq-nav__dropdown-menu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.psq-nav__dropdown-item {
  display: block;
  padding: 9px 12px;
  border-radius: 6px;
  font-size: 0.875rem;
  font-weight: 500;
  transition: background var(--psq-transition);
}

body.psq-page--dark-top .psq-nav__dropdown-item {
  color: var(--psq-fg-dark-1);
}

body.psq-page--dark-top .psq-nav__dropdown-item:hover {
  background: rgba(0,196,180,0.1);
  color: var(--psq-teal);
}

body.psq-page--light-top .psq-nav__dropdown-item {
  color: var(--psq-fg-light-1);
}

body.psq-page--light-top .psq-nav__dropdown-item:hover {
  background: rgba(10,22,40,0.05);
  color: var(--psq-teal-aa);
}

/* Nav CTA buttons */
.psq-nav__actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}

/* Mobile hamburger */
.psq-nav__hamburger {
  display: none;
  background: transparent;
  border: none;
  cursor: pointer;
  padding: 6px;
  border-radius: var(--psq-radius);
  margin-left: 8px;
}

body.psq-page--dark-top .psq-nav__hamburger { color: var(--psq-fg-dark-1); }
body.psq-page--light-top .psq-nav__hamburger { color: var(--psq-fg-light-1); }

.psq-nav__hamburger:hover { background: rgba(139,170,200,0.1); }

.psq-mobile-menu {
  display: none;
  position: fixed;
  top: 64px;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 999;
  overflow-y: auto;
  padding: 16px 24px 32px;
}

body.psq-page--dark-top .psq-mobile-menu {
  background: var(--psq-navy-alt);
}

body.psq-page--light-top .psq-mobile-menu {
  background: var(--psq-white);
}

.psq-mobile-menu.is-open {
  display: block;
}

.psq-mobile-menu__links {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin-bottom: 16px;
}

.psq-mobile-menu__link {
  display: block;
  padding: 12px 8px;
  font-size: 1.0625rem;
  font-weight: 500;
  border-radius: var(--psq-radius);
}

body.psq-page--dark-top .psq-mobile-menu__link { color: var(--psq-fg-dark-1); }
body.psq-page--light-top .psq-mobile-menu__link { color: var(--psq-fg-light-1); }

.psq-mobile-menu__sub {
  list-style: none;
  padding-left: 16px;
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin-top: 4px;
}

.psq-mobile-menu__sub-link {
  display: block;
  padding: 9px 8px;
  font-size: 0.9375rem;
}

body.psq-page--dark-top .psq-mobile-menu__sub-link { color: var(--psq-fg-dark-2); }
body.psq-page--light-top .psq-mobile-menu__sub-link { color: var(--psq-fg-light-2); }

.psq-mobile-menu__actions {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 16px;
}

/* =============================================================
   BUTTONS
   ============================================================= */
.psq-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 22px;
  border-radius: var(--psq-radius);
  font-family: Inter, system-ui, sans-serif;
  font-size: 0.9375rem;
  font-weight: 600;
  line-height: 1;
  cursor: pointer;
  border: 1.5px solid transparent;
  transition: background var(--psq-transition), color var(--psq-transition), border-color var(--psq-transition), box-shadow var(--psq-transition);
  white-space: nowrap;
  text-decoration: none;
}

.psq-btn--sm {
  padding: 7px 16px;
  font-size: 0.875rem;
}

.psq-btn--lg {
  padding: 14px 32px;
  font-size: 1.0625rem;
  border-radius: 10px;
}

/* Primary: teal bg — works on any context */
.psq-btn--primary {
  background: var(--psq-teal);
  color: #05201A;
  border-color: var(--psq-teal);
}

.psq-btn--primary:hover {
  background: #00D6C5;
  border-color: #00D6C5;
  box-shadow: 0 4px 16px rgba(0,196,180,0.35);
}

/* Ghost on dark */
.psq-btn--ghost-dark {
  background: transparent;
  color: var(--psq-fg-dark-1);
  border-color: rgba(232,240,248,0.3);
}

.psq-btn--ghost-dark:hover {
  background: rgba(232,240,248,0.08);
  border-color: rgba(232,240,248,0.5);
}

/* Ghost on light */
.psq-btn--ghost-light {
  background: transparent;
  color: var(--psq-fg-light-1);
  border-color: var(--psq-border-light);
}

.psq-btn--ghost-light:hover {
  background: rgba(10,22,40,0.05);
  border-color: rgba(10,22,40,0.25);
}

/* Outline on dark */
.psq-btn--outline-dark {
  background: transparent;
  color: var(--psq-teal);
  border-color: var(--psq-teal);
}

.psq-btn--outline-dark:hover {
  background: rgba(0,196,180,0.1);
}

/* Sign in link style */
.psq-btn--signin-dark {
  background: transparent;
  border: none;
  padding: 10px 12px;
  color: var(--psq-fg-dark-2);
  font-weight: 500;
}

.psq-btn--signin-dark:hover { color: var(--psq-fg-dark-1); }

.psq-btn--signin-light {
  background: transparent;
  border: none;
  padding: 10px 12px;
  color: var(--psq-fg-light-2);
  font-weight: 500;
}

.psq-btn--signin-light:hover { color: var(--psq-fg-light-1); }

/* =============================================================
   HERO — SPLIT DARK
   ============================================================= */
.psq-hero {
  background: var(--psq-navy);
  min-height: 100vh;
  display: flex;
  align-items: center;
  padding-top: 64px; /* nav height */
  overflow: hidden;
  position: relative;
}

.psq-hero__inner {
  max-width: var(--psq-container);
  margin: 0 auto;
  padding: 80px 24px 80px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  align-items: center;
  width: 100%;
}

.psq-hero__content {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.psq-hero__headline {
  font-size: 3.5rem;
  font-family: "Inter Tight", Inter, system-ui, sans-serif;
  font-weight: 700;
  line-height: 1.08;
  letter-spacing: -0.02em;
  color: var(--psq-fg-dark-1);
}

.psq-hero__headline .psq-accent { color: var(--psq-teal); }

.psq-hero__subhead {
  font-size: 1.125rem;
  line-height: 1.72;
  color: var(--psq-fg-dark-2);
  max-width: 520px;
}

.psq-hero__actions {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}

.psq-hero__visual {
  position: relative;
  border-radius: var(--psq-radius-lg);
  overflow: hidden;
  aspect-ratio: 16/10;
}

.psq-hero__visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Subpage hero (smaller, not full-bleed) */
.psq-subhero {
  background: var(--psq-navy);
  padding-top: 120px;
  padding-bottom: 72px;
}

.psq-subhero__inner {
  max-width: var(--psq-container);
  margin: 0 auto;
  padding: 0 24px;
}

.psq-subhero__content {
  max-width: 720px;
}

.psq-subhero__headline {
  font-size: 2.5rem;
  font-family: "Inter Tight", Inter, system-ui, sans-serif;
  font-weight: 700;
  line-height: 1.12;
  letter-spacing: -0.02em;
  color: var(--psq-fg-dark-1);
  margin-bottom: 16px;
}

.psq-subhero__subhead {
  font-size: 1.125rem;
  line-height: 1.7;
  color: var(--psq-fg-dark-2);
  max-width: 600px;
}

.psq-subhero__actions {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  margin-top: 32px;
}

/* Light-top subhero */
.psq-subhero--light {
  background: var(--psq-light);
  padding-top: 120px;
  padding-bottom: 64px;
}

.psq-subhero--light .psq-subhero__headline {
  color: var(--psq-fg-light-1);
}

.psq-subhero--light .psq-subhero__subhead {
  color: var(--psq-fg-light-2);
}

.psq-subhero--light .psq-eyebrow {
  color: var(--psq-teal-aa);
}

/* Split subhero with image */
.psq-subhero--split .psq-subhero__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
  align-items: center;
  max-width: var(--psq-container);
  margin: 0 auto;
  padding: 0 24px;
}

.psq-subhero__image {
  border-radius: var(--psq-radius-lg);
  overflow: hidden;
  aspect-ratio: 16/9;
}

.psq-subhero__image img {
  width: 100%;
  height: auto;
  display: block;
}

/* =============================================================
   PROBLEM STRIP — STAT BAND
   ============================================================= */
.psq-stat-strip {
  background: var(--psq-navy-alt);
  padding: 64px 0;
  border-top: 1px solid var(--psq-border-dark);
  border-bottom: 1px solid var(--psq-border-dark);
}

.psq-stat-strip__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  max-width: var(--psq-container);
  margin: 0 auto;
  padding: 0 24px;
}

.psq-stat-strip__item {
  padding: 16px 32px;
  text-align: center;
}

.psq-stat-strip__item + .psq-stat-strip__item {
  border-left: 1px solid var(--psq-border-dark);
}

.psq-stat-strip__value {
  font-family: "Inter Tight", Inter, system-ui, sans-serif;
  font-size: 2.75rem;
  font-weight: 700;
  color: var(--psq-teal);
  line-height: 1;
  margin-bottom: 10px;
  letter-spacing: -0.02em;
}

.psq-stat-strip__label {
  font-size: 0.9rem;
  color: var(--psq-fg-dark-2);
  line-height: 1.5;
}

/* =============================================================
   HOW IT WORKS — NUMBERED STEPS
   ============================================================= */
.psq-steps {
  background: var(--psq-navy);
  padding: 96px 0;
}

.psq-steps__header {
  text-align: center;
  margin-bottom: 64px;
}

.psq-steps__headline {
  font-size: 2.25rem;
  color: var(--psq-fg-dark-1);
  margin-bottom: 0;
}

.psq-steps__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: var(--psq-border-dark);
  border: 1px solid var(--psq-border-dark);
  border-radius: var(--psq-radius-lg);
  overflow: hidden;
}

.psq-steps__step {
  background: var(--psq-navy);
  padding: 36px 28px;
}

.psq-steps__num {
  font-family: "IBM Plex Mono", "JetBrains Mono", monospace;
  font-size: 0.8125rem;
  color: var(--psq-teal);
  font-weight: 500;
  margin-bottom: 16px;
  letter-spacing: 0.04em;
}

.psq-steps__title {
  font-size: 1.125rem;
  font-family: "Inter Tight", Inter, system-ui, sans-serif;
  font-weight: 600;
  color: var(--psq-fg-dark-1);
  margin-bottom: 10px;
  letter-spacing: -0.01em;
}

.psq-steps__body {
  font-size: 0.9rem;
  color: var(--psq-fg-dark-2);
  line-height: 1.65;
}

/* =============================================================
   VARIANT OUTPUT TABLE — INLINE MOCK
   ============================================================= */
.psq-output-section {
  background: var(--psq-navy-alt);
  padding: 96px 0;
}

.psq-output-section__header {
  text-align: center;
  margin-bottom: 48px;
}

.psq-output-section__headline {
  font-size: 2.25rem;
  color: var(--psq-fg-dark-1);
}

.psq-output-section__sub {
  color: var(--psq-fg-dark-2);
  margin-top: 12px;
}

/* Terminal window mock */
.psq-term {
  background: #0B1A2E;
  border: 1px solid var(--psq-border-dark);
  border-radius: var(--psq-radius-lg);
  overflow: hidden;
  max-width: 900px;
  margin: 0 auto;
  box-shadow: 0 24px 64px rgba(0,0,0,0.5);
}

.psq-term__chrome {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 12px 16px;
  background: #0D1F36;
  border-bottom: 1px solid var(--psq-border-dark);
}

.psq-term__dot {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  flex-shrink: 0;
}

.psq-term__dot--red { background: #FF5F57; }
.psq-term__dot--yellow { background: #FFBD2E; }
.psq-term__dot--green { background: #28C840; }

.psq-term__title {
  font-family: "IBM Plex Mono", monospace;
  font-size: 0.75rem;
  color: var(--psq-fg-dark-m);
  margin-left: 8px;
}

.psq-term__body {
  padding: 20px;
  overflow-x: auto;
}

/* Variant output table */
.psq-vtable {
  width: 100%;
  border-collapse: collapse;
  font-family: "IBM Plex Mono", "JetBrains Mono", monospace;
  font-size: 0.8125rem;
  line-height: 1.45;
}

.psq-vtable thead th {
  text-align: left;
  padding: 8px 12px;
  color: var(--psq-teal);
  font-size: 0.75rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  border-bottom: 1px solid var(--psq-border-dark);
  white-space: nowrap;
}

.psq-vtable tbody td {
  padding: 9px 12px;
  color: var(--psq-fg-dark-1);
  border-bottom: 1px solid rgba(139,170,200,0.06);
  white-space: nowrap;
}

.psq-vtable tbody tr:hover td {
  background: rgba(0,196,180,0.04);
}

.psq-vtable tbody tr:last-child td { border-bottom: none; }

.psq-vtable .psq-vt-rank { color: var(--psq-fg-dark-m); }
.psq-vtable .psq-vt-mut { color: var(--psq-teal); font-weight: 500; }
.psq-vtable .psq-vt-neg { color: var(--psq-crimson); }
.psq-vtable .psq-vt-pos { color: var(--psq-teal); }
.psq-vtable .psq-vt-conf-hi { color: #00C4B4; }
.psq-vtable .psq-vt-conf-mid { color: var(--psq-amber); }

.psq-vt-btn {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px 10px;
  border-radius: 4px;
  background: #082830;
  color: #00C4B4;
  font-size: 0.75rem;
  cursor: pointer;
  border: 1px solid rgba(0,196,180,0.35);
  font-family: inherit;
  transition: background var(--psq-transition);
}

.psq-vt-btn:hover { background: rgba(0,196,180,0.22); }

/* =============================================================
   USE CASES GRID — LIGHT
   ============================================================= */
.psq-cards-section {
  padding: 96px 0;
}

.psq-cards-section--light { background: var(--psq-light); }
.psq-cards-section--white { background: var(--psq-white); }

.psq-cards-section__header {
  text-align: center;
  margin-bottom: 48px;
  max-width: 640px;
  margin-left: auto;
  margin-right: auto;
}

.psq-cards-section__headline {
  font-size: 2rem;
  color: var(--psq-fg-light-1);
  margin-bottom: 12px;
}

.psq-cards-section__sub {
  color: var(--psq-fg-light-2);
}

.psq-cards-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  max-width: var(--psq-container);
  margin: 0 auto;
  padding: 0 24px;
}

.psq-card {
  background: var(--psq-white);
  border: 1px solid var(--psq-border-light);
  border-radius: var(--psq-radius-lg);
  padding: 32px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  transition: box-shadow var(--psq-transition), border-color var(--psq-transition);
}

.psq-card:hover {
  box-shadow: 0 8px 32px rgba(10,22,40,0.10);
  border-color: rgba(10,22,40,0.18);
}

.psq-card__icon {
  width: 48px;
  height: 48px;
  background: rgba(0,122,110,0.1);
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--psq-teal-aa);
  font-size: 1.25rem;
  flex-shrink: 0;
}

.psq-card__title {
  font-size: 1.125rem;
  font-family: "Inter Tight", Inter, system-ui, sans-serif;
  font-weight: 600;
  color: var(--psq-fg-light-1);
  letter-spacing: -0.01em;
}

.psq-card__body {
  font-size: 0.9375rem;
  color: var(--psq-fg-light-2);
  line-height: 1.68;
  flex: 1;
}

.psq-card__link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--psq-teal-aa);
  margin-top: 4px;
}

.psq-card__link:hover { color: #005A51; }
.psq-card__link i { transition: transform 0.15s ease; }
.psq-card__link:hover i { transform: translateX(3px); }

/* Card dark variant */
.psq-card--dark {
  background: var(--psq-navy-alt);
  border-color: var(--psq-border-dark);
}

.psq-card--dark:hover {
  box-shadow: 0 8px 32px rgba(0,0,0,0.3);
  border-color: rgba(0,196,180,0.3);
}

.psq-card--dark .psq-card__icon {
  background: rgba(0,196,180,0.12);
  color: var(--psq-teal);
}

.psq-card--dark .psq-card__title { color: var(--psq-fg-dark-1); }
.psq-card--dark .psq-card__body { color: var(--psq-fg-dark-2); }
.psq-card--dark .psq-card__link { color: var(--psq-teal); }
.psq-card--dark .psq-card__link:hover { color: #00D6C5; }

/* =============================================================
   TRUST SIGNALS
   ============================================================= */
.psq-trust {
  background: var(--psq-light);
  padding: 56px 0;
  border-top: 1px solid var(--psq-border-light);
}

.psq-trust__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  max-width: var(--psq-container);
  margin: 0 auto;
  padding: 0 24px;
}

.psq-trust__item {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 16px 24px;
}

.psq-trust__item + .psq-trust__item {
  border-left: 1px solid var(--psq-border-light);
}

.psq-trust__icon {
  width: 36px;
  height: 36px;
  background: rgba(0,122,110,0.1);
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--psq-teal-aa);
  flex-shrink: 0;
  font-size: 0.875rem;
}

.psq-trust__text {
  font-size: 0.875rem;
  color: var(--psq-fg-light-2);
  line-height: 1.55;
}

.psq-trust__text strong {
  display: block;
  color: var(--psq-fg-light-1);
  font-weight: 600;
  font-size: 0.9rem;
  margin-bottom: 2px;
}

/* =============================================================
   CTA STRIP — DARK
   ============================================================= */
.psq-cta-strip {
  background: var(--psq-navy);
  padding: 80px 0;
  text-align: center;
  border-top: 1px solid var(--psq-border-dark);
}

.psq-cta-strip__inner {
  max-width: 600px;
  margin: 0 auto;
  padding: 0 24px;
}

.psq-cta-strip__headline {
  font-size: 2rem;
  font-family: "Inter Tight", Inter, system-ui, sans-serif;
  font-weight: 700;
  color: var(--psq-fg-dark-1);
  margin-bottom: 12px;
  letter-spacing: -0.02em;
}

.psq-cta-strip__body {
  color: var(--psq-fg-dark-2);
  margin-bottom: 32px;
  font-size: 1.0625rem;
}

.psq-cta-strip__actions {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  flex-wrap: wrap;
}

/* =============================================================
   PLATFORM PIPELINE SVG DIAGRAM
   ============================================================= */
.psq-pipeline {
  background: var(--psq-navy-alt);
  padding: 80px 0;
  border-top: 1px solid var(--psq-border-dark);
  border-bottom: 1px solid var(--psq-border-dark);
}

.psq-pipeline__header {
  text-align: center;
  margin-bottom: 56px;
}

.psq-pipeline__headline {
  font-size: 2rem;
  color: var(--psq-fg-dark-1);
}

.psq-pipeline__diagram {
  max-width: 900px;
  margin: 0 auto;
  padding: 0 24px;
  overflow-x: auto;
}

/* Inline SVG pipeline boxes */
.psq-pipeline-svg {
  width: 100%;
  min-width: 700px;
}

/* =============================================================
   PLATFORM FEATURE SECTIONS
   ============================================================= */
.psq-feature-section {
  padding: 80px 0;
}

.psq-feature-section--dark { background: var(--psq-navy); }
.psq-feature-section--dark-alt { background: var(--psq-navy-alt); }
.psq-feature-section--light { background: var(--psq-light); }

.psq-feature-section__inner {
  max-width: var(--psq-container);
  margin: 0 auto;
  padding: 0 24px;
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: 64px;
  align-items: start;
}

.psq-feature-section__label {
  font-family: "IBM Plex Mono", monospace;
  font-size: 0.8125rem;
  color: var(--psq-fg-dark-m);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom: 16px;
}

.psq-feature-section--light .psq-feature-section__label {
  color: var(--psq-teal-aa);
}

.psq-feature-section__headline {
  font-size: 1.875rem;
  color: var(--psq-fg-dark-1);
  margin-bottom: 16px;
  letter-spacing: -0.015em;
}

.psq-feature-section--light .psq-feature-section__headline {
  color: var(--psq-fg-light-1);
}

.psq-feature-section__body {
  font-size: 0.9375rem;
  color: var(--psq-fg-dark-2);
  line-height: 1.7;
}

.psq-feature-section--light .psq-feature-section__body {
  color: var(--psq-fg-light-2);
}

.psq-feature-list {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 8px;
}

.psq-feature-list li {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  font-size: 0.9375rem;
  color: var(--psq-fg-dark-2);
  line-height: 1.6;
}

.psq-feature-section--light .psq-feature-list li {
  color: var(--psq-fg-light-2);
}

.psq-feature-list li::before {
  content: '';
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--psq-teal);
  margin-top: 8px;
  flex-shrink: 0;
}

.psq-feature-section--light .psq-feature-list li::before {
  background: var(--psq-teal-aa);
}

/* Integration chips */
.psq-integrations-list {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.psq-integrations-list li {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 0.9375rem;
  line-height: 1.6;
}

.psq-integrations-list .psq-int-icon {
  color: var(--psq-teal-aa);
  flex-shrink: 0;
  margin-top: 2px;
}

.psq-feature-section--light .psq-integrations-list li {
  color: var(--psq-fg-light-2);
}

/* =============================================================
   SCIENCE PAGE SECTIONS
   ============================================================= */
.psq-science-section {
  padding: 80px 0;
}

.psq-science-section--dark { background: var(--psq-navy); }
.psq-science-section--dark-alt { background: var(--psq-navy-alt); }
.psq-science-section--light { background: var(--psq-light); }
.psq-science-section--white { background: var(--psq-white); }

.psq-science-section__inner {
  max-width: var(--psq-container);
  margin: 0 auto;
  padding: 0 24px;
}

.psq-science-section__eyebrow {
  font-size: 0.8125rem;
  font-family: "IBM Plex Mono", monospace;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin-bottom: 14px;
}

.psq-science-section--dark .psq-science-section__eyebrow,
.psq-science-section--dark-alt .psq-science-section__eyebrow { color: var(--psq-teal); }
.psq-science-section--light .psq-science-section__eyebrow,
.psq-science-section--white .psq-science-section__eyebrow { color: var(--psq-teal-aa); }

.psq-science-section__headline {
  font-size: 2rem;
  margin-bottom: 24px;
}

.psq-science-section--dark .psq-science-section__headline,
.psq-science-section--dark-alt .psq-science-section__headline { color: var(--psq-fg-dark-1); }
.psq-science-section--light .psq-science-section__headline,
.psq-science-section--white .psq-science-section__headline { color: var(--psq-fg-light-1); }

.psq-science-body {
  font-size: 1.0625rem;
  line-height: 1.75;
  max-width: 760px;
}

.psq-science-section--dark .psq-science-body,
.psq-science-section--dark-alt .psq-science-body { color: var(--psq-fg-dark-2); }
.psq-science-section--light .psq-science-body,
.psq-science-section--white .psq-science-body { color: var(--psq-fg-light-2); }

.psq-science-body p + p { margin-top: 16px; }

/* Benchmark card */
.psq-benchmark-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin-top: 40px;
}

.psq-benchmark-card {
  background: var(--psq-white);
  border: 1px solid var(--psq-border-light);
  border-radius: var(--psq-radius-lg);
  padding: 28px 24px;
}

.psq-benchmark-card__value {
  font-size: 2rem;
  font-family: "Inter Tight", Inter, system-ui, sans-serif;
  font-weight: 700;
  color: var(--psq-teal-aa);
  letter-spacing: -0.02em;
  margin-bottom: 6px;
}

.psq-benchmark-card__metric {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--psq-fg-light-1);
  margin-bottom: 6px;
}

.psq-benchmark-card__desc {
  font-size: 0.8125rem;
  color: var(--psq-fg-light-2);
  line-height: 1.55;
}

/* Limitations note */
.psq-limitations-note {
  background: rgba(0,122,110,0.08);
  border: 1px solid rgba(0,122,110,0.2);
  border-radius: var(--psq-radius-lg);
  padding: 24px 28px;
  margin-top: 40px;
}

.psq-limitations-note__title {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--psq-teal-aa);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-bottom: 8px;
}

.psq-limitations-note__body {
  font-size: 0.9375rem;
  color: var(--psq-fg-light-2);
  line-height: 1.65;
}

/* Heatmap image section */
.psq-science-visual {
  margin-top: 48px;
  border-radius: var(--psq-radius-lg);
  overflow: hidden;
}

.psq-science-visual img {
  width: 100%;
  height: auto;
  display: block;
}

/* =============================================================
   USE CASE PAGES
   ============================================================= */
.psq-usecase-workflow {
  background: var(--psq-navy-alt);
  padding: 80px 0;
  border-top: 1px solid var(--psq-border-dark);
}

.psq-usecase-workflow__inner {
  max-width: var(--psq-container);
  margin: 0 auto;
  padding: 0 24px;
}

.psq-usecase-workflow__headline {
  font-size: 2rem;
  color: var(--psq-fg-dark-1);
  margin-bottom: 40px;
}

.psq-workflow-steps {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}

.psq-workflow-step {
  background: rgba(10,22,40,0.5);
  border: 1px solid var(--psq-border-dark);
  border-radius: var(--psq-radius-lg);
  padding: 28px;
}

.psq-workflow-step__num {
  font-family: "IBM Plex Mono", monospace;
  font-size: 0.8125rem;
  color: var(--psq-teal);
  font-weight: 500;
  margin-bottom: 12px;
}

.psq-workflow-step__title {
  font-size: 1.0625rem;
  font-family: "Inter Tight", Inter, system-ui, sans-serif;
  font-weight: 600;
  color: var(--psq-fg-dark-1);
  margin-bottom: 8px;
}

.psq-workflow-step__body {
  font-size: 0.9rem;
  color: var(--psq-fg-dark-2);
  line-height: 1.62;
}

.psq-usecase-results {
  background: var(--psq-light);
  padding: 80px 0;
}

.psq-usecase-results__inner {
  max-width: var(--psq-container);
  margin: 0 auto;
  padding: 0 24px;
}

.psq-usecase-results__headline {
  font-size: 2rem;
  color: var(--psq-fg-light-1);
  margin-bottom: 12px;
}

.psq-usecase-results__sub {
  color: var(--psq-fg-light-2);
  margin-bottom: 40px;
  font-size: 1.0625rem;
}

.psq-results-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}

.psq-result-card {
  background: var(--psq-white);
  border: 1px solid var(--psq-border-light);
  border-radius: var(--psq-radius-lg);
  padding: 28px 24px;
}

.psq-result-card__value {
  font-size: 2.5rem;
  font-family: "Inter Tight", Inter, system-ui, sans-serif;
  font-weight: 700;
  color: var(--psq-teal-aa);
  letter-spacing: -0.02em;
  line-height: 1;
  margin-bottom: 8px;
}

.psq-result-card__label {
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--psq-fg-light-1);
  margin-bottom: 6px;
}

.psq-result-card__desc {
  font-size: 0.8125rem;
  color: var(--psq-fg-light-2);
  line-height: 1.55;
}

/* =============================================================
   PRICING
   ============================================================= */
.psq-pricing-tiers {
  background: var(--psq-white);
  padding: 80px 0;
}

.psq-pricing-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 24px;
  max-width: var(--psq-container);
  margin: 0 auto;
  padding: 0 24px;
  margin-top: 48px;
}

.psq-tier {
  background: var(--psq-light);
  border: 1px solid var(--psq-border-light);
  border-radius: var(--psq-radius-lg);
  padding: 32px;
  display: flex;
  flex-direction: column;
  gap: 24px;
  position: relative;
}

.psq-tier--highlighted {
  background: var(--psq-white);
  border-color: var(--psq-teal-aa);
  box-shadow: 0 0 0 1px var(--psq-teal-aa), 0 12px 40px rgba(0,122,110,0.12);
}

.psq-tier__badge {
  position: absolute;
  top: -12px;
  left: 50%;
  transform: translateX(-50%);
  background: var(--psq-teal-aa);
  color: #fff;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  padding: 3px 14px;
  border-radius: 100px;
  white-space: nowrap;
}

.psq-tier__name {
  font-size: 1.125rem;
  font-family: "Inter Tight", Inter, system-ui, sans-serif;
  font-weight: 600;
  color: var(--psq-fg-light-1);
  letter-spacing: -0.01em;
}

.psq-tier__price-block {
  display: flex;
  align-items: baseline;
  gap: 4px;
}

.psq-tier__price {
  font-size: 2.75rem;
  font-family: "Inter Tight", Inter, system-ui, sans-serif;
  font-weight: 700;
  color: var(--psq-fg-light-1);
  letter-spacing: -0.02em;
}

.psq-tier__billing {
  font-size: 0.875rem;
  color: var(--psq-fg-light-2);
}

.psq-tier__description {
  font-size: 0.9rem;
  color: var(--psq-fg-light-2);
  line-height: 1.6;
}

.psq-tier__features {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 9px;
  flex: 1;
}

.psq-tier__features li {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  font-size: 0.9rem;
  color: var(--psq-fg-light-1);
  line-height: 1.55;
}

.psq-tier__features li::before {
  content: '';
  width: 16px;
  height: 16px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='%23007A6E' d='M13.5 3.5L6 11 2.5 7.5l-1 1L6 13l8.5-8.5-1-1z'/%3E%3C/svg%3E") center/contain no-repeat;
  flex-shrink: 0;
  margin-top: 2px;
}

.psq-tier__cta {
  margin-top: auto;
}

.psq-tier__cta .psq-btn {
  width: 100%;
  justify-content: center;
}

/* Pricing FAQ */
.psq-faq {
  background: var(--psq-light);
  padding: 80px 0;
}

.psq-faq__inner {
  max-width: 760px;
  margin: 0 auto;
  padding: 0 24px;
}

.psq-faq__headline {
  font-size: 2rem;
  color: var(--psq-fg-light-1);
  margin-bottom: 40px;
}

.psq-faq__list {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.psq-faq__item {
  background: var(--psq-white);
  border: 1px solid var(--psq-border-light);
  border-radius: var(--psq-radius);
  overflow: hidden;
}

.psq-faq__question {
  width: 100%;
  background: transparent;
  border: none;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  padding: 20px 24px;
  cursor: pointer;
  font-family: inherit;
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--psq-fg-light-1);
  text-align: left;
}

.psq-faq__question:hover { background: rgba(10,22,40,0.03); }

.psq-faq__icon {
  color: var(--psq-teal-aa);
  flex-shrink: 0;
  transition: transform 0.2s ease;
}

.psq-faq__item.is-open .psq-faq__icon { transform: rotate(45deg); }

.psq-faq__answer {
  display: none;
  padding: 0 24px 20px;
  font-size: 0.9375rem;
  color: var(--psq-fg-light-2);
  line-height: 1.7;
  border-top: 1px solid var(--psq-border-light);
  margin-top: 0;
  padding-top: 16px;
}

.psq-faq__item.is-open .psq-faq__answer { display: block; }

/* =============================================================
   ABOUT PAGE
   ============================================================= */
.psq-mission-section {
  background: var(--psq-navy-alt);
  padding: 80px 0;
  border-top: 1px solid var(--psq-border-dark);
}

.psq-mission-section__inner {
  max-width: var(--psq-container);
  margin: 0 auto;
  padding: 0 24px;
  display: grid;
  grid-template-columns: 1fr 1.5fr;
  gap: 64px;
  align-items: start;
}

.psq-mission-section__headline {
  font-size: 2rem;
  color: var(--psq-fg-dark-1);
  margin-bottom: 0;
}

.psq-mission-section__body {
  font-size: 1.0625rem;
  color: var(--psq-fg-dark-2);
  line-height: 1.75;
}

.psq-mission-section__body p + p { margin-top: 16px; }

/* Team cards */
.psq-team-section {
  background: var(--psq-light);
  padding: 80px 0;
}

.psq-team-section__inner {
  max-width: var(--psq-container);
  margin: 0 auto;
  padding: 0 24px;
}

.psq-team-section__headline {
  font-size: 2rem;
  color: var(--psq-fg-light-1);
  margin-bottom: 40px;
}

.psq-team-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}

.psq-team-card {
  background: var(--psq-white);
  border: 1px solid var(--psq-border-light);
  border-radius: var(--psq-radius-lg);
  padding: 28px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.psq-team-card__portrait {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  overflow: hidden;
  flex-shrink: 0;
  background: var(--psq-navy-alt);
}

.psq-team-card__portrait img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.psq-team-card__name {
  font-size: 1.0625rem;
  font-family: "Inter Tight", Inter, system-ui, sans-serif;
  font-weight: 600;
  color: var(--psq-fg-light-1);
  letter-spacing: -0.01em;
}

.psq-team-card__title {
  font-size: 0.8125rem;
  color: var(--psq-teal-aa);
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-top: 2px;
}

.psq-team-card__bio {
  font-size: 0.9rem;
  color: var(--psq-fg-light-2);
  line-height: 1.65;
}

/* Location strip */
.psq-location-section {
  background: var(--psq-light);
  padding: 64px 0;
  border-top: 1px solid var(--psq-border-light);
}

.psq-location-section__inner {
  max-width: var(--psq-container);
  margin: 0 auto;
  padding: 0 24px;
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 48px;
  align-items: center;
}

.psq-location-section__text {
  font-size: 1.0625rem;
  color: var(--psq-fg-light-2);
  line-height: 1.75;
}

.psq-location-section__text p + p { margin-top: 12px; }

.psq-location-section__address {
  font-size: 0.875rem;
  color: var(--psq-fg-light-2);
  margin-top: 12px;
  display: flex;
  gap: 6px;
  align-items: flex-start;
}

.psq-location-section__address i { color: var(--psq-teal-aa); margin-top: 2px; flex-shrink: 0; }

.psq-location-section__img {
  border-radius: var(--psq-radius-lg);
  overflow: hidden;
  aspect-ratio: 16/9;
}

.psq-location-section__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* =============================================================
   RESEARCH PAGE
   ============================================================= */
.psq-research-section {
  padding: 80px 0;
}

.psq-research-section--light { background: var(--psq-light); }
.psq-research-section--white { background: var(--psq-white); }

.psq-research-section__inner {
  max-width: var(--psq-container);
  margin: 0 auto;
  padding: 0 24px;
}

.psq-research-section__headline {
  font-size: 2rem;
  color: var(--psq-fg-light-1);
  margin-bottom: 32px;
}

.psq-research-section__intro {
  font-size: 1.0625rem;
  color: var(--psq-fg-light-2);
  line-height: 1.7;
  max-width: 700px;
  margin-bottom: 40px;
}

.psq-doc-cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}

.psq-doc-card {
  background: var(--psq-white);
  border: 1px solid var(--psq-border-light);
  border-radius: var(--psq-radius-lg);
  padding: 24px;
}

.psq-research-section--white .psq-doc-card {
  background: var(--psq-light);
}

.psq-doc-card__type-badge {
  display: inline-block;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: var(--psq-teal-aa);
  background: rgba(0,122,110,0.1);
  padding: 3px 10px;
  border-radius: 100px;
  margin-bottom: 12px;
  text-transform: uppercase;
}

.psq-doc-card__title {
  font-size: 1rem;
  font-family: "Inter Tight", Inter, system-ui, sans-serif;
  font-weight: 600;
  color: var(--psq-fg-light-1);
  line-height: 1.4;
  margin-bottom: 8px;
}

.psq-doc-card__date {
  font-size: 0.8125rem;
  color: var(--psq-fg-light-2);
  font-family: "IBM Plex Mono", monospace;
}

.psq-poster-cards {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
}

.psq-poster-card {
  background: var(--psq-white);
  border: 1px solid var(--psq-border-light);
  border-radius: var(--psq-radius-lg);
  padding: 28px;
}

.psq-poster-card__title {
  font-size: 1.0625rem;
  font-family: "Inter Tight", Inter, system-ui, sans-serif;
  font-weight: 600;
  color: var(--psq-fg-light-1);
  margin-bottom: 10px;
  line-height: 1.4;
}

.psq-poster-card__venue {
  font-size: 0.875rem;
  color: var(--psq-fg-light-2);
  margin-bottom: 4px;
}

.psq-poster-card__meta {
  display: flex;
  gap: 16px;
  font-size: 0.8125rem;
  color: var(--psq-fg-light-2);
  font-family: "IBM Plex Mono", monospace;
}

/* Attribution list */
.psq-attribution-list {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.psq-attribution-list li {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  font-size: 0.9375rem;
  color: var(--psq-fg-light-2);
  line-height: 1.6;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--psq-border-light);
}

.psq-attribution-list li:last-child { border-bottom: none; }

.psq-attribution-list li .psq-att-icon {
  color: var(--psq-teal-aa);
  flex-shrink: 0;
  margin-top: 2px;
}

/* =============================================================
   CONTACT PAGE
   ============================================================= */
.psq-contact-section {
  padding: 80px 0;
}

.psq-contact-section--white { background: var(--psq-white); }
.psq-contact-section--light { background: var(--psq-light); }

.psq-contact-section__inner {
  max-width: var(--psq-container);
  margin: 0 auto;
  padding: 0 24px;
}

.psq-form-section__headline {
  font-size: 1.875rem;
  color: var(--psq-fg-light-1);
  margin-bottom: 28px;
}

.psq-form-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.psq-form-label {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--psq-fg-light-1);
}

.psq-form-label .psq-optional {
  font-weight: 400;
  color: var(--psq-fg-light-2);
  margin-left: 4px;
}

.psq-form-input {
  padding: 10px 14px;
  border: 1.5px solid var(--psq-border-light);
  border-radius: var(--psq-radius);
  font-family: Inter, system-ui, sans-serif;
  font-size: 0.9375rem;
  color: var(--psq-fg-light-1);
  background: var(--psq-white);
  transition: border-color var(--psq-transition), box-shadow var(--psq-transition);
  max-width: 100%;
}

.psq-form-input:focus {
  outline: none;
  border-color: var(--psq-teal-aa);
  box-shadow: 0 0 0 3px rgba(0,122,110,0.12);
}

.psq-form-textarea {
  padding: 10px 14px;
  border: 1.5px solid var(--psq-border-light);
  border-radius: var(--psq-radius);
  font-family: Inter, system-ui, sans-serif;
  font-size: 0.9375rem;
  color: var(--psq-fg-light-1);
  background: var(--psq-white);
  transition: border-color var(--psq-transition), box-shadow var(--psq-transition);
  resize: vertical;
  min-height: 120px;
  max-width: 100%;
}

.psq-form-textarea:focus {
  outline: none;
  border-color: var(--psq-teal-aa);
  box-shadow: 0 0 0 3px rgba(0,122,110,0.12);
}

.psq-contact-aside__headline {
  font-size: 1.375rem;
  color: var(--psq-fg-light-1);
  margin-bottom: 24px;
}

.psq-contact-info-list {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.psq-contact-info-list li {
  display: flex;
  gap: 14px;
  align-items: flex-start;
}

.psq-contact-info-list .psq-ci-icon {
  width: 40px;
  height: 40px;
  background: rgba(0,122,110,0.1);
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--psq-teal-aa);
  flex-shrink: 0;
}

.psq-contact-info-list .psq-ci-label {
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--psq-fg-light-2);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-bottom: 4px;
}

.psq-contact-info-list .psq-ci-value {
  font-size: 0.9375rem;
  color: var(--psq-fg-light-1);
  line-height: 1.5;
}

.psq-contact-info-list a {
  color: var(--psq-teal-aa);
}

.psq-contact-info-list a:hover {
  color: var(--psq-fg-light-1);
  text-decoration: underline;
}

/* =============================================================
   BLOG
   ============================================================= */
.psq-blog-hero {
  background: var(--psq-light);
  padding-top: 120px;
  padding-bottom: 56px;
}

.psq-blog-hero__inner {
  max-width: var(--psq-container);
  margin: 0 auto;
  padding: 0 24px;
}

.psq-blog-hero__headline {
  font-size: 2.5rem;
  color: var(--psq-fg-light-1);
  margin-bottom: 12px;
}

.psq-blog-hero__sub {
  font-size: 1.0625rem;
  color: var(--psq-fg-light-2);
}

.psq-blog-grid-section {
  background: var(--psq-white);
  padding: 64px 0 96px;
}

.psq-blog-grid-section__inner {
  max-width: var(--psq-container);
  margin: 0 auto;
  padding: 0 24px;
}

.psq-blog-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
}

.psq-blog-card {
  background: var(--psq-white);
  border: 1px solid var(--psq-border-light);
  border-radius: var(--psq-radius-lg);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: box-shadow var(--psq-transition), border-color var(--psq-transition);
}

.psq-blog-card:hover {
  box-shadow: 0 8px 32px rgba(10,22,40,0.1);
  border-color: rgba(10,22,40,0.18);
}

.psq-blog-card__img-wrap {
  aspect-ratio: 16/9;
  overflow: hidden;
  background: var(--psq-navy-alt);
}

.psq-blog-card__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.3s ease;
}

.psq-blog-card:hover .psq-blog-card__img { transform: scale(1.03); }

.psq-blog-card__body {
  padding: 20px 20px 24px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  flex: 1;
}

.psq-blog-card__topic {
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: var(--psq-teal-aa);
  text-transform: uppercase;
}

.psq-blog-card__title {
  font-size: 1.0625rem;
  font-family: "Inter Tight", Inter, system-ui, sans-serif;
  font-weight: 600;
  color: var(--psq-fg-light-1);
  line-height: 1.35;
  letter-spacing: -0.01em;
}

.psq-blog-card__title:hover { color: var(--psq-teal-aa); }

.psq-blog-card__summary {
  font-size: 0.875rem;
  color: var(--psq-fg-light-2);
  line-height: 1.6;
  flex: 1;
}

.psq-blog-card__meta {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 0.8125rem;
  color: var(--psq-fg-light-2);
  font-family: "IBM Plex Mono", monospace;
  margin-top: auto;
}

/* Blog article page */
.psq-blog-article-hero {
  background: var(--psq-light);
  padding-top: 120px;
  padding-bottom: 48px;
}

.psq-blog-article-hero__inner {
  max-width: 840px;
  margin: 0 auto;
  padding: 0 24px;
}

.psq-blog-article-hero__topic {
  display: inline-block;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: var(--psq-teal-aa);
  background: rgba(0,122,110,0.1);
  padding: 3px 12px;
  border-radius: 100px;
  text-transform: uppercase;
  margin-bottom: 16px;
}

.psq-blog-article-hero__headline {
  font-size: 2.25rem;
  color: var(--psq-fg-light-1);
  line-height: 1.2;
  letter-spacing: -0.02em;
  margin-bottom: 16px;
}

.psq-blog-article-hero__summary {
  font-size: 1.125rem;
  color: var(--psq-fg-light-2);
  line-height: 1.7;
  margin-bottom: 20px;
}

.psq-blog-article-hero__meta {
  display: flex;
  align-items: center;
  gap: 20px;
  font-size: 0.875rem;
  color: var(--psq-fg-light-2);
  font-family: "IBM Plex Mono", monospace;
}

.psq-blog-article-section {
  background: var(--psq-white);
  padding: 56px 0 80px;
}

.psq-blog-article__cover-wrap {
  max-width: 840px;
  margin: 0 auto 48px;
  padding: 0 24px;
}

.psq-blog-article__cover {
  width: 100%;
  height: auto;
  display: block;
  border-radius: var(--psq-radius-lg);
  margin: 0 auto;
}

.psq-blog-article {
  max-width: 760px;
  margin: 0 auto;
  padding: 0 24px;
}

/* Article body typography — light-top scope per shared_containers contract */
body.psq-page--light-top .psq-blog-article h2 {
  font-size: 1.5rem;
  color: var(--psq-fg-light-1);
  margin-top: 40px;
  margin-bottom: 14px;
  font-family: "Inter Tight", Inter, system-ui, sans-serif;
  font-weight: 600;
  letter-spacing: -0.015em;
}

body.psq-page--light-top .psq-blog-article h3 {
  font-size: 1.2rem;
  color: var(--psq-fg-light-1);
  margin-top: 28px;
  margin-bottom: 10px;
  font-family: "Inter Tight", Inter, system-ui, sans-serif;
  font-weight: 600;
}

body.psq-page--light-top .psq-blog-article p {
  font-size: 1.0625rem;
  color: var(--psq-fg-light-2);
  line-height: 1.78;
  margin-bottom: 20px;
}

body.psq-page--light-top .psq-blog-article li {
  font-size: 1.0625rem;
  color: var(--psq-fg-light-2);
  line-height: 1.7;
  margin-bottom: 6px;
}

body.psq-page--light-top .psq-blog-article a:not([class*="psq-btn"]) {
  color: var(--psq-teal-aa);
  text-decoration: underline;
  text-underline-offset: 2px;
}

body.psq-page--light-top .psq-blog-article code {
  font-family: "IBM Plex Mono", monospace;
  font-size: 0.875em;
  background: var(--psq-light);
  padding: 1px 6px;
  border-radius: 4px;
  color: var(--psq-teal-aa);
}

/* Related articles */
.psq-blog-related {
  background: var(--psq-light);
  padding: 64px 0;
}

.psq-blog-related__inner {
  max-width: var(--psq-container);
  margin: 0 auto;
  padding: 0 24px;
}

.psq-blog-related__headline {
  font-size: 1.5rem;
  color: var(--psq-fg-light-1);
  margin-bottom: 28px;
}

.psq-blog-related__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}

/* =============================================================
   LOGIN / AUTH PAGES
   ============================================================= */
.psq-auth-layout {
  min-height: 100vh;
  background: var(--psq-navy);
  display: grid;
  grid-template-columns: 1fr 1fr;
}

.psq-auth-side {
  background: var(--psq-navy);
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(48px, 8vw, 96px);
  position: relative;
  overflow: hidden;
}

.psq-auth-side__logo {
  position: absolute;
  top: 36px;
  left: clamp(36px, 6vw, 80px);
}

.psq-auth-side__logo img {
  height: 32px;
  width: auto;
}

.psq-auth-side__content {
  max-width: 420px;
}

.psq-auth-side__headline {
  font-size: 2.25rem;
  font-family: "Inter Tight", Inter, system-ui, sans-serif;
  font-weight: 700;
  color: var(--psq-fg-dark-1);
  letter-spacing: -0.02em;
  margin-bottom: 20px;
}

.psq-auth-side__features {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 14px;
  margin-top: 8px;
}

.psq-auth-side__features li {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  font-size: 0.9375rem;
  color: var(--psq-fg-dark-2);
  line-height: 1.6;
}

.psq-auth-side__features li .psq-af-icon {
  color: var(--psq-teal);
  flex-shrink: 0;
  margin-top: 2px;
}

.psq-auth-panel {
  background: var(--psq-navy-alt);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  padding: clamp(48px, 6vw, 80px);
  border-left: 1px solid var(--psq-border-dark);
}

.psq-auth-panel__inner {
  width: 100%;
  max-width: 400px;
}

.psq-auth-panel__headline {
  font-size: 1.875rem;
  font-family: "Inter Tight", Inter, system-ui, sans-serif;
  font-weight: 700;
  color: var(--psq-fg-dark-1);
  margin-bottom: 8px;
  letter-spacing: -0.02em;
}

.psq-auth-panel__sub {
  font-size: 0.9375rem;
  color: var(--psq-fg-dark-2);
  margin-bottom: 28px;
}

.psq-auth-form {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.psq-auth-form .psq-form-label {
  color: var(--psq-fg-dark-2);
  font-size: 0.8125rem;
}

.psq-auth-form .psq-form-input {
  background: rgba(10,22,40,0.5);
  border-color: var(--psq-border-dark);
  color: var(--psq-fg-dark-1);
}

.psq-auth-form .psq-form-input::placeholder {
  color: var(--psq-fg-dark-m);
}

.psq-auth-form .psq-form-input:focus {
  border-color: var(--psq-teal);
  box-shadow: 0 0 0 3px rgba(0,196,180,0.12);
  background: rgba(10,22,40,0.7);
}

.psq-auth-links {
  margin-top: 16px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.psq-auth-links a {
  font-size: 0.875rem;
  color: var(--psq-fg-dark-2);
  text-align: center;
}

.psq-auth-links a:hover { color: var(--psq-teal); }

.psq-auth-links a strong { color: var(--psq-teal); }

/* =============================================================
   LEGAL PAGES
   ============================================================= */
.psq-legal-page {
  background: var(--psq-white);
  padding-top: 120px;
  padding-bottom: 80px;
}

.psq-legal-page__inner {
  max-width: 760px;
  margin: 0 auto;
  padding: 0 24px;
}

.legal-article {
  max-width: 100%;
}

.legal-header {
  margin-bottom: 48px;
  padding-bottom: 24px;
  border-bottom: 1px solid var(--psq-border-light);
}

.legal-header h1 {
  font-size: 2.25rem;
  color: var(--psq-fg-light-1);
  margin-bottom: 8px;
}

.legal-meta {
  font-size: 0.875rem;
  color: var(--psq-fg-light-2);
  font-family: "IBM Plex Mono", monospace;
  margin-top: 6px;
}

.legal-article section {
  margin-bottom: 36px;
}

.legal-article h2 {
  font-size: 1.375rem;
  color: var(--psq-fg-light-1);
  margin-bottom: 14px;
  font-weight: 600;
  letter-spacing: -0.01em;
}

.legal-article h3 {
  font-size: 1.05rem;
  color: var(--psq-fg-light-1);
  margin-bottom: 10px;
  font-weight: 600;
  margin-top: 20px;
}

.legal-article p {
  font-size: 0.9375rem;
  color: var(--psq-fg-light-2);
  line-height: 1.75;
  margin-bottom: 12px;
}

.legal-article ul, .legal-article ol {
  margin-left: 20px;
  margin-bottom: 14px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.legal-article li {
  font-size: 0.9375rem;
  color: var(--psq-fg-light-2);
  line-height: 1.65;
}

.legal-article a {
  color: var(--psq-teal-aa);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.legal-article address {
  font-style: normal;
  font-size: 0.9375rem;
  color: var(--psq-fg-light-2);
  line-height: 1.7;
  background: var(--psq-light);
  padding: 16px 20px;
  border-radius: var(--psq-radius);
  border: 1px solid var(--psq-border-light);
}

.legal-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.875rem;
  margin-bottom: 16px;
}

.legal-table th, .legal-table td {
  padding: 10px 12px;
  text-align: left;
  border: 1px solid var(--psq-border-light);
  color: var(--psq-fg-light-2);
}

.legal-table th {
  background: var(--psq-light);
  font-weight: 600;
  color: var(--psq-fg-light-1);
}

/* =============================================================
   FOOTER
   ============================================================= */
.psq-footer {
  background: var(--psq-navy-deep);
  padding: 72px 0 32px;
  border-top: 1px solid rgba(139,170,200,0.08);
}

.psq-footer__inner {
  max-width: var(--psq-container);
  margin: 0 auto;
  padding: 0 24px;
}

.psq-footer__grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr;
  gap: 48px;
  margin-bottom: 48px;
}

.psq-footer__logo {
  display: flex;
  align-items: center;
  margin-bottom: 16px;
}

.psq-footer__logo img {
  height: 28px;
  width: auto;
}

.psq-footer__tagline {
  font-size: 0.9rem;
  color: var(--psq-fg-dark-2);
  line-height: 1.65;
  margin-bottom: 16px;
  max-width: 280px;
}

.psq-footer__contact {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.psq-footer__contact-item {
  font-size: 0.8125rem;
  color: var(--psq-fg-dark-m);
  display: flex;
  gap: 8px;
  align-items: flex-start;
}

.psq-footer__contact-item a { color: var(--psq-fg-dark-m); }
.psq-footer__contact-item a:hover { color: var(--psq-fg-dark-2); }
.psq-footer__contact-item i { margin-top: 2px; flex-shrink: 0; }

.psq-footer__col-label {
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--psq-fg-dark-2);
  margin-bottom: 14px;
}

.psq-footer__nav-list {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.psq-footer__nav-link {
  font-size: 0.9rem;
  color: var(--psq-fg-dark-m);
  transition: color var(--psq-transition);
}

.psq-footer__nav-link:hover { color: var(--psq-fg-dark-2); }

.psq-footer__bottom {
  padding-top: 24px;
  border-top: 1px solid rgba(139,170,200,0.08);
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
}

.psq-footer__copy {
  font-size: 0.8125rem;
  color: var(--psq-fg-dark-m);
}

.psq-footer__legal-links {
  display: flex;
  gap: 20px;
  flex-wrap: wrap;
}

.psq-footer__legal-links a {
  font-size: 0.8125rem;
  color: var(--psq-fg-dark-m);
  transition: color var(--psq-transition);
}

.psq-footer__legal-links a:hover { color: var(--psq-fg-dark-2); }

/* =============================================================
   COOKIE BANNER
   ============================================================= */
.cookie-banner {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 9999;
  background: var(--psq-navy-alt);
  border-top: 1px solid var(--psq-border-dark);
  padding: 16px 24px;
  box-shadow: 0 -4px 24px rgba(0,0,0,0.3);
}

.cookie-banner__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  max-width: var(--psq-container);
  margin: 0 auto;
  flex-wrap: wrap;
}

.cookie-banner__text {
  font-size: 0.875rem;
  color: var(--psq-fg-dark-2);
  line-height: 1.55;
  flex: 1;
  min-width: 200px;
}

.cookie-banner__text a {
  color: var(--psq-teal);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.cookie-banner__actions {
  flex-shrink: 0;
}

.cookie-banner__btn {
  font-family: inherit;
  cursor: pointer;
}

.cookie-banner__btn--primary {
  background: var(--psq-teal);
  color: #05201A;
  border: none;
  padding: 9px 20px;
  border-radius: var(--psq-radius);
  font-size: 0.875rem;
  font-weight: 600;
  transition: background var(--psq-transition);
}

.cookie-banner__btn--primary:hover { background: #00D6C5; }

/* =============================================================
   FADE-IN ANIMATION
   ============================================================= */
.psq-fade-in {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.5s ease, transform 0.5s ease;
}

.psq-fade-in.visible {
  opacity: 1;
  transform: translateY(0);
}

/* Failsafe — after 1.2s always reveal */

/* =============================================================
   RESPONSIVE
   ============================================================= */
@media (max-width: 1024px) {
  .psq-display { font-size: 2.75rem; }
  .psq-hero__inner { grid-template-columns: 1fr; gap: 48px; }
  .psq-hero__headline { font-size: 2.75rem; }
  .psq-hero__visual { aspect-ratio: 16/9; }
  .psq-steps__grid { grid-template-columns: repeat(2, 1fr); }
  .psq-stat-strip__grid { grid-template-columns: 1fr; gap: 0; }
  .psq-stat-strip__item + .psq-stat-strip__item { border-left: none; border-top: 1px solid var(--psq-border-dark); }
  .psq-feature-section__inner { grid-template-columns: 1fr; gap: 32px; }
  .psq-mission-section__inner { grid-template-columns: 1fr; gap: 24px; }
  .psq-location-section__inner { grid-template-columns: 1fr; gap: 32px; }
  .psq-contact-layout { grid-template-columns: 1fr; gap: 40px; }
  .psq-auth-layout { grid-template-columns: 1fr; }
  .psq-auth-side { display: none; }
  .psq-auth-panel { min-height: 100vh; }
  .psq-trust__grid { grid-template-columns: repeat(2, 1fr); }
  .psq-trust__item + .psq-trust__item { border-left: none; }
  .psq-trust__item:nth-child(odd) + .psq-trust__item { border-left: 1px solid var(--psq-border-light); }
  .psq-trust__item:nth-child(2) ~ .psq-trust__item { border-top: 1px solid var(--psq-border-light); }
  .psq-footer__grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 768px) {
  h1 { font-size: 2rem; }
  h2 { font-size: 1.5rem; }
  .psq-display { font-size: 2.25rem; }
  .psq-hero__headline { font-size: 2.25rem; }
  .psq-subhero--split .psq-subhero__inner { grid-template-columns: 1fr; gap: 32px; }
  .psq-nav__links, .psq-nav__actions { display: none; }
  .psq-nav__hamburger { display: flex; }
  .psq-cards-grid { grid-template-columns: 1fr; }
  .psq-blog-grid { grid-template-columns: 1fr; }
  .psq-blog-related__grid { grid-template-columns: 1fr; }
  .psq-steps__grid { grid-template-columns: 1fr; }
  .psq-pricing-grid { grid-template-columns: 1fr; }
  .psq-team-grid { grid-template-columns: 1fr; }
  .psq-benchmark-grid { grid-template-columns: 1fr; }
  .psq-workflow-steps { grid-template-columns: 1fr; }
  .psq-results-grid { grid-template-columns: 1fr; }
  .psq-doc-cards { grid-template-columns: 1fr; }
  .psq-poster-cards { grid-template-columns: 1fr; }
  .psq-trust__grid { grid-template-columns: 1fr; }
  .psq-trust__item + .psq-trust__item { border-left: none; border-top: 1px solid var(--psq-border-light); }
  .psq-footer__grid { grid-template-columns: 1fr; gap: 32px; }
  .psq-footer__bottom { flex-direction: column; align-items: flex-start; }
  .psq-cookie-banner__inner { flex-direction: column; align-items: flex-start; }
}

@media (max-width: 480px) {
  .psq-hero__headline { font-size: 1.875rem; }
  .psq-hero__inner { padding: 64px 16px; }
  .psq-container, .psq-container--narrow { padding: 0 16px; }
  .psq-vtable { font-size: 0.75rem; }
  .psq-vtable thead th, .psq-vtable tbody td { padding: 7px 8px; }
}

/* =============================================================
   SUPPLEMENTAL — BLOG ARTICLE PAGES
   ============================================================= */

.psq-blog-article__header {
  background: var(--psq-light);
  padding-top: 120px;
  padding-bottom: 48px;
}

.psq-blog-article__header-inner {
  max-width: 760px;
  margin: 0 auto;
  padding: 0 24px;
}

.psq-breadcrumb {
  font-size: 0.8125rem;
  color: var(--psq-fg-light-2);
  margin-bottom: 16px;
}

.psq-breadcrumb a {
  color: var(--psq-teal-aa);
}

.psq-breadcrumb a:hover { text-decoration: underline; }

.psq-blog-card__tag {
  display: inline-block;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: var(--psq-teal-aa);
  background: rgba(0,122,110,0.1);
  padding: 3px 12px;
  border-radius: 100px;
  text-transform: uppercase;
  margin-bottom: 16px;
}

.psq-blog-article__title {
  font-size: 2.25rem;
  font-family: "Inter Tight", Inter, system-ui, sans-serif;
  font-weight: 700;
  color: var(--psq-fg-light-1);
  line-height: 1.15;
  letter-spacing: -0.02em;
  margin-bottom: 20px;
}

.psq-blog-article__byline {
  display: flex;
  align-items: center;
  gap: 16px;
  font-size: 0.875rem;
  color: var(--psq-fg-light-2);
  font-family: "IBM Plex Mono", monospace;
}

.psq-blog-article__author {
  font-weight: 500;
}

.psq-blog-article__date {
  color: var(--psq-fg-light-2);
}

.psq-blog-article__cover img {
  width: 100%;
  height: auto;
  display: block;
}

.psq-blog-article__body {
  background: var(--psq-white);
  max-width: 720px;
  margin: 0 auto;
  padding: 56px 24px 80px;
  font-size: 1.0625rem;
  color: var(--psq-fg-light-2);
  line-height: 1.78;
}

.psq-blog-article__footer {
  background: var(--psq-light);
  padding: 48px 0;
  border-top: 1px solid var(--psq-border-light);
}

.psq-blog-article__footer-inner {
  max-width: 720px;
  margin: 0 auto;
  padding: 0 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
}

.psq-blog-article__cta {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}

.psq-blog-article__cta p {
  font-size: 0.9375rem;
  color: var(--psq-fg-light-2);
  margin: 0;
}

/* outline-dark btn in light footer: use AA teal for legibility */
.psq-blog-article__footer .psq-btn--outline-dark {
  color: var(--psq-teal-aa);
  border-color: var(--psq-teal-aa);
}
.psq-blog-article__footer .psq-btn--outline-dark:hover {
  background: rgba(0,122,110,0.08);
}

/* =============================================================
   SUPPLEMENTAL — AUTH FORM FIELDS
   ============================================================= */

.psq-auth-panel__title {
  font-size: 1.875rem;
  font-family: "Inter Tight", Inter, system-ui, sans-serif;
  font-weight: 700;
  color: var(--psq-fg-dark-1);
  margin-bottom: 8px;
  letter-spacing: -0.02em;
}

.psq-auth-form__field {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.psq-auth-form__row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

.psq-auth-form__label {
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--psq-fg-dark-2);
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.psq-auth-form__input {
  padding: 10px 14px;
  background: rgba(10,22,40,0.5);
  border: 1.5px solid var(--psq-border-dark);
  border-radius: var(--psq-radius);
  font-family: Inter, system-ui, sans-serif;
  font-size: 0.9375rem;
  color: var(--psq-fg-dark-1);
  transition: border-color var(--psq-transition), box-shadow var(--psq-transition);
  max-width: 100%;
}

.psq-auth-form__input::placeholder { color: var(--psq-fg-dark-m); }

.psq-auth-form__input:focus {
  outline: none;
  border-color: var(--psq-teal);
  box-shadow: 0 0 0 3px rgba(0,196,180,0.12);
  background: rgba(10,22,40,0.7);
}

.psq-auth-form__forgot {
  font-size: 0.8125rem;
  font-weight: 400;
  color: var(--psq-teal);
}

.psq-auth-form__forgot:hover { text-decoration: underline; }

.psq-auth-form__demo {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  background: rgba(0,196,180,0.08);
  border: 1px solid rgba(0,196,180,0.2);
  border-radius: var(--psq-radius);
  padding: 12px 16px;
  font-size: 0.875rem;
  color: var(--psq-fg-dark-2);
  line-height: 1.55;
}

.psq-auth-form__demo i { color: var(--psq-teal); flex-shrink: 0; margin-top: 2px; }

.psq-auth-form__demo a { color: var(--psq-teal); text-decoration: underline; }

.psq-auth-form__terms {
  font-size: 0.8125rem;
  color: var(--psq-fg-dark-m);
  line-height: 1.55;
}

.psq-auth-form__terms a { color: var(--psq-teal); text-decoration: underline; }

.psq-auth-panel__switch {
  font-size: 0.875rem;
  color: var(--psq-fg-dark-2);
  margin-top: 20px;
  text-align: center;
}

.psq-auth-panel__switch a { color: var(--psq-teal); }
.psq-auth-panel__switch a:hover { text-decoration: underline; }

.psq-auth-panel__back {
  font-size: 0.8125rem;
  color: var(--psq-fg-dark-m);
  margin-top: 8px;
  text-align: center;
}

.psq-auth-panel__back a {
  color: var(--psq-fg-dark-m);
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: color var(--psq-transition);
}

.psq-auth-panel__back a:hover { color: var(--psq-fg-dark-2); }

.psq-auth-side__body {
  font-size: 0.9375rem;
  color: var(--psq-fg-dark-2);
  line-height: 1.7;
  margin-bottom: 24px;
}

/* Auth layout narrow variant */
.psq-auth-layout--narrow .psq-auth-side {
  flex: 1;
}

.psq-auth-layout--narrow .psq-auth-panel {
  max-width: 480px;
}

/* =============================================================
   SUPPLEMENTAL — BUTTON MODIFIERS
   ============================================================= */

.psq-btn--block {
  width: 100%;
  justify-content: center;
}

/* =============================================================
   SUPPLEMENTAL — LEGAL MAIN WRAPPER
   ============================================================= */

.psq-legal-main {
  background: var(--psq-white);
  padding-top: 120px;
  padding-bottom: 80px;
  min-height: 100vh;
}

.psq-legal-main__inner {
  max-width: 760px;
  margin: 0 auto;
  padding: 0 24px;
}

/* =============================================================
   SUPPLEMENTAL — RESEARCH NOTES
   ============================================================= */

.psq-research-note {
  background: var(--psq-white);
  border: 1px solid var(--psq-border-light);
  border-radius: var(--psq-radius-lg);
  padding: 36px;
  margin-bottom: 24px;
}

.psq-research-note__meta {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 16px;
}

.psq-research-note__tag {
  display: inline-block;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: var(--psq-teal-aa);
  background: rgba(0,122,110,0.1);
  padding: 3px 12px;
  border-radius: 100px;
  text-transform: uppercase;
}

.psq-research-note__date {
  font-size: 0.8125rem;
  color: var(--psq-fg-light-2);
  font-family: "IBM Plex Mono", monospace;
}

.psq-research-note__title {
  font-size: 1.375rem;
  font-family: "Inter Tight", Inter, system-ui, sans-serif;
  font-weight: 600;
  color: var(--psq-fg-light-1);
  letter-spacing: -0.01em;
  margin-bottom: 16px;
  line-height: 1.3;
}

.psq-research-note__body {
  font-size: 0.9375rem;
  color: var(--psq-fg-light-2);
  line-height: 1.75;
}

.psq-research-note__body p { margin-bottom: 12px; }
.psq-research-note__body p:last-child { margin-bottom: 0; }

.psq-research-note__body ul {
  margin-left: 20px;
  margin-bottom: 12px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.psq-research-note__body li {
  line-height: 1.65;
}

/* =============================================================
   SUPPLEMENTAL — SECTION LIGHT ALT
   ============================================================= */

.psq-section--light-alt {
  background: #EDF2F7;
}

/* =============================================================
   SUPPLEMENTAL — PRICING HERO (reused as page hero on light-top pages)
   ============================================================= */

.psq-pricing-hero {
  padding-top: 120px;
  padding-bottom: 64px;
}

.psq-pricing-hero__inner {
  max-width: var(--psq-container);
  margin: 0 auto;
  padding: 0 24px;
  text-align: center;
  max-width: 720px;
}

.psq-pricing-hero__headline {
  font-size: 2.5rem;
  font-family: "Inter Tight", Inter, system-ui, sans-serif;
  font-weight: 700;
  color: var(--psq-fg-light-1);
  letter-spacing: -0.02em;
  margin-bottom: 16px;
  line-height: 1.12;
}

.psq-pricing-hero__sub {
  font-size: 1.0625rem;
  color: var(--psq-fg-light-2);
  line-height: 1.7;
  max-width: 580px;
  margin: 0 auto;
}

/* =============================================================
   SUPPLEMENTAL — CONTACT FORM AREA
   ============================================================= */

.psq-contact-sidebar {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.psq-contact-sidebar__body {
  font-size: 0.9375rem;
  color: var(--psq-fg-light-2);
  line-height: 1.7;
  margin-bottom: 28px;
}

.psq-contact-form-area {
  min-width: 0;
}

.psq-contact-form {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.psq-contact-form__field {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.psq-contact-form__label {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--psq-fg-light-1);
}

.psq-contact-form__input {
  padding: 10px 14px;
  border: 1.5px solid var(--psq-border-light);
  border-radius: var(--psq-radius);
  font-family: Inter, system-ui, sans-serif;
  font-size: 0.9375rem;
  color: var(--psq-fg-light-1);
  background: var(--psq-white);
  transition: border-color var(--psq-transition), box-shadow var(--psq-transition);
  max-width: 100%;
}

.psq-contact-form__input:focus {
  outline: none;
  border-color: var(--psq-teal-aa);
  box-shadow: 0 0 0 3px rgba(0,122,110,0.12);
}

.psq-contact-form__select {
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='7' viewBox='0 0 12 7'%3E%3Cpath fill='%23007A6E' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
  padding-right: 36px;
  cursor: pointer;
}

.psq-contact-form__select option {
  background: var(--psq-white);
  color: var(--psq-fg-light-1);
}

.psq-contact-form__textarea {
  resize: vertical;
  min-height: 120px;
}

.psq-contact-form__success {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  background: rgba(0,122,110,0.08);
  border: 1px solid rgba(0,122,110,0.2);
  border-radius: var(--psq-radius);
  padding: 12px 16px;
  font-size: 0.875rem;
  color: var(--psq-fg-light-2);
  line-height: 1.55;
}

.psq-contact-form__success i { color: var(--psq-teal-aa); flex-shrink: 0; margin-top: 2px; }

/* =============================================================
   SUPPLEMENTAL — ABOUT PAGE HERO VISUAL
   ============================================================= */

.psq-about-hero-visual {
  border-radius: var(--psq-radius-lg);
  overflow: hidden;
  aspect-ratio: 16/9;
}

.psq-about-hero-visual img {
  width: 100%;
  height: auto;
  display: block;
}

/* =============================================================
   SUPPLEMENTAL — PRICING PAGE
   ============================================================= */

.psq-pricing-tiers__inner {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 24px;
}

.psq-pricing-card {
  background: var(--psq-white);
  border: 1px solid var(--psq-border-light);
  border-radius: 12px;
  padding: 36px 28px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.psq-pricing-card--featured {
  border-color: var(--psq-teal);
  box-shadow: 0 0 0 2px rgba(0,196,180,0.25);
  position: relative;
}

.psq-pricing-card__badge {
  display: inline-block;
  background: var(--psq-teal);
  color: #05201A;
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 3px 10px;
  border-radius: 20px;
  width: fit-content;
}

.psq-pricing-card__header {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.psq-pricing-card__tier {
  font-size: 0.8125rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--psq-fg-light-2);
}

.psq-pricing-card--featured .psq-pricing-card__tier {
  color: var(--psq-teal-aa);
}

.psq-pricing-card__price {
  display: flex;
  align-items: baseline;
  gap: 4px;
}

.psq-pricing-card__amount {
  font-size: 2.5rem;
  font-family: "Inter Tight", Inter, system-ui, sans-serif;
  font-weight: 700;
  color: var(--psq-fg-light-1);
  letter-spacing: -0.03em;
  line-height: 1;
}

.psq-pricing-card__period {
  font-size: 0.875rem;
  color: var(--psq-fg-light-2);
}

.psq-pricing-card__pitch {
  font-size: 0.9375rem;
  color: var(--psq-fg-light-2);
  line-height: 1.55;
}

.psq-pricing-card__features {
  list-style: none;
  padding: 0;
  margin: 8px 0 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
  flex: 1;
}

.psq-pricing-card__features li {
  font-size: 0.9rem;
  color: var(--psq-fg-light-2);
  display: flex;
  align-items: flex-start;
  gap: 8px;
}

.psq-pricing-card__features li i {
  margin-top: 2px;
  flex-shrink: 0;
}

.psq-pricing-card__features .psq-pricing-card__feature--no {
  color: var(--psq-fg-light-3, #b0bec5);
}

.psq-pricing-card__features .psq-pricing-card__feature--no ~ span {
  color: var(--psq-fg-light-3, #b0bec5);
}

li:has(.psq-pricing-card__feature--no) {
  color: var(--psq-fg-light-3, #94a3b8);
}

.psq-pricing-faq {
  padding: 80px 0;
  background: var(--psq-white);
}

.psq-pricing-faq__inner {
  max-width: 760px;
  margin: 0 auto;
  padding: 0 24px;
}

.psq-pricing-faq__headline {
  font-size: 1.75rem;
  font-family: "Inter Tight", Inter, system-ui, sans-serif;
  font-weight: 700;
  color: var(--psq-fg-light-1);
  letter-spacing: -0.02em;
  margin-bottom: 40px;
}

.psq-faq-list {
  display: flex;
  flex-direction: column;
  gap: 0;
  border-top: 1px solid var(--psq-border-light);
}

/* =============================================================
   SUPPLEMENTAL — ABOUT PAGE
   ============================================================= */

.psq-subhero__content--wide {
  max-width: 760px;
}

.psq-about-mission {
  padding: 96px 0;
}

.psq-about-mission__inner {
  max-width: 760px;
  margin: 0 auto;
  padding: 0 24px;
}

.psq-about-mission__headline {
  font-size: 2rem;
  font-family: "Inter Tight", Inter, system-ui, sans-serif;
  font-weight: 700;
  color: var(--psq-fg-dark-1);
  letter-spacing: -0.025em;
  margin-bottom: 24px;
  line-height: 1.2;
}

.psq-about-mission__body {
  font-size: 1.0625rem;
  color: var(--psq-fg-dark-2);
  line-height: 1.72;
}

.psq-about-mission__body p + p {
  margin-top: 16px;
}

.psq-about-team {
  padding: 96px 0;
}

.psq-about-team__inner {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 24px;
}

.psq-about-team__headline {
  font-size: 1.75rem;
  font-family: "Inter Tight", Inter, system-ui, sans-serif;
  font-weight: 700;
  color: var(--psq-fg-light-1);
  letter-spacing: -0.025em;
  margin-bottom: 48px;
}

.psq-team-card__info {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.psq-about-location {
  padding: 96px 0;
}

.psq-about-location__inner {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 24px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  align-items: start;
}

@media (max-width: 768px) {
  .psq-about-location__inner { grid-template-columns: 1fr; }
}

.psq-about-location__text {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.psq-about-location__headline {
  font-size: 1.75rem;
  font-family: "Inter Tight", Inter, system-ui, sans-serif;
  font-weight: 700;
  color: var(--psq-fg-dark-1);
  letter-spacing: -0.025em;
  margin-bottom: 16px;
}

.psq-about-location__body {
  font-size: 1rem;
  color: var(--psq-fg-dark-2);
  line-height: 1.68;
}

.psq-about-location__address {
  font-size: 0.9375rem;
  color: var(--psq-fg-dark-2);
  line-height: 1.7;
}

.psq-about-location__visual {
  border-radius: 12px;
  overflow: hidden;
}

.psq-about-location__visual img {
  width: 100%;
  height: auto;
  display: block;
}

/* =============================================================
   SUPPLEMENTAL — CONTACT PAGE
   ============================================================= */

.psq-contact-layout {
  background: var(--psq-light);
  padding: 120px 0 80px;
}

.psq-contact-layout__inner {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 24px;
  display: grid;
  grid-template-columns: 360px 1fr;
  gap: 64px;
  align-items: start;
}

@media (max-width: 900px) {
  .psq-contact-layout__inner { grid-template-columns: 1fr; }
}

.psq-contact-headline {
  font-size: 2rem;
  font-family: "Inter Tight", Inter, system-ui, sans-serif;
  font-weight: 700;
  color: var(--psq-fg-light-1);
  letter-spacing: -0.025em;
  margin-bottom: 12px;
}

.psq-contact-details {
  margin-top: 32px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.psq-contact-details .psq-footer__contact-item {
  color: var(--psq-fg-light-2);
  font-size: 0.9375rem;
}

.psq-contact-details .psq-footer__contact-item a {
  color: var(--psq-teal-aa);
}

.psq-contact-response-note {
  margin-top: 24px;
  font-size: 0.875rem;
  color: var(--psq-fg-light-2);
  line-height: 1.55;
}

.psq-contact-form__success-email {
  color: var(--psq-teal-aa);
  font-weight: 600;
}

.psq-eyebrow--dark {
  display: inline-block;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--psq-teal-aa);
  margin-bottom: 12px;
}

/* =============================================================
   SUPPLEMENTAL — RESEARCH PAGE
   ============================================================= */

.psq-research-body {
  background: var(--psq-white);
}

.psq-research-body__inner {
  max-width: 1100px;
  margin: 0 auto;
  padding: 64px 24px;
}

/* =============================================================
   SUPPLEMENTAL — BLOG INDEX ADDITIONAL
   ============================================================= */

.psq-blog-card__cover-link {
  display: block;
  overflow: hidden;
  border-radius: 8px 8px 0 0;
}

.psq-blog-card__date {
  font-size: 0.8125rem;
  color: var(--psq-fg-light-2);
  margin-bottom: 6px;
}

.psq-blog-card__author {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px solid var(--psq-border-light);
  font-size: 0.8125rem;
  color: var(--psq-fg-light-2);
}

.psq-blog-card__author-name {
  font-weight: 600;
  color: var(--psq-fg-light-1);
}

.psq-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  white-space: nowrap;
  border: 0;
}

/* =============================================================
   SUPPLEMENTAL — RESPONSIVE ADDITIONS
   ============================================================= */
@media (max-width: 768px) {
  .psq-auth-form__row { grid-template-columns: 1fr; }
  .psq-blog-article__title { font-size: 1.75rem; }
  .psq-blog-article__footer-inner { flex-direction: column; }
  .psq-research-note { padding: 24px; }
  .psq-pricing-hero__headline { font-size: 2rem; }
  .psq-pricing-grid { grid-template-columns: 1fr; }
}
@media (max-width: 480px) {
  .psq-legal-main { padding-top: 80px; }
}
