/* ==========================================================================
   Miss Blueberry Pageant Application — Public Form Styles
   v7.0.3 (Chunk 4)
   ==========================================================================

   Loaded only on the page hosting the form (bpm_pa_page_id), via
   bpm-pa-form.php → bpm_pa_enqueue_form_assets().

   Design system
   -------------
   Primary blue        #0537A4  (LBF brand — dominant)
   Festival yellow     #F3C303  (CTA buttons, hairline rules, accent chips)
   Royal purple        #4B0082  (subtle — step indicators, hover shadows)
   Deep navy           #022E78  (hover state of primary, deeper text)
   Soft purple bg      #F5F3FF  (consent / callout backgrounds)
   Field border        #D1D5DB
   Body text           #1F2937
   Muted text          #6B7280

   Scope strategy
   --------------
   All selectors are scoped to .bpm-pa-form-wrap (the wrapper we inject
   around the GF shortcode output) so this CSS never bleeds into other
   forms or pages on the site. Gravity Forms' default styles are gently
   overridden — we don't fight the framework, we re-skin it.

   Layout
   ------
   The form sits inside a max-width container. Each form "page" is one
   white card with soft shadow. Within a page, logical sections (the
   GF `section` fields we added in Chunk 3) become inner cards with
   icon badges and step chips, matching the volunteer-application
   reference screenshot.

   Mobile
   ------
   Breakpoint at 720px. Two-column form rows collapse to one column.
   Step indicator switches from named-and-numbered to numbered-only
   with the current step's name shown beneath the circles.
   ========================================================================== */


/* ==========================================================================
   1. RESET & ROOT TOKENS
   ========================================================================== */

.bpm-pa-form-wrap {
    --bpm-pa-primary:        #0537A4;
    --bpm-pa-primary-deep:   #022E78;
    --bpm-pa-primary-pale:   #E8EEF9;
    --bpm-pa-yellow:         #F3C303;
    --bpm-pa-yellow-deep:    #C99C00;
    --bpm-pa-purple:         #4B0082;
    --bpm-pa-purple-pale:    #F5F3FF;
    --bpm-pa-purple-edge:    #EDE9FE;
    --bpm-pa-text:           #1F2937;
    --bpm-pa-muted:          #6B7280;
    --bpm-pa-border:         #D1D5DB;
    --bpm-pa-border-soft:    #E5E7EB;
    --bpm-pa-bg:             #F9FAFB;
    --bpm-pa-danger:         #B91C1C;
    --bpm-pa-success:        #047857;
    --bpm-pa-card-radius:    14px;
    --bpm-pa-field-radius:   8px;
    --bpm-pa-shadow-card:    0 1px 3px rgba(0,0,0,.04), 0 4px 12px rgba(5,55,164,.06);
    --bpm-pa-shadow-hover:   0 4px 16px rgba(75,0,130,.18);
    --bpm-pa-fs-base:        16px;
    --bpm-pa-fs-label:       0.72rem;
    --bpm-pa-fs-input:       0.95rem;
    --bpm-pa-fs-section:     1.45rem;
    --bpm-pa-fs-step:        0.7rem;
    --bpm-pa-font:           -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;

    font-family: var(--bpm-pa-font);
    font-size: var(--bpm-pa-fs-base);
    color: var(--bpm-pa-text);
    line-height: 1.5;
    max-width: 1080px;
    margin: 0 auto;
    padding: 40px 20px 80px;
    box-sizing: border-box;
}

.bpm-pa-form-wrap *,
.bpm-pa-form-wrap *::before,
.bpm-pa-form-wrap *::after {
    box-sizing: border-box;
}


/* ==========================================================================
   2. HERO HEADER  (injected by bpm_pa_render_hero())
   Three info chips on the right (Contact / Pageant Date / Crowning Date).
   Mobile: chips wrap below the title.
   ========================================================================== */

.bpm-pa-hero {
    position: relative;
    background: linear-gradient(135deg, var(--bpm-pa-primary) 0%, var(--bpm-pa-primary-deep) 100%);
    color: #ffffff;
    border-radius: 18px;
    padding: 38px 44px;
    margin-bottom: 28px;
    box-shadow: 0 4px 24px rgba(5,55,164,.18);
    overflow: hidden;
}

.bpm-pa-hero::before {
    /* Decorative diagonal sheen */
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 85% 20%, rgba(243,195,3,.08), transparent 50%);
    pointer-events: none;
}

.bpm-pa-hero__inner {
    position: relative;
    display: flex;
    align-items: stretch;
    justify-content: space-between;
    gap: 32px;
    flex-wrap: wrap;
}

/* v7.0.91 — Left copy column groups title-block + chips together so the
   right column is free for the new hero media (photo). */
.bpm-pa-hero__copy {
    flex: 1 1 380px;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 24px;
}

/* v7.0.91 — Right-side hero photo. Fills the right column edge-to-edge,
   stretches vertically to match the height of the left copy column,
   with a rounded card and caption overlay matching the matching
   theme-rendered pageant pages. */
.bpm-pa-hero__media {
    flex: 0 1 360px;
    min-width: 0;
    display: flex;
    align-items: stretch;
}
.bpm-pa-hero__media-card {
    position: relative;
    width: 100%;
    min-height: 18rem;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 14px 38px rgba(0,0,0,0.22);
}
.bpm-pa-hero__media-card img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.bpm-pa-hero__media-card::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(0,0,0,0) 60%, rgba(0,0,0,0.55) 100%);
    pointer-events: none;
}
.bpm-pa-hero__media-caption {
    position: absolute;
    left: 14px;
    bottom: 14px;
    color: #ffffff;
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.02em;
    text-shadow: 0 2px 6px rgba(0,0,0,0.4);
    z-index: 1;
}

.bpm-pa-hero__title-block {
    min-width: 0;
}

.bpm-pa-hero__eyebrow {
    display: inline-block;
    background: var(--bpm-pa-yellow);
    color: var(--bpm-pa-primary-deep);
    font-size: 0.65rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    padding: 5px 12px;
    border-radius: 999px;
    margin-bottom: 14px;
}

.bpm-pa-hero__title {
    font-size: clamp(1.75rem, 3.4vw, 2.4rem);
    font-weight: 800;
    line-height: 1.15;
    margin: 0 0 10px;
    color: #ffffff;
    letter-spacing: -0.01em;
}

.bpm-pa-hero__subtitle {
    font-size: 1.02rem;
    line-height: 1.55;
    color: rgba(255,255,255,.88);
    margin: 0 0 18px;
    max-width: 56ch;
}

.bpm-pa-hero__tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 16px;
}

.bpm-pa-hero__tag {
    background: var(--bpm-pa-yellow);
    color: var(--bpm-pa-primary-deep);
    font-size: 0.7rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    padding: 5px 12px;
    border-radius: 999px;
}

.bpm-pa-hero__chips {
    display: flex;
    flex-direction: column;
    gap: 10px;
    flex: 0 1 320px;
    min-width: 240px;
}

.bpm-pa-hero__chip {
    display: flex;
    align-items: center;
    gap: 12px;
    background: rgba(255,255,255,.08);
    backdrop-filter: blur(6px);
    border: 1px solid rgba(255,255,255,.14);
    border-radius: 14px;
    padding: 12px 16px;
    color: #ffffff;
    text-decoration: none;
}

