/**
 * EasyQuote front-end form styles.
 *
 * Every rule is scoped under `.quote-section`. The theme classes this view uses
 * (`.section-title`, `.section-text`, `.contact-form`) are NOT defined by any
 * theme in this project, and `.section-title` is also used by the article page's
 * related-products partial — so unscoped rules here would bleed into it.
 *
 * Themes can re-skin the form by overriding the custom properties below.
 */

.quote-section {
  --eq-accent: var(--bs-primary, #e91e63);
  --eq-radius: var(--bs-border-radius, 0.275rem);
  --eq-muted: var(--bs-secondary-color, #6c757d);
  --eq-border: var(--bs-border-color, #dee2e6);
  --eq-gap: 1.75rem;
}

/* ---------- Section heading ---------- */

.quote-section .section-title {
  margin-bottom: 0.75rem;
  font-size: clamp(1.375rem, 1rem + 1.6vw, 1.875rem);
  font-weight: 600;
  line-height: 1.25;
}

.quote-section .section-text {
  margin-bottom: var(--eq-gap);
  color: var(--eq-muted);
  font-size: 1.0625em;
  line-height: 1.6;
}

/* ---------- Form fields ---------- */

.quote-section .contact-form .form-label {
  margin-bottom: 0.375rem;
  font-weight: 500;
}

.quote-section .contact-form .eq-required {
  margin-left: 0.125rem;
  color: var(--bs-danger, #dc3545);
}

.quote-section .contact-form .form-control,
.quote-section .contact-form .form-select {
  padding: 0.625rem 0.75rem;
  border-color: var(--eq-border);
  border-radius: var(--eq-radius);
  background-color: #fff;
  transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}

.quote-section .contact-form .form-control:focus,
.quote-section .contact-form .form-select:focus {
  border-color: var(--eq-accent);
  box-shadow: 0 0 0 0.2rem rgba(0, 0, 0, 0.04);
}

.quote-section .contact-form textarea.form-control {
  min-height: 7.5rem;
  resize: vertical;
}

/*
 * A narrow control (e.g. the number input) promoted to a full-width column
 * because the enabled half-width field count is odd. Without this cap it would
 * stretch across the whole row and look broken.
 */
.quote-section .contact-form .eq-field--narrow .form-control,
.quote-section .contact-form .eq-field--narrow .form-select {
  max-width: 14rem;
}

/* ---------- Submit + privacy note ---------- */

.quote-section .contact-form .eq-submit {
  padding: 0.75rem 1.5rem;
  border-radius: var(--eq-radius);
  font-weight: 600;
}

.quote-section .contact-form .eq-privacy {
  margin-top: 1rem;
  margin-bottom: 0;
  color: var(--eq-muted);
  font-size: 0.875em;
}

/* ---------- Compact variant (product detail page) ---------- */

.quote-section--compact {
  --eq-gap: 1.25rem;

  padding-top: 2rem !important;
  padding-bottom: 2rem !important;
}

.quote-section--compact .section-title {
  font-size: clamp(1.125rem, 0.95rem + 1vw, 1.375rem);
}

.quote-section--compact .section-text {
  font-size: 1em;
}

.quote-section--compact .contact-form .form-control,
.quote-section--compact .contact-form .form-select {
  padding: 0.5rem 0.625rem;
}

.quote-section--compact .contact-form textarea.form-control {
  min-height: 5.5rem;
}
