.contact-page {
  padding-block: var(--space-6) var(--space-10);
}

.contact-page section[id],
.contact-page [id] {
  scroll-margin-top: 7rem;
}

.contact-hero {
  position: relative;
  overflow: clip;
  padding-block: var(--space-4) var(--space-8);
}

.contact-hero__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--space-5);
  align-items: stretch;
  padding: var(--space-6);
  border: var(--border-ink);
  border-radius: var(--radius-feature);
  background: var(--color-blue);
  box-shadow: var(--shadow-offset);
}

.contact-hero__copy {
  grid-column: 1 / span 7;
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-4);
}

.contact-hero__copy > * { margin: 0; }

.contact-hero__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  color: var(--color-ink);
}

.contact-hero__eyebrow span,
.contact-form-section .eyebrow span {
  width: 0.75rem;
  height: 0.75rem;
  border: var(--border-ink);
  background: var(--color-yellow);
}

.contact-hero h1 {
  max-width: 28ch;
  color: var(--color-inverse-ink);
  font-size: var(--text-hero);
}

.contact-hero__deck {
  width: min(100%, 44rem);
}

.contact-hero__actions,
.contact-closing__actions {
  display: flex;
  min-width: 0;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-3);
}

.contact-hero__actions > *,
.contact-closing__actions > * {
  min-width: 0;
}

.contact-hero__details-link {
  min-height: 2.75rem;
  display: inline-flex;
  align-items: center;
  color: var(--color-inverse-ink);
  font-weight: 700;
}

.contact-hero__details-link:hover { color: var(--color-yellow); }

.contact-hero__media {
  grid-column: 8 / span 5;
  display: flex;
  min-width: 0;
  flex-direction: column;
  justify-content: flex-end;
  gap: var(--space-2);
  margin: 0;
}

.contact-hero__media img {
  width: 100%;
  max-width: 100%;
  aspect-ratio: 4 / 3;
  border: var(--border-ink);
  border-radius: var(--radius-card);
  object-fit: cover;
  object-position: right center;
  box-shadow: var(--shadow-offset-small);
}

.contact-hero__media figcaption { color: var(--color-inverse-ink); }

.contact-routes,
.contact-form-section,
.contact-guidance,
.contact-context,
.contact-checklist,
.contact-closing,
.contact-reminder {
  padding-block: var(--space-8);
}

.contact-routes__heading,
.contact-guidance__heading {
  max-width: 42rem;
  margin-bottom: var(--space-5);
}

.contact-routes__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--space-5);
  align-items: stretch;
}

.contact-route {
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-4);
  padding: var(--space-5);
  border: var(--border-ink);
  border-radius: var(--radius-feature);
}

.contact-route > * { margin: 0; }
.contact-route--email { grid-column: 1 / span 5; background: var(--color-paper); }
.contact-route--phone { grid-column: 6 / span 3; background: var(--color-yellow); }
.contact-route--post { grid-column: 9 / span 4; background: var(--color-blue); }
.contact-route--post > p { color: var(--color-inverse-ink); }

.contact-route__label {
  color: var(--color-muted-ink);
  font-size: var(--text-label);
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.contact-route--email .contact-route__label { color: var(--color-orange); }
.contact-route--phone .contact-route__label { color: var(--color-ink); }
.contact-route--post .contact-route__label { color: var(--color-inverse-ink); }

.contact-route h3 {
  width: 100%;
  font-size: clamp(1.35rem, 2.8vw, 2rem);
}

.contact-route h3 a {
  display: inline-flex;
  min-height: 2.75rem;
  align-items: center;
  overflow-wrap: anywhere;
}

.contact-route--phone h3 a { overflow-wrap: normal; white-space: nowrap; }
.contact-route address { font-style: normal; font-size: var(--text-lead); font-weight: 700; line-height: 1.5; }
.contact-route .inset { width: 100%; }

.contact-routes__note {
  max-width: 46rem;
  margin: var(--space-5) 0 0;
  padding-top: var(--space-4);
  border-top: var(--border-line);
  color: var(--color-muted-ink);
}

.contact-form-section__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--space-5);
  align-items: start;
}

.contact-form-section__content {
  grid-column: 2 / span 7;
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-5);
}

.contact-form-section__content > * { margin: 0; }
.contact-form-section__intro { width: 100%; max-width: 46rem; }
.contact-form-section__accent { grid-column: 9 / span 3; min-width: 0; min-height: 18rem; margin-top: var(--space-8); border: var(--border-ink); border-radius: var(--radius-feature); background: var(--color-blue); }

.contact-form {
  width: min(100%, 52rem);
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: var(--space-5);
  padding: var(--space-5);
  border: var(--border-ink);
  border-radius: var(--radius-feature);
  background: var(--color-paper);
}

