/**
 * Interior pages — Phase 2B
 * Distinct page rhythms; shared brand tokens from freight-grid / components.
 */

/* ——— Interior intro (ledger / dossier openings) ——— */

.interior-open {
  background: var(--color-navy);
  color: var(--color-white);
  padding: var(--space-7) 0 var(--space-6);
  border-bottom: 3px solid var(--color-amber);
}

.interior-open--paper {
  background: var(--color-paper);
  color: var(--color-graphite);
  border-bottom-color: var(--color-navy);
}

.interior-open--paper .interior-open__kicker,
.interior-open--paper .manifest-label {
  color: var(--color-muted);
}

.interior-open--paper .t-h1,
.interior-open--paper h1 {
  color: var(--color-navy);
}

.interior-open__kicker {
  font-family: var(--font-mono);
  font-size: var(--fs-micro);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.45);
  margin-bottom: var(--space-3);
}

.t-h1 {
  font-family: var(--font-display);
  font-size: clamp(2rem, 1.4rem + 2.2vw, 3.25rem);
  font-weight: 700;
  line-height: 1.05;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  margin-bottom: var(--space-4);
  max-width: 16ch;
}

.interior-open__support {
  font-size: clamp(1rem, 0.95rem + 0.25vw, 1.125rem);
  line-height: 1.5;
  max-width: 34rem;
  color: rgba(255, 255, 255, 0.72);
  border-left: 2px solid var(--color-amber);
  padding-left: var(--space-4);
}

.interior-open--paper .interior-open__support {
  color: var(--color-slate);
}

.interior-open__ledger {
  margin-top: var(--space-6);
  display: grid;
  grid-template-columns: 1fr 1fr;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
}

.interior-open--paper .interior-open__ledger {
  border-top-color: var(--color-border);
}

.interior-open__ledger dt {
  font-family: var(--font-mono);
  font-size: 0.625rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.4);
  padding: var(--space-3) var(--space-3) 0 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  border-right: 1px solid rgba(255, 255, 255, 0.1);
}

.interior-open__ledger dd {
  margin: 0;
  padding: 0.15rem var(--space-3) var(--space-3) 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  border-right: 1px solid rgba(255, 255, 255, 0.1);
  font-weight: 600;
  font-size: var(--fs-small);
}

.interior-open__ledger dt:nth-child(4n + 3),
.interior-open__ledger dd:nth-child(4n + 4) {
  border-right: 0;
  padding-left: var(--space-3);
}

.interior-open--paper .interior-open__ledger dt,
.interior-open--paper .interior-open__ledger dd {
  border-color: var(--color-border);
  color: var(--color-graphite);
}

.interior-open--paper .interior-open__ledger dt {
  color: var(--color-muted);
}

@media (min-width: 800px) {
  .interior-open__ledger {
    grid-template-columns: repeat(4, 1fr);
  }

  .interior-open__ledger dt,
  .interior-open__ledger dd {
    border-right: 1px solid rgba(255, 255, 255, 0.1);
    padding-left: 0;
  }

  .interior-open__ledger dt:not(:first-child),
  .interior-open__ledger dd:not(:nth-child(2)) {
    padding-left: var(--space-3);
  }

  .interior-open__ledger dt:nth-child(4n + 3),
  .interior-open__ledger dd:nth-child(4n) {
    /* reset mobile rule */
  }

  .interior-open__ledger dt:nth-last-of-type(-n + 1),
  .interior-open__ledger > *:nth-child(7),
  .interior-open__ledger > *:nth-child(8) {
    border-right: 0;
  }
}

/* Pairing dl as dt/dd pairs in CSS grid of 4 cols is awkward.
   Use explicit register rows instead on pages. */

.ledger-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
  margin-top: var(--space-6);
}

.interior-open--paper .ledger-row {
  border-top-color: var(--color-border);
}

.ledger-cell {
  padding: var(--space-3) var(--space-3) var(--space-3) 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  border-right: 1px solid rgba(255, 255, 255, 0.1);
}

