/* =========================================================================
   DSN SHOWCASE V4 — GRAVITY FORMS (site-wide brand styling)
   Makes every Gravity Form match the home-page forms: soft brand fields and
   the signature blue pill submit button. Loaded only when Gravity Forms is
   active (see functions.php). The home location form (#dsn-gf-wrapper) and
   page-specific forms can keep their own, more specific styles in template CSS.
   ========================================================================= */

.gform_wrapper.gravity-theme,
.gform_wrapper {
    font-family: var(--dsn-font, 'Poppins', sans-serif);
    color: var(--dsn-body, #333);
}

/* ---- Field rows ---- */
.gform_wrapper .gform_fields { gap: 1.25rem 1rem; }
.gform_wrapper .gfield { margin: 0; }

/* ---- Labels ---- */
.gform_wrapper .gfield_label,
.gform_wrapper legend.gfield_label,
.gform_wrapper .gsection_title {
    font-family: var(--dsn-font, 'Poppins', sans-serif);
    font-weight: 600;
    font-size: 0.95rem;
    color: var(--dsn-ink, #1a1a1a);
    margin-bottom: 0.4rem;
}
.gform_wrapper .gfield_required { color: var(--dsn-error, #d32f2f); }
.gform_wrapper .gsection { border-bottom: 1px solid var(--dsn-line, #e2e6eb); }
.gform_wrapper .gfield_description,
.gform_wrapper .gsection_description {
    color: var(--dsn-muted, #6b7280);
    font-size: 0.85rem;
}

/* ---- Text inputs, selects, textareas ---- */
.gform_wrapper input[type="text"],
.gform_wrapper input[type="email"],
.gform_wrapper input[type="tel"],
.gform_wrapper input[type="url"],
.gform_wrapper input[type="number"],
.gform_wrapper input[type="password"],
.gform_wrapper input[type="date"],
.gform_wrapper select,
.gform_wrapper textarea {
    width: 100%;
    padding: 0.85rem 1.1rem;
    font-family: var(--dsn-font, 'Poppins', sans-serif);
    font-size: 1rem;
    color: var(--dsn-ink, #1a1a1a);
    background-color: var(--dsn-bg-soft, #f5f7fa);
    border: 1px solid var(--dsn-line, #e2e6eb);
    border-radius: var(--dsn-radius, 10px);
    box-shadow: none;
    transition: var(--dsn-transition, all 0.25s ease);
}
.gform_wrapper textarea { min-height: 140px; resize: vertical; }

.gform_wrapper input:focus,
.gform_wrapper select:focus,
.gform_wrapper textarea:focus {
    outline: none;
    border-color: var(--dsn-blue, #2B69A9);
    background-color: #fff;
    box-shadow: 0 0 0 3px rgba(43, 105, 169, 0.15);
}

.gform_wrapper select {
    appearance: none;
    -webkit-appearance: none;
    background-image: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%232B69A9%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E");
    background-repeat: no-repeat;
    background-position: right 1rem center;
    background-size: 10px;
    padding-right: 2.5rem;
}

/* ---- Choices ---- */
.gform_wrapper .gfield_radio input[type="radio"],
.gform_wrapper .gfield_checkbox input[type="checkbox"] {
    accent-color: var(--dsn-blue, #2B69A9);
    width: 1.15rem;
    height: 1.15rem;
}
.gform_wrapper .gchoice label { font-weight: 400; }

/* ---- The special submit button (brand blue pill) ---- */
.gform_wrapper .gform_footer input[type="submit"],
.gform_wrapper .gform_page_footer input[type="submit"],
.gform_wrapper .gform_footer button,
.gform_wrapper .gform_page_footer button,
.gform_wrapper .gform_button,
.gform_wrapper .gform_next_button,
.gform_wrapper .gform_previous_button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5em;
    background-color: var(--dsn-blue, #2B69A9);
    color: #fff;
    border: none;
    border-radius: var(--dsn-radius-pill, 40px);
    padding: 0.875em 2.5em;
    font-family: var(--dsn-font, 'Poppins', sans-serif);
    font-size: 1rem;
    font-weight: 600;
    line-height: 1;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    cursor: pointer;
    box-shadow: 0 4px 15px rgba(43, 105, 169, 0.4);
    transition: var(--dsn-transition, all 0.25s ease);
    -webkit-appearance: none;
    appearance: none;
}
.gform_wrapper .gform_footer input[type="submit"]:hover,
.gform_wrapper .gform_page_footer input[type="submit"]:hover,
.gform_wrapper .gform_footer button:hover,
.gform_wrapper .gform_page_footer button:hover,
.gform_wrapper .gform_button:hover,
.gform_wrapper .gform_next_button:hover {
    background-color: var(--dsn-blue-dark, #1f4f82);
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(43, 105, 169, 0.6);
}

/* The "Previous" button reads as a quieter secondary action. */
.gform_wrapper .gform_previous_button {
    background-color: var(--dsn-muted, #6b7280);
    box-shadow: none;
}
.gform_wrapper .gform_previous_button:hover {
    background-color: #4b5563;
    transform: translateY(-2px);
}

.gform_wrapper .gform_footer,
.gform_wrapper .gform_page_footer {
    margin-top: 1.5rem;
}

/* ---- Validation + confirmations ---- */
.gform_wrapper .gfield_error input,
.gform_wrapper .gfield_error select,
.gform_wrapper .gfield_error textarea { border-color: var(--dsn-error, #d32f2f); }
.gform_wrapper .validation_message,
.gform_wrapper .gfield_validation_message,
.gform_wrapper .gform_validation_errors {
    color: var(--dsn-error, #d32f2f);
    font-size: 0.85rem;
}
.gform_confirmation_message {
    color: var(--dsn-ink, #1a1a1a);
    font-size: 1.1rem;
    padding: 1rem 0;
}
.gform_submission_error { font-size: 1.1rem; color: var(--dsn-error, #d32f2f); }

/* ---- Progress bar (multi-step) ---- */
.gform_wrapper .gf_progressbar_percentage { background: var(--dsn-blue, #2B69A9); }
.gform_wrapper .gf_step_active .gf_step_number { border-color: var(--dsn-blue, #2B69A9); color: var(--dsn-blue, #2B69A9); }