.bpm-pa-hero__chip-icon {
    flex-shrink: 0;
    width: 38px;
    height: 38px;
    border-radius: 10px;
    background: var(--bpm-pa-yellow);
    color: var(--bpm-pa-primary-deep);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.05rem;
}

.bpm-pa-hero__chip-body {
    flex: 1;
    min-width: 0;
}

.bpm-pa-hero__chip-label {
    font-size: 0.62rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: rgba(255,255,255,.7);
    line-height: 1.1;
    margin-bottom: 3px;
}

.bpm-pa-hero__chip-value {
    font-size: 0.82rem;
    font-weight: 700;
    color: #ffffff;
    line-height: 1.3;
    word-break: break-word;
}


/* ==========================================================================
   3. STEP INDICATOR  (overrides Gravity Forms' .gf_progressbar)
   Numbered circles on desktop with step names below; numbered circles
   only on mobile with the current step name shown beneath.
   ========================================================================== */

.bpm-pa-form-wrap .gf_progressbar_wrapper {
    background: transparent;
    border: none;
    padding: 0;
    margin: 0 0 28px;
}

.bpm-pa-form-wrap .gf_progressbar_title {
    display: none;
}

.bpm-pa-form-wrap .gf_progressbar {
    background: transparent;
    height: auto;
    border: none;
    box-shadow: none;
    padding: 0;
    margin: 0;
}

.bpm-pa-form-wrap .gf_progressbar_percentage {
    background: transparent;
    color: inherit;
    box-shadow: none;
    border: none;
    text-align: left;
    height: auto;
    line-height: normal;
}

.bpm-pa-form-wrap .gf_progressbar_percentage span {
    display: none;
}

/* Custom step rail injected by bpm_pa_render_steps() — but we also style
   the native GF step output as a fallback in case the inline render fails. */
.bpm-pa-steps {
    display: grid;
    grid-template-columns: repeat(8, 1fr);
    align-items: start;
    gap: 6px;
    margin: 0 0 28px;
    padding: 14px 8px;
    background: #ffffff;
    border-radius: var(--bpm-pa-card-radius);
    box-shadow: var(--bpm-pa-shadow-card);
    position: relative;
}

.bpm-pa-step {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    text-align: center;
    z-index: 1;
}

.bpm-pa-step::after {
    /* connector to next step */
    content: "";
    position: absolute;
    top: 14px;
    left: calc(50% + 18px);
    right: calc(-50% + 18px);
    height: 2px;
    background: var(--bpm-pa-border-soft);
    z-index: -1;
}

.bpm-pa-step:last-child::after {
    display: none;
}

.bpm-pa-step__circle {
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: #ffffff;
    border: 2px solid var(--bpm-pa-border);
    color: var(--bpm-pa-muted);
    font-weight: 800;
    font-size: 0.82rem;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all .2s ease;
}

.bpm-pa-step__label {
    font-size: 0.66rem;
    font-weight: 700;
    color: var(--bpm-pa-muted);
    letter-spacing: 0.02em;
    line-height: 1.15;
    padding: 0 4px;
}

/* Completed step — purple circle with checkmark */
.bpm-pa-step--done .bpm-pa-step__circle {
    background: var(--bpm-pa-purple);
    border-color: var(--bpm-pa-purple);
    color: #ffffff;
}

.bpm-pa-step--done .bpm-pa-step__label {
    color: var(--bpm-pa-purple);
}

.bpm-pa-step--done::after {
    background: var(--bpm-pa-purple);
}

/* Active (current) step — blue circle, blue label, larger */
.bpm-pa-step--active .bpm-pa-step__circle {
    background: var(--bpm-pa-primary);
    border-color: var(--bpm-pa-primary);
    color: #ffffff;
    transform: scale(1.1);
    box-shadow: 0 0 0 4px rgba(5,55,164,.12);
}

.bpm-pa-step--active .bpm-pa-step__label {
    color: var(--bpm-pa-primary);
    font-weight: 800;
}

/* Mobile rail label below the circles */
.bpm-pa-steps__mobile-label {
    display: none;
    grid-column: 1 / -1;
    text-align: center;
    font-size: 0.78rem;
    color: var(--bpm-pa-primary);
    font-weight: 800;
    margin-top: 6px;
    padding-top: 8px;
    border-top: 1px dashed var(--bpm-pa-border-soft);
}


/* ==========================================================================
   4. FORM CARDS  (each GF page becomes one white card)
   ========================================================================== */

.bpm-pa-form-wrap .gform_wrapper.gravity-theme {
    /* GF 2.5+ theme wrapper — kill its default spacing */
    padding: 0;
    margin: 0;
}

.bpm-pa-form-wrap form {
    margin: 0;
    padding: 0;
}

.bpm-pa-form-wrap .gform_body,
.bpm-pa-form-wrap .gform_page_fields {
    background: #ffffff;
    border-radius: var(--bpm-pa-card-radius);
    padding: 36px 40px;
    box-shadow: var(--bpm-pa-shadow-card);
}

/* Hide GF default page titles — we use our section field markup instead */
.bpm-pa-form-wrap .gform_page_title {
    display: none;
}

