/*
 * Low-specificity fallbacks. Theme rules win even though this file is loaded
 * from the extension after the theme stylesheet.
 */
:where(.contact-section:not(.ivcho-contact-section)) {
  box-sizing: border-box;
  width: 100%;
  padding: 32px;
  border: 1px solid #d5ded7;
  border-radius: 18px;
  background: #fff;
  color: #172921;
}

:where(.ivcho-contact-head) { margin-bottom: 20px; }
:where(.ivcho-contact-head h2) { margin: 0 0 12px; }
:where(.ivcho-contact-head p:last-child) { margin-bottom: 0; }

:where(.contact-form) {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

:where(.contact-form label) {
  display: grid;
  gap: 7px;
  min-width: 0;
}

:where(.contact-form .full),
:where(.contact-form .ivcho-form-field--wide),
:where(.contact-form .ivcho-photo-field),
:where(.contact-form > button) {
  grid-column: 1 / -1;
}

:where(.contact-form input:not([type="hidden"]):not([type="file"])),
:where(.contact-form select),
:where(.contact-form textarea) {
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  min-height: 54px;
  padding: 13px 15px;
  border: 1px solid #becbbf;
  border-radius: 12px;
  background: #fff;
  color: inherit;
  font: inherit;
}

:where(.contact-form textarea) { min-height: 170px; resize: vertical; }

:where(.contact-form > button) {
  min-height: 54px;
  padding: 14px 22px;
  border: 0;
  border-radius: 14px;
  background: var(--phone, var(--accent, #145c4a));
  color: #fff;
  font: inherit;
  font-weight: 700;
  cursor: pointer;
}

:where(.contact-form > button[disabled]) { opacity: .68; cursor: wait; }

.contact-honey,
.ivcho-honeypot {
  position: absolute !important;
  left: -10000px !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  clip-path: inset(50%) !important;
}

:where(.ivcho-photo-field) { position: relative; }
:where(.ivcho-photo-trigger) {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 54px;
  padding: 13px 15px;
  border: 1px solid #becbbf;
  border-radius: 12px;
  cursor: pointer;
}
:where(.ivcho-photo-field input[type="file"]) {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  opacity: 0;
}
:where(.ivcho-photo-status) { font-size: 14px; font-weight: 400; }
:where(.ivcho-photo-status.is-error) { color: #8b2828; }

@media (max-width: 650px) {
  :where(.contact-section:not(.ivcho-contact-section)) { padding: 24px 18px; }
  :where(.contact-form) { grid-template-columns: 1fr; }
  :where(.contact-form .full),
  :where(.contact-form .ivcho-form-field--wide),
  :where(.contact-form .ivcho-photo-field),
  :where(.contact-form > button) { grid-column: auto; }
}