.ledger-cell:nth-child(2n) {
  border-right: 0;
  padding-left: var(--space-3);
}

.interior-open--paper .ledger-cell {
  border-color: var(--color-border);
}

.ledger-cell__key {
  font-family: var(--font-mono);
  font-size: 0.625rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.4);
  margin-bottom: 0.25rem;
}

.interior-open--paper .ledger-cell__key {
  color: var(--color-muted);
}

.ledger-cell__val {
  font-weight: 600;
  font-size: var(--fs-small);
}

@media (min-width: 800px) {
  .ledger-row {
    grid-template-columns: repeat(4, 1fr);
  }

  .ledger-cell:nth-child(2n) {
    padding-left: 0;
    border-right: 1px solid rgba(255, 255, 255, 0.1);
  }

  .ledger-cell:not(:first-child) {
    padding-left: var(--space-3);
  }

  .ledger-cell:last-child {
    border-right: 0;
  }

  .interior-open--paper .ledger-cell:nth-child(2n) {
    border-right-color: var(--color-border);
  }
}

/* ——— Tech register ——— */

.tech-register {
  width: 100%;
  border-top: 2px solid var(--color-navy);
}

.tech-register__row {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-1);
  padding: var(--space-3) 0;
  border-bottom: var(--rule);
}

@media (min-width: 640px) {
  .tech-register__row {
    grid-template-columns: 11rem 1fr;
    gap: var(--space-4);
  }
}

.tech-register__key {
  font-family: var(--font-mono);
  font-size: 0.625rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-muted);
}

.tech-register__val {
  font-size: var(--fs-small);
  color: var(--color-graphite);
  font-weight: 500;
  line-height: 1.45;
}

/* ——— CTA dock ——— */

.cta-dock {
  background: var(--color-paper);
  border-top: 2px solid var(--color-navy);
  padding: var(--space-7) 0;
}

.cta-dock__inner {
  display: grid;
  gap: var(--space-5);
  align-items: end;
}

@media (min-width: 800px) {
  .cta-dock__inner {
    grid-template-columns: 1.4fr auto;
  }
}

/* ——— About: provenance timeline ——— */

.provenance {
  background: var(--color-white);
  padding: var(--space-7) 0;
}

.provenance__rail {
  position: relative;
  display: grid;
  gap: var(--space-6);
  list-style: none;
  margin: var(--space-6) 0 0;
  padding: 0;
}

.provenance__rail::before {
  content: "";
  position: absolute;
  left: 0.35rem;
  top: 0.4rem;
  bottom: 0.4rem;
  width: 2px;
  background: linear-gradient(180deg, var(--color-amber), var(--color-border-strong));
}

@media (min-width: 900px) {
  .provenance__rail {
    grid-template-columns: 1fr 1fr;
    gap: var(--space-7);
  }

  .provenance__rail::before {
    left: 50%;
    transform: translateX(-1px);
  }

  .provenance__item:nth-child(odd) {
    padding-right: var(--space-7);
    text-align: right;
  }

  .provenance__item:nth-child(even) {
    padding-left: var(--space-7);
    margin-top: var(--space-8);
  }
}

.provenance__item {
  position: relative;
  padding-left: var(--space-6);
}

.provenance__item::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.35rem;
  width: 0.65rem;
  height: 0.65rem;
  border-radius: 50%;
  background: var(--color-amber);
  box-shadow: 0 0 0 3px var(--color-white);
}

@media (min-width: 900px) {
  .provenance__item {
    padding-left: 0;
  }

  .provenance__item:nth-child(odd)::before {
    left: auto;
    right: calc(-0.35rem - 1px);
  }

  .provenance__item:nth-child(even)::before {
    left: calc(-0.35rem - 1px);
  }
}

.provenance__year {
  font-family: var(--font-mono);
  font-size: var(--fs-micro);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--color-muted);
  margin-bottom: var(--space-2);
}

