/* ===========================================================================
   gamos-form.css — Elementor-style editable form engine (Gamos_Form_Base).
   Section chrome + responsive field grid + all field types. Tokens from
   gamos-shared.css with inline fallbacks.
   ========================================================================= */

.gform-section {
  --gform-ink: var(--ink-deep, #14100c);
  --gform-accent: var(--brass-glow, #c9a86a);
  background-color: #f6f0e6;
  color: var(--gform-ink);
  padding-block: var(--section-pad, clamp(64px, 9vw, 140px));
  padding-inline: var(--gutter, clamp(20px, 5vw, 72px));
}
.gform-section__inner { max-inline-size: var(--container-narrow, 820px); margin-inline: auto; }
.gform-section .section-header { text-align: center; margin-block-end: clamp(28px, 4vw, 44px); }

.gform__urgency {
  font-family: var(--font-body, sans-serif);
  font-weight: 600;
  color: #b23b2e;
  background: rgba(178, 59, 46, 0.08);
  border: 1px solid rgba(178, 59, 46, 0.2);
  border-radius: 999px;
  padding: 0.5rem 1.1rem;
  display: inline-block;
  margin: 0.6rem auto 0;
  font-size: clamp(0.9rem, 1.3vw, 1.02rem);
}

/* FORM -------------------------------------------------------------------- */
.gform { display: flex; flex-direction: column; gap: clamp(18px, 2.4vw, 26px); position: relative; }
.gform__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(14px, 2vw, 22px);
}
.gform__field { display: flex; flex-direction: column; gap: 0.4rem; text-align: start; min-inline-size: 0; }
.gform__field--full { grid-column: 1 / -1; }
.gform__field label {
  font-family: var(--font-body, sans-serif);
  font-size: 0.92rem; font-weight: 600; color: var(--gform-ink);
}
.gform__optional { font-weight: 400; color: rgba(20, 16, 12, 0.5); font-size: 0.85em; }

.gform__field input,
.gform__field select,
.gform__field textarea {
  font: inherit;
  width: 100%;
  padding: 0.85rem 1rem;
  border: 1px solid rgba(20, 16, 12, 0.18);
  border-radius: 12px;
  background: #fff;
  color: var(--gform-ink);
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.gform__field textarea { resize: vertical; min-block-size: 120px; }
.gform__field input:focus,
.gform__field select:focus,
.gform__field textarea:focus {
  outline: none;
  border-color: var(--gform-accent);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--gform-accent) 30%, transparent);
}
.gform__field--invalid input,
.gform__field--invalid select,
.gform__field--invalid textarea { border-color: #b23b2e; box-shadow: 0 0 0 3px rgba(178, 59, 46, 0.16); }
.gform__error { color: #b23b2e; font-size: 0.82rem; }

/* checkbox / acceptance */
.gform__field--check { justify-content: center; }
.gform__check { flex-direction: row; align-items: center; gap: 0.6rem; display: flex; cursor: pointer; font-weight: 400; }
.gform__check input { inline-size: 1.15rem; block-size: 1.15rem; accent-color: var(--gform-accent); }

/* submit */
.gform__submit-wrap { display: flex; flex-direction: column; align-items: center; gap: 0.75rem; margin-block-start: 0.4rem; }
.gform__submit { min-inline-size: min(340px, 100%); }
.gform__submit[data-loading] { opacity: 0.7; cursor: progress; }
.gform__feedback { font-family: var(--font-body, sans-serif); font-size: 0.95rem; margin: 0; }
.gform__feedback[data-kind="success"] { color: #2e7d4f; }
.gform__feedback[data-kind="error"] { color: #b23b2e; }

/* Fallback button styling if theme/shared .btn is unavailable. */
.gform__submit {
  display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem;
  padding: 0.95rem 2rem; border: 0; border-radius: 999px;
  font: inherit; font-weight: 600; cursor: pointer;
  background: var(--gform-accent); color: #201812; text-decoration: none;
  transition: transform 0.25s ease, filter 0.25s ease;
}
.gform__submit:hover { transform: translateY(-2px); filter: brightness(1.05); }

@media (max-width: 640px) {
  .gform__grid { grid-template-columns: 1fr; }
}
