/* Partner pages inside the main Reckonsys chrome (e.g. /databricks/).
   partnerdetail.css + aidetail.css carry the AI-site look used by the standalone
   partner pages; this layer re-skins the same .pd-/.ai- markup in the main site's
   design language (Satoshi + Spline Sans, #333 ink, coral gradient, square flat
   cards, 6.6rem rail). Loaded only when page.standalone_chrome is off, and every
   rule is scoped under body.pd-site so the standalone pages are untouched. */

.pd-site {
  --pd-red: #c94d45;
  --pd-red-link: #c94d45;
  --pd-maroon: #941209;
  --pd-ink: #333333;
  --pd-body: #5b5b5b;
  --pd-dim: #6b6b6b;
  --pd-line: #dcdcdc;
  --pd-soft: #fbeae7;
  --pd-soft-bd: #f1c8c0;
  --pd-dark: #232020;
  --pd-dark-2: #232020;
  --pd-dark-card: #1b1818;
  --pd-dark-line: #3f3a3a;
  --pd-mono: "Satoshi-Medium", "Spline Sans", sans-serif;
  --pd-cream: #f3f3f3;
  --pd-ember: #f7722f;
  --pd-btn: linear-gradient(270deg, #ce4961 8.92%, #c94d45 84.76%);
  --pd-num: linear-gradient(180deg, #ef7160 0%, #941209 100%);
  --pd-text-light: linear-gradient(89deg, #333 5.49%, #f77b45 96.99%);
  --pd-text-dark: linear-gradient(92deg, #f7f5f4 21.9%, #f7722f 53.55%);
}

/* ---------- square, flat surfaces everywhere ---------- */
.pd-site [class*="pd-"],
.pd-site [class*="ai-casestud"],
.pd-site .ai-btn-ghost {
  border-radius: 0;
  box-shadow: none;
}
.pd-site .pd-dot,
.pd-site .pd-fig-merge {
  border-radius: 50%;
}

/* ---------- section frame: site rail + gutters ---------- */
.pd-site .pd-section {
  padding: 12rem 0 12rem 6.6rem;
  background: #ffffff;
  overflow: clip; /* clip (not hidden) keeps the sticky rail label working */
}
.pd-site .pd-hero {
  background: #ffffff;
  padding-top: 16.2rem;
}
.pd-site .pd-partnership,
.pd-site .pd-industries,
.pd-site .pd-cta {
  background: var(--pd-cream);
}
.pd-site .pd-dark,
.pd-site .pd-edge {
  background: var(--pd-dark);
}
.pd-site .pd-inner {
  max-width: none;
  padding: 0 5.4rem;
}
/* the site makes every <section> a flex row; without this, narrow content shrinks and centres */
.pd-site .pd-section > .pd-inner {
  flex: 1 1 auto;
  width: 100%;
}

.pd-site .pd-rail {
  width: 6.6rem;
  padding-top: 15rem;
  border-right: 1px solid #cac8c8;
}
.pd-site .pd-rail-text {
  position: sticky;
  top: 15rem;
  font-family: "Satoshi-Bold";
  font-size: 1.8rem;
  font-weight: 700;
  letter-spacing: 0;
  text-transform: none;
  color: #333;
}
.pd-site .pd-dark .pd-rail {
  border-right-color: #544e4e;
}
.pd-site .pd-dark .pd-rail-text {
  color: #ffffff;
}

/* ---------- type ---------- */
.pd-site .pd-eyebrow,
.pd-site .pd-eyebrow-dark {
  display: inline-flex;
  gap: 1.2rem;
  padding: 0;
  margin-bottom: 2rem;
  background: none;
  border: 0;
  font-family: "Satoshi-Bold";
  font-size: 2rem;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0;
  text-transform: none;
  color: #333;
}
.pd-site .pd-eyebrow .pd-dot {
  display: none;
}
.pd-site .pd-eyebrow-sep {
  height: 1.6rem;
  background: #cac8c8;
}
.pd-site .pd-eyebrow-note {
  font-family: "Satoshi-Medium";
  font-size: 1.6rem;
  color: var(--pd-dim);
}
.pd-site .pd-dark .pd-eyebrow,
.pd-site .pd-eyebrow-dark {
  color: #ffffff;
}

.pd-site .pd-h1 {
  font-family: "Satoshi-Bold";
  font-size: 6.4rem;
  font-weight: 700;
  line-height: 1.16;
  letter-spacing: -0.01em;
  color: #333;
  margin-bottom: 2.8rem;
}
.pd-site .pd-h2 {
  max-width: 90rem;
  font-family: "Satoshi-Bold";
  font-size: 4.2rem;
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: 0;
  color: #333;
  margin-bottom: 2.4rem;
}
.pd-site .pd-h3,
.pd-site .pd-card-title,
.pd-site .pd-node-title,
.pd-site .pd-corecore-title,
.pd-site .pd-form-title,
.pd-site .ai-casestudy-card h4 {
  font-family: "Satoshi-Bold";
  font-weight: 700;
  letter-spacing: 0;
}
.pd-site .pd-h3 {
  font-size: 2.4rem;
  line-height: 1.4;
  color: #333;
}
.pd-site .pd-dark .pd-h2,
.pd-site .pd-dark .pd-h3 {
  color: #ffffff;
}
.pd-site .pd-accent {
  background: linear-gradient(90deg, #c94d45 0%, #f77b45 100%);
  -webkit-background-clip: text;
  background-clip: text;
}

.pd-site .pd-lead {
  max-width: 64rem;
  font-family: "Spline Sans";
  font-size: 1.8rem;
  line-height: 1.55;
  color: #333;
  opacity: 0.85;
}
.pd-site .pd-card-text {
  font-family: "Spline Sans";
  font-size: 1.6rem;
  line-height: 1.6;
  color: #333;
  opacity: 0.8;
}
.pd-site .pd-dark .pd-lead,
.pd-site .pd-dark .pd-card-text {
  color: #f7f5f4;
  opacity: 0.72;
}

/* labels that were monospace become small uppercase Satoshi */
.pd-site .pd-mono-red,
.pd-site .pd-mono-dim,
.pd-site .pd-status,
.pd-site .pd-tag,
.pd-site .pd-tile-label,
.pd-site .pd-fig-title,
.pd-site .pd-fig-kicker,
.pd-site .pd-sectortag em,
.pd-site .ai-casestudy-client {
  font-family: "Satoshi-Medium";
  letter-spacing: 0.08em;
}

/* ---------- chips / tags ---------- */
.pd-site .pd-chip,
.pd-site .pd-tag {
  padding: 0.5rem 1rem;
  font-family: "Satoshi-Bold";
  font-size: 1.1rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.pd-site .pd-chip-red,
.pd-site .pd-chip-soft,
.pd-site .pd-tag {
  background: var(--pd-soft);
  border: 1px solid var(--pd-soft-bd);
  color: var(--pd-red);
}
.pd-site .pd-chip-outline {
  background: transparent;
  border: 1px solid var(--pd-soft-bd);
  color: var(--pd-red);
}
.pd-site .pd-chip-grey {
  background: var(--pd-cream);
  border: 1px solid var(--pd-line);
  color: #666;
}
.pd-site .pd-chip-node,
.pd-site .pd-chip-core {
  background: transparent;
  border: 1px solid rgba(247, 114, 47, 0.45);
  color: var(--pd-ember);
}
.pd-site .pd-chip-ghost {
  border: 1px solid #544e4e;
  color: #d8d4d2;
  font-family: "Satoshi-Medium";
  letter-spacing: 0.04em;
  text-transform: none;
}

/* ---------- buttons: the site's primary button ---------- */
.pd-site .pd-btn,
.pd-site .pd-submit {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 3rem;
  height: 4.8rem;
  padding: 1.2rem 2rem;
  border: 0;
  background: var(--pd-btn);
  color: #ffffff;
  font-family: "Satoshi-Black";
  font-size: 1.4rem;
  font-weight: 900;
  letter-spacing: 1.4px;
  text-transform: uppercase;
  filter: none;
  transform: none;
  transition: color 0.3s ease-in-out;
}
.pd-site .pd-btn::before,
.pd-site .pd-submit::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  width: 0;
  background: #ffffff;
  transition: width 0.3s ease-in-out;
}
.pd-site .pd-btn:hover,
.pd-site .pd-submit:hover:not(:disabled) {
  background: var(--pd-btn);
  color: #c94d45;
  transform: none;
  filter: none;
  box-shadow: inset 0 0 0 1px #ce4961;
}
.pd-site .pd-btn:hover::before,
.pd-site .pd-submit:hover:not(:disabled)::before {
  width: 100%;
}
.pd-site .pd-submit {
  width: 100%;
  height: 5.6rem;
  margin-top: 1.6rem;
}
.pd-site .pd-btn:focus-visible,
.pd-site .pd-submit:focus-visible,
.pd-site .ai-btn-ghost:focus-visible {
  outline: 2px solid var(--pd-ember);
  outline-offset: 3px;
}

/* secondary action: the site's square outline button */
.pd-site .ai-btn-ghost {
  display: inline-flex;
  align-items: center;
  gap: 2rem;
  height: 4.8rem;
  padding: 0 2rem;
  border: 1px solid #333;
  font-family: "Satoshi-Black";
  font-size: 1.4rem;
  font-weight: 900;
  letter-spacing: 1.4px;
  text-transform: uppercase;
  color: #333;
  transition: background 0.3s, color 0.3s;
}
.pd-site .ai-btn-ghost:hover {
  background: #333;
  color: #ffffff;
}

.pd-site .pd-note {
  font-family: "Spline Sans";
  font-size: 1.5rem;
  color: #5b5b5b;
}
.pd-site .pd-note-ic {
  color: var(--pd-red);
}

/* ---------- hero ---------- */
.pd-site .pd-hero-grid {
  gap: 8rem;
  min-height: 0;
}
.pd-site .pd-bullets {
  gap: 1.4rem 3.2rem;
  margin-top: 3.6rem;
}
.pd-site .pd-bullet {
  padding: 0;
  border: 0;
  background: none;
  font-family: "Satoshi-Medium";
  font-size: 1.6rem;
  color: #333;
}
.pd-site .pd-bullet-ic {
  width: 2rem;
  height: 2rem;
}
.pd-site .pd-cta-row {
  margin-top: 4.8rem;
}

/* striped-circle decor from the service heroes, sitting behind the badge card */
.pd-site .pd-hero-right {
  position: relative;
}
.pd-site .pd-hero-right::before {
  content: "";
  position: absolute;
  top: -6rem;
  right: -12rem;
  width: 34rem;
  height: 34rem;
  border-radius: 50%;
  background: repeating-linear-gradient(0deg, #cac8c8 0 1px, transparent 1px 1.2rem);
  pointer-events: none;
}
.pd-site .pd-hero-right::after {
  content: "";
  position: absolute;
  left: -3.2rem;
  bottom: -4.4rem;
  width: 9rem;
  height: 3.2rem;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 90 32' fill='none' stroke='%23e3553f' stroke-width='2'%3E%3Cpath d='M0 6l7.5-5 7.5 5 7.5-5 7.5 5 7.5-5 7.5 5 7.5-5 7.5 5 7.5-5 7.5 5 7.5-5 7.5 5'/%3E%3Cpath d='M0 18l7.5-5 7.5 5 7.5-5 7.5 5 7.5-5 7.5 5 7.5-5 7.5 5 7.5-5 7.5 5 7.5-5 7.5 5'/%3E%3Cpath d='M0 30l7.5-5 7.5 5 7.5-5 7.5 5 7.5-5 7.5 5 7.5-5 7.5 5 7.5-5 7.5 5 7.5-5 7.5 5'/%3E%3C/svg%3E") no-repeat center / contain;
  pointer-events: none;
}

.pd-site .pd-badgecard {
  position: relative;
  z-index: 1;
  padding: 3.2rem;
  background: #ffffff;
  border: 1px solid var(--pd-line);
}
.pd-site .pd-badgecard-label,
.pd-site .pd-panel-title,
.pd-site .pd-corecard-title {
  font-family: "Satoshi-Bold";
  font-size: 1.3rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  color: #333;
}
.pd-site .pd-badgecard-title {
  font-family: "Satoshi-Bold";
  font-size: 1.6rem;
  color: #333;
}
.pd-site .pd-badgecard-sub {
  font-family: "Spline Sans";
  font-size: 1.4rem;
}
.pd-site .pd-badgecard-dark {
  border: 0;
  background: transparent;
}

/* ---------- light panels & cards ---------- */
.pd-site .pd-minicard,
.pd-site .pd-panel,
.pd-site .pd-card,
.pd-site .pd-fig,
.pd-site .pd-numpill,
.pd-site .pd-sectortag,
.pd-site .pd-stat {
  background: #ffffff;
  border: 1px solid var(--pd-line);
}
.pd-site .pd-panel {
  padding: 3.6rem 4rem 4.8rem;
}
.pd-site .pd-minicard-title,
.pd-site .pd-tile-title,
.pd-site .pd-numpill b,
.pd-site .pd-sectortag b,
.pd-site .pd-fig-name {
  font-family: "Satoshi-Bold";
  font-weight: 700;
  color: #333;
}
.pd-site .pd-minicard-ic,
.pd-site .pd-tile-ic,
.pd-site .pd-sector-ic {
  background: var(--pd-soft);
  color: var(--pd-red);
}
.pd-site .pd-flow-line {
  background: linear-gradient(90deg, #ef7160, #f7722f);
}
.pd-site .pd-tile {
  border: 1px solid var(--pd-line);
  background: #ffffff;
  transition: border-color 0.3s;
}
.pd-site .pd-tile:hover {
  border-color: var(--pd-red);
}

/* numbers use the brand gradient, like the "01 / 02" on service pages */
.pd-site .pd-alt-num b,
.pd-site .pd-stat-data,
.pd-site .pd-numpill-num,
.pd-site .pd-fig-figure {
  font-family: "Satoshi-Bold";
  font-weight: 700;
  background: var(--pd-num);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.pd-site .pd-alt-num b {
  font-size: 4.2rem;
}
.pd-site .pd-numpill-num,
.pd-site .pd-numpill-red,
.pd-site .pd-numpill-blue {
  width: auto;
  height: auto;
  font-size: 2rem;
}
.pd-site .pd-numpill-blue {
  background: linear-gradient(180deg, #f7a16f 0%, #f7722f 100%);
  -webkit-background-clip: text;
  background-clip: text;
}
.pd-site .pd-numpill {
  padding: 1.8rem 2rem;
  gap: 1.8rem;
  transition: transform 0.2s ease-in-out, box-shadow 0.2s ease-in-out;
}
.pd-site .pd-numpill:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 12px 8px rgba(0, 0, 0, 0.05);
}

/* ---------- challenges: alternating rows ---------- */
.pd-site .pd-alt,
.pd-site .pd-alt-row,
.pd-site .pd-alt-text,
.pd-site .pd-alt-row:nth-child(even) .pd-alt-fig {
  border-color: var(--pd-line);
}
.pd-site .pd-alt-fig,
.pd-site .pd-alt-text {
  padding: 6.4rem 5.6rem;
}
.pd-site .pd-alt-text .pd-h3 {
  font-size: 2.8rem;
}
.pd-site .pd-alt-num em {
  font-family: "Satoshi-Medium";
}
.pd-site .pd-fig {
  padding: 2.4rem;
}
.pd-site .pd-fig-bar {
  background: var(--pd-btn);
}
.pd-site .pd-fig-badge {
  background: var(--pd-btn);
}
.pd-site .pd-fig-pane-hot,
.pd-site .pd-fig-line-hot,
.pd-site .pd-fig-box,
.pd-site .pd-fig-pipe {
  border-color: var(--pd-soft-bd);
}

/* ---------- industries: bento of flat cards ---------- */
.pd-site .pd-grid2 {
  gap: 1.6rem;
  border: 0;
  overflow: visible;
}
.pd-site .pd-sector,
.pd-site .pd-sector:nth-child(odd),
.pd-site .pd-sector:nth-child(even) {
  padding: 4.4rem 3.6rem 3.6rem;
  background: #ffffff;
  border: 0;
  transition: transform 0.2s ease-in-out, box-shadow 0.2s ease-in-out;
}
.pd-site .pd-sector:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 12px 8px rgba(0, 0, 0, 0.05);
}
.pd-site .pd-sector-title {
  transition: color 0.2s ease-in-out;
}
.pd-site .pd-sector:hover .pd-sector-title {
  color: #c01211;
}
.pd-site .pd-sector-arrow {
  color: var(--pd-red);
}
.pd-site .pd-sector-link {
  border-top-color: var(--pd-line);
  font-family: "Satoshi-Bold";
  font-size: 1.4rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--pd-red);
}
.pd-site .pd-sector-head .pd-mono-dim b {
  color: #333;
}
.pd-site .pd-sectortag {
  padding: 1.4rem 1.6rem;
}

/* ---------- dark sections ---------- */
.pd-site .pd-featurepill,
.pd-site .pd-node,
.pd-site .pd-edgecard {
  background: var(--pd-dark-card);
  border: 1px solid var(--pd-dark-line);
}
.pd-site .pd-featurepill b {
  font-family: "Satoshi-Bold";
}
.pd-site .pd-ic-red,
.pd-site .pd-node-ic,
.pd-site .pd-edgecard-ic,
.pd-site .pd-panel-num {
  background: rgba(247, 114, 47, 0.12);
  color: var(--pd-ember);
}
.pd-site .pd-panel-num {
  font-family: "Satoshi-Bold";
}
.pd-site .pd-panel-dark {
  border-color: var(--pd-dark-line);
  background: transparent;
}
.pd-site .pd-panel-dark .pd-panel-title {
  color: #f7f5f4;
}
.pd-site .pd-dark .pd-mono-red,
.pd-site .pd-node-link {
  color: var(--pd-ember);
}
.pd-site .pd-node-link {
  font-family: "Satoshi-Bold";
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.pd-site .pd-node-foot-left .pd-dot {
  color: var(--pd-ember);
}
.pd-site .pd-map-connector-down,
.pd-site .pd-map-branch span {
  background: rgba(247, 114, 47, 0.55);
}
.pd-site .pd-corecore {
  background:
    radial-gradient(120% 140% at 50% 0%, rgba(240, 73, 62, 0.18), transparent 60%),
    var(--pd-dark-card);
  border: 1px solid rgba(247, 114, 47, 0.4);
  border-top: 3px solid var(--pd-ember);
}
.pd-site .pd-corecore-title {
  font-size: 2.6rem;
}
.pd-site .pd-node,
.pd-site .pd-edgecard {
  transition: border-color 0.3s, transform 0.3s ease-in-out;
}
.pd-site .pd-node:hover,
.pd-site .pd-edgecard:hover {
  border-color: rgba(247, 114, 47, 0.6);
  transform: translateY(-4px);
}
.pd-site .pd-edgecard {
  padding: 3.6rem;
}
.pd-site .pd-edgecard .pd-h3 {
  font-size: 2.2rem;
}

/* ---------- case studies (aidetail.css markup) ---------- */
.pd-site .ai-casestudies-row {
  gap: 1.6rem;
  margin-top: 5.6rem;
}
.pd-site .ai-casestudy-card {
  padding: 3.6rem 3.2rem;
  background: var(--pd-cream);
  border: 0;
  transition: transform 0.2s ease-in-out, box-shadow 0.2s ease-in-out, background 0.2s;
}
.pd-site .ai-casestudy-card:hover {
  background: #ffffff;
  transform: translateY(-4px);
  box-shadow: 0 8px 12px 8px rgba(0, 0, 0, 0.05);
}
.pd-site .ai-casestudy-card h4 {
  font-size: 2rem;
  line-height: 1.35;
  color: #333;
  transition: color 0.2s;
}
.pd-site .ai-casestudy-card:hover h4 {
  color: #c01211;
}
.pd-site .ai-casestudy-card p {
  font-family: "Spline Sans";
  font-size: 1.6rem;
  color: #333;
  opacity: 0.8;
}
.pd-site .ai-casestudy-arrow {
  color: var(--pd-red);
}

/* ---------- CTA + form ---------- */
.pd-site .pd-stats {
  border-top-color: #cac8c8;
}
.pd-site .pd-stat {
  padding: 2.4rem 1.2rem;
}
.pd-site .pd-stat-data {
  font-size: 4.2rem;
}
.pd-site .pd-stat-title {
  font-family: "Spline Sans";
  font-size: 1.4rem;
}
.pd-site .pd-form {
  padding: 4.8rem;
  background: #ffffff;
  border: 1px solid var(--pd-line);
}
.pd-site .pd-form-title {
  font-size: 2.8rem;
  color: #333;
}
.pd-site .pd-form-sub {
  font-family: "Spline Sans";
  font-size: 1.5rem;
  color: #5b5b5b;
}
.pd-site .pd-field label {
  font-family: "Satoshi-Bold";
  font-size: 1.4rem;
  font-weight: 700;
  color: #333;
}
.pd-site .pd-field input,
.pd-site .pd-field textarea {
  padding: 1.6rem;
  border: 1px solid #cac8c8;
  background: #ffffff;
  font-size: 1.6rem;
  color: #333;
}
.pd-site .pd-field input:focus,
.pd-site .pd-field textarea:focus {
  border-color: var(--pd-red);
  box-shadow: none;
}

/* ==========================================================================
   Redesigned sections (.pdx-*): Why Databricks hub, sector explorer, reasons
   ========================================================================== */

/* shared header: copy left, key facts right */
.pd-site .pdx-head {
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr);
  gap: 8rem;
  align-items: end;
  margin-bottom: 6.4rem;
}
.pd-site .pdx-head-main:only-child {
  grid-column: 1 / -1;
}
.pd-site .pdx-head .pd-h2 {
  margin-bottom: 2.4rem;
}

.pd-site .pdx-keys {
  list-style: none;
  margin: 0;
  padding: 0;
}
.pd-site .pdx-key {
  display: flex;
  align-items: center;
  gap: 2rem;
  padding: 2.2rem 0;
  border-top: 1px solid var(--pd-dark-line);
}
.pd-site .pdx-key:last-child {
  border-bottom: 1px solid var(--pd-dark-line);
}
.pd-site .pdx-key-ic {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: none;
  width: 4.8rem;
  height: 4.8rem;
  background: rgba(247, 114, 47, 0.12);
  color: var(--pd-ember);
}
.pd-site .pdx-key-ic svg {
  width: 2.2rem;
  height: 2.2rem;
}
.pd-site .pdx-key b {
  display: block;
  font-family: "Satoshi-Bold";
  font-size: 1.8rem;
  font-weight: 700;
  color: #ffffff;
}
.pd-site .pdx-key em {
  display: block;
  margin-top: 0.4rem;
  font-family: "Spline Sans";
  font-size: 1.4rem;
  font-style: normal;
  color: #b3aeac;
}

/* ---------- Why Databricks: hub ---------- */
.pd-site .pdx-caption {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1.2rem 2.4rem;
  margin: 0;
  padding-top: 2.4rem;
  border-top: 1px solid var(--pd-dark-line);
  font-family: "Satoshi-Medium";
  font-size: 1.2rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #b3aeac;
}
.pd-site .pdx-caption b {
  font-family: "Satoshi-Bold";
  font-size: 1.3rem;
  font-weight: 700;
  color: #ffffff;
}
.pd-site .pdx-caption-num {
  font-family: "Satoshi-Bold";
  font-size: 1.6rem;
  font-style: normal;
  background: var(--pd-num);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.pd-site .pdx-caption-status {
  display: inline-flex;
  align-items: center;
  gap: 0.8rem;
}
.pd-site .pdx-caption-tag {
  margin-left: auto;
  padding: 0.5rem 1.2rem;
  border: 1px solid #544e4e;
  color: #d8d4d2;
}

.pd-site .pdx-hub {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.8fr) minmax(0, 1.1fr);
  gap: 6.4rem;
  align-items: center;
  margin-top: 4.8rem;
  padding: 3.2rem 0 1.6rem;
}
.pd-site .pdx-wires {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  overflow: visible;
  pointer-events: none;
}
.pd-site .pdx-wire {
  fill: none;
  stroke: rgba(247, 114, 47, 0.38);
  stroke-width: 1.5;
}
.pd-site .pdx-packet {
  fill: none;
  stroke: #f7722f;
  stroke-width: 3;
  stroke-linecap: round;
  filter: drop-shadow(0 0 4px rgba(247, 114, 47, 0.9));
}
.pd-site .pdx-wire-dot {
  fill: #f7722f;
}
.pd-site .pdx-hub-side {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 3.2rem;
}
.pd-site .pdx-hub-node .pd-node {
  padding: 2.8rem;
}
.pd-site .pdx-hub-node .pd-node-top {
  flex-direction: column-reverse;
  align-items: flex-start;
  gap: 1.6rem;
}
.pd-site .pdx-hub-node .pd-node-title {
  font-size: 2.2rem;
}
.pd-site .pdx-hub-node .pd-node-foot {
  flex-wrap: wrap;
  gap: 1rem 1.6rem;
}
.pd-site .pdx-hub-center {
  position: relative;
  z-index: 1;
}

.pd-site .pdx-core {
  position: relative;
  display: grid;
  place-items: center;
  width: 100%;
  max-width: 38rem;
  aspect-ratio: 1;
  margin: 0 auto;
  border-radius: 50%;
  text-align: center;
  border: 1px solid rgba(247, 114, 47, 0.5);
  background:
    radial-gradient(circle at 50% 30%, rgba(240, 73, 62, 0.3), rgba(35, 32, 32, 0) 62%),
    #1b1818;
  animation: pdx-breathe 4s ease-in-out infinite;
}
@keyframes pdx-breathe {
  0%, 100% { box-shadow: 0 0 6rem rgba(240, 73, 62, 0.16), inset 0 0 5rem rgba(240, 73, 62, 0.1); }
  50% { box-shadow: 0 0 10rem rgba(240, 73, 62, 0.3), inset 0 0 7rem rgba(240, 73, 62, 0.18); }
}
.pd-site .pdx-core-ring {
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
}
.pd-site .pdx-core-ring--1 {
  inset: -2.4rem;
  border: 1px dashed rgba(247, 245, 244, 0.18);
  animation: pdx-spin 50s linear infinite;
}
.pd-site .pdx-core-ring--2 {
  inset: -5.6rem;
  border: 1px solid rgba(247, 114, 47, 0.12);
}
.pd-site .pdx-core-ring--3 {
  inset: 2rem;
  border: 1px dotted rgba(247, 114, 47, 0.4);
  animation: pdx-spin 70s linear infinite reverse;
}
@keyframes pdx-spin {
  to { transform: rotate(360deg); }
}
.pd-site .pdx-core-body {
  position: relative;
  padding: 3.6rem;
}
.pd-site .pdx-core-tag {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  font-family: "Satoshi-Bold";
  font-size: 1.2rem;
  font-style: normal;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  white-space: nowrap;
  color: var(--pd-ember);
}
.pd-site .pdx-core-tag-ic {
  display: inline-flex;
  width: 1.4rem;
  height: 1.4rem;
}
.pd-site .pdx-core-tag-ic svg {
  width: 100%;
  height: 100%;
}
.pd-site .pdx-core-title {
  margin: 1.6rem 0 1rem;
  font-family: "Satoshi-Bold";
  font-size: 3rem;
  font-weight: 700;
  line-height: 1.2;
  color: #ffffff;
}
.pd-site .pdx-core-sub {
  margin: 0;
  font-family: "Spline Sans";
  font-size: 1.5rem;
  line-height: 1.5;
  color: #b3aeac;
}
.pd-site .pdx-core-chips {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 1rem;
  margin: 8rem 0 0;
  padding: 0;
}
.pd-site .pdx-core-chips li {
  padding: 0.7rem 1.4rem;
  border: 1px solid #544e4e;
  font-family: "Satoshi-Medium";
  font-size: 1.3rem;
  color: #d8d4d2;
  transition: border-color 0.3s, color 0.3s;
}
.pd-site .pdx-core-chips li:hover {
  border-color: var(--pd-ember);
  color: #ffffff;
}

/* ---------- Industries: standards strip + sector explorer ---------- */
.pd-site .pdx-standards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(20rem, 1fr));
  margin: 0 0 5.6rem;
  border-top: 1px solid #cac8c8;
  border-bottom: 1px solid #cac8c8;
}
.pd-site .pdx-standard {
  padding: 2.2rem 2.4rem;
  border-left: 1px solid #cac8c8;
}
.pd-site .pdx-standard:first-child {
  padding-left: 0;
  border-left: 0;
}
.pd-site .pdx-standard dt {
  font-family: "Satoshi-Bold";
  font-size: 1.8rem;
  color: #333;
}
.pd-site .pdx-standard dd {
  margin: 0.6rem 0 0;
  font-family: "Satoshi-Medium";
  font-size: 1.2rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--pd-dim);
}

.pd-site .pdx-sectors {
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
  gap: 1.6rem;
  align-items: stretch;
}
/* without the tab enhancement every sector is a card */
.pd-site .pdx-sectors:not(.pdx-tabs-ready) {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.pd-site .pdx-sectors:not(.pdx-tabs-ready) .pdx-sector-list {
  display: none;
}
.pd-site .pdx-sectors:not(.pdx-tabs-ready) .pdx-sector-panels {
  display: contents;
}

.pd-site .pdx-sector-list {
  display: flex;
  flex-direction: column;
  border-top: 1px solid #cac8c8;
}
.pd-site .pdx-sector-tab {
  position: relative;
  display: grid;
  grid-template-columns: 5.6rem minmax(0, 1fr) auto;
  align-items: center;
  gap: 2rem;
  flex: 1;
  width: 100%;
  padding: 2.8rem 3.2rem 2.8rem 2.4rem;
  overflow: hidden;
  text-align: left;
  background: transparent;
  border: 0;
  border-bottom: 1px solid #cac8c8;
  cursor: pointer;
  transition: background 0.35s ease;
}
.pd-site .pdx-sector-tab::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: 3px;
  background: var(--pd-btn);
  transform: scaleY(0);
  transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}
.pd-site .pdx-sector-tab:hover {
  background: rgba(255, 255, 255, 0.6);
}
.pd-site .pdx-sector-tab.is-active {
  background: #ffffff;
}
.pd-site .pdx-sector-tab.is-active::before {
  transform: scaleY(1);
}
.pd-site .pdx-sector-tab:focus-visible {
  outline: 2px solid var(--pd-ember);
  outline-offset: -2px;
}
.pd-site .pdx-sector-num {
  font-family: "Satoshi-Bold";
  font-size: 2.4rem;
  color: #a8a4a2;
  transition: color 0.3s;
}
.pd-site .pdx-sector-tab.is-active .pdx-sector-num {
  background: var(--pd-num);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.pd-site .pdx-sector-name {
  font-family: "Satoshi-Bold";
  font-size: 2.2rem;
  line-height: 1.3;
  color: #333;
}
.pd-site .pdx-sector-name em {
  display: block;
  margin-top: 0.4rem;
  font-family: "Spline Sans";
  font-size: 1.4rem;
  font-style: normal;
  color: var(--pd-dim);
}
.pd-site .pdx-sector-go {
  display: inline-flex;
  width: 2rem;
  height: 2rem;
  color: var(--pd-red);
  opacity: 0;
  transform: translateX(-0.8rem);
  transition: opacity 0.3s, transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}
.pd-site .pdx-sector-go svg {
  width: 100%;
  height: 100%;
}
.pd-site .pdx-sector-tab:hover .pdx-sector-go,
.pd-site .pdx-sector-tab.is-active .pdx-sector-go {
  opacity: 1;
  transform: none;
}
.pd-site .pdx-sector-progress {
  position: absolute;
  left: 0;
  right: 0;
  bottom: -1px;
  height: 2px;
  background: var(--pd-btn);
  transform: scaleX(0);
  transform-origin: left;
}

.pd-site .pdx-sector-panels {
  position: relative;
  display: grid;
}
.pd-site .pdx-tabs-ready .pdx-sector-panel {
  grid-area: 1 / 1;
  visibility: hidden;
  opacity: 0;
}
.pd-site .pdx-tabs-ready .pdx-sector-panel.is-active {
  visibility: visible;
  opacity: 1;
}
.pd-site .pdx-sector-panel {
  position: relative;
  display: flex;
  flex-direction: column;
  padding: 5.6rem;
  overflow: hidden;
  background: #ffffff;
}
.pd-site .pdx-sector-watermark {
  position: absolute;
  right: -0.8rem;
  bottom: -6.4rem;
  font-family: "Satoshi-Bold";
  font-size: 22rem;
  line-height: 1;
  color: transparent;
  -webkit-text-stroke: 1px rgba(201, 77, 69, 0.2);
  pointer-events: none;
  user-select: none;
}
.pd-site .pdx-sector-top {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.6rem;
}
.pd-site .pdx-sector-ic {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 6.4rem;
  height: 6.4rem;
  background: var(--pd-soft);
  color: var(--pd-red);
}
.pd-site .pdx-sector-ic svg {
  width: 3rem;
  height: 3rem;
}
.pd-site .pdx-sector-kicker {
  position: relative;
  margin: 4.8rem 0 0;
  font-family: "Satoshi-Medium";
  font-size: 1.3rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--pd-dim);
}
.pd-site .pdx-sector-title {
  position: relative;
  margin: 1rem 0 2rem;
  font-family: "Satoshi-Bold";
  font-size: 3.6rem;
  font-weight: 700;
  line-height: 1.2;
  color: #333;
}
.pd-site .pdx-sector-text {
  position: relative;
  max-width: 54rem;
  margin: 0;
  font-family: "Spline Sans";
  font-size: 1.8rem;
  line-height: 1.6;
  color: #333;
  opacity: 0.85;
}
.pd-site .pdx-sector-link {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 0.8rem;
  align-self: flex-start;
  margin-top: auto;
  padding-top: 4rem;
  font-family: "Satoshi-Bold";
  font-size: 1.4rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--pd-red);
}
.pd-site .pdx-sector-link-ic {
  display: inline-flex;
  width: 1.3rem;
  height: 1.3rem;
  transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}
.pd-site .pdx-sector-link-ic svg {
  width: 100%;
  height: 100%;
}
.pd-site .pdx-sector-link:hover .pdx-sector-link-ic {
  transform: translate(0.3rem, -0.3rem);
}

/* ---------- Why choose us: sticky header + numbered reasons ---------- */
.pd-site .pdx-edge-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
  gap: 10rem;
  align-items: start;
}
.pd-site .pdx-edge-head {
  position: sticky;
  top: 14rem;
}
.pd-site .pdx-keys--stack {
  margin-top: 4.8rem;
}
.pd-site .pdx-reasons {
  list-style: none;
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--pd-dark-line);
}
.pd-site .pdx-reason {
  position: relative;
  display: grid;
  grid-template-columns: 13rem minmax(0, 1fr);
  gap: 3.2rem;
  padding: 4.8rem 0;
  border-bottom: 1px solid var(--pd-dark-line);
}
.pd-site .pdx-reason::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -1px;
  width: 100%;
  height: 1px;
  background: linear-gradient(90deg, var(--pd-ember), rgba(247, 114, 47, 0));
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.8s cubic-bezier(0.22, 1, 0.36, 1);
}
/* outline number that fills from the bottom when its row is active */
.pd-site .pdx-reason-num {
  font-family: "Satoshi-Bold";
  font-size: 9.6rem;
  line-height: 0.9;
  background: linear-gradient(180deg, #f7a16f 0%, #c94d45 100%) no-repeat bottom / 100% 100%;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  -webkit-text-stroke: 1px rgba(247, 114, 47, 0.6);
  transition: background-size 0.9s cubic-bezier(0.22, 1, 0.36, 1);
}
.pd-site .pdx-reasons.is-enhanced .pdx-reason-num {
  background-size: 100% 0%;
}
.pd-site .pdx-reasons.is-enhanced .pdx-reason.is-active .pdx-reason-num,
.pd-site .pdx-reasons.is-enhanced .pdx-reason:hover .pdx-reason-num {
  background-size: 100% 100%;
}
.pd-site .pdx-reason.is-active::after,
.pd-site .pdx-reason:hover::after {
  transform: scaleX(1);
}
.pd-site .pdx-reason-top {
  display: flex;
  align-items: center;
  gap: 1.4rem;
}
.pd-site .pdx-reason-ic {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 3.6rem;
  height: 3.6rem;
  background: rgba(247, 114, 47, 0.12);
  color: var(--pd-ember);
}
.pd-site .pdx-reason-ic svg {
  width: 1.8rem;
  height: 1.8rem;
}
.pd-site .pdx-reason-top em {
  font-family: "Satoshi-Medium";
  font-size: 1.3rem;
  font-style: normal;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #b3aeac;
}
.pd-site .pdx-reason-title {
  margin: 2rem 0 1.2rem;
  font-family: "Satoshi-Bold";
  font-size: 2.8rem;
  font-weight: 700;
  line-height: 1.25;
  color: #ffffff;
}
.pd-site .pdx-reason-text {
  max-width: 56rem;
  margin: 0;
  font-family: "Spline Sans";
  font-size: 1.7rem;
  line-height: 1.6;
  color: #f7f5f4;
  opacity: 0.72;
}

@media (max-width: 1200px) {
  .pd-site .pdx-hub {
    grid-template-columns: minmax(0, 1fr);
    gap: 3.2rem;
  }
  .pd-site .pdx-wires {
    display: none;
  }
  .pd-site .pdx-hub-center {
    order: -1;
    margin-bottom: 4rem;
  }
  .pd-site .pdx-core {
    max-width: 34rem;
  }
  .pd-site .pdx-core-chips {
    margin-top: 6.4rem;
  }
  .pd-site .pdx-hub-side {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(30rem, 1fr));
    gap: 1.6rem;
  }
}

