/* Bennett Property Shop — Gravity Forms styling (Sept 2026)
   Layered on top of Gravity Forms' own "2.5 theme" base styles. */

.gform_wrapper.gravity-theme {
  --bp-ink: #211f20;
  --bp-muted: #6f6f6f;
  --bp-gold: #d2aa45;
  --bp-gold-dark: #b8923a;
  --bp-gold-soft: rgba(210, 170, 69, 0.28);
  --bp-border: #d6d6d6;
  --bp-border-strong: #b9b9b9;
  --bp-surface: #ffffff;
  --bp-error: #b3261e;
  --bp-error-soft: #fdecea;
  --bp-ok: #2f7d5b;
  --bp-radius: 8px;
  --bp-ctrl-h: 48px;
  --bp-font: 1em;                        /* = 16px (wrapper is pinned to 16px below): prevents mobile zoom */
  --bp-label: clamp(14.5px, 0.35vw + 12.5px, 15.5px);
  --bp-small: 13px;
  --bp-gap-y: clamp(16px, 1.4vw, 22px);
  --bp-gap-x: clamp(14px, 1.6vw, 24px);
  font-family: inherit;
  font-size: 16px !important;
  line-height: 1.45;
  color: var(--bp-ink);
  margin: 0;
}

/* layout */
.gform_wrapper.gravity-theme .gform_fields { grid-row-gap: var(--bp-gap-y); grid-column-gap: var(--bp-gap-x); }
.gform_wrapper.gravity-theme .gform_required_legend { font-size: var(--bp-small); color: var(--bp-muted); margin: 0 0 12px; }
.gform_wrapper.gravity-theme .gform_required_legend .gfield_required { color: var(--bp-gold-dark); }

/* labels */
.gform_wrapper.gravity-theme legend.gfield_label { border: 0 !important; width: auto; display: block; }
.gform_wrapper.gravity-theme .gfield_label,
.gform_wrapper.gravity-theme legend.gfield_label {
  font-size: var(--bp-label) !important; font-weight: 500 !important; line-height: 1.3; color: var(--bp-ink) !important;
  letter-spacing: 0.005em; margin: 0 0 8px !important; padding: 0;
}
.gform_wrapper.gravity-theme .gfield_required { color: var(--bp-gold-dark); font-weight: 500; }
.gform_wrapper.gravity-theme .gfield_required_asterisk { font-size: 1em; }
.gform_wrapper.gravity-theme .ginput_complex label,
.gform_wrapper.gravity-theme .ginput_container_password label,
.gform_wrapper.gravity-theme .gfield_description {
  font-size: var(--bp-small) !important; font-weight: 400 !important; color: var(--bp-muted) !important; line-height: 1.4; margin: 6px 0 0; padding: 0;
}
.gform_wrapper.gravity-theme .gfield_description { margin-top: 8px; }

