/**
 * PEO Tools Forms Skin  -  ptf-forms.css
 * ----------------------------------------------------------------------------
 * Scopes to Orbital's own wrapper (.gform-theme--framework[id^="gform_wrapper_"])
 * and co-exists with GF defaults. Enqueued ONLY on ptf-* forms by
 * peotools-forms-style.php.
 *
 * Design intent (peotools.com credibility rubric):
 *   - Flat, sharp geometry. NO pills, NO cream floating cards, NO shadow.
 *   - Fields read as 1px-ruled rows, not boxes  -  document, not SaaS form.
 *   - Layered type: Merriweather (page-intro headings), Inter (body/inputs),
 *     JetBrains Mono (eyebrows, step labels, progress).
 *   - One accent: burnt orange #b8551f. Warm-neutral ground.
 *
 * The Orbital token map + the fieldset/legend float-fix are adapted from the
 * engine.peotools.com wizard skin; the geometry is rewritten.
 */

/* ============================================================
   GLOBAL TOKENS  (Orbital CSS API)
   ============================================================ */
.gform-theme--framework[id^="gform_wrapper_"] {
    --gf-color-primary: #b8551f;
    --gf-color-primary-darker: #8a3e15;

    /* Sharp geometry  -  rubric failure #4 (pill/over-round) avoided */
    --gf-ctrl-radius: 2px;
    --gf-ctrl-btn-radius: 4px;

    --gf-ctrl-bg-color: #ffffff;
    --gf-ctrl-bg-color-hover: #ffffff;
    --gf-ctrl-bg-color-focus: #ffffff;
    --gf-ctrl-border-color: #cdc4b0;
    --gf-ctrl-border-color-hover: #5a544a;
    --gf-ctrl-border-color-focus: #b8551f;
    --gf-ctrl-color: #0e0d0b;
    --gf-ctrl-font-size: 16px;            /* rubric: 16px min body */
    --gf-ctrl-shadow: none;               /* rubric: almost no shadow */
    --gf-ctrl-accent-color: #b8551f;

    --gf-ctrl-bg-color-error: #fbf3f0;
    --gf-ctrl-border-color-error: #8a2c1f;

    --gf-ctrl-label-color-primary: #0e0d0b;
    --gf-ctrl-label-font-size-primary: 15px;
    --gf-ctrl-label-font-weight-primary: 600;
    --gf-ctrl-label-color-secondary: #25221d;
    --gf-ctrl-label-font-size-secondary: 15px;
    --gf-ctrl-label-color-tertiary: #5a544a;
    --gf-ctrl-label-font-size-tertiary: 13px;
    --gf-ctrl-label-font-weight-tertiary: 500;

    --gf-ctrl-desc-color: #5a544a;
    --gf-ctrl-desc-font-size: 14px;
    --gf-ctrl-desc-color-error: #8a2c1f;
    --gf-ctrl-desc-font-size-error: 13px;
    --gf-ctrl-desc-font-weight-error: 500;

    --gf-ctrl-btn-bg-color-primary: #b8551f;
    --gf-ctrl-btn-bg-color-hover-primary: #8a3e15;
    --gf-ctrl-btn-color-primary: #ffffff;
    --gf-ctrl-btn-font-size: 15px;
    --gf-ctrl-btn-font-weight: 600;
    --gf-ctrl-btn-padding-x: 28px;

    --gf-ctrl-btn-bg-color-secondary: #ffffff;
    --gf-ctrl-btn-bg-color-hover-secondary: #f4efe6;
    --gf-ctrl-btn-border-color-secondary: #0e0d0b;
    --gf-ctrl-btn-color-secondary: #0e0d0b;

    font-family: 'Inter', system-ui, sans-serif;
    color: #0e0d0b;
}

.gform-theme--framework[id^="gform_wrapper_"] *,
.gform-theme--framework[id^="gform_wrapper_"] input,
.gform-theme--framework[id^="gform_wrapper_"] select,
.gform-theme--framework[id^="gform_wrapper_"] textarea,
.gform-theme--framework[id^="gform_wrapper_"] button {
    font-family: inherit;
}