@media (max-width: 992px) {
  .pd-site .pdx-head,
  .pd-site .pdx-edge-grid {
    grid-template-columns: 1fr;
    gap: 4.8rem;
  }
  .pd-site .pdx-edge-head {
    position: static;
  }
  /* explorer falls back to stacked cards */
  .pd-site .pdx-sectors,
  .pd-site .pdx-sectors.pdx-tabs-ready {
    grid-template-columns: 1fr;
  }
  .pd-site .pdx-tabs-ready .pdx-sector-list {
    display: none;
  }
  .pd-site .pdx-tabs-ready .pdx-sector-panels {
    gap: 1.6rem;
  }
  .pd-site .pdx-tabs-ready .pdx-sector-panel {
    grid-area: auto;
    visibility: visible;
    opacity: 1;
  }
}

@media (max-width: 768px) {
  .pd-site .pdx-caption-tag {
    margin-left: 0;
  }
  .pd-site .pdx-core {
    max-width: 28rem;
  }
  .pd-site .pdx-core-body {
    padding: 3.2rem;
  }
  .pd-site .pdx-core-title {
    font-size: 2.4rem;
  }
  .pd-site .pdx-core-ring--2 {
    inset: -3.6rem;
  }
  .pd-site .pdx-hub-side {
    grid-template-columns: 1fr;
  }
  .pd-site .pdx-sector-panel {
    padding: 3.2rem 2.4rem;
  }
  .pd-site .pdx-sector-title {
    font-size: 2.6rem;
  }
  .pd-site .pdx-sector-watermark {
    font-size: 14rem;
    bottom: -2rem;
  }
  .pd-site .pdx-sector-kicker {
    margin-top: 3.2rem;
  }
  .pd-site .pdx-reason {
    grid-template-columns: 6.4rem minmax(0, 1fr);
    gap: 2rem;
    padding: 3.6rem 0;
  }
  .pd-site .pdx-reason-num {
    font-size: 5.2rem;
  }
  .pd-site .pdx-reason-title {
    font-size: 2.2rem;
  }
}

