/* ===================================================================
   page-contact.css — Contact page only
   =================================================================== */
.contact-main { padding: 11.5741vh 0 13.0208vw; background: #fff; }
.contact-main-grid {
  display: grid;
  grid-template-columns: minmax(0, 32.2917vw) minmax(0, 39.5833vw);
  gap: 6.25vw;
}
.contact-copy h2 {
  margin: 0 0 6.4815vh; color: #3a3f45;
  font-size: var(--fs-60); line-height: 1.35; font-weight: 400;
}
.contact-copy h2 span { color: var(--red); font-weight: 900; }
.contact-copy h3 { margin: 0 0 2.7778vh; color: #303943; font-size: var(--fs-30); }
.contact-copy p { margin: 0 0 3.1481vh; color: #555f6b; font-size: var(--fs-24); line-height: 1.8; }
.contact-qr-row { display: flex; gap: 3.6458vw; margin-top: 4.1667vh; }
.contact-qr-row figure { margin: 0; text-align: center; color: #767f89; font-size: 0.7292vw; }
.contact-qr-row span {
  width: 6.875vw; height: 12.2222vh; display: block; margin-bottom: 1.2963vh;
  background:
    linear-gradient(90deg, #111 0.5208vw, transparent 0.5208vw) 0 0/1.1458vw 1.1458vw,
    linear-gradient(#111 0.5208vw, transparent 0.5208vw) 0 0/1.1458vw 1.1458vw,
    #fff;
  border: 0.5208vw solid #fff;
  box-shadow: inset 0 0 0 0.1042vw #111, 0 0.2083vw 0.7292vw rgba(0,0,0,.08);
}

.contact-message-form { padding: 6.2963vh 3.2292vw; background: #f1f1f1; }
.contact-message-form p { margin: 0 0 3.1481vh; color: #343b44; font-size: var(--fs-24); }
.contact-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2.037vh 1.3542vw; }
.contact-message-form input,
.contact-message-form select,
.contact-message-form textarea {
  width: 100%; border: 0.0521vw solid #d9d9d9; border-radius: 0;
  background: #fff; color: #343b44; font-size: var(--fs-24); outline: none;
}
.contact-message-form input::placeholder,
.contact-message-form textarea::placeholder { color: #636363; opacity: 1; }
.contact-message-form select:invalid { color: #636363; }
.form-field { position: relative; display: block; }
.form-field > span {
  position: absolute; top: 50%; right: 0.7813vw; transform: translateY(-50%);
  color: var(--red); font-size: var(--fs-24); pointer-events: none;
}
.form-field-wide { margin-top: 2.2222vh; }
.form-field-wide > span { top: 1.6667vh; transform: none; }
.contact-message-form input,
.contact-message-form select { height: 5.5556vh; padding: 0 1.6667vh; }
.contact-message-form textarea { min-height: 24.0741vh; padding: 1.6667vh; resize: vertical; }
.captcha-row {
  display: grid;
  grid-template-columns: minmax(0, 14.0625vw) 7.2917vw 1.875vw;
  gap: 0.9375vw; align-items: center; margin-top: 2.4074vh;
}
.captcha-image { height: 5vh; width: 7.2917vw; display: block; background: #fff; object-fit: contain; }
.captcha-row button { border: 0; background: transparent; color: var(--red); font-size: 1.4583vw; cursor: pointer; }
.privacy-check { display: flex; align-items: center; gap: 0.5208vw; margin: 2.037vh 0 1.7708vw; color: #636363; font-size: var(--fs-18); }
.privacy-check input { width: 0.8333vw; height: 1.4815vh; }
.contact-submit {
  width: 10.4167vw; height: 5.3704vh; border: 0;
  background: var(--red); color: #fff; font-size: 0.8854vw; font-weight: 800; cursor: pointer;
  border-radius: var(--pill-radius);
}
.contact-form-message { min-height: 2.2222vh; margin-bottom: 1.1111vh; color: var(--red); font-size: var(--fs-18); }
.contact-form-message.is-success { color: #24835b; }
