.contact-page {
  overflow: hidden;
}

.contact-page .section,
.contact-page .section--compact {
  min-width: 0;
}

.contact-intro {
  padding-block: clamp(5rem, 10vw, 9rem) clamp(4rem, 7vw, 6rem);
}

.contact-intro__grid {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  column-gap: var(--space-8);
  min-width: 0;
}

.contact-intro__editorial,
.contact-intro__space {
  min-width: 0;
}

.contact-intro__editorial {
  max-width: 43.75rem;
}

.contact-intro__editorial > .eyebrow {
  margin-block-end: var(--space-3);
}

.contact-intro__editorial h1 {
  max-width: 38.75rem;
  margin-block-end: var(--space-6);
  font-size: clamp(2.625rem, 5.3vw, 4rem);
}

.contact-intro__lead {
  max-width: 43.75rem;
  margin-block-end: var(--space-7);
  color: var(--color-platinum);
  font-size: var(--text-lead);
  line-height: var(--leading-relaxed);
}

.contact-intro__rule-wrap {
  display: flex;
  width: 100%;
  min-width: 0;
  margin-block-end: var(--space-5);
}

.contact-intro__rule {
  width: 4.375rem;
  margin: 0;
  transition: width var(--transition-base);
}

.contact-intro__editorial:focus-within .contact-intro__rule,
.contact-intro__editorial:hover .contact-intro__rule {
  width: 5.75rem;
}

.contact-intro__reassurance {
  max-width: 41.25rem;
  margin-block-end: 0;
}

.contact-intro__reassurance .text-link {
  margin-block-start: var(--space-3);
}

.contact-intro__space {
  position: relative;
}

.contact-intro__space::before {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 20%;
  width: 0.0625rem;
  background: var(--color-border-gold);
  content: "";
}

.contact-form-section {
  padding-block: clamp(3.5rem, 7vw, 6rem);
}

.contact-form-panel {
  display: grid;
  grid-template-columns: minmax(0, 4fr) minmax(0, 8fr);
  gap: var(--space-8);
  min-width: 0;
  padding: clamp(1.5rem, 4vw, 2.5rem);
}

.contact-form-panel__context,
.contact-enquiry-form {
  min-width: 0;
}

.contact-form-panel__context {
  max-width: 31.25rem;
}

.contact-form-panel__context > .eyebrow {
  margin-block-end: var(--space-3);
}

.contact-form-panel__context h2 {
  margin-block-end: var(--space-5);
}

.contact-form-panel__context p:last-child {
  margin-block-end: 0;
}

.contact-enquiry-form {
  display: flex;
  flex-direction: column;
  gap: var(--space-6);
  width: 100%;
}

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

.contact-field {
  min-width: 0;
}

.contact-field--half {
  grid-column: span 1;
}

.contact-field--full {
  grid-column: 1 / -1;
}

.contact-field input,
.contact-field select,
.contact-field textarea {
  min-height: 3rem;
}

.contact-field select {
  padding-right: 2.75rem;
  background-image: linear-gradient(45deg, transparent 50%, var(--color-antique-gold) 50%), linear-gradient(135deg, var(--color-antique-gold) 50%, transparent 50%);
  background-position: calc(100% - 1.125rem) 50%, calc(100% - 0.8125rem) 50%;
  background-repeat: no-repeat;
  background-size: 0.375rem 0.375rem, 0.375rem 0.375rem;
}

.contact-field textarea {
  min-height: 10rem;
}

.contact-field__help,
.contact-field__error {
  margin: var(--space-2) 0 0;
  font-size: var(--text-sm);
  line-height: var(--leading-small);
}

.contact-field__help {
  max-width: 38.75rem;
}

.contact-field__error {
  color: var(--color-error);
}

.contact-field [aria-invalid="true"] {
  border-color: var(--color-error);
}

.contact-field--acknowledgement {
  padding-block-start: var(--space-2);
}

.contact-checkbox {
  display: flex;
  align-items: flex-start;
  gap: var(--space-3);
  min-width: 0;
  margin: 0;
  color: var(--color-platinum);
  font-size: var(--text-sm);
  font-weight: 400;
  letter-spacing: 0;
  line-height: var(--leading-body);
  text-transform: none;
}

.contact-checkbox input {
  flex: 0 0 1.125rem;
  margin-block-start: 0.2rem;
}

.contact-checkbox span {
  min-width: 0;
}