.provenance__title {
  font-family: var(--font-display);
  font-size: var(--fs-display-md);
  font-weight: 600;
  text-transform: uppercase;
  color: var(--color-navy);
  margin-bottom: var(--space-2);
}

.provenance__copy {
  font-size: var(--fs-small);
  color: var(--color-slate);
  line-height: 1.55;
  max-width: 28rem;
}

@media (min-width: 900px) {
  .provenance__item:nth-child(odd) .provenance__copy {
    margin-left: auto;
  }
}

/* Doctrine editorial bands */
.doctrine-band {
  padding: var(--space-6) 0;
  border-top: var(--rule);
}

.doctrine-band__grid {
  display: grid;
  gap: var(--space-4);
}

@media (min-width: 800px) {
  .doctrine-band__grid {
    grid-template-columns: 8rem 1fr;
    gap: var(--space-6);
  }
}

.doctrine-band__code {
  font-family: var(--font-mono);
  font-size: var(--fs-micro);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--color-amber);
}

/* Leadership interior — offset editorial */
.leadership-page {
  background: var(--color-paper);
  padding: var(--space-7) 0;
}

.leader-sheet {
  display: grid;
  gap: var(--space-5);
  padding: var(--space-6) 0;
  border-top: var(--rule-strong);
}

@media (min-width: 800px) {
  .leader-sheet {
    grid-template-columns: minmax(12rem, 16rem) 1fr;
    gap: var(--space-7);
    align-items: end;
  }

  .leader-sheet--offset {
    grid-template-columns: 1fr minmax(12rem, 16rem);
  }

  .leader-sheet--offset .leader-sheet__media {
    order: 2;
  }

  .leader-sheet--offset .leader-sheet__copy {
    order: 1;
    text-align: right;
  }

  .leader-sheet--offset .leader-sheet__copy .leader__bio {
    margin-left: auto;
  }
}

/* Company register */
.company-register {
  background: var(--color-navy);
  color: var(--color-white);
  padding: var(--space-7) 0;
}

.company-register .t-h2 {
  color: var(--color-white);
  margin-bottom: var(--space-5);
}

.company-register .tech-register {
  border-top-color: rgba(255, 255, 255, 0.35);
}

.company-register .tech-register__row {
  border-bottom-color: rgba(255, 255, 255, 0.12);
}

.company-register .tech-register__key {
  color: rgba(255, 255, 255, 0.4);
}

.company-register .tech-register__val {
  color: rgba(255, 255, 255, 0.88);
}

.pending-mark {
  font-family: var(--font-mono);
  font-size: 0.75rem;
  letter-spacing: 0.04em;
  color: var(--color-amber);
}

/* ——— Services dossier ——— */

.dossier-open {
  background: var(--color-paper);
  padding: var(--space-7) 0 var(--space-6);
  border-bottom: 2px solid var(--color-navy);
}

.fleet-chapter {
  padding: var(--space-7) 0;
  background: var(--color-white);
}

.service-matrix {
  display: grid;
  gap: 0;
  border-top: 2px solid var(--color-navy);
  margin-top: var(--space-5);
}

.service-matrix__row {
  display: grid;
  gap: var(--space-2);
  padding: var(--space-4) 0;
  border-bottom: var(--rule);
}

@media (min-width: 800px) {
  .service-matrix__row {
    grid-template-columns: 9rem 1fr;
    gap: var(--space-5);
  }
}

.service-matrix__label {
  font-family: var(--font-mono);
  font-size: 0.625rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--color-muted);
}

.service-matrix__body {
  font-size: var(--fs-small);
  color: var(--color-graphite);
  line-height: 1.5;
  max-width: 40rem;
}

.cargo-strip {
  display: grid;
  gap: var(--space-4);
  margin-top: var(--space-5);
}

@media (min-width: 900px) {
  .cargo-strip {
    grid-template-columns: 1.2fr 0.8fr 0.8fr;
    grid-template-rows: auto auto;
  }

  .cargo-strip__item--wide {
    grid-column: 1;
    grid-row: 1 / span 2;
  }
}