/* ==========================================================================
   AI partner blocks (blocks/ai/*.html) in the main site chrome, e.g. /anthropic/
   ========================================================================== */

/* flat and square like the rest of the site; only true circles stay round */
.pd-site .pd-section [class*="ai-"] {
  border-radius: 0;
  box-shadow: none;
}
.pd-site .pd-section .ai-mockup-node-center,
.pd-site .pd-section .ai-mockup-gauge,
.pd-site .pd-section .ai-faq-icon {
  border-radius: 50%;
}

/* section rhythm: cream / white / dark alternate instead of three darks in a row */
.pd-site .ai-theme-light,
.pd-site .ai-engagement-section,
.pd-site #ai-independence,
.pd-site #ai-faq {
  background: var(--pd-cream);
}
.pd-site #ai-services,
.pd-site #ai-contact {
  background: #ffffff;
}

.pd-site .ai-sec-head {
  max-width: 90rem;
  margin-bottom: 6.4rem;
}
.pd-site .ai-sec-head .pd-lead {
  margin-top: 0;
}

/* ---------- hero ---------- */
.pd-site .ai-hero-grid {
  gap: 8rem;
  align-items: center;
}
.pd-site .ai-hero-right {
  position: relative;
}
.pd-site .ai-hero-right::before {
  content: "";
  position: absolute;
  top: -6rem;
  right: -12rem;
  width: 34rem;
  height: 34rem;
  border-radius: 50%;
  background: repeating-linear-gradient(0deg, #cac8c8 0 1px, transparent 1px 1.2rem);
  pointer-events: none;
}
.pd-site .ai-hero-right::after {
  content: "";
  position: absolute;
  left: -3.2rem;
  bottom: -4.4rem;
  width: 9rem;
  height: 3.2rem;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 90 32' fill='none' stroke='%23e3553f' stroke-width='2'%3E%3Cpath d='M0 6l7.5-5 7.5 5 7.5-5 7.5 5 7.5-5 7.5 5 7.5-5 7.5 5 7.5-5 7.5 5 7.5-5 7.5 5'/%3E%3Cpath d='M0 18l7.5-5 7.5 5 7.5-5 7.5 5 7.5-5 7.5 5 7.5-5 7.5 5 7.5-5 7.5 5 7.5-5 7.5 5'/%3E%3Cpath d='M0 30l7.5-5 7.5 5 7.5-5 7.5 5 7.5-5 7.5 5 7.5-5 7.5 5 7.5-5 7.5 5 7.5-5 7.5 5'/%3E%3C/svg%3E") no-repeat center / contain;
  pointer-events: none;
}
.pd-site .ai-badgecard,
.pd-site .ai-enginecard {
  position: relative;
  z-index: 1;
  padding: 4rem 3.6rem;
  background: #ffffff;
  border: 1px solid var(--pd-line);
}
.pd-site .ai-badgecard-eyebrow,
.pd-site .ai-enginecard-eyebrow {
  font-family: "Satoshi-Bold";
  font-size: 1.3rem;
  letter-spacing: 0.1em;
  color: var(--pd-red);
}
.pd-site .ai-badgecard-title {
  font-family: "Satoshi-Bold";
  font-size: 2rem;
  color: #333;
}
.pd-site .ai-badgecard-sub {
  font-family: "Spline Sans";
  font-size: 1.4rem;
  color: var(--pd-dim);
}

/* ---------- architecture diagrams ---------- */
.pd-site .ai-diagram-brief-header {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1.2rem 2.4rem;
  max-width: none;
  margin: 0 0 4rem;
  padding-top: 2.4rem;
  border-top: 1px solid var(--pd-dark-line);
}
.pd-site .ai-diagram-label {
  font-family: "Satoshi-Bold";
  font-size: 1.3rem;
  letter-spacing: 0.12em;
  color: #ffffff;
}
.pd-site .ai-diagram-box {
  max-width: none;
  margin: 0;
  padding: 6.4rem 5.6rem;
  background:
    radial-gradient(60rem circle at 50% 30%, rgba(240, 73, 62, 0.08), transparent 70%),
    transparent;
  border: 1px solid var(--pd-dark-line);
}
.pd-site .ai-diagram-node {
  position: relative;
  padding: 2.2rem 2.8rem;
  background: var(--pd-dark-card);
  border: 1px solid var(--pd-dark-line);
  transition: border-color 0.3s, transform 0.3s ease-in-out;
}
.pd-site .ai-diagram-node:hover {
  border-color: rgba(247, 114, 47, 0.6);
  transform: translateY(-3px);
}
.pd-site .ai-diagram-node b {
  display: block;
  font-family: "Satoshi-Bold";
  font-size: 1.8rem;
  font-weight: 700;
  color: #ffffff;
}
.pd-site .ai-diagram-node em {
  display: block;
  margin-top: 0.4rem;
  font-family: "Spline Sans";
  font-size: 1.3rem;
  font-style: normal;
  color: #b3aeac;
}
.pd-site .ai-diagram-node-top,
.pd-site .ai-diagram-node-bottom {
  max-width: 64rem;
  margin: 0 auto;
}
.pd-site .ai-diagram-node-bottom {
  max-width: none;
  border-top: 2px solid rgba(247, 114, 47, 0.5);
}
/* the model sits at the centre of the stack and glows */
.pd-site .ai-diagram-node-center {
  max-width: 36rem;
  margin: 0 auto;
  padding: 2.8rem 3.2rem;
  border: 1px solid rgba(247, 114, 47, 0.6);
  background:
    radial-gradient(circle at 50% 0%, rgba(240, 73, 62, 0.3), transparent 70%),
    var(--pd-dark-card);
  animation: pdx-breathe 4s ease-in-out infinite;
}
.pd-site .ai-diagram-node-center b {
  font-size: 2.6rem;
  letter-spacing: 0.02em;
  background: linear-gradient(90deg, #ef7160, #f7a16f);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.pd-site .ai-diagram-node-hi {
  border-color: var(--pd-ember);
}
.pd-site .ai-diagram-connector {
  position: relative;
  width: 1px;
  height: 4.8rem;
  margin: 0 auto;
  background: rgba(247, 114, 47, 0.5);
}
.pd-site .is-live .ai-diagram-connector::after {
  content: "";
  position: absolute;
  left: -0.25rem;
  width: 0.6rem;
  height: 0.6rem;
  border-radius: 50%;
  background: var(--pd-ember);
  box-shadow: 0 0 0.8rem 0.2rem rgba(247, 114, 47, 0.6);
  animation: pd-flow-y 1.6s linear infinite;
}
.pd-site .is-live .ai-diagram-connector:nth-of-type(4)::after { animation-delay: 0.5s; }
.pd-site .is-live .ai-diagram-connector:nth-of-type(6)::after { animation-delay: 1s; }

/* capability row hangs off a bus line; --n (item count) is set by partnerdetail_site.js */
.pd-site .ai-diagram-row {
  --n: 3;
  --bus: 3.2rem;
  position: relative;
  display: grid;
  grid-template-columns: repeat(var(--n), minmax(0, 1fr));
  gap: 1.6rem;
  padding: var(--bus) 0;
  text-align: center;
}
.pd-site .ai-diagram-row::before,
.pd-site .ai-diagram-row::after {
  content: "";
  position: absolute;
  left: calc(50% / var(--n));
  right: calc(50% / var(--n));
  height: 1px;
  background: rgba(247, 114, 47, 0.5);
}
.pd-site .ai-diagram-row::before { top: 0; }
.pd-site .ai-diagram-row::after { bottom: 0; }
.pd-site .ai-diagram-row:not(:has(+ .ai-diagram-connector))::after { display: none; }
/* the grid sizes the nodes (aidetail.css pins them at 180px) */
.pd-site .ai-diagram-row > .ai-diagram-node {
  width: auto;
  min-width: 0;
}
.pd-site .ai-diagram-row > .ai-diagram-node::before,
.pd-site .ai-diagram-row > .ai-diagram-node::after {
  content: "";
  position: absolute;
  left: 50%;
  width: 1px;
  height: var(--bus);
  background: rgba(247, 114, 47, 0.5);
}
.pd-site .ai-diagram-row > .ai-diagram-node::before { bottom: 100%; }
.pd-site .ai-diagram-row > .ai-diagram-node::after { top: 100%; }
.pd-site .ai-diagram-row:not(:has(+ .ai-diagram-connector)) > .ai-diagram-node::after { display: none; }
/* light streaks run down each leg once live */
.pd-site .is-live .ai-diagram-row > .ai-diagram-node::before,
.pd-site .is-live .ai-diagram-row > .ai-diagram-node::after {
  background: linear-gradient(180deg, rgba(247, 114, 47, 0.5) 0 35%, #f7a16f 50%, rgba(247, 114, 47, 0.5) 65% 100%) 0 0 / 100% 300%;
  animation: pdx-streak 1.8s linear infinite;
}
@keyframes pdx-streak {
  from { background-position: 0 100%; }
  to { background-position: 0 0%; }
}

/* ---------- pillars (light feature grid) ---------- */
.pd-site .ai-theme-light .ai-featuregrid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(24rem, 1fr));
  gap: 0;
  margin-top: 0;
  border-top: 1px solid #cac8c8;
}
.pd-site .ai-theme-light .ai-featurecard {
  position: relative;
  padding: 4.8rem 3.2rem 1.6rem;
  background: transparent;
  border: 0;
  border-left: 1px solid #cac8c8;
}
.pd-site .ai-theme-light .ai-featurecard:first-child {
  padding-left: 0;
  border-left: 0;
}
.pd-site .ai-theme-light .ai-featurecard-wide {
  grid-column: span 2;
}
.pd-site .ai-theme-light .ai-featurecard::before {
  content: "";
  position: absolute;
  top: -1px;
  left: 0;
  right: 0;
  height: 3px;
  background: var(--pd-btn);
  transform-origin: left;
  transition: transform 0.9s cubic-bezier(0.22, 1, 0.36, 1);
}
.pd-site .ai-theme-light .ai-featuregrid.is-enhanced .ai-featurecard::before {
  transform: scaleX(0);
}
.pd-site .ai-theme-light .ai-featuregrid.is-enhanced .ai-featurecard.is-in::before,
.pd-site .ai-theme-light .ai-featurecard:hover::before {
  transform: scaleX(1);
}
.pd-site .ai-featurecard-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.6rem;
  margin-bottom: 2.4rem;
}
.pd-site .ai-featurecard-number {
  font-family: "Satoshi-Bold";
  font-size: 5.6rem;
  line-height: 1;
  background: var(--pd-num);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.pd-site .ai-featurecard-tag {
  border: 0;
  background: none;
  padding: 0;
  font-family: "Satoshi-Medium";
  font-size: 1.2rem;
  letter-spacing: 0.1em;
  color: var(--pd-dim);
}
.pd-site .ai-featurecard-ic {
  color: var(--pd-red);
}
.pd-site .ai-featurecard h4 {
  margin: 0 0 1.2rem;
  font-family: "Satoshi-Bold";
  font-size: 2.4rem;
  font-weight: 700;
  line-height: 1.3;
  color: #333;
}
.pd-site .ai-featurecard p {
  margin: 0;
  font-family: "Spline Sans";
  font-size: 1.6rem;
  line-height: 1.6;
  color: #333;
  opacity: 0.8;
}
.pd-site .ai-chain-pill {
  border: 1px solid var(--pd-line);
  font-family: "Satoshi-Medium";
}
.pd-site .ai-chain-pill-hi {
  background: var(--pd-btn);
  border-color: transparent;
  color: #ffffff;
}

/* ---------- commitments (dark feature grid): pinned heading + numbered list ---------- */
.pd-site .ai-theme-dark .pd-inner {
  display: grid;
  grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
  gap: 10rem;
  align-items: start;
}
.pd-site .ai-theme-dark .ai-sec-head {
  position: sticky;
  top: 14rem;
  margin-bottom: 0;
}
.pd-site .ai-theme-dark .ai-chain {
  grid-column: 1 / -1;
}
.pd-site .ai-theme-dark .ai-featuregrid {
  display: block;
  margin: 0;
  counter-reset: aifeat;
  border-top: 1px solid var(--pd-dark-line);
}
.pd-site .ai-theme-dark .ai-featurecard {
  position: relative;
  display: grid;
  grid-template-columns: 13rem minmax(0, 1fr);
  column-gap: 3.2rem;
  padding: 4.4rem 0;
  counter-increment: aifeat;
  background: transparent;
  border: 0;
  border-bottom: 1px solid var(--pd-dark-line);
}
.pd-site .ai-theme-dark .ai-featurecard::before {
  content: counter(aifeat, decimal-leading-zero);
  grid-row: 1 / span 3;
  font-family: "Satoshi-Bold";
  font-size: 9.6rem;
  line-height: 0.9;
  background: linear-gradient(180deg, #f7a16f 0%, #c94d45 100%) no-repeat bottom / 100% 100%;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  -webkit-text-stroke: 1px rgba(247, 114, 47, 0.6);
  transition: background-size 0.9s cubic-bezier(0.22, 1, 0.36, 1);
}
.pd-site .ai-theme-dark .ai-featuregrid.is-enhanced .ai-featurecard::before {
  background-size: 100% 0%;
}
.pd-site .ai-theme-dark .ai-featuregrid.is-enhanced .ai-featurecard.is-active::before,
.pd-site .ai-theme-dark .ai-featuregrid.is-enhanced .ai-featurecard:hover::before {
  background-size: 100% 100%;
}
.pd-site .ai-theme-dark .ai-featurecard::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -1px;
  width: 100%;
  height: 1px;
  background: linear-gradient(90deg, var(--pd-ember), rgba(247, 114, 47, 0));
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.8s cubic-bezier(0.22, 1, 0.36, 1);
}
.pd-site .ai-theme-dark .ai-featurecard.is-active::after,
.pd-site .ai-theme-dark .ai-featurecard:hover::after {
  transform: scaleX(1);
}
.pd-site .ai-theme-dark .ai-featurecard > * {
  grid-column: 2;
}
.pd-site .ai-theme-dark .ai-featurecard-top {
  justify-content: flex-start;
  margin-bottom: 1.6rem;
}
.pd-site .ai-theme-dark .ai-featurecard-mark {
  display: none;
}
.pd-site .ai-theme-dark .ai-featurecard-tag {
  color: #b3aeac;
}
.pd-site .ai-theme-dark .ai-featurecard h4 {
  font-size: 2.8rem;
  color: #ffffff;
}
.pd-site .ai-theme-dark .ai-featurecard p {
  max-width: 56rem;
  font-size: 1.7rem;
  color: #f7f5f4;
  opacity: 0.72;
}

/* commitments that carry their own number: the big counter already shows it */
.pd-site .ai-theme-dark .ai-featurecard-number {
  display: none;
}
.pd-site .ai-theme-dark .ai-featurecard-marker {
  display: inline-flex;
  align-items: center;
  gap: 1.2rem;
}
.pd-site .ai-theme-dark .ai-featurecard-ic {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 3.6rem;
  height: 3.6rem;
  background: rgba(247, 114, 47, 0.12);
  color: var(--pd-ember);
}
.pd-site .ai-theme-dark .ai-featurecard-ic svg {
  width: 1.8rem;
  height: 1.8rem;
}
/* "IP independence journey" chain: steps leading to the highlighted repository */
.pd-site .ai-chain {
  margin-top: 8rem;
  padding-top: 4rem;
  border-top: 1px solid var(--pd-dark-line);
}
.pd-site .ai-chain-label {
  font-family: "Satoshi-Bold";
  font-size: 1.3rem;
  letter-spacing: 0.12em;
  color: var(--pd-ember);
}
.pd-site .ai-chain-row {
  gap: 0;
  margin-top: 2.4rem;
}
.pd-site .ai-chain-pill {
  position: relative;
  padding: 1.2rem 2rem;
  margin-right: 2.8rem;
  border: 1px solid #544e4e;
  font-size: 1.4rem;
  color: #d8d4d2;
  background: transparent;
}
.pd-site .ai-chain-pill + .ai-chain-pill::before {
  content: "";
  position: absolute;
  top: 50%;
  right: 100%;
  width: 2.8rem;
  height: 1px;
  background: rgba(247, 114, 47, 0.55);
}
.pd-site .ai-chain-pill-hi {
  border-color: transparent;
  background: var(--pd-btn);
  color: #ffffff;
}
.pd-site .ai-chain-caption {
  max-width: 72rem;
  margin-top: 2.4rem;
  font-family: "Spline Sans";
  font-size: 1.5rem;
  line-height: 1.6;
  color: #b3aeac;
}

/* ---------- services grid (masonry of cards) ---------- */
.pd-site .ai-servicegrid {
  gap: 1.6rem;
  margin-top: 0;
}
.pd-site .ai-servicegrid-col {
  gap: 1.6rem;
}
.pd-site .ai-servicegrid-card {
  padding: 3.6rem 3.2rem;
  background: var(--pd-cream);
  border: 0;
  transition: transform 0.2s ease-in-out, box-shadow 0.2s ease-in-out, background 0.2s;
}
.pd-site .ai-servicegrid-card:hover {
  background: #ffffff;
  transform: translateY(-4px);
  box-shadow: 0 8px 12px 8px rgba(0, 0, 0, 0.05);
}
.pd-site .ai-servicegrid-top {
  align-items: center;
  margin-bottom: 2.4rem;
}
.pd-site .ai-servicegrid-number {
  font-family: "Satoshi-Bold";
  font-size: 4.2rem;
  line-height: 1;
  background: var(--pd-num);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.pd-site .ai-servicegrid-card .pd-chip-grey {
  background: #ffffff;
}
.pd-site .ai-servicegrid-card h4 {
  margin: 0 0 1.2rem;
  font-family: "Satoshi-Bold";
  font-size: 2.4rem;
  font-weight: 700;
  line-height: 1.3;
  color: #333;
  transition: color 0.2s;
}
.pd-site .ai-servicegrid-card:hover h4 {
  color: #c01211;
}
.pd-site .ai-servicegrid-flow,
.pd-site .ai-servicegrid-ranked {
  margin-top: 2.4rem;
  padding: 1.4rem 1.6rem;
  background: #ffffff;
  border: 1px solid var(--pd-line);
}
.pd-site .ai-servicegrid-flow {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.8rem 1rem;
}
.pd-site .ai-flow-stage {
  white-space: normal;
  font-family: "Satoshi-Bold";
  font-size: 1.2rem;
  letter-spacing: 0.06em;
  color: #555;
}
.pd-site .ai-flow-stage-hi {
  color: var(--pd-red);
}
.pd-site .ai-servicegrid-flow-ic,
.pd-site .ai-servicegrid-icon-solo,
.pd-site .ai-flow-arrow {
  color: var(--pd-red);
}
.pd-site .ai-servicegrid-card .ai-service-receive {
  margin-bottom: 0;
}

/* narrower screens: drop the editor's desktop columns and read 01, 02, 03… */
@media (max-width: 1180px) {
  .pd-site .ai-servicegrid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .pd-site .ai-servicegrid-col {
    display: contents;
  }
  .pd-site .ai-servicegrid-card {
    order: var(--o, 0);
  }
}
@media (max-width: 768px) {
  .pd-site .ai-servicegrid {
    grid-template-columns: 1fr;
  }
}

/* ---------- engine hero card (OpenAI) ---------- */
.pd-site .ai-enginestage {
  border: 1px solid var(--pd-line);
  background: #ffffff;
}
.pd-site .ai-enginestage-hi {
  border-color: var(--pd-soft-bd);
  background: var(--pd-soft);
}
.pd-site .ai-enginestage-title {
  font-family: "Satoshi-Bold";
  font-size: 1.4rem;
  color: #333;
}
.pd-site .ai-enginestage-code {
  font-family: "Satoshi-Medium";
  font-size: 1.1rem;
  letter-spacing: 0.06em;
}
.pd-site .ai-enginecard-status {
  background: var(--pd-soft);
  border: 1px solid var(--pd-soft-bd);
  color: var(--pd-red);
  font-family: "Satoshi-Bold";
}

/* ---------- services: divided alternating rows ---------- */
.pd-site .ai-services-list {
  border-top: 1px solid var(--pd-line);
}
.pd-site .ai-service-row {
  gap: 8rem;
  padding: 6.4rem 0;
  border-bottom: 1px solid var(--pd-line);
}
.pd-site .ai-service-mockup {
  padding: 4.8rem;
  background: var(--pd-cream);
}
.pd-site .ai-mockup {
  padding: 2.8rem;
  background: #ffffff;
  border: 1px solid var(--pd-line);
}
.pd-site .ai-mockup-header {
  font-family: "Satoshi-Bold";
  font-size: 1.2rem;
  letter-spacing: 0.1em;
  color: #6b6b6b;
}
.pd-site .ai-mockup-alert {
  background: var(--pd-soft);
  border: 1px solid var(--pd-soft-bd);
  color: var(--pd-red);
  font-family: "Satoshi-Bold";
}
.pd-site .ai-bar-red {
  background: var(--pd-btn);
}
.pd-site .ai-mockup-node-center {
  background: var(--pd-btn);
}
.pd-site .ai-service-index b {
  font-family: "Satoshi-Bold";
  font-size: 4.2rem;
  background: var(--pd-num);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.pd-site .ai-service-index em {
  font-family: "Satoshi-Medium";
  font-size: 1.3rem;
  letter-spacing: 0.1em;
  color: var(--pd-dim);
}
.pd-site .ai-service-text h3 {
  margin: 1.2rem 0 1.6rem;
  font-family: "Satoshi-Bold";
  font-size: 3rem;
  font-weight: 700;
  line-height: 1.25;
  color: #333;
}
.pd-site .ai-service-receive {
  margin: 2rem 0;
  padding-left: 1.6rem;
  border-left: 3px solid var(--pd-red);
  font-family: "Spline Sans";
  font-size: 1.6rem;
  line-height: 1.55;
  color: #333;
}
.pd-site .ai-service-receive strong {
  font-family: "Satoshi-Bold";
}

/* ---------- engagement: light process timeline ---------- */
.pd-site .ai-engagement-section .pd-rail {
  border-right-color: #cac8c8;
}
.pd-site .ai-engagement-section .pd-rail-text,
.pd-site .ai-engagement-section .pd-eyebrow,
.pd-site .ai-engagement-section .pd-h2 {
  color: #333;
}
.pd-site .ai-engagement-section .pd-lead,
.pd-site .ai-engagement-section .pd-card-text {
  color: #333;
  opacity: 0.82;
}
.pd-site .ai-steps {
  --p: 1;
  position: relative;
  gap: 1.6rem;
  margin-top: 0;
  padding-top: 5.6rem;
}
.pd-site .ai-steps::before,
.pd-site .ai-steps::after {
  content: "";
  position: absolute;
  top: 1.2rem;
  left: 0;
  right: 0;
  height: 2px;
  background: #cac8c8;
}
.pd-site .ai-steps::after {
  background: var(--pd-btn);
  transform-origin: left;
  transform: scaleX(var(--p));
}
.pd-site .ai-step {
  position: relative;
  padding: 4rem 3.6rem;
  background: #ffffff;
  border: 0;
  transition: transform 0.2s ease-in-out, box-shadow 0.2s ease-in-out;
}
.pd-site .ai-step:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 12px 8px rgba(0, 0, 0, 0.05);
}
/* marker on the timeline above each step */
.pd-site .ai-step::before {
  content: "";
  position: absolute;
  top: -5.1rem;
  left: 3.6rem;
  width: 1.6rem;
  height: 1.6rem;
  border-radius: 50%;
  background: var(--pd-cream);
  border: 2px solid #cac8c8;
  transition: background 0.4s, border-color 0.4s, box-shadow 0.4s;
}
.pd-site .ai-step.is-active::before {
  background: var(--pd-ember);
  border-color: var(--pd-ember);
  box-shadow: 0 0 0 0.6rem rgba(247, 114, 47, 0.18);
}
.pd-site .ai-step-top {
  margin-bottom: 2rem;
}
.pd-site .ai-step-number {
  font-family: "Satoshi-Bold";
  font-size: 4.8rem;
  line-height: 1;
  background: var(--pd-num);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.pd-site .ai-step h4 {
  margin: 0 0 1.2rem;
  font-family: "Satoshi-Bold";
  font-size: 2.4rem;
  color: #333;
}
.pd-site .ai-step-checkpoint {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  padding: 0.6rem 1.2rem;
  background: var(--pd-soft);
  border: 1px solid var(--pd-soft-bd);
  font-family: "Satoshi-Bold";
  font-size: 1.2rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--pd-red);
}
.pd-site .ai-step-checkpoint svg {
  width: 1.4rem;
  height: 1.4rem;
}
.pd-site .ai-step-output {
  margin: 2.4rem 0 0;
  padding-top: 2rem;
  border-top: 1px solid var(--pd-line);
  font-family: "Spline Sans";
  font-size: 1.5rem;
  line-height: 1.55;
  color: #333;
}
.pd-site .ai-step-output strong {
  font-family: "Satoshi-Bold";
  color: #333;
}

/* ---------- IP independence: an ownership equation ---------- */
.pd-site #ai-independence .pd-lead {
  margin-bottom: 6.4rem;
}
.pd-site .ai-independence-row {
  display: flex;
  align-items: stretch;
  gap: 4.8rem;
  margin-top: 0;
}
.pd-site .ai-independence-card {
  position: relative;
  flex: 1 1 0;
  padding: 3.6rem 2.8rem;
  background: #ffffff;
  border: 0;
  transition: transform 0.2s ease-in-out, box-shadow 0.2s ease-in-out;
}
.pd-site .ai-independence-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 12px 8px rgba(0, 0, 0, 0.05);
}
.pd-site .ai-independence-card + .ai-independence-card::before {
  content: "+";
  position: absolute;
  top: 50%;
  left: -2.4rem;
  transform: translate(-50%, -50%);
  font-family: "Satoshi-Bold";
  font-size: 3.2rem;
  line-height: 1;
  color: var(--pd-red);
}
.pd-site .ai-independence-card + .ai-independence-card-hi::before {
  content: "=";
}
.pd-site .ai-independence-card-hi {
  flex-grow: 1.35;
  background: var(--pd-btn);
  color: #ffffff;
}
.pd-site .ai-independence-ic {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 4.8rem;
  height: 4.8rem;
  margin-bottom: 2.4rem;
  background: var(--pd-soft);
  color: var(--pd-red);
}
.pd-site .ai-independence-ic svg {
  width: 2.2rem;
  height: 2.2rem;
}
.pd-site .ai-independence-card-hi .ai-independence-ic {
  background: rgba(255, 255, 255, 0.18);
  color: #ffffff;
}
.pd-site .ai-independence-card h5 {
  margin: 0 0 1rem;
  font-family: "Satoshi-Bold";
  font-size: 2rem;
  color: #333;
}
.pd-site .ai-independence-card p {
  margin: 0;
  font-family: "Spline Sans";
  font-size: 1.5rem;
  line-height: 1.55;
  color: #333;
  opacity: 0.8;
}
.pd-site .ai-independence-card-hi h5,
.pd-site .ai-independence-card-hi p {
  color: #ffffff;
  opacity: 1;
}

