/* Fehmara Forms - Public Styles */
:root {
  --ff-primary: #1a73e8;
  --ff-input-bg: #fff;
  --ff-input-border: #c8d0d8;
  --ff-label: #2c3e50;
  --ff-btn-bg: #1a73e8;
  --ff-btn-color: #fff;
  --ff-radius: 6px;
  --ff-font-size: 15px;
  --ff-form-bg: transparent;
  --ff-error: #e74c3c;
  --ff-success: #27ae60;
  --ff-text: #333;
  --ff-placeholder: #9ba8b5;
  --ff-help: #718096;
  --ff-transition: 0.2s ease;
}

.fehmara-form-wrap {
  background: var(--ff-form-bg);
  font-size: var(--ff-font-size);
  color: var(--ff-text);
  font-family: inherit;
}

.fehmara-fields-row {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
}

.fehmara-field {
  box-sizing: border-box;
  min-width: 0;
}

.fehmara-label {
  display: block;
  color: var(--ff-label);
  font-weight: 600;
  margin-bottom: 6px;
  font-size: 0.9em;
  line-height: 1.4;
}

.fehmara-required {
  color: var(--ff-error);
  margin-left: 2px;
}

.fehmara-input {
  width: 100%;
  box-sizing: border-box;
  background: var(--ff-input-bg);
  border: 1.5px solid var(--ff-input-border);
  border-radius: var(--ff-radius);
  padding: 11px 14px;
  font-size: var(--ff-font-size);
  font-family: inherit;
  color: var(--ff-text);
  transition: border-color var(--ff-transition), box-shadow var(--ff-transition);
  outline: none;
  -webkit-appearance: none;
}

.fehmara-input::placeholder { color: var(--ff-placeholder); }

.fehmara-input:focus {
  border-color: var(--ff-primary);
  box-shadow: 0 0 0 3px rgba(26,115,232,0.12);
}

.fehmara-input:hover:not(:focus) {
  border-color: #a0aeb8;
}

.fehmara-input.fehmara-has-error {
  border-color: var(--ff-error);
  box-shadow: 0 0 0 3px rgba(231,76,60,0.10);
}

.fehmara-textarea { resize: vertical; min-height: 110px; }

.fehmara-select { cursor: pointer; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24'%3E%3Cpath fill='%23666' d='M7 10l5 5 5-5z'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 10px center; padding-right: 36px; }

.fehmara-help-text {
  font-size: 0.82em;
  color: var(--ff-help);
  margin-top: 4px;
}

.fehmara-error-msg {
  font-size: 0.82em;
  color: var(--ff-error);
  margin-top: 4px;
  min-height: 1em;
}

/* Checkbox & Radio */
.fehmara-checkbox-option, .fehmara-radio-option {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 6px 0;
}

.fehmara-checkbox-option input[type="checkbox"],
.fehmara-radio-option input[type="radio"] {
  width: 17px; height: 17px;
  accent-color: var(--ff-primary);
  cursor: pointer;
  flex-shrink: 0;
}

fieldset { border: none; padding: 0; margin: 0; }
legend.fehmara-label { float: none; }

/* Acceptance */
.fehmara-checkbox-wrap {
  display: flex;
  align-items: flex-start;
  gap: 10px;
}

.fehmara-checkbox-wrap input[type="checkbox"] {
  width: 17px; height: 17px;
  accent-color: var(--ff-primary);
  cursor: pointer;
  flex-shrink: 0;
  margin-top: 2px;
}

.fehmara-acceptance-label { cursor: pointer; line-height: 1.5; font-weight: 400; }
.fehmara-acceptance-label a { color: var(--ff-primary); }

/* File upload */
.fehmara-file-input {
  /* Visually hidden but still accessible and triggerable by JS */
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  opacity: 0;
  overflow: hidden;
}

.fehmara-file-btn {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  background: var(--ff-btn-bg);
  color: var(--ff-btn-color);
  border: none;
  padding: 10px 20px;
  border-radius: var(--ff-radius);
  cursor: pointer;
  font-size: var(--ff-font-size);
  font-weight: 600;
  transition: opacity var(--ff-transition);
  width: 100%;
  justify-content: center;
  box-sizing: border-box;
  font-family: inherit;
}

.fehmara-file-btn:hover { opacity: 0.88; }
.fehmara-file-btn:focus { outline: 2px solid var(--ff-primary); outline-offset: 2px; }

.fehmara-file-name {
  display: block;
  margin-top: 6px;
  font-size: 0.85em;
  color: var(--ff-help);
  word-break: break-all;
}

/* Divider */
.fehmara-divider {
  border: none;
  border-top: 1px solid var(--ff-input-border);
  margin: 4px 0;
}

/* Heading */
.fehmara-field-heading { font-size: 1.2em; font-weight: 700; color: var(--ff-label); }

/* Submit */
.fehmara-submit-wrap {
  margin-top: 20px;
}

.fehmara-submit-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background: var(--ff-btn-bg);
  color: var(--ff-btn-color);
  border: none;
  padding: 13px 32px;
  border-radius: 50px;
  cursor: pointer;
  font-size: var(--ff-font-size);
  font-weight: 700;
  letter-spacing: 0.3px;
  transition: opacity var(--ff-transition), transform var(--ff-transition);
  width: 100%;
  box-sizing: border-box;
  min-height: 48px;
}

.fehmara-submit-btn:hover:not(:disabled) { opacity: 0.88; transform: translateY(-1px); }
.fehmara-submit-btn:disabled { opacity: 0.65; cursor: not-allowed; transform: none; }

/* Spinner */
.fehmara-spinner {
  display: inline-block;
  width: 16px; height: 16px;
  border: 2px solid rgba(255,255,255,0.4);
  border-top-color: #fff;
  border-radius: 50%;
  animation: ff-spin 0.7s linear infinite;
  flex-shrink: 0;
}

@keyframes ff-spin { to { transform: rotate(360deg); } }

/* Messages */
.fehmara-success-msg {
  background: rgba(39,174,96,0.10);
  border: 1.5px solid var(--ff-success);
  color: #1e7e34;
  padding: 14px 18px;
  border-radius: var(--ff-radius);
  margin-top: 16px;
  font-weight: 600;
  animation: ff-fade-in 0.35s ease;
}

.fehmara-global-error-msg {
  background: rgba(231,76,60,0.08);
  border: 1.5px solid var(--ff-error);
  color: #c0392b;
  padding: 14px 18px;
  border-radius: var(--ff-radius);
  margin-top: 16px;
  animation: ff-fade-in 0.35s ease;
}

.fehmara-form-messages { margin-top: 8px; }

@keyframes ff-fade-in { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }

/* reCAPTCHA + Turnstile */
.fehmara-recaptcha, .fehmara-turnstile { margin: 16px 0; }

/* Responsive */
@media (max-width: 600px) {
  .fehmara-field { width: 100% !important; }
  .fehmara-fields-row { gap: 12px; }
}