.contact-enquiry-form__submit-row {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--space-5);
  min-width: 0;
  padding-block-start: var(--space-2);
  border-block-start: 0.0625rem solid var(--color-border);
}

.contact-enquiry-form__submit-copy {
  min-width: 0;
  max-width: 38.75rem;
}

.contact-enquiry-form__submit-copy p {
  margin: 0;
  font-size: var(--text-sm);
}

.contact-enquiry-form__submit {
  flex: 0 0 auto;
  min-height: 3rem;
}

.contact-enquiry-form__confirmation {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  min-width: 0;
  padding: var(--space-6);
  border: 0.0625rem solid rgb(147 168 137 / 52%);
  background: rgb(147 168 137 / 7%);
}

.contact-enquiry-form__confirmation .status,
.contact-enquiry-form__confirmation h3,
.contact-enquiry-form__confirmation p {
  margin: 0;
}

.contact-enquiry-form__again {
  align-self: flex-start;
}

.contact-routes {
  padding-block: clamp(4rem, 8vw, 8rem);
}

.contact-routes__grid {
  display: grid;
  grid-template-columns: minmax(0, 3fr) minmax(0, 9fr);
  gap: var(--space-8);
  min-width: 0;
}

.contact-routes__heading,
.contact-routes__list {
  min-width: 0;
}

.contact-routes__heading {
  max-width: 18.75rem;
}

.contact-routes__heading > .eyebrow {
  margin-block-end: var(--space-3);
}

.contact-routes__heading h2 {
  margin-block-end: var(--space-5);
}

.contact-routes__heading p:last-child {
  margin-block-end: 0;
}

.contact-routes__list {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.contact-route {
  display: grid;
  grid-template-columns: 3.5rem minmax(0, 1fr);
  gap: var(--space-4);
  min-width: 0;
  padding-block: var(--space-6);
  border-block-start: 0.0625rem solid var(--color-border);
}

.contact-route:last-child {
  border-block-end: 0.0625rem solid var(--color-border);
}

.contact-route__index,
.contact-route__content {
  min-width: 0;
}

.contact-route__index {
  margin: 0;
  color: var(--color-antique-gold);
  font-size: var(--text-xs);
  font-weight: 500;
  letter-spacing: var(--tracking-label);
  line-height: var(--leading-label);
}

.contact-route__content {
  max-width: 41.25rem;
}

.contact-route__content h3 {
  margin-block-end: var(--space-3);
}

.contact-route__content p {
  margin-block-end: var(--space-4);
}

.contact-in-person {
  padding-block: clamp(3.5rem, 7vw, 6rem);
}

.contact-in-person__panel {
  display: flex;
  flex-direction: column;
  gap: var(--space-5);
  width: min(100%, 53.333333rem);
  min-width: 0;
  margin-inline: auto;
  padding: clamp(1.5rem, 4vw, 2.5rem);
}

.contact-in-person__panel > * {
  min-width: 0;
  margin: 0;
}

.contact-in-person__panel h2 {
  max-width: 43.75rem;
}

.contact-in-person__panel .rule {
  width: 3.75rem;
}

.contact-in-person__support {
  max-width: 36.25rem;
}

.contact-guidance {
  padding-block: clamp(4rem, 8vw, 8rem);
}

.contact-guidance__heading {
  max-width: 38.75rem;
  margin-block-end: var(--space-8);
}

.contact-guidance__heading > .eyebrow {
  margin-block-end: var(--space-3);
}

.contact-guidance__heading h2 {
  margin-block-end: var(--space-5);
}

.contact-guidance__heading p:last-child {
  margin-block-end: 0;
}

.contact-guidance__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  min-width: 0;
}

.contact-guidance__item {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  min-width: 0;
  padding-inline: var(--space-6);
}

.contact-guidance__item:first-child {
  padding-inline-start: 0;
}

.contact-guidance__item:last-child {
  padding-inline-end: 0;
}

.contact-guidance__item + .contact-guidance__item {
  border-inline-start: 0.0625rem solid var(--color-border);
}

.contact-guidance__item > .meta {
  margin-block-end: var(--space-3);
}

.contact-guidance__item h3 {
  margin-block-end: var(--space-3);
}

.contact-guidance__item p:not(.meta) {
  max-width: 20.625rem;
  margin-block-end: var(--space-5);
}

.contact-guidance__item .text-link {
  margin-block-start: auto;
}