/* ---------- FAQ: pinned heading + numbered accordion ---------- */
.pd-site #ai-faq .pd-inner {
  display: grid;
  grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
  gap: 8rem;
  align-items: start;
}
.pd-site #ai-faq .ai-sec-head {
  position: sticky;
  top: 14rem;
  margin-bottom: 0;
}
.pd-site .ai-faq-list {
  max-width: none;
  margin: 0;
  counter-reset: aifaq;
  border-top: 1px solid #cac8c8;
}
.pd-site .ai-faq-item {
  counter-increment: aifaq;
  border-bottom: 1px solid #cac8c8;
}
.pd-site .ai-faq-question {
  display: grid;
  grid-template-columns: 4.8rem minmax(0, 1fr) 3.2rem;
  align-items: center;
  gap: 1.6rem;
  width: 100%;
  padding: 2.8rem 0;
  font-family: "Satoshi-Bold";
  font-size: 2rem;
  line-height: 1.35;
  text-align: left;
  color: #333;
}
.pd-site .ai-faq-question::before {
  content: counter(aifaq, decimal-leading-zero);
  font-family: "Satoshi-Bold";
  font-size: 1.4rem;
  color: #a8a4a2;
  transition: color 0.3s;
}
.pd-site .ai-faq-question span {
  transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}
