/**
 * Forms CSS
 * Unified styles for: Built-in AJAX forms + WPForms.
 * Overrides WPForms defaults to match the theme design system.
 *
 * @package AshishSaha
 */

/* ── Shared field tokens ─────────────────────────────────────────────── */
:root {
  --form-radius:  0.5rem;
  --form-border:  #e2e8f0;
  --form-focus:   var(--primary, #4A90E2);
  --form-error:   #ef4444;
  --form-success: #22c55e;
}

/* ── Shared input appearance ─────────────────────────────────────────── */
/* WPForms fields */
.ashish-wpforms-form .wpforms-field input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]),
.ashish-wpforms-form .wpforms-field select,
.ashish-wpforms-form .wpforms-field textarea,
/* Built-in form fields */
.contact-form input,
.contact-form select,
.contact-form textarea,
.ashish-newsletter-form input,
.ashish-newsletter-form select,
.ashish-newsletter-form textarea {
  display:       block;
  width:         100%;
  padding:       0.75rem 1rem;
  font-family:   inherit;
  font-size:     0.95rem;
  line-height:   1.5;
  color:         var(--foreground, #0f172a);
  background:    var(--background, #fff);
  border:        1px solid var(--form-border);
  border-radius: var(--form-radius);
  box-shadow:    none;
  appearance:    none;
  transition:    border-color .2s, box-shadow .2s;
}

.ashish-wpforms-form .wpforms-field input:focus,
.ashish-wpforms-form .wpforms-field select:focus,
.ashish-wpforms-form .wpforms-field textarea:focus,
.contact-form input:focus,
.contact-form select:focus,
.contact-form textarea:focus,
.ashish-newsletter-form input:focus {
  outline:      none;
  border-color: var(--form-focus);
  box-shadow:   0 0 0 3px rgba(var(--primary-rgb, 74,144,226), .15);
}

/* ── WPForms Labels ──────────────────────────────────────────────────── */
.ashish-wpforms-form .wpforms-field-label,
.ashish-wpforms-form .wpforms-field-sublabel {
  display:       block;
  font-size:     0.875rem;
  font-weight:   600;
  margin-bottom: 0.35rem;
  color:         var(--foreground, #0f172a);
}

/* ── WPForms Field spacing ───────────────────────────────────────────── */
.ashish-wpforms-form .wpforms-field {
  margin-bottom: 1.25rem;
}

/* ── Submit buttons ──────────────────────────────────────────────────── */
.ashish-wpforms-form .wpforms-submit {
  display:          inline-flex;
  align-items:      center;
  justify-content:  center;
  gap:              0.5rem;
  padding:          0.875rem 2rem;
  font-family:      inherit;
  font-size:        1rem;
  font-weight:      700;
  line-height:      1;
  color:            #fff;
  background:       var(--primary, #4A90E2);
  border:           none;
  border-radius:    var(--form-radius);
  cursor:           pointer;
  transition:       background .2s, transform .15s, box-shadow .2s;
  text-decoration:  none;
  width:            100%;
}

.ashish-wpforms-form .wpforms-submit:hover {
  background:   var(--primary-dark, #3a7fd4);
  box-shadow:   0 4px 16px rgba(var(--primary-rgb, 74,144,226), .35);
  transform:    translateY(-1px);
}

.ashish-wpforms-form .wpforms-submit:active { transform: translateY(0); }

/* ── WPForms Notices ─────────────────────────────────────────────────── */
.wpforms-confirmation-container-full,
.wpforms-error-container {
  margin:        1rem 0 0;
  padding:       0.875rem 1rem;
  border-radius: var(--form-radius);
  font-size:     0.9rem;
}
.wpforms-confirmation-container-full { background: #d1fae5; color: #065f46; border-left: 4px solid var(--form-success); }
.wpforms-error-container              { background: #fee2e2; color: #991b1b; border-left: 4px solid var(--form-error);   }
.wpforms-error label { color: var(--form-error) !important; }
.wpforms-error input,
.wpforms-error textarea { border-color: var(--form-error) !important; }

/* ── Built-in form notice ────────────────────────────────────────────── */
.form-notice {
  display:       none;
  padding:       0.875rem 1rem;
  border-radius: var(--form-radius);
  font-size:     0.9rem;
  margin-bottom: 1rem;
}
.form-notice.success { display:block; background:#d1fae5; color:#065f46; border-left:4px solid var(--form-success); }
.form-notice.error   { display:block; background:#fee2e2; color:#991b1b; border-left:4px solid var(--form-error);   }

/* ── WPForms Checkbox / Radio ────────────────────────────────────────── */
.wpforms-field-checkbox label,
.wpforms-field-radio label {
  display:     inline-flex;
  align-items: center;
  gap:         0.5rem;
  font-weight: 400;
  cursor:      pointer;
}

/* ── WPForms File upload ─────────────────────────────────────────────── */
.wpforms-field-file-upload input[type="file"] {
  width:      100% !important;
  padding:    0.5rem 0 !important;
  border:     none !important;
  background: transparent !important;
}

/* ── Form two-column row ─────────────────────────────────────────────── */
.ashish-form-row {
  display:               grid;
  grid-template-columns: 1fr 1fr;
  gap:                   1rem;
}
@media (max-width: 640px) { .ashish-form-row { grid-template-columns: 1fr; } }

/* ══════════════════════════════════════════════════════════════════════
   CONTACT FORM 7 (styled to match theme via .ashish-cf7-form wrapper)
   ══════════════════════════════════════════════════════════════════════ */

/* CF7 inputs, textareas, selects */
.ashish-cf7-form input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]),
.ashish-cf7-form select,
.ashish-cf7-form textarea {
  display:       block;
  width:         100%;
  padding:       0.75rem 1rem;
  font-family:   inherit;
  font-size:     0.95rem;
  line-height:   1.5;
  color:         var(--foreground, #0f172a);
  background:    var(--background, #fff);
  border:        1px solid var(--form-border);
  border-radius: var(--form-radius);
  appearance:    none;
  transition:    border-color .2s, box-shadow .2s;
}

.ashish-cf7-form input:focus,
.ashish-cf7-form select:focus,
.ashish-cf7-form textarea:focus {
  outline:      none;
  border-color: var(--form-focus);
  box-shadow:   0 0 0 3px rgba(var(--primary-rgb, 74,144,226), .15);
}

/* CF7 labels + field spacing */
.ashish-cf7-form label,
.ashish-cf7-form p {
  display:       block;
  font-size:     0.875rem;
  font-weight:   600;
  margin-bottom: 1.25rem;
  color:         var(--foreground, #0f172a);
}

/* CF7 Submit button */
.ashish-cf7-form input[type="submit"],
.ashish-cf7-form .wpcf7-submit {
  display:          inline-flex;
  align-items:      center;
  justify-content:  center;
  gap:              0.5rem;
  padding:          0.875rem 2rem;
  font-family:      inherit;
  font-size:        1rem;
  font-weight:      700;
  line-height:      1;
  color:            #fff;
  background:       var(--primary, #4A90E2);
  border:           none;
  border-radius:    var(--form-radius);
  cursor:           pointer;
  transition:       background .2s, transform .15s, box-shadow .2s;
  width:            100%;
  margin-top:       0.5rem;
}

.ashish-cf7-form input[type="submit"]:hover {
  background:   var(--primary-dark, #3a7fd4);
  box-shadow:   0 4px 16px rgba(var(--primary-rgb, 74,144,226), .35);
  transform:    translateY(-1px);
}

/* CF7 response messages */
.wpcf7-response-output {
  margin:        1rem 0 0 !important;
  padding:       0.875rem 1rem !important;
  border-radius: var(--form-radius) !important;
  font-size:     0.9rem !important;
  border:        none !important;
}
.wpcf7-mail-sent-ok    { background: #d1fae5 !important; color: #065f46 !important; border-left: 4px solid var(--form-success) !important; }
.wpcf7-validation-errors,
.wpcf7-mail-sent-ng,
.wpcf7-spam-blocked    { background: #fee2e2 !important; color: #991b1b !important; border-left: 4px solid var(--form-error)   !important; }

/* CF7 field validation states */
.wpcf7-not-valid { border-color: var(--form-error) !important; }
.wpcf7-not-valid-tip {
  display:    block !important;
  color:      var(--form-error) !important;
  font-size:  0.8rem !important;
  margin-top: 0.3rem !important;
  font-weight: 500 !important;
}

/* CF7 checkbox / radio */
.wpcf7-checkbox label,
.wpcf7-radio label {
  display:     inline-flex;
  align-items: center;
  gap:         0.5rem;
  font-weight: 400;
  cursor:      pointer;
  margin-right: 1rem;
}

/* CF7 file upload */
.wpcf7-file {
  width:      100% !important;
  padding:    0.5rem 0 !important;
  border:     none !important;
  background: transparent !important;
}

/* CF7 spinner alignment */
.wpcf7-spinner { vertical-align: middle; margin-left: .5rem; }