.contact-form__required { margin: 0; color: var(--color-muted-ink); font-size: var(--text-label); }
.contact-form__fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-4); }
.contact-form__field { display: flex; min-width: 0; flex-direction: column; gap: var(--space-2); }
.contact-form__field label { margin: 0; }
.contact-form__field small { color: var(--color-muted-ink); line-height: 1.4; }
.contact-form__field--full { grid-column: 1 / -1; }
.contact-form__field textarea { min-height: 10rem; }
.contact-form__optional { color: var(--color-muted-ink); font-weight: 400; }
.contact-form__field [aria-invalid="true"] { border-color: #b42318; box-shadow: inset 0 0 0 1px #b42318; }
.contact-form__error { margin: 0; color: #8d1710; font-size: var(--text-label); font-weight: 700; }
.contact-form__submit { display: flex; min-width: 0; flex-wrap: wrap; align-items: center; gap: var(--space-4); }
.contact-form__submit > * { min-width: 0; }
.contact-form__submission-note { flex: 1 1 18rem; margin: 0; color: var(--color-muted-ink); font-size: var(--text-label); }
.contact-form__status { min-height: 1.6rem; margin: 0; font-weight: 700; }
.contact-form__status--error { color: #8d1710; }
.contact-form__status--success { color: #1a5b36; }
.contact-form-section__privacy { max-width: 46rem; color: var(--color-muted-ink); font-size: var(--text-label); }

.contact-guidance__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--space-5);
}

.contact-guidance__card {
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-4);
  padding: var(--space-5);
  border: var(--border-ink);
  border-radius: var(--radius-feature);
  background: var(--color-paper);
}

.contact-guidance__card > * { margin: 0; }
.contact-guidance__card h3 { max-width: 30rem; }
.contact-guidance__card p:not(.tag) { max-width: 38rem; }
.contact-guidance__card a { font-weight: 700; }
.contact-guidance__card--feedback { grid-column: 1 / span 6; }
.contact-guidance__card--correction { grid-column: 7 / span 6; background: var(--color-yellow); }
.contact-guidance__card--information { grid-column: 1 / span 7; }
.contact-guidance__card--rights { grid-column: 8 / span 5; }
.contact-guidance__card--correction .inset,
.contact-guidance__card--rights .inset { display: flex; min-width: 0; flex-direction: column; align-items: flex-start; gap: var(--space-4); }
.contact-guidance__card--correction .inset > *,
.contact-guidance__card--rights .inset > * { margin: 0; }
.contact-guidance__note { max-width: 42rem; margin-top: var(--space-5); padding: var(--space-4) var(--space-5); border-left: 4px solid var(--color-orange); color: var(--color-muted-ink); }

.contact-context__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--space-5);
  align-items: stretch;
}

.contact-context__feature { grid-column: 1 / span 5; display: flex; min-width: 0; flex-direction: column; gap: var(--space-4); padding: var(--space-5); border: var(--border-ink); border-radius: var(--radius-feature); box-shadow: var(--shadow-offset); }
.contact-context__feature > * { margin: 0; }
.contact-context__feature > .eyebrow { color: var(--color-inverse-ink); }
.contact-context__feature .inset { display: flex; min-width: 0; flex-direction: column; gap: var(--space-4); }
.contact-context__feature .inset > * { margin: 0; }
.contact-context__feature .inset p { max-width: 42rem; }
.contact-context__principles { grid-column: 6 / span 7; display: grid; min-width: 0; grid-template-columns: minmax(0, 1fr); gap: var(--space-5); }
.contact-context__card { display: flex; min-width: 0; flex-direction: column; align-items: flex-start; gap: var(--space-3); padding: var(--space-5); border: var(--border-ink); border-radius: var(--radius-card); background: var(--color-paper); }
.contact-context__card > * { margin: 0; }
.contact-context__card p:last-child { max-width: 34rem; }
.contact-context__card--story { border-top: 0.65rem solid var(--color-yellow); }
.contact-context__card--facts { border-top: 0.65rem solid var(--color-orange); }

.contact-checklist__panel { width: calc(100% - 16.6667%); margin-inline: auto; display: flex; min-width: 0; flex-direction: column; gap: var(--space-5); padding: var(--space-5); border: var(--border-ink); border-top: 0.75rem solid var(--color-yellow); border-radius: var(--radius-feature); background: var(--color-paper); }
.contact-checklist__panel > * { margin: 0; }
.contact-checklist__heading { max-width: 38rem; }
.contact-checklist__heading > * { margin: 0; }
.contact-checklist__heading .eyebrow { margin-bottom: var(--space-2); }
.contact-checklist__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-5); }
.contact-checklist__item { position: relative; min-width: 0; padding-left: var(--space-5); }
.contact-checklist__item::before { position: absolute; top: 0.45rem; left: 0; width: 0.8rem; height: 0.8rem; border: var(--border-ink); content: ""; }
.contact-checklist__item--blue::before { background: var(--color-blue); }
.contact-checklist__item--yellow::before { background: var(--color-yellow); }
.contact-checklist__item--orange::before { background: var(--color-orange); }
.contact-checklist__item--ink::before { background: var(--color-paper); }
.contact-checklist__item h3 { margin-bottom: var(--space-2); }
.contact-checklist__item p { max-width: 40rem; margin: 0; }
.contact-checklist__action { align-self: flex-start; }

