



.pd-crumb { margin-block-end: var(--sp-6); }
.pd-crumb ol {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--sp-2);
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: var(--fs-micro);
  color: var(--ink-muted);
}
.pd-crumb li + li::before {
  content: "/";
  margin-inline-end: var(--sp-2);
  color: var(--ink-muted);
}
.pd-crumb [aria-current="page"] { color: var(--ink); }



.pd-draw { display: block; width: 100%; height: auto; }
.pd-draw__line {
  fill: none;
  stroke: var(--ink);
  stroke-width: 1.5;
  stroke-linecap: square;
  stroke-linejoin: miter;
}
.pd-draw__fine {
  fill: none;
  stroke: var(--ink-dim);
  stroke-width: 1;
  stroke-linecap: square;
  stroke-linejoin: miter;
}
.pd-draw__zone { stroke: var(--accent); stroke-width: 1.5; }
.pd-draw__hatchLine { stroke: var(--accent); stroke-width: 1; }
.pd-draw__route {
  fill: none;
  stroke: var(--accent);
  stroke-width: 2;
  stroke-linecap: square;
}
.pd-draw__t {
  fill: var(--ink);
  font-family: var(--font-mono);
  font-size: 11px;
}
.pd-draw__dim {
  fill: var(--ink-muted);
  font-family: var(--font-mono);
  font-size: 10px;
}



.pd-hero { padding-block-start: clamp(2rem, 5vw, 3.5rem); }
.pd-hero__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(1.5rem, 4vw, 3rem);
  align-items: start;
}
.pd-hero__h1 {
  max-width: 22ch;
  margin: var(--sp-3) 0 var(--sp-4);
  font-family: var(--font-display);
  font-size: var(--fs-h1);
  font-weight: 600;
  line-height: 1.04;
  letter-spacing: -.02em;
}
.pd-hero__sub {
  max-width: 58ch;
  margin: 0 0 var(--sp-6);
  color: var(--ink-muted);
}
.pd-rail {
  display: grid;
  margin: 0;
  border-block-start: 1px solid var(--rule);
}
.pd-rail__row {
  display: grid;
  grid-template-columns: minmax(0, 14ch) minmax(0, 1fr);
  gap: var(--sp-4);
  padding-block: var(--sp-3);
  border-block-end: 1px solid var(--rule-soft);
}
.pd-rail__key {
  font-family: var(--font-mono);
  font-size: var(--fs-label);
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--ink);
}
.pd-rail__val {
  margin: 0;
  font-family: var(--font-mono);
  font-size: var(--fs-small);
  line-height: 1.5;
  color: var(--ink-muted);
}

.pd-hero__fig { margin: 0; }
.pd-hero__fig .pd-draw { max-width: 420px; margin-inline: auto; }
.pd-hero__fig figcaption {
  max-width: 46ch;
  margin-block-start: var(--sp-4);
  font-size: var(--fs-micro);
  line-height: 1.5;
  color: var(--ink-muted);
}



.pd-prov__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr);
  gap: clamp(1.5rem, 4vw, 3rem);
  margin-block-start: var(--sp-6);
  align-items: start;
}
.pd-prov__rows {
  margin: 0;
  border-block-start: 1px solid var(--rule);
}
.pd-row {
  display: grid;
  grid-template-columns: minmax(0, 16ch) minmax(0, 1fr);
  gap: var(--sp-4);
  padding-block: var(--sp-4);
  border-block-end: 1px solid var(--rule-soft);
}
.pd-row--why { padding-block-start: var(--sp-6); }
.pd-row__state {
  font-family: var(--font-mono);
  font-size: var(--fs-label);
  letter-spacing: .1em;
  text-transform: uppercase;
}
.pd-row__state--res { color: var(--ink); }
.pd-row__state--no { color: var(--ink-muted); }
.pd-row__state--why { color: var(--ink-muted); }
.pd-row__body {
  max-width: 62ch;
  margin: 0;
  font-size: var(--fs-small);
  line-height: 1.6;
  color: var(--ink);
}
.pd-prov__fig { margin: 0; }
.pd-prov__fig .pd-draw--zoom { max-width: 240px; margin-inline: auto; }
.pd-prov__fig figcaption {
  margin-block-start: var(--sp-4);
  font-size: var(--fs-micro);
  line-height: 1.5;
  color: var(--ink-muted);
}
.pd-prov__foot {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--sp-4) var(--sp-6);
  margin-block-start: var(--sp-6);
  padding-block-start: var(--sp-6);
  border-block-start: 1px solid var(--rule);
}
.pd-prov__note {
  flex: 1 1 40ch;
  margin: 0;
  font-size: var(--fs-small);
  line-height: 1.55;
  color: var(--ink-muted);
}