/* controls */
.gform_wrapper.gravity-theme input:not([type="radio"]):not([type="checkbox"]):not([type="submit"]):not([type="button"]):not([type="image"]):not([type="file"]),
.gform_wrapper.gravity-theme select,
.gform_wrapper.gravity-theme textarea {
  width: 100%; height: var(--bp-ctrl-h); min-height: var(--bp-ctrl-h); box-sizing: border-box;
  padding: 0 14px; border: 1px solid var(--bp-border); border-radius: var(--bp-radius);
  background: var(--bp-surface); color: var(--bp-ink);
  font-family: inherit; font-size: var(--bp-font) !important; font-weight: 400; line-height: 1.3;
  box-shadow: none; -webkit-appearance: none; appearance: none;
  transition: border-color .15s ease, box-shadow .15s ease;
}
.gform_wrapper.gravity-theme textarea { height: auto; min-height: 128px; padding: 12px 14px; line-height: 1.5; resize: vertical; }
.gform_wrapper.gravity-theme textarea.small { min-height: 96px; }
.gform_wrapper.gravity-theme select {
  padding-right: 40px; cursor: pointer;
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23211f20' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round' d='M3.5 6l4.5 4.5L12.5 6'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 14px center;
}
.gform_wrapper.gravity-theme ::placeholder { color: #9b9b9b; opacity: 1; }
.gform_wrapper.gravity-theme input:hover, .gform_wrapper.gravity-theme select:hover, .gform_wrapper.gravity-theme textarea:hover { border-color: var(--bp-border-strong); }
.gform_wrapper.gravity-theme input:focus, .gform_wrapper.gravity-theme select:focus, .gform_wrapper.gravity-theme textarea:focus {
  outline: none; border-color: var(--bp-gold); box-shadow: 0 0 0 3px var(--bp-gold-soft);
}
.gform_wrapper.gravity-theme .ginput_complex .ginput_left,
.gform_wrapper.gravity-theme .ginput_complex .ginput_right,
.gform_wrapper.gravity-theme .ginput_complex .ginput_full { padding: 0; }
.gform_wrapper.gravity-theme .ginput_complex { grid-column-gap: var(--bp-gap-x); grid-row-gap: 12px; }

/* choices */
.gform_wrapper.gravity-theme .gfield_radio, .gform_wrapper.gravity-theme .gfield_checkbox { display: flex; flex-wrap: wrap; gap: 10px 22px; padding-top: 2px; }
.gform_wrapper.gravity-theme .gchoice { display: inline-flex; align-items: center; gap: 10px; margin: 0; }
.gform_wrapper.gravity-theme .gchoice input[type="radio"], .gform_wrapper.gravity-theme .gchoice input[type="checkbox"] {
  width: 20px; height: 20px; margin: 0; flex: none; accent-color: var(--bp-gold-dark); cursor: pointer;
}
.gform_wrapper.gravity-theme .gchoice label { font-size: var(--bp-font) !important; font-weight: 400 !important; color: var(--bp-ink); margin: 0; line-height: 1.3; cursor: pointer; max-width: none; }
.gform_wrapper.gravity-theme .gfield_consent_label { font-size: var(--bp-small); }

/* sections */
.gform_wrapper.gravity-theme .gsection { border: 0; border-top: 1px solid var(--bp-border); padding: 18px 0 0; margin-top: 6px; }
.gform_wrapper.gravity-theme .gsection_title { font-size: 17px; font-weight: 500; margin: 0; color: var(--bp-ink); }

/* password extras */
.gform_wrapper.gravity-theme .gfield_password_strength {
  margin-top: 10px; padding: 8px 12px; border-radius: 6px; font-size: var(--bp-small); font-weight: 500;
  border: 1px solid var(--bp-border); background: #f7f7f7; color: var(--bp-muted); text-align: left; line-height: 1.3;
}
.gform_wrapper.gravity-theme .gfield_password_strength.short, .gform_wrapper.gravity-theme .gfield_password_strength.bad, .gform_wrapper.gravity-theme .gfield_password_strength.mismatch { background: var(--bp-error-soft); border-color: #f0c2bd; color: var(--bp-error); }
.gform_wrapper.gravity-theme .gfield_password_strength.good { background: #fbf4e0; border-color: #ecd9a0; color: #7a5f16; }
.gform_wrapper.gravity-theme .gfield_password_strength.strong { background: #e4f3ec; border-color: #b9dfcc; color: var(--bp-ok); }
.gform_wrapper.gravity-theme .ginput_container_password { position: relative; }
.gform_wrapper.gravity-theme .gform_show_password { color: var(--bp-muted); }

/* submit */
.gform_wrapper.gravity-theme .gform_footer { margin: calc(var(--bp-gap-y) + 4px) 0 0; padding: 0; }
.gform_wrapper.gravity-theme .gform_footer input[type="submit"],
.gform_wrapper.gravity-theme .gform_footer button,
.gform_wrapper.gravity-theme .gform_button {
  display: inline-flex; align-items: center; justify-content: center;
  height: var(--bp-ctrl-h) !important; min-height: var(--bp-ctrl-h); padding: 0 30px !important; border: 0; border-radius: var(--bp-radius);
  background: var(--bp-gold); color: var(--bp-ink);
  font-family: inherit; font-size: var(--bp-font) !important; font-weight: 500 !important; letter-spacing: 0.02em; line-height: 1;
  cursor: pointer; transition: background-color .15s ease, transform .05s ease; margin: 0;
}
.gform_wrapper.gravity-theme .gform_footer input[type="submit"]:hover, .gform_wrapper.gravity-theme .gform_button:hover { background: var(--bp-gold-dark); }
.gform_wrapper.gravity-theme .gform_footer input[type="submit"]:active { transform: translateY(1px); }
.gform_wrapper.gravity-theme .gform_footer input[type="submit"]:focus-visible { outline: none; box-shadow: 0 0 0 3px var(--bp-gold-soft); }
@media (max-width: 640px) { .gform_wrapper.gravity-theme .gform_footer input[type="submit"] { width: 100%; } }

/* validation + confirmation */
.gform_wrapper.gravity-theme .gform_validation_errors { border: 1px solid #f0c2bd; background: var(--bp-error-soft); border-radius: var(--bp-radius); padding: 14px 16px; margin-bottom: var(--bp-gap-y); box-shadow: none; }
.gform_wrapper.gravity-theme .gform_validation_errors > h2 { font-size: var(--bp-font); font-weight: 500; color: var(--bp-error); margin: 0; }
.gform_wrapper.gravity-theme .gfield_error .gfield_label { color: var(--bp-error); }
.gform_wrapper.gravity-theme .gfield_error input, .gform_wrapper.gravity-theme .gfield_error select, .gform_wrapper.gravity-theme .gfield_error textarea { border-color: var(--bp-error); }
.gform_wrapper.gravity-theme .gfield_validation_message, .gform_wrapper.gravity-theme .validation_message { background: transparent; border: 0; padding: 0; margin-top: 6px; font-size: var(--bp-small); color: var(--bp-error); }
.gform_wrapper.gravity-theme .gfield_error { background: transparent; border: 0; padding: 0; }
.gform_confirmation_wrapper .gform_confirmation_message { border: 0; background: #f5efdf; padding: 16px 20px; border-radius: 10px; font-size: 15px; line-height: 1.55; color: #171a1c; }

/* sidebar / compact forms (listing page, email signup) */
.fl-sidebar .gform_wrapper.gravity-theme { --bp-ctrl-h: 44px; --bp-gap-y: 14px; --bp-gap-x: 12px; }
.fl-sidebar .gform_wrapper.gravity-theme .gfield_label { font-size: 14px !important; }
.fl-sidebar .gform_wrapper.gravity-theme .gform_footer input[type="submit"] { width: 100%; }
.fl-sidebar .gform_wrapper.gravity-theme .gsection_title { font-size: 15px; }
.gform_wrapper.gravity-theme.email-signup-form_wrapper .gform_footer input[type="submit"] { width: 100%; }

/* "create an account" prompt shown in place of the listing form */
.ckrel-login-required { font-size: 15px; line-height: 1.5; color: #211f20; }
.ckrel-login-required p { margin: 0 0 10px; }
.ckrel-login-required .btn.btn-primary {
  display: block; width: 100%; box-sizing: border-box; min-height: 44px; padding: 12px 16px; border: 0; border-radius: 8px;
  background: #d2aa45; color: #211f20; font-weight: 500; font-size: 16px; text-align: center; text-decoration: none;
}
.ckrel-login-required .btn.btn-primary:hover { background: #b8923a; color: #211f20; }
.ckrel-login-required .small { font-size: 13px; color: #6f6f6f; }
.ckrel-login-required .small a { color: #b8923a; text-decoration: underline; }

@media (prefers-reduced-motion: reduce) { .gform_wrapper.gravity-theme * { transition: none !important; } }

/* required asterisk in brand gold, every form */
.gform_wrapper.gravity-theme .gfield_required, .gform_wrapper.gravity-theme .gfield_required_asterisk, .gform_wrapper .gfield_required, .gform_required_legend .gfield_required { color:#d2aa45 !important; }

/* weak password: red */
.gform_wrapper.gravity-theme .gfield_password_strength.short, .gform_wrapper.gravity-theme .gfield_password_strength.bad { background:#fde8e8 !important; border-color:#f3b4b4 !important; color:#b3121b !important; }
.gform_wrapper.gravity-theme .gfield_password_strength.good { background:#fff8e6 !important; border-color:#e9d59a !important; color:#8a6d1f !important; }
.gform_wrapper.gravity-theme .gfield_password_strength.strong { background:#e9f6ec !important; border-color:#b7dfc1 !important; color:#1f6b35 !important; }
