/* Contact page — form + sidebar. Monochrome, matches the brand. */

.contact-grid {
  display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(260px, 1fr);
  gap: clamp(2rem, 5vw, 4.5rem); align-items: start;
}

/* ---- Form ---- */
.contact-form { display: block; }
.field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem; }
.field { margin-bottom: 1.25rem; min-width: 0; }
.field label { display: block; font-family: var(--font-head); font-weight: 700;
  font-size: .8rem; letter-spacing: .04em; text-transform: uppercase; color: var(--be-black); margin-bottom: .5rem; }
.req { color: var(--be-charcoal); }

.field input[type="text"], .field input[type="email"], .field select, .field textarea {
  width: 100%; font: inherit; font-size: 1rem; color: var(--be-black);
  background: var(--be-white); border: 1px solid var(--be-charcoal);
  border-radius: 0; padding: .75rem .85rem; transition: border-color .15s, box-shadow .15s;
}
.field textarea { resize: vertical; min-height: 8rem; }
.field select { appearance: none; -webkit-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%2358595B' stroke-width='1.5'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 1rem center; padding-right: 2.5rem; }
.field input:focus, .field select:focus, .field textarea:focus {
  outline: none; border-color: var(--be-black); box-shadow: 0 0 0 3px rgba(0,0,0,.08); }
.field input[aria-invalid="true"], .field textarea[aria-invalid="true"] { border-color: #b00020; }
.field-err { color: #b00020; font-size: .82rem; margin-top: .4rem; }

.field--consent { margin-top: .25rem; }
.consent { display: flex; gap: .65rem; align-items: flex-start;
  font-family: var(--font-body); text-transform: none; letter-spacing: 0; font-weight: 400;
  font-size: .9rem; line-height: 1.5; color: var(--be-black); cursor: pointer; }
.consent input { margin-top: .2rem; width: 1.05rem; height: 1.05rem; flex: none; accent-color: #000; }
.consent a { color: var(--be-black); }

/* honeypot — visually removed, kept for bots */
.contact-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; opacity: 0; }

.contact-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.5rem; margin-top: 1.5rem; }
.contact-note { font-size: .85rem; color: var(--be-charcoal); margin: 0; }
#cf-submit[aria-busy="true"] { opacity: .7; pointer-events: none; }

.form-status { margin-top: 1.5rem; padding: 1rem 1.15rem; border: 1px solid var(--be-charcoal); font-size: .92rem; }
.form-status--ok { border-color: #1a7f4b; background: #f0faf4; color: #145c37; }
.form-status--err { border-color: #b00020; background: #fdf1f2; color: #8a0019; }

/* ---- Sidebar ---- */
.contact-aside { border-left: 1px solid var(--rule); padding-left: clamp(1.5rem, 3vw, 2.5rem); }
.contact-aside__h { font-size: 1rem; margin-bottom: .4rem; }
.contact-aside p { font-size: .95rem; color: var(--be-charcoal); }
.contact-details dl { display: grid; grid-template-columns: auto 1fr; gap: .35rem .9rem; margin-top: .5rem; font-size: .92rem; }
.contact-details dt { font-family: var(--font-head); font-weight: 700; font-size: .72rem; letter-spacing: .06em; text-transform: uppercase; color: var(--be-charcoal); }
.contact-details dd { margin: 0; color: var(--be-black); }
.contact-details a { color: var(--be-black); }

@media (max-width: 860px) {
  .contact-grid { grid-template-columns: 1fr; }
  .contact-aside { border-left: 0; padding-left: 0; border-top: 1px solid var(--rule); padding-top: 2rem; }
}
@media (max-width: 560px) {
  .field-row { grid-template-columns: 1fr; gap: 0; }
}