.pd-spec__table th[scope="row"] { width: 32%; }
.pd-spec__table td { color: var(--ink); }



.pd-bleed { margin-block: 0; }
.pd-bleed__media { position: relative; overflow: hidden; background: var(--ground-cool); }
.pd-bleed__media img { width: 100%; aspect-ratio: 21 / 9; object-fit: cover; }
.pd-bleed__media .veil { z-index: 1; }
.pd-bleed__cap {
  margin: var(--sp-4) 0 0;
  font-size: var(--fs-micro);
  color: var(--ink-muted);
}



.pd-row__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(1.5rem, 4vw, 3rem);
  align-items: start;
}
.pd-row__txt h2 { margin: var(--sp-2) 0 var(--sp-4); }
.pd-row__txt p {
  max-width: 56ch;
  margin: 0 0 var(--sp-4);
}
.pd-row__fig { margin: 0; }
.pd-row__fig figcaption {
  margin-block-start: var(--sp-3);
  font-size: var(--fs-micro);
  line-height: 1.5;
  color: var(--ink-muted);
}
.pd-row__list {
  display: grid;
  margin: var(--sp-6) 0 0;
  padding: 0;
  list-style: none;
  border-block-start: 1px solid var(--rule);
}
.pd-row__list li {
  display: grid;
  grid-template-columns: minmax(0, 12ch) minmax(0, 1fr);
  gap: var(--sp-4);
  padding-block: var(--sp-3);
  border-block-end: 1px solid var(--rule-soft);
}
.pd-row__k {
  font-family: var(--font-mono);
  font-size: var(--fs-label);
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--ink-muted);
}
.pd-row__v { font-size: var(--fs-small); line-height: 1.5; }



.pd-proc__list {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: var(--sp-1);
  margin: var(--sp-6) 0 0;
  padding: 0;
  list-style: none;
  border-block-start: 1px solid var(--rule);
}
.pd-proc__step {
  display: grid;
  gap: var(--sp-2);
  align-content: start;
  padding: var(--sp-4) var(--sp-3) var(--sp-6) 0;
  border-block-end: 1px solid var(--rule-soft);
}
.pd-proc__num {
  font-family: var(--font-mono);
  font-size: var(--fs-label);
  font-variant-numeric: tabular-nums;
  letter-spacing: .1em;
  color: var(--ink-muted);
}
.pd-proc__h {
  margin: 0;
  font-size: var(--fs-small);
  font-weight: 650;
}
.pd-proc__p {
  margin: 0;
  font-size: var(--fs-micro);
  line-height: 1.5;
  color: var(--ink-muted);
}
.pd-proc__foot {
  max-width: 78ch;
  margin: var(--sp-6) 0 0;
  padding-block-start: var(--sp-4);
  border-block-start: 1px solid var(--rule-soft);
  font-size: var(--fs-small);
  color: var(--ink-muted);
}



.pd-evid__row {
  display: grid;
  grid-template-columns: minmax(0, 14ch) minmax(0, 1fr);
  gap: var(--sp-4);
  padding-block-start: var(--sp-4);
  border-block-start: 1px solid var(--rule);
}
.pd-evid__label { margin: 0; }
.pd-evid__line {
  max-width: 76ch;
  margin: 0;
  font-size: var(--fs-small);
  line-height: 1.6;
}



.pd-cta__wrap { display: grid; gap: var(--sp-4); justify-items: start; }
.pd-cta__h2 { margin: 0; max-width: 26ch; }
.pd-cta__line {
  max-width: 62ch;
  margin: 0;
  font-size: var(--fs-small);
  line-height: 1.6;
  color: var(--ink-muted);
}
.pd-cta__acts { display: flex; flex-wrap: wrap; gap: var(--sp-3); margin-block-start: var(--sp-2); }
.pd-cta__promise { max-width: 62ch; margin: 0; font-size: var(--fs-small); }
.pd-cta__rel {
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-3) var(--sp-6);
  margin: var(--sp-4) 0 0;
  padding: var(--sp-4) 0 0;
  border-block-start: 1px solid var(--rule-soft);
  list-style: none;
  font-size: var(--fs-small);
}



@media (max-width: 1080px) {
  .pd-proc__list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
  .pd-hero__grid,
  .pd-prov__grid,
  .pd-row__grid { grid-template-columns: minmax(0, 1fr); }
  .pd-hero__fig { order: -1; }
  .pd-prov__fig .pd-draw--zoom { max-width: 200px; }
}
@media (max-width: 620px) {
  .pd-rail__row,
  .pd-row,
  .pd-row__list li,
  .pd-evid__row { grid-template-columns: minmax(0, 1fr); gap: var(--sp-1); }
  .pd-proc__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