.bpm-pa-form-wrap .gform_fields {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    gap: 18px 16px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.bpm-pa-form-wrap .gfield {
    grid-column: span 12;
    list-style: none;
    margin: 0;
    padding: 0;
    min-width: 0;
}


/* ==========================================================================
   5. SECTION HEADER (GF "section" field) — the section card per page
   Mimics the volunteer screenshot: STEP NN chip + icon badge + bold title.
   ========================================================================== */

.bpm-pa-form-wrap .gfield--type-section {
    grid-column: span 12;
    margin: 0 0 6px;
    padding: 4px 0 14px;
    border-bottom: 1px solid var(--bpm-pa-border-soft);
    position: relative;
}

.bpm-pa-form-wrap .gfield--type-section .gsection_title {
    font-size: var(--bpm-pa-fs-section);
    font-weight: 800;
    color: var(--bpm-pa-primary);
    margin: 0 0 4px;
    line-height: 1.2;
    letter-spacing: -0.01em;
}

.bpm-pa-form-wrap .gfield--type-section .gsection_description {
    font-size: 0.92rem;
    color: var(--bpm-pa-muted);
    margin: 0;
    line-height: 1.55;
}


/* ==========================================================================
   6. FIELD LABELS & INPUTS
   ========================================================================== */

.bpm-pa-form-wrap .gfield_label {
    display: block;
    font-size: var(--bpm-pa-fs-label);
    font-weight: 800;
    color: #374151;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 6px;
}

.bpm-pa-form-wrap .gfield_required {
    color: var(--bpm-pa-purple);
    font-weight: 800;
    margin-left: 4px;
}

.bpm-pa-form-wrap .gfield_required_text,
.bpm-pa-form-wrap .gfield_required_asterisk {
    color: var(--bpm-pa-purple);
}

.bpm-pa-form-wrap .ginput_container input[type="text"],
.bpm-pa-form-wrap .ginput_container input[type="email"],
.bpm-pa-form-wrap .ginput_container input[type="tel"],
.bpm-pa-form-wrap .ginput_container input[type="number"],
.bpm-pa-form-wrap .ginput_container input[type="date"],
.bpm-pa-form-wrap .ginput_container input[type="url"],
.bpm-pa-form-wrap .ginput_container textarea,
.bpm-pa-form-wrap .ginput_container select {
    width: 100%;
    padding: 11px 14px;
    border: 1.5px solid var(--bpm-pa-border);
    border-radius: var(--bpm-pa-field-radius);
    font-size: var(--bpm-pa-fs-input);
    font-family: inherit;
    color: var(--bpm-pa-text);
    background: #ffffff;
    transition: border-color .15s ease, box-shadow .15s ease;
    line-height: 1.4;
}

.bpm-pa-form-wrap .ginput_container input[type="text"]:focus,
.bpm-pa-form-wrap .ginput_container input[type="email"]:focus,
.bpm-pa-form-wrap .ginput_container input[type="tel"]:focus,
.bpm-pa-form-wrap .ginput_container input[type="number"]:focus,
.bpm-pa-form-wrap .ginput_container input[type="date"]:focus,
.bpm-pa-form-wrap .ginput_container textarea:focus,
.bpm-pa-form-wrap .ginput_container select:focus {
    border-color: var(--bpm-pa-primary);
    outline: none;
    box-shadow: 0 0 0 3px rgba(5,55,164,.12);
}

.bpm-pa-form-wrap .ginput_container textarea {
    resize: vertical;
    min-height: 90px;
}

.bpm-pa-form-wrap .ginput_container select {
    appearance: none;
    background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3e%3cpath fill='%230537A4' d='M6 8L0 0h12z'/%3e%3c/svg%3e");
    background-repeat: no-repeat;
    background-position: right 16px center;
    padding-right: 40px;
}

.bpm-pa-form-wrap .gfield_description {
    font-size: 0.78rem;
    color: var(--bpm-pa-muted);
    margin-top: 6px;
    line-height: 1.55;
}

/* GF wraps email confirm in a 2-input container */
.bpm-pa-form-wrap .ginput_complex {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
}

.bpm-pa-form-wrap .ginput_complex span {
    display: block;
}

.bpm-pa-form-wrap .ginput_complex label {
    font-size: 0.7rem;
    color: var(--bpm-pa-muted);
    margin-top: 4px;
    display: block;
    font-weight: 600;
    text-transform: none;
    letter-spacing: 0;
}


/* ==========================================================================
   7. COLUMN MODIFIERS  (custom classes attached to fields in Chunk 3)
   ========================================================================== */

.bpm-pa-form-wrap .gfield.bpm-pa-col-full      { grid-column: span 12; }
.bpm-pa-form-wrap .gfield.bpm-pa-col-half      { grid-column: span 6;  }
.bpm-pa-form-wrap .gfield.bpm-pa-col-third     { grid-column: span 4;  }
.bpm-pa-form-wrap .gfield.bpm-pa-col-quarter   { grid-column: span 3;  }
.bpm-pa-form-wrap .gfield.bpm-pa-col-two-third { grid-column: span 8;  }

/* Default GF field width hooks */
.bpm-pa-form-wrap .gfield--width-half     { grid-column: span 6; }
.bpm-pa-form-wrap .gfield--width-third    { grid-column: span 4; }
.bpm-pa-form-wrap .gfield--width-full     { grid-column: span 12; }


/* ==========================================================================
   8. CHECKBOX / RADIO / CONSENT  (acknowledgment block pattern)
   ========================================================================== */

.bpm-pa-form-wrap .gfield--type-checkbox .gfield_checkbox,
.bpm-pa-form-wrap .gfield--type-radio    .gfield_radio,
.bpm-pa-form-wrap .gfield--type-consent  .ginput_container_consent {
    background: var(--bpm-pa-purple-pale);
    border: 1px solid var(--bpm-pa-purple-edge);
    border-left: 4px solid var(--bpm-pa-yellow);
    border-radius: 10px;
    padding: 16px 18px;
    margin: 6px 0;
}

.bpm-pa-form-wrap .gchoice,
.bpm-pa-form-wrap .gform_wrapper .ginput_container_consent {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin: 6px 0;
    line-height: 1.5;
    font-size: 0.92rem;
    color: var(--bpm-pa-text);
}

.bpm-pa-form-wrap .gform_wrapper .ginput_container_consent input[type="checkbox"],
.bpm-pa-form-wrap .gchoice input[type="checkbox"],
.bpm-pa-form-wrap .gchoice input[type="radio"] {
    flex-shrink: 0;
    width: 20px;
    height: 20px;
    margin-top: 1px;
    accent-color: var(--bpm-pa-primary);
    cursor: pointer;
}

.bpm-pa-form-wrap .gform_wrapper .gfield_consent_label,
.bpm-pa-form-wrap .gchoice label {
    cursor: pointer;
    font-weight: 600;
    color: #1F2937;
    margin: 0;
}

.bpm-pa-form-wrap .gfield_consent_description {
    margin-top: 8px;
    font-size: 0.78rem;
    color: var(--bpm-pa-muted);
    line-height: 1.55;
    padding-left: 32px;
}


/* ==========================================================================
   9. HTML CONTENT BLOCKS  (intro, legal text, rules block, fee note)
   ========================================================================== */

.bpm-pa-form-wrap .gfield--type-html {
    grid-column: span 12;
}

.bpm-pa-intro {
    background: var(--bpm-pa-purple-pale);
    border-left: 4px solid var(--bpm-pa-yellow);
    border-radius: 10px;
    padding: 18px 22px;
    color: var(--bpm-pa-text);
}

.bpm-pa-intro p {
    margin: 0 0 10px;
    font-size: 0.95rem;
    line-height: 1.6;
}

.bpm-pa-intro p:last-child {
    margin-bottom: 0;
}

.bpm-pa-intro strong {
    color: var(--bpm-pa-primary);
}

/* Legal text blocks (waiver, media release) */
.bpm-pa-legal {
    background: #FAFBFC;
    border: 1px solid var(--bpm-pa-border-soft);
    border-radius: 10px;
    padding: 22px 26px;
    max-height: 380px;
    overflow-y: auto;
    font-size: 0.88rem;
    line-height: 1.65;
    color: #374151;
}

.bpm-pa-legal p {
    margin: 0 0 14px;
}

.bpm-pa-legal p:last-child {
    margin-bottom: 0;
}

.bpm-pa-legal strong {
    color: var(--bpm-pa-primary);
    font-weight: 800;
}

.bpm-pa-legal--short {
    max-height: none;
    padding: 18px 22px;
    font-size: 0.86rem;
}

/* Rules page — the "view + download" actions block */
.bpm-pa-rules-block {
    background: #ffffff;
    border: 2px dashed var(--bpm-pa-primary-pale);
    border-radius: 12px;
    padding: 26px 28px;
    text-align: center;
}

.bpm-pa-rules-block p {
    margin: 0 0 18px;
    font-size: 1rem;
    color: var(--bpm-pa-text);
}

.bpm-pa-rules-block strong {
    color: var(--bpm-pa-primary);
}

.bpm-pa-rules-actions {
    display: flex;
    justify-content: center;
    gap: 12px;
    flex-wrap: wrap;
}

.bpm-pa-rules-view,
.bpm-pa-rules-download {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 12px 22px;
    border-radius: var(--bpm-pa-field-radius);
    font-size: 0.92rem;
    font-weight: 800;
    text-decoration: none;
    transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
}

.bpm-pa-rules-view {
    background: var(--bpm-pa-primary);
    color: #ffffff;
}

.bpm-pa-rules-view:hover {
    background: var(--bpm-pa-primary-deep);
    transform: translateY(-1px);
    box-shadow: var(--bpm-pa-shadow-hover);
    color: #ffffff;
    text-decoration: none;
}

.bpm-pa-rules-download {
    background: #ffffff;
    color: var(--bpm-pa-primary);
    border: 2px solid var(--bpm-pa-primary);
}

.bpm-pa-rules-download:hover {
    background: var(--bpm-pa-primary);
    color: #ffffff;
    transform: translateY(-1px);
    box-shadow: var(--bpm-pa-shadow-hover);
    text-decoration: none;
}

/* Fee note on Review & Pay */
.bpm-pa-fee-note {
    background: var(--bpm-pa-purple-pale);
    border: 1px solid var(--bpm-pa-purple-edge);
    border-radius: 8px;
    padding: 12px 18px;
    margin-top: 6px;
}

.bpm-pa-fee-note p {
    margin: 0;
    font-size: 0.82rem;
    color: var(--bpm-pa-text);
    line-height: 1.55;
}

.bpm-pa-fee-note em {
    color: var(--bpm-pa-purple);
    font-style: normal;
    font-weight: 600;
}

/* Review summary box */
.bpm-pa-review-summary {
    background: var(--bpm-pa-primary-pale);
    border: 1px solid #C7D6F0;
    border-radius: 10px;
    padding: 16px 20px;
}

.bpm-pa-review-summary p {
    margin: 0;
    font-size: 0.95rem;
    color: var(--bpm-pa-primary-deep);
    line-height: 1.55;
}

.bpm-pa-review-summary strong {
    color: var(--bpm-pa-primary);
}


/* ==========================================================================
   10. PRODUCT FIELD (Entry Fee)
   ========================================================================== */

.bpm-pa-form-wrap .gfield--type-product .ginput_container_singleproduct {
    background: linear-gradient(135deg, #FFFCEC 0%, #FFF8D6 100%);
    border: 2px solid var(--bpm-pa-yellow);
    border-radius: 12px;
    padding: 18px 22px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
}

.bpm-pa-form-wrap .gfield--type-product .ginput_product_price_label {
    font-size: 0.72rem;
    font-weight: 800;
    color: var(--bpm-pa-primary);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-right: 8px;
}

.bpm-pa-form-wrap .gfield--type-product .ginput_product_price {
    font-size: 1.6rem;
    font-weight: 800;
    color: var(--bpm-pa-primary-deep);
    font-variant-numeric: tabular-nums;
}


/* ==========================================================================
   11. FILE UPLOAD (Birth Certificate)
   ========================================================================== */

.bpm-pa-form-wrap .gform_fileupload_rules {
    font-size: 0.74rem;
    color: var(--bpm-pa-muted);
    margin-top: 6px;
}

.bpm-pa-form-wrap .ginput_container_fileupload input[type="file"] {
    padding: 10px 14px;
    border: 1.5px dashed var(--bpm-pa-border);
    border-radius: var(--bpm-pa-field-radius);
    background: var(--bpm-pa-bg);
    font-size: 0.9rem;
    width: 100%;
    cursor: pointer;
}

.bpm-pa-form-wrap .ginput_container_fileupload input[type="file"]:hover {
    border-color: var(--bpm-pa-primary);
    background: #ffffff;
}


/* ==========================================================================
   12. PAGE FOOTER  (next / previous / submit buttons)
   ========================================================================== */

.bpm-pa-form-wrap .gform_page_footer,
.bpm-pa-form-wrap .gform_footer {
    margin-top: 28px;
    padding: 0;
    border-top: none;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.bpm-pa-form-wrap .gform_page_footer .gform_previous_button {
    background: transparent;
    color: var(--bpm-pa-muted);
    border: 1.5px solid var(--bpm-pa-border);
    padding: 11px 22px;
    border-radius: var(--bpm-pa-field-radius);
    font-size: 0.9rem;
    font-weight: 700;
    cursor: pointer;
    transition: all .15s ease;
}

.bpm-pa-form-wrap .gform_page_footer .gform_previous_button:hover {
    border-color: var(--bpm-pa-primary);
    color: var(--bpm-pa-primary);
    background: var(--bpm-pa-primary-pale);
}

.bpm-pa-form-wrap .gform_page_footer .gform_next_button,
.bpm-pa-form-wrap .gform_footer .gform_button {
    background: var(--bpm-pa-yellow);
    color: var(--bpm-pa-primary-deep);
    border: none;
    padding: 13px 28px;
    border-radius: var(--bpm-pa-field-radius);
    font-size: 0.94rem;
    font-weight: 800;
    cursor: pointer;
    letter-spacing: 0.02em;
    transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
    box-shadow: 0 1px 3px rgba(0,0,0,.08);
}

.bpm-pa-form-wrap .gform_page_footer .gform_next_button:hover,
.bpm-pa-form-wrap .gform_footer .gform_button:hover {
    background: var(--bpm-pa-yellow-deep);
    transform: translateY(-1px);
    box-shadow: var(--bpm-pa-shadow-hover);
}

.bpm-pa-form-wrap .gform_page_footer .gform_save_link,
.bpm-pa-form-wrap .gform_footer .gform_save_link {
    color: var(--bpm-pa-purple);
    text-decoration: underline;
    font-size: 0.86rem;
    font-weight: 700;
    margin-left: auto;
    padding: 0 4px;
    cursor: pointer;
}

.bpm-pa-form-wrap .gform_page_footer .gform_save_link:hover {
    color: var(--bpm-pa-primary);
    text-decoration: underline;
}

/* Page 1 has no Previous — push Next to the right */
.bpm-pa-form-wrap .bpm-pa-page-1 ~ .gform_page_footer:not(:has(.gform_previous_button)),
.bpm-pa-form-wrap .gform_page_footer:first-child {
    justify-content: flex-end;
}

/* Footer button-row alignment when no previous button */
.bpm-pa-form-wrap .gform_page_footer:not(:has(.gform_previous_button)) {
    justify-content: flex-end;
}

/* v8.9 — Last page (Submit Application). gform_footer is the final-page
   container. Make it a column-layout so the Submit button sits ALONE
   centered, and Save and Continue Later drops UNDERNEATH as a smaller
   secondary link. Submit is 20% bigger than Continue.
     Continue: padding 13px 28px, font-size 0.94rem
     Submit:   padding 16px 34px, font-size 1.13rem (≈20% bump on both)
   Uses html body chain to win specificity against gform_theme rules. */
html body .bpm-pa-form-wrap .gform_footer,
.bpm-pa-form-wrap .gform_footer {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 14px !important;
}
html body .bpm-pa-form-wrap .gform_footer .gform_button,
html body .bpm-pa-form-wrap .gform_footer input.gform_button,
html body .bpm-pa-form-wrap .gform_footer button.gform_button {
    padding: 16px 34px !important;
    font-size: 1.13rem !important;
    min-width: 240px !important;
    text-align: center !important;
    margin: 0 auto !important;
}
html body .bpm-pa-form-wrap .gform_footer .gform_save_link {
    margin: 0 auto !important;
    font-size: 0.82rem !important;
    color: var(--bpm-pa-muted, #6b7280) !important;
}


/* ==========================================================================
   13. VALIDATION  (errors & messages)
   ========================================================================== */

.bpm-pa-form-wrap .validation_error,
.bpm-pa-form-wrap .gform_validation_errors {
    background: #FEF2F2;
    border: 1px solid #FECACA;
    border-left: 4px solid var(--bpm-pa-danger);
    border-radius: 10px;
    padding: 14px 18px;
    color: var(--bpm-pa-danger);
    font-size: 0.92rem;
    font-weight: 700;
    margin-bottom: 18px;
}

.bpm-pa-form-wrap .gfield_error .gfield_label {
    color: var(--bpm-pa-danger);
}

.bpm-pa-form-wrap .gfield_error input,
.bpm-pa-form-wrap .gfield_error textarea,
.bpm-pa-form-wrap .gfield_error select {
    border-color: var(--bpm-pa-danger) !important;
    background: #FFF8F8;
}

.bpm-pa-form-wrap .gfield_validation_message,
.bpm-pa-form-wrap .validation_message {
    font-size: 0.82rem;
    color: var(--bpm-pa-danger);
    font-weight: 700;
    margin-top: 6px;
}


/* ==========================================================================
   14. ADMIN TEST DATA BUTTON  (rendered via filter, visible only to admins)
   ========================================================================== */

.bpm-pa-admin-helper {
    background: #fef9e7;
    border: 1px solid var(--bpm-pa-yellow);
    border-left: 4px solid var(--bpm-pa-purple);
    border-radius: 10px;
    padding: 14px 20px;
    margin-bottom: 22px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    flex-wrap: wrap;
}

.bpm-pa-admin-helper__title {
    font-size: 0.88rem;
    font-weight: 800;
    color: var(--bpm-pa-primary-deep);
    line-height: 1.3;
    margin: 0;
}

.bpm-pa-admin-helper__sub {
    font-size: 0.76rem;
    color: var(--bpm-pa-muted);
    margin-top: 2px;
}

.bpm-pa-admin-helper__btn {
    padding: 9px 18px;
    background: var(--bpm-pa-primary);
    color: #ffffff;
    border: none;
    border-radius: var(--bpm-pa-field-radius);
    font-size: 0.8rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    cursor: pointer;
    transition: all .15s ease;
}

.bpm-pa-admin-helper__btn:hover {
    background: var(--bpm-pa-primary-deep);
    box-shadow: var(--bpm-pa-shadow-hover);
}


/* ==========================================================================
   15. CAP NOTE / FULL DROPDOWN OPTIONS  (Chunk 5 wiring)
   ========================================================================== */

.bpm-pa-cap-note {
    font-size: 0.8rem;
    color: var(--bpm-pa-muted);
    line-height: 1.55;
    margin-top: 8px;
    padding: 0 4px;
}

.bpm-pa-cap-note em {
    font-style: italic;
}

.bpm-pa-form-wrap select option:disabled {
    color: #9CA3AF;
    background: #F3F4F6;
}


/* ==========================================================================
   16. MOBILE  (<= 720px)
   ========================================================================== */

@media (max-width: 720px) {

    .bpm-pa-form-wrap {
        padding: 20px 14px 60px;
    }

    /* Hero collapses */
    .bpm-pa-hero {
        padding: 26px 22px;
        border-radius: 14px;
    }

    .bpm-pa-hero__inner {
        flex-direction: column;
        gap: 22px;
    }

    .bpm-pa-hero__media {
        order: 2;
        flex: 1 1 auto;
    }
    .bpm-pa-hero__media-card {
        min-height: 14rem;
        max-height: 18rem;
    }

    .bpm-pa-hero__chips {
        flex-direction: column;
        width: 100%;
    }

    /* Step indicator — keep all 8 circles in a row but smaller and hide labels;
       show only the current step's name beneath. */
    .bpm-pa-steps {
        grid-template-columns: repeat(8, 1fr);
        gap: 3px;
        padding: 14px 8px 12px;
    }

    .bpm-pa-step__label {
        display: none;
    }

    .bpm-pa-step__circle {
        width: 24px;
        height: 24px;
        font-size: 0.68rem;
    }

    .bpm-pa-step::after {
        top: 12px;
    }

    .bpm-pa-steps__mobile-label {
        display: block;
    }

    /* Card padding tightens */
    .bpm-pa-form-wrap .gform_body,
    .bpm-pa-form-wrap .gform_page_fields {
        padding: 24px 20px;
        border-radius: 12px;
    }

    /* Field columns collapse to single column */
    .bpm-pa-form-wrap .gfield.bpm-pa-col-half,
    .bpm-pa-form-wrap .gfield.bpm-pa-col-third,
    .bpm-pa-form-wrap .gfield.bpm-pa-col-quarter,
    .bpm-pa-form-wrap .gfield.bpm-pa-col-two-third,
    .bpm-pa-form-wrap .gfield.bpm-pa-col-full,
    .bpm-pa-form-wrap .gfield[class*="bpm-pa-col-"],
    .bpm-pa-form-wrap .gfield--width-half,
    .bpm-pa-form-wrap .gfield--width-third,
    .bpm-pa-form-wrap .gfield--width-quarter,
    .bpm-pa-form-wrap .gfield--width-two-thirds {
        grid-column: span 12 !important;
    }

    /* Any complex / paired sub-field grids (name, address, state-zip,
       physician name-phone, email confirm) stack on mobile */
    .bpm-pa-form-wrap .ginput_complex,
    .bpm-pa-form-wrap .ginput_container_address,
    .bpm-pa-form-wrap .ginput_container_name {
        grid-template-columns: 1fr !important;
        display: grid !important;
    }

    /* Let every field and its inputs shrink to the viewport instead of
       overflowing the card on narrow screens */
    .bpm-pa-form-wrap .gfield,
    .bpm-pa-form-wrap .ginput_complex > span,
    .bpm-pa-form-wrap .ginput_container {
        min-width: 0;
    }
    .bpm-pa-form-wrap .ginput_container input,
    .bpm-pa-form-wrap .ginput_container select,
    .bpm-pa-form-wrap .ginput_container textarea {
        max-width: 100%;
    }

    /* Section title smaller */
    .bpm-pa-form-wrap .gfield--type-section .gsection_title {
        font-size: 1.2rem;
    }

    /* Footer stacks */
    .bpm-pa-form-wrap .gform_page_footer,
    .bpm-pa-form-wrap .gform_footer {
        flex-direction: column-reverse;
        align-items: stretch;
    }
    /* v8.9 — on the last page, keep normal column so Submit stays
       on top and Save link sits below it (matches desktop). */
    html body .bpm-pa-form-wrap .gform_footer {
        flex-direction: column !important;
    }

    .bpm-pa-form-wrap .gform_page_footer .gform_previous_button,
    .bpm-pa-form-wrap .gform_page_footer .gform_next_button,
    .bpm-pa-form-wrap .gform_footer .gform_button {
        width: 100%;
        text-align: center;
    }

    .bpm-pa-form-wrap .gform_page_footer .gform_save_link,
    .bpm-pa-form-wrap .gform_footer .gform_save_link {
        text-align: center;
        margin: 4px 0 0;
        padding: 8px;
    }

    /* Rules block tightens */
    .bpm-pa-rules-block {
        padding: 20px 18px;
    }

    .bpm-pa-rules-view,
    .bpm-pa-rules-download {
        width: 100%;
        justify-content: center;
    }

    /* Legal box less tall on mobile so they actually see the consent below */
    .bpm-pa-legal {
        max-height: 280px;
        padding: 18px 20px;
    }

    /* Product fee box stacks */
    .bpm-pa-form-wrap .gfield--type-product .ginput_container_singleproduct {
        flex-direction: column;
        align-items: flex-start;
        gap: 4px;
    }

    .bpm-pa-form-wrap .gfield--type-product .ginput_product_price {
        font-size: 1.4rem;
    }
}


/* ==========================================================================
   17. PRINT
   ========================================================================== */

@media print {
    .bpm-pa-hero,
    .bpm-pa-steps,
    .bpm-pa-admin-helper,
    .bpm-pa-form-wrap .gform_page_footer,
    .bpm-pa-form-wrap .gform_footer {
        display: none;
    }

    .bpm-pa-form-wrap .gform_body,
    .bpm-pa-form-wrap .gform_page_fields {
        box-shadow: none;
        padding: 0;
    }

    .bpm-pa-legal {
        max-height: none;
        overflow: visible;
    }
}




/* ==========================================================================
   18. POLISH v2  (v7.0.9)

   Gravity Forms 2.10 ships a heavyweight CSS framework whose every
   rule chains .gform-theme--framework or .gform-theme--foundation,
   beating any naive `.bpm-pa-form-wrap select { ... }` selector on
   specificity. The fix: match GF's specificity by chaining the same
   framework class into our scope, and reuse GF's own CSS custom
   properties (--gf-ctrl-*) so we're cooperating with the framework
   rather than fighting it.

   THE PURPLE: single canonical color #4b3dbd, plus a sibling shade
   for hover/highlight effects. No three-stop gradient anymore.

   Sections that follow re-implement everything from the v7.0.8
   polish pass at proper specificity, AND add the remaining
   subtle-pageant items: hero ambient shimmer, section-title crown,
   purple focus rings, consent block polish, intro callout polish.
   ========================================================================== */

/* ── 18.0 Color tokens ─────────────────────────────────────────────── */
.bpm-pa-form-wrap {
    --bpm-pa-p:        #4b3dbd;             /* canonical purple */
    --bpm-pa-p-dark:   #3a2e94;             /* hover / pressed */
    --bpm-pa-p-glow:   rgba(75,61,189,.22); /* glow / pulse */
    --bpm-pa-p-soft:   rgba(75,61,189,.08); /* tints / fills */
}

/* ── 18.1 Dropdown text padding — FRAMEWORK SPECIFICITY ────────────── */
/* These selectors mirror what GF 2.10 emits so we beat its rules on
   specificity rather than relying on !important alone. */
.gform-theme--framework .bpm-pa-form-wrap select,
.gform-theme--foundation .bpm-pa-form-wrap select,
.bpm-pa-form-wrap .gform-theme--framework select,
.bpm-pa-form-wrap .gform-theme--foundation select,
.bpm-pa-form-wrap .gfield select,
.bpm-pa-form-wrap select.gfield_select,
.bpm-pa-form-wrap .ginput_container_select select {
    padding-left: 20px !important;
    padding-right: 44px !important;
    padding-top: 12px !important;
    padding-bottom: 12px !important;
    background-position: right 16px center !important;
    text-indent: 0 !important;
}

/* Text inputs — match the breathing room */
.bpm-pa-form-wrap .gfield input[type="text"],
.bpm-pa-form-wrap .gfield input[type="email"],
.bpm-pa-form-wrap .gfield input[type="tel"],
.bpm-pa-form-wrap .gfield input[type="number"],
.bpm-pa-form-wrap .gfield input[type="date"],
.bpm-pa-form-wrap .gfield input[type="url"],
.bpm-pa-form-wrap .gfield textarea {
    padding-left: 16px !important;
    padding-right: 16px !important;
}

/* GF's CSS custom properties — point them at our purple so GF's own
   rules use our color for focus borders, etc. */
.gform-theme--framework .bpm-pa-form-wrap,
.gform-theme--foundation .bpm-pa-form-wrap,
.bpm-pa-form-wrap.gform-theme--framework,
.bpm-pa-form-wrap.gform-theme--foundation,
.bpm-pa-form-wrap form {
    --gf-ctrl-border-color-focus:        #4b3dbd;
    --gf-ctrl-outline-color-focus:       rgba(75,61,189,.20);
    --gf-ctrl-color-focus:               #1f2937;
    --gf-ctrl-bg-color-focus:            #ffffff;
    --gf-ctrl-btn-bg-color-primary:      #4b3dbd;
    --gf-ctrl-btn-bg-color-hover-primary: #3a2e94;
    --gf-ctrl-btn-color-primary:         #ffffff;
    --gf-ctrl-btn-color-hover-primary:   #ffffff;
    --gf-ctrl-btn-border-color-primary:  #4b3dbd;
}

/* ── 18.2 Kill the duplicate step rail (GF native) ──────────────────── */
.gform-theme--framework .bpm-pa-form-wrap .gf_page_steps,
.gform-theme--foundation .bpm-pa-form-wrap .gf_page_steps,
.bpm-pa-form-wrap .gf_page_steps,
.bpm-pa-form-wrap .gform_page_steps,
.bpm-pa-form-wrap ul.gf_page_steps,
.bpm-pa-form-wrap .gf_progressbar_wrapper,
.bpm-pa-form-wrap .gform_progressbar_wrapper {
    display: none !important;
}

/* ── 18.3 Step circles — solid #4b3dbd, active glows ────────────────── */
.bpm-pa-form-wrap .bpm-pa-step__circle {
    width: 36px;
    height: 36px;
    border: none;
    color: #ffffff;
    background: #E5E7EB;
    transition: transform .25s ease, box-shadow .25s ease, background .25s ease;
}

/* Upcoming — grey-outlined */
.bpm-pa-form-wrap .bpm-pa-step:not(.bpm-pa-step--done):not(.bpm-pa-step--active) .bpm-pa-step__circle {
    background: #ffffff;
    color: #9CA3AF;
    box-shadow: inset 0 0 0 2px #D1D5DB;
}

/* Done — solid #4b3dbd, white checkmark */
.bpm-pa-form-wrap .bpm-pa-step--done .bpm-pa-step__circle {
    background: var(--bpm-pa-p);
    color: #ffffff;
    box-shadow: 0 2px 6px rgba(75,61,189,.30);
}
.bpm-pa-form-wrap .bpm-pa-step--done::after {
    background: var(--bpm-pa-p);
    height: 2px;
}

/* Active — same purple + glow ring + soft pulse + slight scale */
.bpm-pa-form-wrap .bpm-pa-step--active .bpm-pa-step__circle {
    background: var(--bpm-pa-p);
    color: #ffffff;
    transform: scale(1.14);
    box-shadow: var(--bpm-pa-p-glow) 0 0 0 5px, 0 4px 14px rgba(75,61,189,.30);
    animation: bpm-pa-active-pulse 2.4s ease-in-out infinite;
}

@keyframes bpm-pa-active-pulse {
    0%, 100% { box-shadow: 0 0 0 5px rgba(75,61,189,.22), 0 4px 14px rgba(75,61,189,.30); }
    50%      { box-shadow: 0 0 0 9px rgba(75,61,189,.10), 0 4px 18px rgba(75,61,189,.38); }
}

/* Move connector start point to match new circle size */
.bpm-pa-form-wrap .bpm-pa-step::after {
    top: 17px;
    left: calc(50% + 22px);
    right: calc(-50% + 22px);
}

/* Step labels — purple when done or active, grey otherwise */
.bpm-pa-form-wrap .bpm-pa-step--done .bpm-pa-step__label,
.bpm-pa-form-wrap .bpm-pa-step--active .bpm-pa-step__label {
    color: var(--bpm-pa-p-dark);
    font-weight: 800;
}

/* ── 18.4 Buttons — #4b3dbd + white text + shimmer ─────────────────── */
/* High specificity: every plausible GF button class chained with the
   framework wrapper. We win every battle.
   v8.9.1 — REMOVED .bpm-pa-form-wrap .gform_footer .gform_button from this
   selector list. It was overriding the v8.9 Submit-button-bigger rule at
   line 1011 with the old 13px 32px padding. Submit button (in .gform_footer)
   gets its own treatment in the v8.9 section above. This block now only
   styles .gform_next_button (Continue) and other generic gform_button uses. */
.gform-theme--framework .bpm-pa-form-wrap .gform_next_button,
.gform-theme--foundation .bpm-pa-form-wrap .gform_next_button,
.bpm-pa-form-wrap .gform_page_footer .gform_next_button,
.bpm-pa-form-wrap input.gform_next_button,
.bpm-pa-form-wrap button.gform_next_button {
    position: relative;
    overflow: hidden;
    background: var(--bpm-pa-p) !important;
    color: #ffffff !important;
    border: none !important;
    padding: 13px 32px !important;
    border-radius: 10px !important;
    font-size: 0.94rem !important;
    font-weight: 800 !important;
    letter-spacing: 0.02em !important;
    cursor: pointer !important;
    transition: transform .2s ease, box-shadow .2s ease, background .25s ease !important;
    box-shadow: 0 4px 14px rgba(75,61,189,.28) !important;
}

.gform-theme--framework .bpm-pa-form-wrap .gform_next_button:hover,
.gform-theme--foundation .bpm-pa-form-wrap .gform_next_button:hover,
.bpm-pa-form-wrap .gform_page_footer .gform_next_button:hover,
.bpm-pa-form-wrap input.gform_next_button:hover,
.bpm-pa-form-wrap button.gform_next_button:hover {
    background: var(--bpm-pa-p-dark) !important;
    transform: translateY(-2px);
    box-shadow: 0 8px 22px rgba(75,61,189,.40) !important;
}

/* Shimmer — diagonal white sheen sweeping left-to-right on hover */
.bpm-pa-form-wrap .gform_next_button::before,
.bpm-pa-form-wrap .gform_button::before,
.bpm-pa-form-wrap input.gform_button::before,
.bpm-pa-form-wrap input.gform_next_button::before,
.bpm-pa-form-wrap .bpm-pa-rules-view::before,
.bpm-pa-form-wrap .bpm-pa-rules-download::before {
    content: "";
    position: absolute;
    top: 0;
    left: -120%;
    width: 60%;
    height: 100%;
    background: linear-gradient(
        100deg,
        transparent 0%,
        rgba(255,255,255,0.0) 20%,
        rgba(255,255,255,0.45) 50%,
        rgba(255,255,255,0.0) 80%,
        transparent 100%
    );
    transform: skewX(-22deg);
    transition: left .65s ease;
    pointer-events: none;
}

.bpm-pa-form-wrap .gform_next_button:hover::before,
.bpm-pa-form-wrap .gform_button:hover::before,
.bpm-pa-form-wrap input.gform_button:hover::before,
.bpm-pa-form-wrap input.gform_next_button:hover::before,
.bpm-pa-form-wrap .bpm-pa-rules-view:hover::before,
.bpm-pa-form-wrap .bpm-pa-rules-download:hover::before {
    left: 130%;
}

/* Previous button — ghost / purple tint */
.gform-theme--framework .bpm-pa-form-wrap .gform_previous_button,
.gform-theme--foundation .bpm-pa-form-wrap .gform_previous_button,
.bpm-pa-form-wrap .gform_page_footer .gform_previous_button {
    background: #ffffff !important;
    color: var(--bpm-pa-p) !important;
    border: 1.5px solid #DDD6FE !important;
    padding: 13px 26px !important;
    border-radius: 10px !important;
    font-size: 0.92rem !important;
    font-weight: 700 !important;
    box-shadow: none !important;
}

.bpm-pa-form-wrap .gform_previous_button:hover {
    background: var(--bpm-pa-p-soft) !important;
    border-color: var(--bpm-pa-p) !important;
    color: var(--bpm-pa-p-dark) !important;
    transform: translateY(-1px);
}

/* Save and continue later link */
.bpm-pa-form-wrap .gform_save_link,
.bpm-pa-form-wrap a.gform_save_link,
.bpm-pa-form-wrap button.gform_save_link {
    color: var(--bpm-pa-p) !important;
    font-weight: 700 !important;
    text-decoration: underline !important;
    text-decoration-thickness: 1.5px !important;
    text-underline-offset: 3px !important;
    background: transparent !important;
    box-shadow: none !important;
    border: none !important;
    padding: 12px 8px !important;
}
.bpm-pa-form-wrap .gform_save_link:hover {
    color: var(--bpm-pa-p-dark) !important;
}

/* Rules block buttons get the same treatment */
.bpm-pa-form-wrap .bpm-pa-rules-view,
.bpm-pa-form-wrap .bpm-pa-rules-download {
    position: relative;
    overflow: hidden;
    background: var(--bpm-pa-p);
    color: #ffffff;
    border: none;
    padding: 13px 26px;
    border-radius: 10px;
    font-weight: 800;
    box-shadow: 0 4px 14px rgba(75,61,189,.28);
    transition: transform .2s ease, box-shadow .2s ease, background .25s ease;
}

.bpm-pa-form-wrap .bpm-pa-rules-view:hover,
.bpm-pa-form-wrap .bpm-pa-rules-download:hover {
    background: var(--bpm-pa-p-dark);
    color: #ffffff;
    transform: translateY(-2px);
    box-shadow: 0 8px 22px rgba(75,61,189,.40);
    text-decoration: none;
}

.bpm-pa-form-wrap .bpm-pa-rules-download {
    box-shadow: 0 4px 14px rgba(75,61,189,.18), inset 0 0 0 1.5px rgba(255,255,255,0.18);
}


/* ==========================================================================
   19. PURPLE FOCUS RING ON INPUTS  (replaces blue)
   ========================================================================== */
.gform-theme--framework .bpm-pa-form-wrap input:focus,
.gform-theme--framework .bpm-pa-form-wrap textarea:focus,
.gform-theme--framework .bpm-pa-form-wrap select:focus,
.gform-theme--foundation .bpm-pa-form-wrap input:focus,
.gform-theme--foundation .bpm-pa-form-wrap textarea:focus,
.gform-theme--foundation .bpm-pa-form-wrap select:focus,
.bpm-pa-form-wrap .gfield input:focus,
.bpm-pa-form-wrap .gfield textarea:focus,
.bpm-pa-form-wrap .gfield select:focus {
    border-color: var(--bpm-pa-p) !important;
    outline: none !important;
    box-shadow: 0 0 0 4px var(--bpm-pa-p-glow) !important;
}


/* ==========================================================================
   20. SECTION-TITLE CROWN ACCENT
   Small inline-SVG crown to the left of each section header
   ("Contestant Information", "Pageant Rules", etc.)
   ========================================================================== */
.bpm-pa-form-wrap .gfield--type-section .gsection_title {
    display: inline-flex;
    align-items: center;
    gap: 12px;
}

.bpm-pa-form-wrap .gfield--type-section .gsection_title::before {
    content: "";
    flex-shrink: 0;
    display: inline-block;
    width: 28px;
    height: 28px;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%234b3dbd'><path d='M5 16L3 7l5.5 4L12 5l3.5 6L21 7l-2 9H5zm0 2h14v2H5v-2z'/><circle cx='3' cy='6' r='1.4'/><circle cx='21' cy='6' r='1.4'/><circle cx='12' cy='4' r='1.4'/></svg>");
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    vertical-align: middle;
}


/* ==========================================================================
   21. HERO AMBIENT SHIMMER  (slow drifting light across the hero)
   Scoped to body:is(.page-template-page-template-pageant-application-form, .page-template-pageant-application-form) so it only
   affects the application form page hero — not the info page.
   ========================================================================== */
body:is(.page-template-page-template-pageant-application-form, .page-template-pageant-application-form) .lbfpg-hero--application-form {
    position: relative;
    overflow: hidden;
}

body:is(.page-template-page-template-pageant-application-form, .page-template-pageant-application-form) .lbfpg-hero--application-form::after {
    content: "";
    position: absolute;
    inset: -50% -50%;
    background: linear-gradient(
        115deg,
        transparent 0%,
        transparent 38%,
        rgba(255,255,255,0.10) 48%,
        rgba(255,255,255,0.20) 50%,
        rgba(255,255,255,0.10) 52%,
        transparent 62%,
        transparent 100%
    );
    transform: translateX(-100%);
    animation: bpm-pa-hero-shimmer 9s ease-in-out infinite;
    pointer-events: none;
    z-index: 1;
}

@keyframes bpm-pa-hero-shimmer {
    0%   { transform: translateX(-100%); }
    50%  { transform: translateX(100%); }
    100% { transform: translateX(100%); }
}

/* Make sure hero content stays above the shimmer */
body:is(.page-template-page-template-pageant-application-form, .page-template-pageant-application-form) .lbfpg-hero--application-form .lbfpg-hero__grid,
body:is(.page-template-page-template-pageant-application-form, .page-template-pageant-application-form) .lbfpg-hero--application-form .lbfpg-hero__glow {
    position: relative;
    z-index: 2;
}

/* Pause shimmer for users who prefer reduced motion */
@media (prefers-reduced-motion: reduce) {
    body:is(.page-template-page-template-pageant-application-form, .page-template-pageant-application-form) .lbfpg-hero--application-form::after {
        animation: none;
        display: none;
    }
    .bpm-pa-form-wrap .bpm-pa-step--active .bpm-pa-step__circle {
        animation: none;
    }
}


/* ==========================================================================
   22. HERO TIARA WATERMARK + CHIP HOVER LIFT
   Small purple tiara SVG, large but very low opacity, sits behind
   the hero content. Plus the info-chip + pill hover lift/glow.
   ========================================================================== */
body:is(.page-template-page-template-pageant-application-form, .page-template-pageant-application-form) .lbfpg-hero--application-form::before {
    content: "";
    position: absolute;
    right: -40px;
    top: 50%;
    transform: translateY(-50%);
    width: 280px;
    height: 280px;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23ffffff'><path d='M5 16L3 7l5.5 4L12 5l3.5 6L21 7l-2 9H5zm0 2h14v2H5v-2z'/><circle cx='3' cy='6' r='1.4'/><circle cx='21' cy='6' r='1.4'/><circle cx='12' cy='4' r='1.4'/></svg>");
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    opacity: 0.04;
    pointer-events: none;
    z-index: 0;
}

/* If hero-image is present, hide the tiara so the image is the only visual */
body:is(.page-template-page-template-pageant-application-form, .page-template-pageant-application-form) .lbfpg-hero--application-form:has(.lbfpg-hero-card--has-image)::before {
    display: none;
}

/* Hide tiara watermark on narrow screens */
@media (max-width: 720px) {
    body:is(.page-template-page-template-pageant-application-form, .page-template-pageant-application-form) .lbfpg-hero--application-form::before { display: none; }
}

/* Chip + pill hover */
body:is(.page-template-page-template-pageant-application-form, .page-template-pageant-application-form) .lbfpg-hero-chip,
body:is(.page-template-page-template-pageant-application-form, .page-template-pageant-application-form) .lbfpg-hero-pill {
    transition: transform .25s ease, background .25s ease, box-shadow .25s ease;
    cursor: default;
}
body:is(.page-template-page-template-pageant-application-form, .page-template-pageant-application-form) .lbfpg-hero-chip:hover {
    transform: translateY(-3px);
    background: rgba(255,255,255,.18);
    box-shadow: 0 6px 18px rgba(75,61,189,.30);
}
body:is(.page-template-page-template-pageant-application-form, .page-template-pageant-application-form) .lbfpg-hero-pill:hover {
    transform: translateY(-3px);
    box-shadow: 0 6px 18px rgba(243,195,3,.40);
}


/* ==========================================================================
   23. INTRO CALLOUT POLISH  (page 1 "Welcome!" block)
   ========================================================================== */
.bpm-pa-form-wrap .bpm-pa-intro {
    background: linear-gradient(135deg, rgba(75,61,189,.06) 0%, rgba(75,61,189,.02) 100%);
    border-left: 4px solid var(--bpm-pa-p);
    border-radius: 12px;
    padding: 20px 24px 20px 56px;
    position: relative;
}

.bpm-pa-form-wrap .bpm-pa-intro::before {
    content: "";
    position: absolute;
    top: 22px;
    left: 18px;
    width: 24px;
    height: 24px;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%234b3dbd'><path d='M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.5 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z'/></svg>");
    background-size: contain;
    background-repeat: no-repeat;
}

.bpm-pa-form-wrap .bpm-pa-intro strong {
    color: var(--bpm-pa-p);
}


/* ==========================================================================
   24. CONSENT BLOCK POLISH
   Stronger card chrome on the acknowledgment boxes (rules consent,
   waiver consent, media consent, medical consent).
   ========================================================================== */
.bpm-pa-form-wrap .gfield--type-consent .ginput_container_consent {
    background: linear-gradient(135deg, #ffffff 0%, rgba(75,61,189,.04) 100%);
    border: 1px solid rgba(75,61,189,.18);
    border-left: 4px solid var(--bpm-pa-p);
    border-radius: 12px;
    padding: 18px 22px;
    box-shadow: 0 2px 8px rgba(75,61,189,.06);
    transition: box-shadow .25s ease, transform .25s ease;
}

.bpm-pa-form-wrap .gfield--type-consent .ginput_container_consent:hover {
    box-shadow: 0 6px 18px rgba(75,61,189,.14);
}

/* Animated checkmark feel — when checked, the box leans in */
.bpm-pa-form-wrap .gfield--type-consent .ginput_container_consent:has(input[type="checkbox"]:checked) {
    background: linear-gradient(135deg, rgba(75,61,189,.06) 0%, rgba(75,61,189,.10) 100%);
    border-color: var(--bpm-pa-p);
    box-shadow: 0 4px 14px rgba(75,61,189,.18);
}

/* Checkbox itself — purple accent */
.bpm-pa-form-wrap .gfield--type-consent input[type="checkbox"],
.bpm-pa-form-wrap .gchoice input[type="checkbox"] {
    accent-color: var(--bpm-pa-p);
    width: 22px;
    height: 22px;
}