.pd-site .ai-faq-question:hover span {
  transform: translateX(0.6rem);
}
.pd-site .ai-faq-question:focus-visible {
  outline: 2px solid var(--pd-ember);
  outline-offset: 4px;
}
.pd-site .ai-faq-icon {
  width: 3.2rem;
  height: 3.2rem;
  border-radius: 50%;
  border: 1px solid #cac8c8;
  transition: background 0.3s, border-color 0.3s, transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}
.pd-site .ai-faq-icon::before { width: 1.2rem; height: 1.5px; }
.pd-site .ai-faq-icon::after { width: 1.5px; height: 1.2rem; }
.pd-site .ai-faq-item-open .ai-faq-question { color: #333; }
.pd-site .ai-faq-item-open .ai-faq-question::before { color: var(--pd-red); }
.pd-site .ai-faq-item-open .ai-faq-icon {
  background: var(--pd-ember);
  border-color: var(--pd-ember);
  transform: rotate(180deg);
}
.pd-site .ai-faq-item-open .ai-faq-icon::before,
.pd-site .ai-faq-item-open .ai-faq-icon::after {
  color: #ffffff;
}
/* smooth open/close with no height cap (answers of any length fit) */
.pd-site .ai-faq-answer,
.pd-site .ai-faq-item-open .ai-faq-answer {
  display: grid;
  grid-template-rows: 0fr;
  max-height: none;
  transition: grid-template-rows 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}
.pd-site .ai-faq-item-open .ai-faq-answer {
  grid-template-rows: 1fr;
}
.pd-site .ai-faq-answer > p {
  min-height: 0;
  overflow: hidden;
  max-width: 64rem;
  margin: 0;
  padding: 0 4.8rem 0 6.4rem;
  font-family: "Spline Sans";
  font-size: 1.7rem;
  line-height: 1.65;
  color: #333;
  opacity: 0.8;
  transition: padding 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}
.pd-site .ai-faq-item-open .ai-faq-answer > p {
  padding-bottom: 2.8rem;
}

@media (max-width: 1200px) {
  .pd-site .ai-independence-row {
    flex-wrap: wrap;
  }
  .pd-site .ai-independence-card {
    flex: 1 1 calc(33% - 4.8rem);
  }
}

@media (max-width: 992px) {
  .pd-site .ai-theme-dark .pd-inner,
  .pd-site #ai-faq .pd-inner {
    grid-template-columns: 1fr;
    gap: 4.8rem;
  }
  .pd-site .ai-theme-dark .ai-sec-head,
  .pd-site #ai-faq .ai-sec-head {
    position: static;
  }
  .pd-site .ai-service-row {
    gap: 3.2rem;
  }
  .pd-site .ai-diagram-row {
    --n: 3 !important;
  }
  .pd-site .ai-steps {
    grid-template-columns: 1fr;
    padding-top: 0;
    padding-left: 4rem;
  }
  .pd-site .ai-steps::before,
  .pd-site .ai-steps::after {
    top: 0;
    bottom: 0;
    left: 0.7rem;
    right: auto;
    width: 2px;
    height: auto;
  }
  .pd-site .ai-steps::after {
    transform-origin: top;
    transform: scaleY(var(--p));
  }
  .pd-site .ai-step::before {
    top: 4.4rem;
    left: -4rem;
  }
}

