/* Contact composition from the supplied September 27 reference. */
.contact-section {
  --contact-ink: #004d73;
  --contact-muted: #60829a;
  --contact-clay: #bf382e;
  --contact-green: #5d6855;
  --contact-line: #a5afb3;
  container-type: inline-size;
  height: auto;
  min-height: 0;
  background: #fbf9f5;
}
.contact-section::after { opacity: .035; }
.contact-layout { width: 100%; min-height: 0; height: auto; grid-template-columns: 58.9fr 41.1fr; padding-block: 1.9cqw; }
.contact-editorial { position: relative; padding: 0; border-right: 1px solid var(--contact-line); }
.contact-intro { display: block; min-height: 0; height: 36.6cqw; }
.contact-copy-block { position: absolute; inset: 3.6cqw auto auto 3.2cqw; padding: 0; }
.contact-kicker { margin: 0 0 2.8cqw -.5cqw; gap: .65cqw; font-size: .9cqw; letter-spacing: .2em; }
.contact-kicker::after { width: 3.2cqw; }
.contact-copy-block h2 { width: auto; font-size: 3.55cqw; line-height: .98; font-weight: 500; letter-spacing: -.035em; }
.contact-copy-block h2 span, .contact-copy-block h2 em { white-space: nowrap; }
.contact-rule { width: 3cqw; margin-top: 1.3cqw; }
.contact-copy { margin-top: 1.65cqw; font-size: 1.15cqw; line-height: 1.38; }
.contact-note { margin-top: 3.85cqw; color: var(--contact-muted); font-size: 1.2cqw; white-space: nowrap; }
.contact-note i { top: auto; bottom: -1cqw; width: 3cqw; }
.contact-portrait { position: absolute; top: 2.95cqw; left: 24.15cqw; width: 29.25cqw; height: 28.3cqw; max-height: none; margin: 0; aspect-ratio: auto; }
.contact-portrait::before { position: absolute; inset: .9cqw; content: ''; border-radius: 50%; background: #f7f4ef; }
.contact-portrait-outline { inset: 0; border: 1.5px solid #de302a; border-radius: 50%; transform: none; }
.contact-portrait > img.contact-branch { inset: auto; width: 6.5cqw; height: auto; object-fit: contain; border-radius: 0; opacity: .35; }
.contact-portrait > img.contact-branch-top { top: -1.9cqw; right: -2.1cqw; transform: rotate(-23deg); }
.contact-portrait > img.contact-branch-bottom { bottom: .9cqw; left: -2.4cqw; transform: rotate(105deg) scale(.7); }
.contact-portrait p { inset: 0; display: grid; place-content: center; text-align: center; font-size: 3.4cqw; line-height: 1; padding-top: 1cqw; }
.contact-links { display: grid; grid-template-columns: 1.1fr 1fr; margin: .8cqw 3cqw 3.1cqw 4.7cqw; font-style: normal; }
.contact-links a { display: flex; align-items: center; gap: 1.8cqw; min-width: 0; min-height: 5.3cqw; text-decoration: none; }
.contact-links a + a { border-left: 1px solid var(--contact-line); padding-left: 2.9cqw; }
.contact-link-icon { display: grid; place-items: center; flex: 0 0 4.2cqw; height: 4.2cqw; border-radius: 50%; background: #f0ece3; color: #101510; }
.contact-link-icon svg { width: 1.95cqw; height: 1.95cqw; }
.contact-link-label { display: block; color: var(--contact-muted); font-size: .8cqw; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; white-space: nowrap; }
.contact-link-value { display: block; color: var(--contact-clay); font-family: var(--font-display); font-size: 1.7cqw; letter-spacing: -.045em; white-space: nowrap; }
.contact-links a:hover .contact-link-value { text-decoration: underline; text-underline-offset: .2em; }
.contact-links a:focus-visible { outline: 2px solid var(--contact-clay); outline-offset: 5px; }
.contact-panel { display: block; padding: 3.4cqw 3cqw 1.5cqw 2.4cqw; border-top: 0; }
.contact-form { display: block; margin: 0; }
.contact-form legend { margin-bottom: .6cqw; font-size: .9cqw; letter-spacing: .2em; line-height: 1.2; }
.contact-fields { gap: .5cqw; margin-bottom: .4cqw; }
.contact-fields-two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.contact-form input { height: 2.85cqw; min-height: 0; padding: .7cqw .95cqw; font-size: .9cqw; }
.contact-form > fieldset:first-child > label { margin-bottom: .4cqw; }
.contact-form input, .contact-form textarea { background: transparent; box-shadow: none; }
.contact-form input::placeholder, .contact-form textarea::placeholder { color: var(--contact-muted); }
.contact-needs { margin-top: .9cqw !important; padding-top: 0 !important; border-top: 0 !important; }
.contact-needs label { margin-bottom: .4cqw; }
.contact-needs span { min-height: 2.55cqw; padding: .45cqw 1.4cqw; font-size: 1.05cqw; justify-content: space-between; }
.contact-help-icon { width: 1.5cqw; height: 1.5cqw; color: var(--contact-green); flex-shrink: 0; }
.contact-needs input:checked + span .contact-help-icon { color: white; }
.contact-message-field { display: block; margin-top: .4cqw !important; }
.contact-message-field label { display: block; }
.contact-form textarea { display: block; height: 10.55cqw; min-height: 10.55cqw; padding: .8cqw; font: .98cqw/1.4 "Courier New", monospace; letter-spacing: -.04em; }
.contact-form button { width: 84%; min-height: 3.3cqw; margin-top: .7cqw; font-size: .78cqw; }
.contact-response { margin-top: .65cqw; font-size: 1cqw; line-height: 1.1; }
@media (max-width: 900px) {
  .contact-layout { display: block; padding: 32px 20px; }
  .contact-editorial { border: 0; }
  .contact-intro { height: auto; }
  .contact-copy-block { position: relative; inset: auto; }
  .contact-kicker { margin: 0 0 30px; gap: 10px; font-size: 12px; }
  .contact-kicker::after, .contact-rule, .contact-note i { width: 45px; }
  .contact-copy-block h2 { font-size: clamp(36px, 6.5vw, 62px); }
  .contact-rule { margin-top: 24px; }
  .contact-copy { margin-top: 24px; font-size: 16px; }
  .contact-note { margin-top: 40px; font-size: 19px; white-space: normal; }
  .contact-note i { bottom: -14px; }
  .contact-portrait { position: relative; top: auto; left: auto; width: min(75vw, 430px); height: auto; aspect-ratio: 1.035; margin: 40px auto; }
  .contact-portrait p { font-size: clamp(40px, 7vw, 60px); }
  .contact-portrait > img.contact-branch { width: 25%; }
  .contact-links { grid-template-columns: 1fr; margin: 35px 0; gap: 20px; }
  .contact-links a { gap: 18px; min-height: 60px; }
  .contact-links a + a { border: 0; padding: 0; }
  .contact-link-icon { flex-basis: 60px; height: 60px; }
  .contact-link-icon svg { width: 28px; height: 28px; }
  .contact-link-label { font-size: 10px; }
  .contact-link-value { font-size: clamp(21px, 5.5vw, 30px); }
  .contact-panel { border-top: 1px solid var(--contact-line); padding: 30px 0 0; }
  .contact-form legend { font-size: 12px; margin-bottom: 12px; }
  .contact-fields { gap: 8px; margin-bottom: 8px; }
  .contact-form input { min-height: 48px; padding: 12px; font-size: 13px; }
  .contact-form > fieldset:first-child > label { margin-bottom: 8px; }
  .contact-needs { margin-top: 20px !important; }
  .contact-needs label { margin-bottom: 8px; }
  .contact-needs span { min-height: 44px; padding: 10px 14px; font-size: 18px; }
  .contact-help-icon { width: 24px; height: 24px; }
  .contact-message-field { margin-top: 18px !important; }
  .contact-form textarea { height: 180px; min-height: 180px; padding: 12px; font-size: 14px; }
  .contact-form button { min-height: 50px; margin-top: 12px; font-size: 12px; }
  .contact-response { margin-top: 12px; font-size: 17px; }
}
@media (max-width: 480px) { .contact-fields-two { grid-template-columns: 1fr; } }