/* Inputs/selects/textarea: flat, sharp, hairline border, no shadow */
.gform-theme--framework[id^="gform_wrapper_"] input[type="text"],
.gform-theme--framework[id^="gform_wrapper_"] input[type="email"],
.gform-theme--framework[id^="gform_wrapper_"] input[type="tel"],
.gform-theme--framework[id^="gform_wrapper_"] input[type="url"],
.gform-theme--framework[id^="gform_wrapper_"] textarea,
.gform-theme--framework[id^="gform_wrapper_"] select {
    border-radius: 2px;
    box-shadow: none;
}

/* ============================================================
   FORM HEADING (native GF title/description, usually hidden here)
   ============================================================ */
.gform-theme--framework[id^="gform_wrapper_"] .gform_heading {
    display: none;            /* our page-intro HTML headers carry the heading */
}

/* ============================================================
   RADIO / CHECKBOX SIZING
   ============================================================ */
.gform-theme--framework[id^="gform_wrapper_"] .gfield--type-radio {
    --gf-field-choice-gap: 12px;
    --gf-ctrl-choice-size: 20px;
    --gf-ctrl-radio-check-size: 8px;
    --gf-ctrl-choice-check-color: #b8551f;
}
.gform-theme--framework[id^="gform_wrapper_"] .gfield--type-checkbox {
    --gf-field-choice-gap: 12px;
    --gf-ctrl-choice-size: 20px;
    --gf-ctrl-checkbox-check-size: 14px;
    --gf-ctrl-choice-check-color: #b8551f;
}

/* ============================================================
   FIELD ROWS  -  1px-ruled, NOT cream cards (rubric failure #3 avoided)
   Each input field is separated by a hairline. Flat. Document-like.
   ============================================================ */
.gform-theme--framework[id^="gform_wrapper_"] .gform_fields {
    --gf-form-gap: 0;
    gap: 0;
}
.gform-theme--framework[id^="gform_wrapper_"] .gfield:not(.gfield--type-hidden):not(.gfield--type-page):not(.gfield--type-section):not(.gfield--type-html) {
    background: transparent;
    border: 0;
    border-block-end: 1px solid #e4ddcc;
    border-radius: 0;
    padding: 20px 0;
    box-sizing: border-box;
}
/* last data field before footer keeps its rule for closure; html intros don't get one */
.gform-theme--framework[id^="gform_wrapper_"] .gfield--type-html {
    border: 0;
    padding: 0 0 4px 0;
}

/* fieldset legend float-fix (adapted from engine skin)  -  radio/checkbox
   render as <fieldset><legend>; the legend otherwise sits ON the top border.
   Float it so it flows as a normal block, then clear the next sibling. */
.gform-theme--framework[id^="gform_wrapper_"] fieldset.gfield:not(.gfield--type-hidden):not(.gfield--type-page):not(.gfield--type-section):not(.gfield--type-html) {
    min-inline-size: 0;
}
.gform-theme--framework[id^="gform_wrapper_"] fieldset.gfield:not(.gfield--type-hidden):not(.gfield--type-page):not(.gfield--type-section):not(.gfield--type-html) > legend.gfield_label {
    float: left;
    width: 100%;
    padding: 0;
    margin: 0 0 8px 0;
    line-height: 1.4;
}
.gform-theme--framework[id^="gform_wrapper_"] fieldset.gfield:not(.gfield--type-hidden):not(.gfield--type-page):not(.gfield--type-section):not(.gfield--type-html) > legend.gfield_label + * {
    clear: left;
}
.gform-theme--framework[id^="gform_wrapper_"] .gfield_required {
    color: #8a2c1f;
    margin-inline-start: 2px;
    white-space: nowrap;
}

/* ============================================================
   PAGE-INTRO HEADERS  (our ptf html headers)
   Eyebrow mono, Merriweather H2, Inter sub  -  the layered type system.
   ============================================================ */
.gform-theme--framework[id^="gform_wrapper_"] .ptf-page-intro {
    margin: 0 0 8px 0;
}
.gform-theme--framework[id^="gform_wrapper_"] .ptf-page-intro h2 {
    font-family: 'Merriweather', Georgia, serif;
    font-size: clamp(22px, 2.6vw, 30px);
    font-weight: 900;
    line-height: 1.18;
    letter-spacing: -0.02em;
    color: #0e0d0b;
    margin: 0 0 8px 0;
}
.gform-theme--framework[id^="gform_wrapper_"] .ptf-page-intro p {
    font-size: 15px;
    line-height: 1.55;
    color: #5a544a;
    margin: 0;
    max-width: 62ch;
}
.gform-theme--framework[id^="gform_wrapper_"] .ptf-inline-note p {
    font-size: 14px;
    line-height: 1.5;
    color: #5a544a;
    border-inline-start: 2px solid #b8551f;
    padding-inline-start: 12px;
    margin: 0;
}