@media (max-width: 768px) {
  .pd-site .ai-diagram-box {
    padding: 3.2rem 1.6rem;
  }
  .pd-site .ai-diagram-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    padding: 1.6rem 0;
  }
  .pd-site .ai-diagram-row::before,
  .pd-site .ai-diagram-row::after,
  .pd-site .ai-diagram-row > .ai-diagram-node::before,
  .pd-site .ai-diagram-row > .ai-diagram-node::after {
    display: none;
  }
  .pd-site .ai-diagram-node {
    padding: 1.6rem;
  }
  .pd-site .ai-service-mockup {
    padding: 2rem;
  }
  .pd-site .ai-service-text h3 {
    font-size: 2.4rem;
  }
  .pd-site .ai-theme-light .ai-featurecard,
  .pd-site .ai-theme-light .ai-featurecard:first-child {
    padding: 3.2rem 0 1.6rem;
    border-left: 0;
  }
  .pd-site .ai-theme-dark .ai-featurecard {
    grid-template-columns: 6.4rem minmax(0, 1fr);
    column-gap: 2rem;
    padding: 3.6rem 0;
  }
  .pd-site .ai-theme-dark .ai-featurecard::before {
    font-size: 5.2rem;
  }
  .pd-site .ai-independence-row {
    flex-direction: column;
    gap: 4.8rem;
  }
  .pd-site .ai-independence-card + .ai-independence-card::before {
    top: -2.4rem;
    left: 50%;
  }
  .pd-site .ai-faq-question {
    grid-template-columns: 3.2rem minmax(0, 1fr) 3.2rem;
    font-size: 1.8rem;
  }
  .pd-site .ai-faq-answer > p {
    padding-left: 4.8rem;
    padding-right: 0;
  }
}