.contact-closing__band { padding: var(--space-5); border: var(--border-ink); border-radius: var(--radius-feature); background: var(--color-orange); box-shadow: var(--shadow-offset); }
.contact-closing__inset { display: flex; min-width: 0; align-items: center; justify-content: space-between; gap: var(--space-5); padding: var(--space-5); border-radius: var(--radius-card); background: var(--color-paper); }
.contact-closing__copy { min-width: 0; max-width: 40rem; }
.contact-closing__copy > * { margin: 0; }
.contact-closing__copy h2 { margin-bottom: var(--space-3); }
.contact-closing__actions { flex: 0 0 auto; justify-content: flex-end; }

.contact-reminder { padding-bottom: 0; }
.contact-reminder__strip { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 4fr) minmax(0, 5fr); gap: var(--space-4); align-items: center; padding: var(--space-4); border: var(--border-ink); border-radius: var(--radius-card); background: var(--color-paper); }
.contact-reminder__intro { min-width: 0; }
.contact-reminder__intro > * { margin: 0; }
.contact-reminder__intro h2 { margin-bottom: var(--space-2); font-size: var(--text-section); }
.contact-reminder__channels { display: flex; min-width: 0; flex-wrap: wrap; gap: var(--space-2) var(--space-4); }
.contact-reminder__channels a { display: inline-flex; min-height: 2.75rem; min-width: 0; align-items: center; font-weight: 700; overflow-wrap: anywhere; }
.contact-reminder__address { min-width: 0; font-style: normal; font-weight: 700; }

@media (max-width: 61.25rem) {
  .contact-routes__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .contact-route--email { grid-column: 1; }
  .contact-route--phone { grid-column: 2; }
  .contact-route--post { grid-column: 1 / -1; }
}

@media (max-width: 57.5rem) {
  .contact-hero__grid { grid-template-columns: minmax(0, 1fr); }
  .contact-hero__copy { grid-column: 1; }
  .contact-hero__media { grid-column: 1; }
  .contact-hero__media img { aspect-ratio: 16 / 6; object-position: center; }
  .contact-form-section__content { grid-column: 2 / span 8; }
  .contact-form-section__accent { display: none; }
  .contact-guidance__card--information { grid-column: 1 / span 6; }
  .contact-guidance__card--rights { grid-column: 7 / span 6; }
  .contact-context__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .contact-context__feature { grid-column: 1 / -1; }
  .contact-context__principles { grid-column: 1 / -1; grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 51.25rem) {
  .contact-checklist__panel { width: 100%; }
  .contact-checklist__grid { grid-template-columns: minmax(0, 1fr); }
  .contact-checklist__item + .contact-checklist__item { padding-top: var(--space-4); border-top: 1px solid var(--color-line); }
}

@media (max-width: 48.75rem) {
  .contact-closing__inset { flex-direction: column; align-items: stretch; }
  .contact-closing__actions { justify-content: flex-start; }
}

@media (max-width: 47.5rem) {
  .contact-page { padding-block: var(--space-4) var(--space-8); }
  .contact-hero,
  .contact-routes,
  .contact-form-section,
  .contact-guidance,
  .contact-context,
  .contact-checklist,
  .contact-closing,
  .contact-reminder { padding-block: var(--space-6); }
  .contact-hero__grid { padding: var(--space-4); gap: var(--space-4); }
  .contact-hero h1 { font-size: clamp(2.6rem, 12vw, 3.4rem); }
  .contact-hero__media img { aspect-ratio: 4 / 3; }
  .contact-routes__grid,
  .contact-form-section__grid,
  .contact-guidance__grid,
  .contact-context__grid { grid-template-columns: minmax(0, 1fr); }
  .contact-route--email,
  .contact-route--phone,
  .contact-route--post,
  .contact-form-section__content,
  .contact-guidance__card--feedback,
  .contact-guidance__card--correction,
  .contact-guidance__card--information,
  .contact-guidance__card--rights,
  .contact-context__feature,
  .contact-context__principles { grid-column: 1; }
  .contact-route,
  .contact-guidance__card,
  .contact-context__feature,
  .contact-context__card,
  .contact-form { padding: var(--space-4); }
  .contact-form__fields,
  .contact-context__principles { grid-template-columns: minmax(0, 1fr); }
  .contact-form__field--full { grid-column: 1; }
  .contact-reminder__strip { grid-template-columns: minmax(0, 1fr); gap: var(--space-3); }
  .contact-reminder__channels { flex-direction: column; align-items: stretch; }
}

@media (max-width: 38.75rem) {
  .contact-route--phone h3 a { white-space: normal; }
}

@media (max-width: 26.25rem) {
  .contact-hero__actions,
  .contact-closing__actions { align-items: stretch; flex-direction: column; width: 100%; }
  .contact-hero__actions .button,
  .contact-closing__actions .button { width: 100%; }
}

@media (max-width: 26.25rem) {
  .contact-hero__media { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  .contact-page * { scroll-behavior: auto; }
}