.cargo-strip__item {
  display: grid;
  gap: var(--space-2);
}

@media (max-width: 899px) {
  .cargo-strip__item:not(.cargo-strip__item--wide) {
    grid-template-columns: 6.5rem 1fr;
    gap: var(--space-3);
    align-items: center;
  }

  .cargo-strip__item:not(.cargo-strip__item--wide) .plate__placeholder {
    aspect-ratio: 1;
    min-height: 0;
  }
}

/* ——— Operations manual ——— */

.ops-open {
  background: var(--color-navy);
  color: var(--color-white);
  padding: var(--space-7) 0;
}

.ops-open .t-h1 {
  color: var(--color-white);
}

.ops-seq {
  background: var(--color-white);
  padding: var(--space-7) 0;
}

.ops-seq__list {
  list-style: none;
  margin: var(--space-5) 0 0;
  padding: 0;
  border-top: 2px solid var(--color-navy);
}

.ops-seq__step {
  display: grid;
  gap: var(--space-2);
  padding: var(--space-5) 0;
  border-bottom: var(--rule);
  position: relative;
}

@media (min-width: 800px) {
  .ops-seq__step {
    grid-template-columns: 4rem 10rem 1fr;
    gap: var(--space-5);
    align-items: start;
  }
}

.ops-seq__num {
  font-family: var(--font-display);
  font-size: 1.75rem;
  font-weight: 600;
  color: var(--color-amber);
  line-height: 1;
}

.ops-seq__name {
  font-weight: 600;
  color: var(--color-navy);
}

.ops-seq__copy {
  font-size: var(--fs-small);
  color: var(--color-slate);
  line-height: 1.5;
  max-width: 36rem;
}

.hub-register {
  width: 100%;
  border-top: 2px solid var(--color-navy);
}

.hub-register__row {
  display: grid;
  gap: var(--space-2);
  padding: var(--space-3) 0;
  border-bottom: var(--rule);
}

@media (min-width: 700px) {
  .hub-register__row {
    grid-template-columns: 1.1fr 0.9fr 1.2fr;
    gap: var(--space-4);
  }
}

.hub-register__name {
  font-weight: 600;
  color: var(--color-navy);
}

.hub-register__role {
  font-family: var(--font-mono);
  font-size: 0.625rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--color-muted);
}

.hub-register__axis {
  font-size: var(--fs-small);
  color: var(--color-slate);
}

.ops-control {
  background: var(--color-paper);
  padding: var(--space-7) 0;
}

.ops-control__grid {
  display: grid;
  gap: var(--space-5);
}

@media (min-width: 800px) {
  .ops-control__grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 0;
  }

  .ops-control__block {
    padding: 0 var(--space-5);
    border-right: var(--rule);
  }

  .ops-control__block:first-child {
    padding-left: 0;
  }

  .ops-control__block:last-child {
    border-right: 0;
    padding-right: 0;
  }
}

.ops-control__code {
  font-family: var(--font-mono);
  font-size: var(--fs-micro);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--color-amber);
  margin-bottom: var(--space-2);
}

.ops-control__title {
  font-weight: 600;
  color: var(--color-navy);
  margin-bottom: var(--space-2);
}

.ops-control__copy {
  font-size: var(--fs-small);
  color: var(--color-slate);
  line-height: 1.5;
}

/* ——— Contact desk ——— */

.contact-open {
  background: var(--color-paper);
  padding: var(--space-7) 0 var(--space-5);
  border-bottom: 2px solid var(--color-navy);
}

.contact-layout {
  display: grid;
  gap: var(--space-7);
  padding: var(--space-7) 0;
}

@media (min-width: 960px) {
  .contact-layout {
    grid-template-columns: 0.85fr 1.15fr;
    align-items: start;
  }
}

.contact-register .tech-register__val code,
.pending-mark {
  font-family: var(--font-mono);
}

.corridor-ref {
  margin-top: var(--space-6);
  padding-top: var(--space-5);
  border-top: var(--rule);
}