/* ---------- readability: floor for the diagram micro-labels ---------- */
.pd-site .pd-fig-title,
.pd-site .pd-fig-kicker,
.pd-site .pd-fig-pane-head,
.pd-site .pd-fig-line em,
.pd-site .pd-fig-foot,
.pd-site .pd-fig-pane-foot,
.pd-site .pd-fig-pipe em,
.pd-site .pd-tile-label,
.pd-site .pd-sectortag em {
  font-size: 1.1rem;
}
.pd-site .pd-fig-row b,
.pd-site .pd-fig-line b,
.pd-site .pd-fig-gate,
.pd-site .pd-fig-gate b,
.pd-site .pd-fig-box b,
.pd-site .pd-tile-sub,
.pd-site .pd-minicard-sub,
.pd-site .pd-featurepill em,
.pd-site .pd-node-foot-left {
  font-size: 1.3rem;
}
.pd-site .pd-mono-dim,
.pd-site .pd-status,
.pd-site .pd-mono-red {
  font-size: 1.2rem;
}
.pd-site .pd-dark .pd-mono-dim,
.pd-site .pd-dark .pd-status,
.pd-site .pd-featurepill em,
.pd-site .pd-node-foot-left {
  color: #b3aeac;
}

/* ---------- motion (driven by partnerdetail_site.js) ---------- */

