.contact-page {
  background-color: var(--surface-page);
}

.contact-page .section {
  position: relative;
}

.contact-page__hero {
  padding-top: var(--space-8);
}

.contact-page__hero-panel {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-7);
  min-width: 0;
  min-height: 23rem;
  background-color: var(--surface-elevated);
  padding: var(--space-7);
}

.contact-page__hero-copy {
  flex: 0 1 58%;
  min-width: 0;
  max-width: 42.5rem;
}

.contact-page__hero-copy > :last-child,
.contact-page__hero-status > :last-child,
.contact-page__section-heading > :last-child,
.contact-page__routing-intro > :last-child,
.contact-page__route-content > :last-child,
.contact-page__prompt > :last-child,
.contact-page__locator-copy > :last-child,
.contact-page__handoff-copy > :last-child {
  margin-bottom: 0;
}

.contact-page__hero-lead {
  max-width: 38.75rem;
  color: var(--text-secondary);
  font-size: var(--text-md);
}

.contact-page__hero-status {
  display: flex;
  flex: 0 1 24%;
  min-width: 13.75rem;
  max-width: 18rem;
  flex-direction: column;
  gap: var(--space-4);
  border-left: 2px solid var(--color-steel-400);
  padding-left: var(--space-5);
}

.contact-page__hero-status p {
  max-width: 26.25rem;
  margin: 0;
  color: var(--text-secondary);
  font-size: var(--text-sm);
}

.contact-page__hero-status .warning-line {
  width: 100%;
}

.contact-page__section-heading {
  max-width: 45rem;
}

.contact-page__section-heading p {
  max-width: 38.75rem;
  color: var(--text-secondary);
}

.contact-page__routes {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-5);
  min-width: 0;
}

.contact-page__route {
  display: flex;
  min-width: 0;
  min-height: 100%;
  flex-direction: column;
  justify-content: space-between;
  gap: var(--space-5);
}

.contact-page__route-content {
  min-width: 0;
}

.contact-page__route h3 {
  display: flex;
  align-items: flex-start;
  gap: var(--space-2);
}

.contact-page__route p {
  color: var(--text-secondary);
}

.contact-page__route-icon {
  display: inline-flex;
  width: 1.5rem;
  min-width: 1.5rem;
  height: 1.5rem;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--color-warning-yellow);
  color: var(--color-warning-yellow);
  font-family: var(--font-body);
  font-size: var(--text-base);
  line-height: 1;
}

.contact-page__detail-link {
  display: inline-block;
  max-width: 100%;
  color: var(--color-warning-yellow);
  font-family: var(--font-heading);
  font-size: clamp(1.5rem, 2.2vw, var(--text-xl));
  font-weight: 600;
  letter-spacing: 0.045em;
  line-height: 1.1;
  overflow-wrap: anywhere;
  text-decoration-thickness: 2px;
}

.contact-page__detail-link--email {
  font-family: var(--font-body);
  font-size: var(--text-md);
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1.35;
}

.contact-page__address,
.contact-page__locator-address {
  color: var(--text-primary);
  font-family: var(--font-body);
  font-size: var(--text-md);
  font-style: normal;
  font-weight: 600;
  line-height: 1.55;
}

.contact-page__route-action {
  align-self: flex-start;
  max-width: 100%;
}

.contact-page__copy-feedback {
  min-height: 1.55em;
  margin-top: var(--space-4);
  color: var(--color-success-steel);
  font-size: var(--text-sm);
  font-weight: 600;
}

.contact-page__routing {
  background-color: var(--surface-elevated);
  border-block: 2px solid var(--color-steel-400);
}

.contact-page__routing-intro {
  max-width: 38.75rem;
}

.contact-page__routing-intro p {
  color: var(--text-secondary);
}

.contact-page__prompt-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-5);
  min-width: 0;
}

.contact-page__prompt {
  min-width: 0;
  min-height: 100%;
}

.contact-page__prompt p {
  color: var(--text-secondary);
}

.contact-page__prompt--private {
  background-image: radial-gradient(circle at 100% 0, rgb(154 68 43 / 0.14), transparent 18%), var(--texture-steel);
}

.contact-page__locator-panel {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-6);
  min-width: 0;
  background-color: var(--surface-panel);
  padding: var(--space-6);
}

.contact-page__locator-copy {
  flex: 0 1 70%;
  min-width: 0;
  max-width: 38.75rem;
}

.contact-page__locator-copy > p {
  max-width: 32.5rem;
  color: var(--text-secondary);
}

.contact-page__locator-address {
  max-width: 32.5rem;
  border-left: 4px solid var(--color-warning-yellow);
  font-size: clamp(var(--text-md), 2.2vw, var(--text-lg));
  line-height: 1.4;
  padding-left: var(--space-4);
}

.contact-page__locator-note {
  max-width: 32.5rem;
  border-top: 1px solid var(--color-steel-400);
  margin-top: var(--space-5);
  padding-top: var(--space-4);
}

