/* PHPC forms — Gravity Forms styling (PR 2.9 §2.9)
   Mobile-first. Hairline bottom border, magenta focus. Inherits text color from container. */

.gform_wrapper ::placeholder {
    color: rgba(255, 255, 255, 0.35);
}

.gform_wrapper :focus::placeholder {
    opacity: 0.15;
}

/* ---------- Field labels (Inter caps eyebrow style) ---------- */
body .gform_wrapper.gravity-theme .gfield_label {
    font-family: var(--ff-sans);
    font-weight: 700;
    letter-spacing: var(--track-eyebrow);
    font-size: 10px;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.55);
    margin-bottom: 10px;
}

/* ---------- Inputs (hairline bottom border, transparent bg) ---------- */
body .gform_wrapper.gravity-theme input[type=email],
body .gform_wrapper.gravity-theme input[type=tel],
body .gform_wrapper.gravity-theme input[type=text],
body .gform_wrapper.gravity-theme input[type=number],
body .gform_wrapper.gravity-theme input[type=url],
body .gform_wrapper.gravity-theme select,
body .gform_wrapper.gravity-theme textarea {
    font-family: var(--ff-sans);
    font-size: 15px;
    padding: 8px 0;
    border: 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.3);
    border-radius: 0;
    background-color: transparent;
    color: #fff;
    transition: border-color var(--dur-fast);
}

body .gform_wrapper.gravity-theme input[type=email]:focus,
body .gform_wrapper.gravity-theme input[type=tel]:focus,
body .gform_wrapper.gravity-theme input[type=text]:focus,
body .gform_wrapper.gravity-theme input[type=number]:focus,
body .gform_wrapper.gravity-theme input[type=url]:focus,
body .gform_wrapper.gravity-theme select:focus,
body .gform_wrapper.gravity-theme textarea:focus {
    border-bottom-color: var(--signal);
    outline: none;
}

body .gform_wrapper.gravity-theme textarea {
    max-height: 120px;
    resize: vertical;
}

body .gform_wrapper.gravity-theme select {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}

/* ---------- Field spacing ---------- */
body .gform_wrapper.gravity-theme .gform_fields {
    gap: 28px;
}

/* ---------- Radios / checkboxes ---------- */
body .gfield_radio,
body .gfield_checkbox {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 24px;
}

body .gform_wrapper.gravity-theme .gchoice label {
    color: rgba(255, 255, 255, 0.85);
}

/* ---------- Consent (the "I agree to be contacted" block) ---------- */
.ginput_container_consent {
    display: flex;
    line-height: 1.4;
}

.ginput_container_consent input {
    align-self: flex-start;
    margin-right: 10px;
    margin-top: 0.3em;
}

body .gform_wrapper.gravity-theme .field_description_below .gfield_consent_description,
body .gform_wrapper.gravity-theme .gfield_consent_description {
    border: 1px solid rgba(255, 255, 255, 0.18);
    padding: 12px;
    overflow-y: auto;
    font-size: 12px;
    line-height: 1.5;
    color: rgba(255, 255, 255, 0.7);
}

body .gform_wrapper.gravity-theme .gfield_consent_description a {
    color: rgba(255, 255, 255, 0.9);
    text-decoration: underline;
}

/* ---------- Submit button — rebuilt to match .theme-button (white-on-dark) ---------- */
.gform_wrapper.gravity-theme .gform_footer {
    margin-top: 32px;
    padding-top: 0;
}

.gform_wrapper.gravity-theme button[type=submit],
.gform_wrapper.gravity-theme input[type=submit] {
    font-family: var(--ff-sans);
    font-weight: 700;
    font-size: 11px;
    letter-spacing: var(--track-eyebrow);
    text-transform: uppercase;
    color: #fff;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 4px 0;
    border: none;
    border-bottom: 1px solid #fff;
    background: transparent;
    box-shadow: none;
    cursor: pointer;
    transition: color var(--dur-fast), border-color var(--dur-fast);
}

.gform_wrapper.gravity-theme button[type=submit]::after,
.gform_wrapper.gravity-theme input[type=submit]::after {
    content: "→";
    transition: transform var(--dur-std) var(--ease-editorial);
}

.gform_wrapper.gravity-theme button[type=submit]:hover,
.gform_wrapper.gravity-theme input[type=submit]:hover {
    color: var(--signal);
    border-color: var(--signal);
}

.gform_wrapper.gravity-theme button[type=submit]:hover::after,
.gform_wrapper.gravity-theme input[type=submit]:hover::after {
    transform: translateX(4px);
}

@media (prefers-reduced-motion: reduce) {
    .gform_wrapper.gravity-theme button[type=submit],
    .gform_wrapper.gravity-theme button[type=submit]::after,
    .gform_wrapper.gravity-theme input[type=submit],
    .gform_wrapper.gravity-theme input[type=submit]::after {
        transition: none;
    }
}

/* ---------- Validation / errors ---------- */
body .gform_wrapper.gravity-theme .gform_validation_errors,
body .gform_wrapper.gravity-theme .gform_validation_errors > h2,
body .gform_wrapper.gravity-theme .gform_validation_errors > ol li,
body .gform_wrapper.gravity-theme .gform_validation_errors > ol a,
body .gform_wrapper.gravity-theme .gfield_error .gfield_repeater_cell label,
body .gform_wrapper.gravity-theme .gfield_error label,
body .gform_wrapper.gravity-theme .gfield_error legend,
body .gform_wrapper.gravity-theme .gfield_validation_message,
body .gform_wrapper.gravity-theme .validation_message,
body .gform_wrapper.gravity-theme [aria-invalid=true] + label,
body .gform_wrapper.gravity-theme label + [aria-invalid=true],
body .gform_wrapper.gravity-theme .gfield_required {
    color: var(--signal);
}

body .gform_wrapper.gravity-theme .gform_validation_errors,
body .gform_wrapper.gravity-theme .gfield_error [aria-invalid=true],
body .gform_wrapper.gravity-theme .gfield_validation_message,
body .gform_wrapper.gravity-theme .validation_message {
    border-color: var(--signal);
}