/* hero is hidden before first paint only while JS motion is active */
.pd-anim .pd-site .pd-hero-left > *,
.pd-anim .pd-site .pd-hero .pd-badgecard,
.pd-anim .pd-site .ai-hero-left > *,
.pd-anim .pd-site .ai-hero-right > * {
  opacity: 0;
}

/* hover nudges */
.pd-site .pd-btn .pd-btn-ic,
.pd-site .ai-btn-ghost .pd-btn-ic,
.pd-site .pd-submit .pd-submit-ic,
.pd-site .ai-casestudy-arrow,
.pd-site .pd-sector-arrow,
.pd-site .pd-sector-link-ic,
.pd-site .pd-node-link-ic {
  transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}
.pd-site .pd-btn:hover .pd-btn-ic,
.pd-site .ai-btn-ghost:hover .pd-btn-ic,
.pd-site .pd-submit:hover .pd-submit-ic,
.pd-site .ai-casestudy-card:hover .ai-casestudy-arrow {
  transform: translateX(0.5rem);
}
.pd-site .pd-sector:hover .pd-sector-arrow,
.pd-site .pd-sector-link:hover .pd-sector-link-ic,
.pd-site .pd-node-link:hover .pd-node-link-ic {
  transform: translate(0.3rem, -0.3rem);
}

/* "live" status dots breathe */
.pd-site .pd-dot-green {
  animation: pd-live 2.2s ease-out infinite;
}
@keyframes pd-live {
  0% { box-shadow: 0 0 0 0 rgba(34, 197, 94, 0.55); }
  70%, 100% { box-shadow: 0 0 0 0.7rem rgba(34, 197, 94, 0); }
}

/* data pulses travel along connectors once a diagram has been drawn (.is-live) */
/* branch spans are already position:absolute, which anchors their pulses too */
.pd-site .pd-flow-line,
.pd-site .pd-map-connector-down {
  position: relative;
  overflow: visible;
}
.pd-site .is-live .pd-flow-line::after,
.pd-site .is-live .pd-map-connector-down::after,
.pd-site .is-live .pd-map-branch-stem::after,
.pd-site .is-live .pd-map-branch-legL::after,
.pd-site .is-live .pd-map-branch-legR::after {
  content: "";
  position: absolute;
  width: 0.6rem;
  height: 0.6rem;
  border-radius: 50%;
  background: var(--pd-ember);
  box-shadow: 0 0 0.8rem 0.2rem rgba(247, 114, 47, 0.6);
}
.pd-site .is-live .pd-flow-line::after {
  top: -0.25rem;
  animation: pd-flow-x 1.8s linear infinite;
}
.pd-site .is-live .pd-flow-line:nth-of-type(4)::after {
  animation-delay: 0.9s;
}
.pd-site .is-live .pd-map-connector-down::after,
.pd-site .is-live .pd-map-branch-stem::after,
.pd-site .is-live .pd-map-branch-legL::after,
.pd-site .is-live .pd-map-branch-legR::after {
  left: -0.25rem;
  animation: pd-flow-y 1.6s linear infinite;
}
.pd-site .is-live .pd-map-branch-stem::after { animation-duration: 0.8s; animation-delay: 0.4s; }
.pd-site .is-live .pd-map-branch-legL::after,
.pd-site .is-live .pd-map-branch-legR::after { animation-duration: 0.8s; animation-delay: 0.8s; }

@keyframes pd-flow-x {
  0% { left: 0; opacity: 0; }
  15%, 85% { opacity: 1; }
  100% { left: calc(100% - 0.6rem); opacity: 0; }
}
@keyframes pd-flow-y {
  0% { top: 0; opacity: 0; }
  15%, 85% { opacity: 1; }
  100% { top: calc(100% - 0.6rem); opacity: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .pd-site *,
  .pd-site *::before,
  .pd-site *::after {
    animation: none !important;
    transition-duration: 0.01ms !important;
  }
}

/* ---------- responsive: follow the site's rail breakpoints ---------- */
@media (max-width: 1180px) {
  .pd-site .pd-inner {
    padding: 0 3.6rem;
  }
  .pd-site .is-live .pd-flow-line::after {
    top: auto;
    left: -0.25rem;
    animation-name: pd-flow-y;
  }
  .pd-site .pd-hero-right::before {
    right: -6rem;
  }
}

@media (max-width: 992px) {
  .pd-site .pd-section {
    padding-left: 5.6rem;
  }
  .pd-site .pd-rail {
    width: 5.6rem;
  }
  .pd-site .pd-h1 {
    font-size: 5rem;
  }
  .pd-site .pd-h2 {
    font-size: 3.6rem;
  }
}

@media (max-width: 860px) {
  .pd-site .pd-section {
    padding-top: 9rem;
    padding-bottom: 9rem;
  }
  .pd-site .pd-hero {
    padding-top: 12rem;
  }
  .pd-site .pd-alt-fig,
  .pd-site .pd-alt-text {
    padding: 3.6rem 0;
  }
  .pd-site .pd-sector,
  .pd-site .pd-sector:nth-child(odd),
  .pd-site .pd-sector:nth-child(even) {
    padding: 3.2rem 2.4rem;
  }
  .pd-site .pd-form {
    padding: 3.2rem 2.4rem;
  }
}

/* The main site drops its rail at 768px; match it */
@media (max-width: 768px) {
  .pd-site .pd-section {
    padding-left: 0;
  }
  .pd-site .pd-rail {
    display: none;
  }
  .pd-site .pd-inner {
    padding: 0 2rem;
  }
  .pd-site .pd-h1 {
    font-size: 4rem;
  }
  .pd-site .pd-h2,
  .pd-site .pd-alt-num b,
  .pd-site .pd-stat-data {
    font-size: 3rem;
  }
  .pd-site .pd-lead {
    font-size: 1.6rem;
  }
  .pd-site .pd-hero-right::before {
    width: 24rem;
    height: 24rem;
    right: -8rem;
  }
  .pd-site .pd-hero-right::after {
    display: none;
  }
}