.contact-page__locator-note p {
  margin: 0;
  color: var(--text-secondary);
  font-size: var(--text-sm);
}

.contact-page__offline-stamp {
  display: flex;
  flex: 0 1 20%;
  min-width: 11.25rem;
  max-width: 14rem;
  flex-direction: column;
  gap: var(--space-1);
  border-left: 2px solid var(--color-steel-400);
  color: var(--color-warning-yellow);
  font-family: var(--font-heading);
  letter-spacing: 0.09em;
  line-height: 1;
  padding: var(--space-4) 0 var(--space-4) var(--space-5);
  text-transform: uppercase;
}

.contact-page__offline-stamp span {
  font-size: var(--text-sm);
}

.contact-page__offline-stamp strong {
  color: var(--text-primary);
  font-size: var(--text-2xl);
  font-weight: 600;
}

.contact-page__offline-stamp small {
  color: var(--text-secondary);
  font-family: var(--font-body);
  font-size: var(--text-xs);
  letter-spacing: 0.04em;
  line-height: 1.3;
}

.contact-page__handoff-panel {
  display: grid;
  grid-template-columns: minmax(0, 55fr) minmax(18.75rem, 35fr);
  gap: var(--space-6);
  min-width: 0;
  overflow: hidden;
  padding: var(--space-6);
}

.contact-page__handoff-hazard {
  grid-column: 1 / -1;
  width: min(15rem, 40%);
  min-width: 0;
  margin: calc(var(--space-6) * -1) 0 0;
}

.contact-page__handoff-copy {
  grid-column: 1;
  min-width: 0;
  max-width: 35rem;
}

.contact-page__handoff-copy p {
  max-width: 32.5rem;
  color: var(--text-secondary);
}

.contact-page__handoff-actions {
  display: flex;
  grid-column: 2;
  min-width: 0;
  align-self: end;
  flex-direction: column;
  align-items: stretch;
  gap: var(--space-4);
}

.contact-page__handoff-actions > * {
  width: 100%;
  min-width: 0;
}

.contact-page__primary-action {
  min-height: 3.25rem;
}

.contact-page a:focus-visible,
.contact-page button:focus-visible {
  box-shadow: var(--focus-ring);
}

@media (max-width: 53.75rem) {
  .contact-page__hero-panel {
    align-items: flex-start;
    flex-wrap: wrap;
    gap: var(--space-5);
  }

  .contact-page__hero-copy {
    flex-basis: calc(100% - 15rem);
  }

  .contact-page__hero-status {
    flex-basis: 100%;
    max-width: 26.25rem;
  }

  .contact-page__routes {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .contact-page__route--address {
    grid-column: 1 / -1;
  }
}

@media (max-width: 48.75rem) {
  .contact-page__handoff-panel {
    grid-template-columns: minmax(0, 1fr);
  }

  .contact-page__handoff-copy,
  .contact-page__handoff-actions {
    grid-column: 1;
  }

  .contact-page__handoff-actions {
    align-self: auto;
  }
}

@media (max-width: 47.9375rem) {
  .contact-page__hero {
    padding-top: var(--space-6);
  }

  .contact-page__hero-panel {
    min-height: 0;
    flex-direction: column;
    align-items: stretch;
    gap: var(--space-5);
    padding: var(--space-5);
  }

  .contact-page__hero-copy,
  .contact-page__hero-status {
    flex: 0 1 auto;
    width: 100%;
    min-width: 0;
    max-width: none;
  }

  .contact-page__hero-status {
    border-top: 2px solid var(--color-steel-400);
    border-left: 0;
    padding-top: var(--space-4);
    padding-left: 0;
  }

  .contact-page__hero-lead {
    max-width: none;
    font-size: var(--text-base);
  }

  .contact-page__routes,
  .contact-page__prompt-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-4);
  }

  .contact-page__route--address {
    grid-column: 1;
  }

  .contact-page__route {
    gap: var(--space-4);
  }

  .contact-page__route-action {
    width: 100%;
  }

  .contact-page__locator-panel {
    flex-direction: column;
    align-items: stretch;
    gap: var(--space-5);
    padding: var(--space-5);
  }

  .contact-page__locator-copy,
  .contact-page__offline-stamp {
    flex: 0 1 auto;
    width: 100%;
    min-width: 0;
    max-width: none;
  }

  .contact-page__locator-copy > p,
  .contact-page__locator-address,
  .contact-page__locator-note {
    max-width: none;
  }

  .contact-page__offline-stamp {
    border-top: 2px solid var(--color-steel-400);
    border-left: 0;
    padding: var(--space-4) 0 0;
  }

  .contact-page__handoff-panel {
    gap: var(--space-5);
    padding: var(--space-5);
  }

  .contact-page__handoff-hazard {
    width: min(11rem, 60%);
    margin-top: calc(var(--space-5) * -1);
  }

  .contact-page__handoff-copy,
  .contact-page__handoff-copy p {
    max-width: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .contact-page .warning-line {
    animation: none;
    background: var(--color-warning-yellow);
  }
}
