:root {
  --jft-color-primary: #1E5DBC;
  --jft-color-accent: #85D100;
  --jft-color-highlight: #FF6900;
  --jft-color-secondary: #6D28D9;
  --jft-form-bg: #FFFFFF;
  --jft-form-text: #1E293B;
  --jft-label-color: #1E293B;
  --jft-button-text: #FFFFFF;
}

.jft-platform-form-wrap,
.jft-platform-form-wrap input,
.jft-platform-form-wrap select,
.jft-platform-form-wrap textarea,
.jft-platform-form-wrap button,
.jft-checkgroup label,
.jft-status-ok,
.jft-status-error,
.jft-inline-error {
  font-family: "DM Sans", "Segoe UI", sans-serif;
}

.jft-platform-form-wrap {
  width: 100%;
  max-width: 100%;
  padding: 20px;
  border: 1px solid var(--jft-color-primary);
  border-radius: 10px;
  background: var(--jft-form-bg);
  color: var(--jft-form-text);
  box-shadow: 0 8px 24px rgba(30, 93, 188, 0.08);
}

.jft-platform-form-wrap h3 {
  margin-top: 0;
  color: var(--jft-color-primary);
}

.jft-form-description {
  margin-top: 0;
  color: var(--jft-form-text);
}

.jft-platform-form-wrap label {
  display: block;
  margin: 14px 0 6px;
  font-weight: 600;
  color: var(--jft-label-color);
}

.jft-platform-form-wrap input,
.jft-platform-form-wrap select,
.jft-platform-form-wrap textarea {
  width: 100%;
  padding: 10px;
  border: 1px solid #c7ced8;
  border-radius: 6px;
  box-sizing: border-box;
}

.jft-platform-form-wrap input:focus,
.jft-platform-form-wrap select:focus,
.jft-platform-form-wrap textarea:focus {
  border-color: var(--jft-color-primary);
  outline: 2px solid var(--jft-color-accent);
  outline-offset: 1px;
}

.jft-platform-form-wrap button {
  margin-top: 18px;
  padding: 10px 16px;
  border: 0;
  border-radius: 6px;
  background: var(--jft-color-accent);
  color: var(--jft-button-text);
  font-weight: 700;
  cursor: pointer;
}

.jft-platform-form-wrap button:hover {
  background: #6eac00;
}

.jft-checkgroup {
  border: 1px solid var(--jft-color-accent);
  border-radius: 6px;
  padding: 10px;
  background: #f8ffef;
}

.jft-checkgroup label {
  display: block;
  margin: 6px 0;
  font-weight: 500;
}

.jft-checkgroup input[type="checkbox"] {
  width: auto;
  margin-right: 8px;
}

.jft-status-ok {
  padding: 10px 12px;
  border-left: 4px solid var(--jft-color-accent);
  background: #f3fde2;
}

.jft-status-error,
.jft-inline-error {
  padding: 10px 12px;
  border-left: 4px solid var(--jft-color-highlight);
  background: #fff4eb;
}

.jft-subscribe-popup {
  position: fixed;
  inset: 0;
  display: none;
  z-index: 99999;
}

.jft-subscribe-popup.is-open {
  display: block;
}

.jft-subscribe-popup-overlay {
  position: absolute;
  inset: 0;
  background: rgba(15, 23, 42, 0.52);
}

.jft-subscribe-popup-modal {
  position: relative;
  max-width: 560px;
  margin: 8vh auto 0;
  padding: 0 14px;
}

.jft-subscribe-popup-close {
  position: absolute;
  right: 22px;
  top: 8px;
  border: 0;
  background: transparent;
  color: #334155;
  font-size: 30px;
  line-height: 1;
  cursor: pointer;
}

/* --- Form grid layout for side-by-side fields --- */
.jft-form-fields-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 0 16px;
}

.jft-field-col {
  min-width: 0;
}

.jft-col-full {
  grid-column: 1 / -1;
}

.jft-col-half {
  grid-column: span 3;
}

.jft-col-third {
  grid-column: span 2;
}

.jft-field-spacer {
  height: 20px;
}

@media (max-width: 600px) {
  .jft-col-half,
  .jft-col-third {
    grid-column: 1 / -1;
  }
}
