/* Contact page composition. Reuses the shared viewport scale and mobile grid. */
body[data-page="contact"] .contact-main > section {
  box-sizing: border-box;
  max-block-size: 1380px;
  padding-block: var(--layout-home-section-5-padding);
}

body[data-page="contact"] .contact-main > .contact-section-one {
  min-height: calc(100vh - var(--reference-header-height));
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

body[data-page="contact"] .contact-section-one .contact-hero {
  padding-block: 0;
}

body[data-page="contact"] .contact-hero__title-frame {
  width: 100%;
  min-width: 0;
  overflow: hidden;
}

body[data-page="contact"] .contact-hero h1 {
  white-space: pre;
  overflow-wrap: normal;
  word-break: normal;
}

body[data-page="contact"] .contact-hero p {
  white-space: pre-line;
}

body[data-page="contact"] .contact-section-one .contact-brand-panel {
  padding-bottom: 0;
}

body[data-page="contact"] .contact-brand-panel .variant-mark-render {
  width: 100%;
  height: auto;
  min-height: 0;
  aspect-ratio: 991 / 474;
  object-fit: cover;
}

body[data-page="contact"] .contact-meta {
  width: 100%;
  align-self: center;
  gap: min(28px, 1.09375vw);
}

body[data-page="contact"] .contact-meta a {
  color: inherit;
  text-decoration: none;
}

body[data-page="contact"] .contact-channel {
  font-size: clamp(12px, 1.40625vw, 30px);
  line-height: 1;
}

body[data-page="contact"] .contact-channel__label {
  display: inline-block;
  width: 2ch;
}

body[data-page="contact"] .contact-location {
  margin: 0;
  font-family: var(--font-mono);
  font-size: clamp(10px, 1.0546875vw, 24px);
  font-weight: 500;
  line-height: 1.1;
  letter-spacing: -0.025em;
  text-transform: uppercase;
  white-space: nowrap;
}

body[data-page="contact"] .contact-location strong {
  font-weight: 700;
}

body[data-page="contact"] .contact-hashtags {
  display: flex;
  flex-wrap: wrap;
  gap: min(12px, 0.46875vw) min(20px, 0.78125vw);
  font-family: var(--font-mono);
  font-size: clamp(10px, 1.015625vw, 24px);
  font-weight: 500;
  line-height: 1.15;
  letter-spacing: -0.025em;
  text-transform: uppercase;
}

body[data-page="contact"] .contact-form-section {
  padding-block: var(--layout-home-section-5-padding);
  padding-bottom: 0;
  scroll-margin-top: calc(var(--reference-header-height) - var(--layout-home-section-5-padding) + var(--layout-section-gap));
}

body[data-page="contact"] .contact-form__title {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
}

body[data-page="contact"] .contact-form {
  --contact-module-gap: 40px;
  --contact-tag-following-gap: 20px;
  --contact-submit-gap: 60px;
  --contact-tag-font-size: min(20pt, 1.041667vw);
  --contact-tag-min-height: min(45.217391px, 1.766304vw);
  --contact-tag-padding-block: min(6.956522px, 0.271739vw);
  --contact-tag-padding-inline: min(17.391304px, 0.679348vw);
  --contact-tag-gap: min(10.434783px, 0.407608vw);
  --contact-tag-note-size: min(17.391304px, 0.679348vw);
  --contact-tag-radius: 999px;
  --contact-line-idle: rgba(255, 255, 255, 0.14);
  --contact-line-active: var(--line-on-dark);
  --contact-placeholder: rgba(255, 255, 255, 0.42);
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: min(120px, 4.6875vw);
  row-gap: var(--contact-module-gap);
}

body[data-page="contact"] .contact-form .field {
  min-width: 0;
  gap: 0;
}

body[data-page="contact"] .contact-form .field--services {
  gap: 0;
  margin-bottom: calc(var(--contact-tag-following-gap) - var(--contact-module-gap));
}

body[data-page="contact"] .contact-form fieldset {
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}

body[data-page="contact"] .contact-form .field--full,
body[data-page="contact"] .contact-form .form-actions {
  grid-column: 1 / -1;
}

body[data-page="contact"] .contact-form .field-heading,
body[data-page="contact"] .contact-form legend.field-heading {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: min(18px, 0.703125vw);
  margin: 0;
  padding-bottom: 20px;
  color: var(--white);
  font-family: var(--font-mono);
  font-size: 32px;
  font-weight: 500;
  line-height: 1.05;
  letter-spacing: -0.025em;
  text-transform: uppercase !important;
}

body[data-page="contact"] .contact-form .field-heading::before,
body[data-page="contact"] .contact-form legend.field-heading::before {
  content: "→";
  flex: 0 0 auto;
}

body[data-page="contact"] .contact-form .field-note {
  color: var(--white);
  font: inherit;
  letter-spacing: inherit;
  text-transform: none !important;
}

body[data-page="contact"] .contact-form input[type="text"],
body[data-page="contact"] .contact-form input[type="email"],
body[data-page="contact"] .contact-form textarea {
  width: 100%;
  color: var(--white);
  background: transparent;
  border-radius: 20px;
  font-size: clamp(12px, 1.25vw, 32px);
  font-weight: 500;
  line-height: 1.25;
  letter-spacing: -0.035em;
  text-transform: none !important;
}

body[data-page="contact"] .contact-form input[type="text"],
body[data-page="contact"] .contact-form input[type="email"] {
  padding: min(18px, 0.703125vw) 0 min(12px, 0.46875vw);
  border: 0;
  border-bottom: 1px solid var(--contact-line-idle);
  border-radius: 0;
  transition: border-color 140ms ease;
}

body[data-page="contact"] .contact-form textarea {
  min-height: min(350px, 13.671875vw);
  padding: min(20px, 0.78125vw);
  border: 1px solid var(--line-on-dark);
  resize: vertical;
}

body[data-page="contact"] .contact-form input::placeholder,
body[data-page="contact"] .contact-form textarea::placeholder {
  color: var(--contact-placeholder);
  opacity: 1;
  font-weight: 450;
  text-transform: none !important;
}

body[data-page="contact"] .contact-form input:focus,
body[data-page="contact"] .contact-form textarea:focus {
  outline: none;
}

body[data-page="contact"] .contact-form input[type="text"]:hover,
body[data-page="contact"] .contact-form input[type="email"]:hover,
body[data-page="contact"] .contact-form input[type="text"]:focus,
body[data-page="contact"] .contact-form input[type="email"]:focus,
body[data-page="contact"] .contact-form .other-service input:hover,
body[data-page="contact"] .contact-form .other-service input:focus {
  border-bottom-color: var(--contact-line-active);
}

body[data-page="contact"] .contact-form .choice-row {
  display: flex;
  flex-wrap: wrap;
  gap: min(18px, 0.703125vw) min(14px, 0.546875vw);
}

body[data-page="contact"] .contact-form .choice-row input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

body[data-page="contact"] .contact-form .choice-row label {
  display: inline-flex;
  align-items: center;
  height: var(--contact-tag-min-height);
  min-height: var(--contact-tag-min-height);
  padding: var(--contact-tag-padding-block) var(--contact-tag-padding-inline);
  border: 1px solid var(--line-on-dark);
  border-radius: var(--contact-tag-radius);
  color: var(--white);
  font-family: var(--font-mono);
  font-size: var(--contact-tag-font-size);
  font-weight: 500;
  line-height: 1;
  letter-spacing: -0.035em;
  text-transform: uppercase !important;
  white-space: nowrap;
  cursor: pointer;
  transition: background-color 140ms ease, border-color 140ms ease;
}

body[data-page="contact"] .contact-form .choice-row input:checked + label {
  background: var(--variant-blue);
  border-color: var(--variant-blue);
}

body[data-page="contact"] .contact-form .choice-row input:focus-visible + label {
  outline: 2px solid var(--white);
  outline-offset: 3px;
}

body[data-page="contact"] .contact-form .field--other-service {
  display: block;
}

body[data-page="contact"] .contact-form .other-service {
  width: min(630px, 24.609375vw);
  height: var(--contact-tag-min-height);
  min-height: var(--contact-tag-min-height);
  display: flex;
  align-items: center;
  gap: var(--contact-tag-gap);
  padding: var(--contact-tag-padding-block) var(--contact-tag-padding-inline);
  border: 1px solid var(--line-on-dark);
  border-radius: var(--contact-tag-radius);
}

body[data-page="contact"] .contact-form .other-service label {
  flex: 0 0 auto;
  font-size: var(--contact-tag-font-size);
  line-height: 1;
  text-transform: uppercase !important;
}

body[data-page="contact"] .contact-form .other-service-note {
  flex: 0 0 auto;
  color: var(--contact-placeholder);
  font-size: var(--contact-tag-note-size);
  font-weight: 450;
  line-height: 1;
  text-transform: none !important;
}

body[data-page="contact"] .contact-form .other-service input {
  min-width: 0;
  flex: 1 1 auto;
  padding: 0;
  border: 0;
  border-bottom: 1px solid var(--contact-line-idle);
  border-radius: 0;
  font-size: var(--contact-tag-note-size);
  font-weight: 450;
  line-height: 1;
  transition: border-color 140ms ease;
}

body[data-page="contact"] .contact-form .form-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: min(24px, 0.9375vw);
  margin-top: calc(var(--contact-submit-gap) - var(--contact-module-gap));
  padding-top: 0;
}