.contact-closing {
  padding-block: clamp(3.5rem, 7vw, 6rem) clamp(3.5rem, 7vw, 5rem);
}

.contact-closing__block {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-5);
  width: min(100%, 46.666667rem);
  min-width: 0;
  margin-inline-start: 16.666667%;
}

.contact-closing__block > * {
  min-width: 0;
  margin: 0;
}

.contact-closing__block > .rule {
  width: 4.375rem;
}

.contact-closing__block h2 {
  max-width: 42.5rem;
}

.contact-closing__block > p {
  max-width: 42.5rem;
}

.contact-closing__action {
  min-height: 3rem;
  margin-block-start: var(--space-2);
}

.contact-closing__note {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  min-width: 0;
  max-width: 32.5rem;
  margin-block-start: var(--space-2);
}

.contact-closing__note > * {
  min-width: 0;
  margin: 0;
}

.contact-closing__note .rule {
  width: 20rem;
  max-width: 100%;
}

.contact-closing__note p {
  color: var(--color-text-muted);
  font-size: var(--text-sm);
}

@media (max-width: 63.9375rem) {
  .contact-form-panel {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-7);
  }

  .contact-form-panel__context {
    max-width: 37.5rem;
  }
}

@media (max-width: 61.1875rem) {
  .contact-routes__grid {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-7);
  }

  .contact-routes__heading {
    max-width: 37.5rem;
  }

  .contact-guidance__grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
  }

  .contact-guidance__item {
    padding: var(--space-6) 0;
  }

  .contact-guidance__item:first-child {
    padding-block-start: 0;
  }

  .contact-guidance__item + .contact-guidance__item {
    border-inline-start: 0;
    border-block-start: 0.0625rem solid var(--color-border);
  }

  .contact-guidance__item p:not(.meta) {
    max-width: 38.75rem;
  }

  .contact-guidance__item .text-link {
    margin-block-start: 0;
  }
}

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

  .contact-intro__space {
    display: none;
  }

  .contact-intro__editorial {
    max-width: 41.25rem;
  }
}

@media (max-width: 56.25rem) {
  .contact-in-person__panel {
    width: 100%;
  }

  .contact-closing__block {
    width: min(100%, 42.5rem);
    margin-inline: 0;
  }
}

@media (max-width: 45rem) {
  .contact-enquiry-form__submit-row {
    flex-direction: column;
    align-items: flex-start;
  }

  .contact-enquiry-form__submit-copy,
  .contact-enquiry-form__submit {
    width: 100%;
  }
}

@media (max-width: 47.9375rem) {
  .contact-intro {
    padding-block: var(--space-10) var(--space-8);
  }

  .contact-intro__editorial h1 {
    max-width: 100%;
    font-size: clamp(2.625rem, 11vw, 3rem);
  }

  .contact-intro__lead,
  .contact-intro__reassurance {
    max-width: 100%;
  }

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

  .contact-enquiry-form__fields {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-5);
  }

  .contact-field--half,
  .contact-field--full {
    grid-column: 1;
  }

  .contact-field input,
  .contact-field select,
  .contact-field textarea {
    min-height: 3rem;
  }

  .contact-enquiry-form__submit {
    width: min(100%, 26.25rem);
  }

  .contact-route {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-3);
    padding-block: var(--space-7);
  }

  .contact-route__index {
    width: 2.5rem;
  }

  .contact-route__content {
    max-width: 100%;
  }

  .contact-in-person__panel {
    gap: var(--space-4);
    padding: var(--space-5);
  }

  .contact-in-person__panel h2,
  .contact-closing__block h2 {
    font-size: 1.875rem;
  }

  .contact-in-person__support {
    max-width: 100%;
  }

  .contact-guidance__heading {
    margin-block-end: var(--space-6);
  }

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

  .contact-closing__block {
    gap: var(--space-4);
    width: 100%;
    max-width: none;
  }

  .contact-closing__block > p,
  .contact-closing__note {
    max-width: 100%;
  }

  .contact-closing__action {
    width: min(100%, 26.25rem);
  }

  .contact-closing__note {
    margin-block-start: var(--space-3);
  }

  .contact-closing__note .rule {
    width: 15rem;
  }
}

@media (max-width: 26.25rem) {
  .contact-enquiry-form__submit,
  .contact-closing__action {
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .contact-intro__rule {
    transition: none;
  }
}