.corridor-ref__list {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2) var(--space-4);
  margin-top: var(--space-3);
  font-size: var(--fs-small);
  color: var(--color-slate);
}

.corridor-ref__list span {
  font-family: var(--font-mono);
  font-size: 0.625rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--color-muted);
}

/* Enquiry form */
.enquiry-form {
  display: grid;
  gap: var(--space-4);
}

.enquiry-form__status {
  padding: var(--space-3) var(--space-4);
  border: 1px solid var(--color-border-strong);
  background: var(--color-paper);
  font-size: var(--fs-small);
}

.enquiry-form__status.is-ok {
  border-color: var(--color-navy);
}

.enquiry-form__status.is-error {
  border-color: #b33;
  color: #5c1a1a;
}

.req {
  font-family: var(--font-mono);
  font-size: 0.5625rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--color-amber);
  font-weight: 500;
}

.opt {
  font-family: var(--font-mono);
  font-size: 0.5625rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--color-muted);
  font-weight: 400;
}

.field--hp {
  position: absolute;
  left: -9999px;
  height: 0;
  overflow: hidden;
}

.enquiry-form__actions {
  display: grid;
  gap: var(--space-3);
  margin-top: var(--space-2);
}

.field.is-invalid input,
.field.is-invalid select,
.field.is-invalid textarea {
  border-color: #b33;
}

.field-error {
  font-size: 0.75rem;
  color: #8a1f1f;
  margin-top: var(--space-1);
}

/* ——— Calculator / requirement builder ——— */

.calc-open {
  background: var(--color-navy);
  color: var(--color-white);
  padding: var(--space-7) 0;
}

.calc-open .t-h1,
.calc-open .interior-open__support {
  color: inherit;
}

.calc-open .interior-open__support {
  color: rgba(255, 255, 255, 0.72);
}

.calc-workspace {
  display: grid;
  gap: var(--space-6);
  padding: var(--space-7) 0;
}

@media (min-width: 960px) {
  .calc-workspace {
    grid-template-columns: 1.1fr 0.9fr;
    align-items: start;
  }
}

.calc-panel {
  background: var(--color-white);
  border: var(--rule-strong);
  padding: var(--space-5);
}

.calc-panel__label {
  font-family: var(--font-mono);
  font-size: var(--fs-micro);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--color-muted);
  margin-bottom: var(--space-4);
  padding-bottom: var(--space-3);
  border-bottom: var(--rule);
}

.waybill-sheet {
  background: var(--color-paper);
  border: 1px solid var(--color-border-strong);
  padding: var(--space-5);
  min-height: 18rem;
}

.waybill-sheet__title {
  font-family: var(--font-mono);
  font-size: var(--fs-micro);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--color-muted);
  margin-bottom: var(--space-4);
}

.waybill-sheet__rows {
  display: grid;
  gap: 0;
  border-top: 2px solid var(--color-navy);
}

.waybill-sheet__row {
  display: grid;
  grid-template-columns: 7rem 1fr;
  gap: var(--space-3);
  padding: var(--space-3) 0;
  border-bottom: var(--rule);
  font-size: var(--fs-small);
}

.waybill-sheet__row dt {
  font-family: var(--font-mono);
  font-size: 0.625rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-muted);
}

.waybill-sheet__row dd {
  margin: 0;
  font-weight: 500;
  color: var(--color-graphite);
  word-break: break-word;
}

.waybill-sheet__empty {
  font-size: var(--fs-small);
  color: var(--color-muted);
  padding: var(--space-4) 0;
}

.waybill-sheet__actions {
  margin-top: var(--space-5);
  display: grid;
  gap: var(--space-3);
}

.page-band {
  padding: var(--space-7) 0;
}

.page-band--tight {
  padding: var(--space-6) 0;
}

.page-band--navy {
  background: var(--color-navy);
  color: var(--color-white);
}

.page-band--paper {
  background: var(--color-paper);
}