body[data-page="contact"] .contact-form .form-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.25em;
  padding: 0;
  color: var(--white);
  font-size: 38px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: -0.04em;
  text-transform: uppercase !important;
  cursor: pointer;
}

body[data-page="contact"] .contact-form .form-submit__arrow {
  width: min(185px, 7.2265625vw);
  height: min(28px, 1.09375vw);
  display: inline-block;
  background: currentColor;
  -webkit-mask: url("reference-arrow.svg") center / contain no-repeat;
  mask: url("reference-arrow.svg") center / contain no-repeat;
}

body[data-page="contact"] .contact-form .form-status {
  flex-basis: 100%;
  min-height: 1.5em;
  margin: 0;
  text-align: center;
  font-size: clamp(10px, 0.9375vw, 24px);
  text-transform: none !important;
}

body[data-page="contact"] .contact-main > .contact-next {
  --contact-section-three-top: min(142px, 5.546875vw);
  min-height: calc(100vh - var(--reference-header-height));
  max-block-size: none;
  padding-block: var(--contact-section-three-top) 0;
}

body[data-page="contact"] .contact-next > .container-fluid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 74vw);
  column-gap: min(60px, 2.34375vw);
  align-items: start;
}

body[data-page="contact"] .contact-next h2 {
  grid-column: 1;
  grid-row: 1;
  align-self: start;
  margin: 0;
  padding: 5px 0 0;
  font-size: 32px;
  line-height: 1.05;
}

body[data-page="contact"] .contact-next p {
  grid-column: 2;
  grid-row: 1;
  width: 100%;
  max-width: none;
  justify-self: stretch;
  margin: 0;
  font-size: 132.7px;
  line-height: 1.08;
  text-align: right;
  white-space: pre;
  overflow-wrap: normal;
  word-break: normal;
}