/* ============================================================
   PROGRESS BAR  -  mono step label, single accent fill, sharp-ish track
   ============================================================ */
.gform-theme--framework[id^="gform_wrapper_"] .gf_progressbar_wrapper {
    --gf-field-pg-prog-margin-y-end: 28px;
    --gf-field-pg-prog-color: #5a544a;
    --gf-field-pg-prog-font-size: 12px;
    --gf-field-pg-prog-font-weight: 600;
    --gf-field-pg-prog-title-margin-y-end: 10px;
}
.gform-theme--framework[id^="gform_wrapper_"] .gf_progressbar_title {
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-size: 12px;
    color: #5a544a;
}
.gform-theme--framework[id^="gform_wrapper_"] .gf_progressbar {
    --gf-field-pg-prog-bar-bg-color: #ece5d4;
    --gf-field-pg-prog-bar-radius: 2px;
    --gf-field-pg-prog-bar-height: 6px;
}
.gform-theme--framework[id^="gform_wrapper_"] .gf_progressbar .gf_progressbar_percentage {
    --gf-field-pg-prog-bar-bg-color-blue: #b8551f;
    --gf-field-pg-prog-bar-bg-color-gray: #b8551f;
    --gf-field-pg-prog-bar-bg-color-green: #b8551f;
    --gf-field-pg-prog-bar-bg-color-orange: #b8551f;
    --gf-field-pg-prog-bar-bg-color-red: #b8551f;
}
.gform-theme--framework[id^="gform_wrapper_"] .gf_progressbar_percentage span {
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 11px;
}

/* ============================================================
   FOOTER + BUTTONS  -  1px top rule, right-aligned, sharp buttons
   ============================================================ */
.gform-theme--framework[id^="gform_wrapper_"] .gform_page_footer,
.gform-theme--framework[id^="gform_wrapper_"] .gform_footer {
    --gf-form-footer-gap: 12px;
    padding-block-start: 24px;
    margin-block-start: 8px;
    border-block-start: 1px solid #ddd5bf;
    justify-content: flex-end;
}
.gform-theme--framework[id^="gform_wrapper_"] .gform_page_footer .button,
.gform-theme--framework[id^="gform_wrapper_"] .gform_footer .button {
    border-radius: 4px;
    box-shadow: none;
}

/* ============================================================
   VALIDATION  -  flat, sharp, single error accent
   ============================================================ */
.gform-theme--framework[id^="gform_wrapper_"] .gform_validation_errors {
    --gf-form-validation-bg-color: #fbf3f0;
    --gf-form-validation-border-color: #d4a899;
    --gf-form-validation-border-width: 1px;
    --gf-form-validation-border-style: solid;
    --gf-form-validation-radius: 2px;
    --gf-form-validation-padding-y: 14px;
    --gf-form-validation-padding-x: 16px;
    --gf-form-validation-heading-color: #6e2418;
    --gf-form-validation-summary-color: #6e2418;
    box-shadow: none;
}
.gform-theme--framework[id^="gform_wrapper_"] .gfield_error {
    --gf-ctrl-bg-color-error: #fbf3f0;
    --gf-ctrl-border-color-error: #8a2c1f;
}
.gform-theme--framework[id^="gform_wrapper_"] .gfield_validation_message {
    --gf-ctrl-desc-color-error: #8a2c1f;
    --gf-ctrl-desc-font-size-error: 13px;
    margin-block-start: 6px;
    background: transparent;
    border: 0;
    padding: 0;
}

/* ============================================================
   AJAX SPINNER
   ============================================================ */
.gform-theme--framework[id^="gform_wrapper_"] .gform_ajax_spinner {
    margin-inline-start: 12px;
    vertical-align: middle;
}

/* ============================================================
   CONFIRMATION (inline message)
   ============================================================ */
.gform-theme--framework[id^="gform_wrapper_"] .gform_confirmation_message h2 {
    font-family: 'Merriweather', Georgia, serif;
}
