/*
 * Blank Page Forms – by Bluespider
 * Frontend Stylesheet v1.0.0
 * Renders forms on the public-facing website.
 */

/* =====================================================
   DESIGN TOKENS
===================================================== */

.bpf-form {
    --bpf-primary:     #0d8dd4;
    --bpf-primary-dk:  #0a6fa8;
    --bpf-text:        #1a1a2e;
    --bpf-text-muted:  #64748b;
    --bpf-border:      #e2e8f0;
    --bpf-bg:          #ffffff;
    --bpf-bg-alt:      #f8fafc;
    --bpf-error:       #dc2626;
    --bpf-success:     #16a34a;
    --bpf-radius:      6px;
    --bpf-font-size:   15px;
    --bpf-font:        -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --bpf-trans:       0.15s ease;
    --bpf-gap-sm:      8px;
    --bpf-gap:         16px;
    --bpf-gap-lg:      24px;
}

/* =====================================================
   BASE
===================================================== */

.bpf-form *,
.bpf-form *::before,
.bpf-form *::after {
    box-sizing: border-box;
}

.bpf-form {
    font-family: var(--bpf-font);
    font-size: var(--bpf-font-size);
    color: var(--bpf-text);
    line-height: 1.6;
    max-width: 100%;
}

.bpf-form__inner {
    display: flex;
    flex-direction: column;
    gap: var(--bpf-gap);
    position: relative;
}

/* =====================================================
   SPACING VARIANTS
===================================================== */

/* The field gap is also driven inline via --bpf-field-gap (emitted by PHP per spacing setting).
   These selectors apply for non-step and step-divider forms equally. */

.bpf-form__inner,
.bpf-step {
    display: flex;
    flex-direction: column;
    gap: var(--bpf-field-gap, 18px);
}

/* Compact – tight, minimal breathing room */
.bpf-form--compact   .bpf-form__inner,
.bpf-form--compact   .bpf-step { gap: 10px !important; }
.bpf-form--compact   .bpf-field { margin-bottom: 8px !important; }

/* Comfortable – balanced (default) */
.bpf-form--comfortable .bpf-form__inner,
.bpf-form--comfortable .bpf-step { gap: 22px !important; }
.bpf-form--comfortable .bpf-field { margin-bottom: 18px !important; }

/* Spacious – generous, open feel */
.bpf-form--spacious  .bpf-form__inner,
.bpf-form--spacious  .bpf-step { gap: 38px !important; }
.bpf-form--spacious  .bpf-field { margin-bottom: 32px !important; }

/* =====================================================
   FIELD WRAPPER
===================================================== */

.bpf-field {
    display: flex;
    flex-direction: column;
    gap: 5px;
}

/* Width variants (for multi-column layouts) */
.bpf-field[style*="width"] {
    display: inline-flex;
    vertical-align: top;
}

/* =====================================================
   LABELS
===================================================== */

.bpf-label {
    display: block;
    font-weight: 600;
    font-size: 0.875em;
    color: var(--bpf-text);
    margin-bottom: 2px;
}

.bpf-required {
    color: var(--bpf-error);
    font-weight: 700;
    margin-left: 2px;
}

/* Left-aligned label layout */
.bpf-form--label-left .bpf-field {
    flex-direction: row;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 8px 12px;
}

.bpf-form--label-left .bpf-label {
    width: 30%;
    min-width: 100px;
    flex-shrink: 0;
    padding-top: 8px;
    margin-bottom: 0;
}

.bpf-form--label-left .bpf-field__input-wrap { flex: 1; min-width: 160px; }
.bpf-form--label-left .bpf-field__help       { margin-left: calc(30% + 12px); width: 100%; }
.bpf-form--label-left .bpf-field__error      { margin-left: calc(30% + 12px); width: 100%; }

/* Floating label */
.bpf-form--label-floating .bpf-field {
    position: relative;
}

.bpf-form--label-floating .bpf-label {
    position: absolute;
    top: 10px;
    left: 12px;
    font-size: 0.875em;
    color: var(--bpf-text-muted);
    pointer-events: none;
    transition: top var(--bpf-trans), font-size var(--bpf-trans), color var(--bpf-trans);
    z-index: 1;
    background: var(--bpf-bg);
    padding: 0 3px;
    margin: 0;
}

.bpf-form--label-floating .bpf-input:focus ~ .bpf-label,
.bpf-form--label-floating .bpf-input:not(:placeholder-shown) ~ .bpf-label {
    top: -8px;
    font-size: 0.75em;
    color: var(--bpf-primary);
}

/* =====================================================
   INPUTS
===================================================== */

.bpf-input,
.bpf-textarea,
.bpf-select {
    width: 100%;
    font-family: var(--bpf-font);
    font-size: 1em;
    color: var(--bpf-text);
    background: var(--bpf-bg);
    outline: none;
    transition: border-color var(--bpf-trans), box-shadow var(--bpf-trans);
    appearance: none;
    -webkit-appearance: none;
}

/* Bordered (default) */
.bpf-form--input-bordered .bpf-input,
.bpf-form--input-bordered .bpf-textarea,
.bpf-form--input-bordered .bpf-select {
    border: 1.5px solid var(--bpf-border);
    border-radius: var(--bpf-radius);
    padding: 9px 12px;
}

.bpf-form--input-bordered .bpf-input:focus,
.bpf-form--input-bordered .bpf-textarea:focus,
.bpf-form--input-bordered .bpf-select:focus {
    border-color: var(--bpf-primary);
    box-shadow: 0 0 0 3px rgba(13,141,212,0.12);
}

/* Underline */
.bpf-form--input-underline .bpf-input,
.bpf-form--input-underline .bpf-textarea,
.bpf-form--input-underline .bpf-select {
    border: none;
    border-bottom: 2px solid var(--bpf-border);
    border-radius: 0;
    padding: 9px 2px;
    background: transparent;
}

.bpf-form--input-underline .bpf-input:focus,
.bpf-form--input-underline .bpf-textarea:focus,
.bpf-form--input-underline .bpf-select:focus {
    border-bottom-color: var(--bpf-primary);
    box-shadow: none;
}

/* Minimal */
.bpf-form--input-minimal .bpf-input,
.bpf-form--input-minimal .bpf-textarea,
.bpf-form--input-minimal .bpf-select {
    border: none;
    border-radius: var(--bpf-radius);
    padding: 9px 12px;
    background: var(--bpf-bg-alt);
}

.bpf-form--input-minimal .bpf-input:focus,
.bpf-form--input-minimal .bpf-textarea:focus,
.bpf-form--input-minimal .bpf-select:focus {
    box-shadow: 0 0 0 2px var(--bpf-primary);
}

/* Filled */
.bpf-form--input-filled .bpf-input,
.bpf-form--input-filled .bpf-textarea,
.bpf-form--input-filled .bpf-select {
    border: none;
    border-radius: var(--bpf-radius);
    padding: 12px 14px;
    background: #f1f5f9;
    color: var(--bpf-text);
    font-weight: 500;
}

.bpf-form--input-filled .bpf-input:focus,
.bpf-form--input-filled .bpf-textarea:focus,
.bpf-form--input-filled .bpf-select:focus {
    background: #e8f4fb;
    box-shadow: 0 0 0 2.5px var(--bpf-primary);
    outline: none;
}

/* Bold preset – dark labels, filled inputs, larger text */
.bpf-form--input-filled .bpf-label {
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    font-size: 0.75em;
    color: var(--bpf-text);
}

/* Fallback – bordered if no modifier set */
.bpf-input,
.bpf-textarea {
    border: 1.5px solid var(--bpf-border);
    border-radius: var(--bpf-radius);
    padding: 9px 12px;
}

.bpf-input:focus,
.bpf-textarea:focus {
    border-color: var(--bpf-primary);
    box-shadow: 0 0 0 3px rgba(13,141,212,0.12);
}

/* Select arrow */
.bpf-select {
    padding-right: 32px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M2 4l4 4 4-4' stroke='%2394a3b8' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 10px center;
    cursor: pointer;
}

/* Textarea */
.bpf-textarea { min-height: 100px; resize: vertical; }

/* Calculated (readonly) */
.bpf-input--calculated {
    background: var(--bpf-bg-alt);
    cursor: default;
    color: var(--bpf-text-muted);
    font-weight: 600;
}

/* Date */
.bpf-input--date { cursor: pointer; }

/* File */
.bpf-file {
    width: 100%;
    font-family: var(--bpf-font);
    font-size: 0.875em;
    color: var(--bpf-text-muted);
    cursor: pointer;
    padding: 8px 0;
}

.bpf-file::file-selector-button {
    font-family: var(--bpf-font);
    font-size: 0.875em;
    font-weight: 500;
    padding: 6px 12px;
    border-radius: var(--bpf-radius);
    border: 1.5px solid var(--bpf-border);
    background: var(--bpf-bg-alt);
    color: var(--bpf-text);
    cursor: pointer;
    margin-right: 10px;
    transition: background var(--bpf-trans);
}

.bpf-file::file-selector-button:hover { background: var(--bpf-border); }

/* =====================================================
   RADIO & CHECKBOX
===================================================== */

.bpf-radio-group,
.bpf-checkbox-group {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.bpf-radio-label,
.bpf-checkbox-label {
    display: flex;
    align-items: center;
    gap: 9px;
    font-size: 0.925em;
    color: var(--bpf-text);
    cursor: pointer;
    line-height: 1.4;
}

.bpf-radio,
.bpf-checkbox {
    flex-shrink: 0;
    width: 18px;
    height: 18px;
    accent-color: var(--bpf-primary);
    cursor: pointer;
}

/* =====================================================
   HELP TEXT & ERROR
===================================================== */

.bpf-field__help {
    font-size: 0.8125em;
    color: var(--bpf-text-muted);
    line-height: 1.5;
}

.bpf-field__error {
    font-size: 0.8125em;
    color: var(--bpf-error);
    font-weight: 500;
    min-height: 0;
    line-height: 1.5;
}

.bpf-field.has-error .bpf-input,
.bpf-field.has-error .bpf-textarea,
.bpf-field.has-error .bpf-select {
    border-color: var(--bpf-error);
    box-shadow: 0 0 0 3px rgba(220,38,38,0.1);
}

/* =====================================================
   SUBMIT BUTTON
===================================================== */

.bpf-field__submit { display: flex; }

.bpf-btn-submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 11px 28px;
    background: var(--bpf-primary);
    color: #ffffff;
    font-family: var(--bpf-font);
    font-size: 1em;
    font-weight: 600;
    border: none;
    border-radius: var(--bpf-radius);
    cursor: pointer;
    transition: background var(--bpf-trans), transform var(--bpf-trans), opacity var(--bpf-trans);
    line-height: 1.3;
}

.bpf-btn-submit:hover:not(:disabled) { background: var(--bpf-primary-dk); }
.bpf-btn-submit:active               { transform: scale(0.98); }
.bpf-btn-submit:disabled             { opacity: 0.65; cursor: not-allowed; }

.bpf-btn-submit .bpf-spinner-inline {
    width: 16px;
    height: 16px;
    border: 2px solid rgba(255,255,255,0.4);
    border-top-color: #fff;
    border-radius: 50%;
    animation: bpf-spin-fe 0.6s linear infinite;
    display: inline-block;
}

@keyframes bpf-spin-fe { to { transform: rotate(360deg); } }

/* =====================================================
   MULTI-STEP
===================================================== */

.bpf-step { display: none; }
.bpf-step.is-active { display: block; }

.bpf-steps-indicator { margin-bottom: 24px; }

/* Progress bar variant */
.bpf-steps-indicator--bar .bpf-progress-bar {
    height: var(--bpf-bar-height, 4px);
    background: var(--bpf-bar-track, var(--bpf-bg-alt));
    border-radius: 99px;
    overflow: hidden;
    margin-bottom: 10px;
}

.bpf-steps-indicator--bar .bpf-progress-bar__fill {
    height: 100%;
    background: var(--bpf-bar-fill, var(--bpf-primary));
    border-radius: 99px;
    transition: width 0.4s ease;
}

.bpf-steps-indicator--bar .bpf-steps-labels {
    display: flex;
    justify-content: space-between;
}

.bpf-steps-indicator--bar .bpf-step-label {
    font-size: 0.8125em;
    color: var(--bpf-text-muted);
    font-weight: 500;
    transition: color var(--bpf-trans);
}

.bpf-steps-indicator--bar .bpf-step-label.is-active { color: var(--bpf-indicator-label, var(--bpf-primary)); font-weight: 700; }

/* Dots variant */
.bpf-steps-indicator--dots {
    display: flex;
    justify-content: center;
    gap: 8px;
}

.bpf-step-dot {
    width: var(--bpf-dot-size, 10px);
    height: var(--bpf-dot-size, 10px);
    border-radius: 50%;
    background: var(--bpf-dot-track, var(--bpf-border));
    border: none;
    cursor: default;
    padding: 0;
    transition: background var(--bpf-trans), transform var(--bpf-trans);
}

.bpf-step-dot.is-active {
    background: var(--bpf-dot-fill, var(--bpf-primary));
    transform: scale(1.2);
}

.bpf-step-dot.is-done { background: var(--bpf-dot-fill, var(--bpf-primary)); opacity: 0.55; }

/* Step nav buttons */
.bpf-step-nav {
    display: flex;
    justify-content: space-between;
    margin-top: 16px;
    gap: 10px;
}

.bpf-btn-prev,
.bpf-btn-next {
    padding: 9px 20px;
    font-family: var(--bpf-font);
    font-size: 0.9375em;
    font-weight: 600;
    border-radius: var(--bpf-radius);
    border: none;
    cursor: pointer;
    transition: background var(--bpf-trans), opacity var(--bpf-trans);
}

.bpf-btn-next {
    background: var(--bpf-next-bg, var(--bpf-primary));
    color: var(--bpf-next-fg, #fff);
    border: 2px solid var(--bpf-next-border, transparent);
    border-radius: var(--bpf-next-radius, var(--bpf-radius, 6px));
    margin-left: auto;
}

.bpf-btn-next:hover {
    background: var(--bpf-next-hover, var(--bpf-primary-dk));
}

.bpf-btn-prev {
    background: var(--bpf-prev-bg, var(--bpf-bg-alt));
    color: var(--bpf-prev-fg, var(--bpf-text));
    border: 1.5px solid var(--bpf-prev-border, var(--bpf-border));
    border-radius: var(--bpf-next-radius, var(--bpf-radius, 6px));
}

.bpf-btn-prev:hover {
    background: var(--bpf-prev-hover, var(--bpf-border));
}

/* =====================================================
   SUCCESS & ERROR MESSAGES
===================================================== */

.bpf-message {
    padding: 16px 20px;
    border-radius: var(--bpf-radius);
    font-size: 0.9375em;
    line-height: 1.6;
    margin-top: 8px;
}

.bpf-message--success {
    background: rgba(22,163,74,0.08);
    border: 1px solid rgba(22,163,74,0.25);
    color: #15803d;
}

.bpf-message--error {
    background: rgba(220,38,38,0.07);
    border: 1px solid rgba(220,38,38,0.22);
    color: var(--bpf-error);
}

/* =====================================================
   HONEYPOT
===================================================== */

.bpf-hp {
    position: absolute !important;
    opacity: 0 !important;
    pointer-events: none !important;
    height: 0 !important;
    overflow: hidden !important;
}

/* =====================================================
   RESPONSIVE
===================================================== */

@media ( max-width: 600px ) {
    .bpf-form--label-left .bpf-field    { flex-direction: column; }
    .bpf-form--label-left .bpf-label    { width: 100%; }
    .bpf-form--label-left .bpf-field__help,
    .bpf-form--label-left .bpf-field__error { margin-left: 0; }
    .bpf-btn-submit                     { width: 100%; }
}

/* =====================================================
   SECTION / COLUMN LAYOUT
===================================================== */

.bpf-section {
    display: flex;
    flex-wrap: wrap;
    gap: var(--bpf-col-gap, 24px);
    width: 100%;
}

.bpf-section__col {
    flex: 1;
    min-width: 200px; /* prevents columns from getting too squished */
}

/* Mobile: stack all columns */
@media ( max-width: 640px ) {
    .bpf-section { flex-direction: column; }
    .bpf-section__col { width: 100% !important; flex: none; }
}

/* =====================================================
   LABEL-AS-PLACEHOLDER MODE
===================================================== */

.bpf-form--label-placeholder .bpf-label { display: none !important; }
.bpf-form--label-placeholder .bpf-input::placeholder,
.bpf-form--label-placeholder .bpf-textarea::placeholder { opacity: 1; }

/* =====================================================
   TYPOGRAPHY – custom font family
===================================================== */

.bpf-form[data-font-family] .bpf-label,
.bpf-form[data-font-family] .bpf-input,
.bpf-form[data-font-family] .bpf-textarea,
.bpf-form[data-font-family] .bpf-select,
.bpf-form[data-font-family] .bpf-btn { font-family: var(--bpf-font-family, inherit); }

/* =====================================================
   LABEL WEIGHT
===================================================== */

.bpf-label { font-weight: var(--bpf-label-weight, 600); }

/* =====================================================
   STEP DIVIDER
===================================================== */

.bpf-step-divider {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 8px 0;
    width: 100%;
}

.bpf-step-divider__label {
    font-size: 0.8em;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--bpf-text-muted);
    white-space: nowrap;
}

.bpf-step-divider__line {
    flex: 1;
    height: 1px;
    background: var(--bpf-border);
}

/* =====================================================
   MINIMAL PRESET – fix top misalignment
===================================================== */

/* Underline inputs need the same line-height/padding as bordered so labels align */
.bpf-form--input-underline .bpf-input,
.bpf-form--input-underline .bpf-textarea,
.bpf-form--input-underline .bpf-select {
    line-height: 1.5;
    box-sizing: border-box;
}

.bpf-form--input-underline .bpf-field { justify-content: flex-end; }

/* =====================================================
   SUBMIT BUTTON STYLE OVERRIDES (from style settings)
===================================================== */

.bpf-form[style*="--bpf-submit-bg"] .bpf-btn-submit {
    background: var(--bpf-submit-bg) !important;
}
.bpf-form[style*="--bpf-submit-text"] .bpf-btn-submit {
    color: var(--bpf-submit-text) !important;
}

/* =====================================================
   SUBMIT BUTTON – style CSS vars
===================================================== */

.bpf-btn-submit {
    background:    var(--bpf-submit-bg,     var(--bpf-primary)) !important;
    color:         var(--bpf-submit-fg,     #ffffff) !important;
    border:        2px solid var(--bpf-submit-border, transparent) !important;
    border-radius: var(--bpf-submit-radius, var(--bpf-radius, 6px)) !important;
    transition:    background 0.2s ease, border-color 0.2s ease !important;
}

.bpf-btn-submit:hover {
    background: var(--bpf-submit-hover, var(--bpf-primary-dk)) !important;
}

/* =====================================================
   STEP NUMBERS INDICATOR
===================================================== */

.bpf-steps-indicator--numbers {
    display: flex;
    gap: 0;
    counter-reset: steps;
    margin-bottom: 24px;
    overflow-x: auto;
}

.bpf-step-num-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    flex: 1;
    position: relative;
    padding: 0 8px 12px;
}

.bpf-step-num-item::before {
    content: '';
    position: absolute;
    top: 14px;
    left: calc(50% + 14px);
    right: calc(-50% + 14px);
    height: 2px;
    background: var(--bpf-border);
}

.bpf-step-num-item:last-child::before { display: none; }

.bpf-step-num {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--bpf-border);
    color: var(--bpf-text-muted);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    font-weight: 700;
    position: relative;
    z-index: 1;
}

.bpf-step-num-item.is-active .bpf-step-num {
    background: var(--bpf-dot-fill, var(--bpf-primary));
    color: var(--bpf-dot-fill-fg, #fff);
}

.bpf-step-num-label {
    font-size: 11px;
    color: var(--bpf-text-muted);
    text-align: center;
    white-space: nowrap;
}

.bpf-step-num-item.is-active .bpf-step-num-label {
    color: var(--bpf-indicator-label, var(--bpf-primary));
    font-weight: 600;
}

/* Step nav buttons */
.bpf-step-nav {
    display: flex;
    gap: 10px;
    margin-top: 20px;
}

/* =====================================================
   STEP INDICATOR – done/active states & clickability
===================================================== */

/* Progress bar labels */
.bpf-step-label.is-done    { color: var(--bpf-indicator-label, var(--bpf-primary)); opacity: 0.6; cursor: pointer; }
.bpf-step-label.is-active  { color: var(--bpf-indicator-label, var(--bpf-primary)); font-weight: 600; cursor: default; }

/* Dots */
.bpf-step-dot.is-done  { background: var(--bpf-dot-fill, var(--bpf-primary)); opacity: 0.55; cursor: pointer; }
.bpf-step-dot.is-active { background: var(--bpf-dot-fill, var(--bpf-primary)); opacity: 1; cursor: default; transform: scale(1.2); }

/* Number items */
.bpf-step-num-item.is-done  { cursor: pointer; }
.bpf-step-num-item.is-done .bpf-step-num { background: var(--bpf-dot-fill, var(--bpf-primary)); color: var(--bpf-dot-fill-fg, #fff); opacity: 0.6; }
.bpf-step-num-item.is-done .bpf-step-num-label { color: var(--bpf-indicator-label, var(--bpf-primary)); opacity: 0.6; }

/* Tooltip hint for clickable steps */
.bpf-step-dot.is-done:hover,
.bpf-step-num-item.is-done:hover .bpf-step-num,
.bpf-step-label.is-done:hover { opacity: 1; }

/* =====================================================
   ADDRESS FIELD
===================================================== */

.bpf-address-subfields {
    display: flex;
    flex-direction: column;
    gap: 10px;
    position: relative;
}

.bpf-address-subfield {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.bpf-label--sm {
    font-size: 0.8em;
    color: var(--bpf-text-muted);
    font-weight: 500;
}

/* Autocomplete dropdown */
.bpf-address-suggestions {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    z-index: 999;
    background: #fff;
    border: 1.5px solid var(--bpf-border);
    border-top: none;
    border-radius: 0 0 var(--bpf-radius) var(--bpf-radius);
    box-shadow: 0 6px 20px rgba(0,0,0,0.10);
    max-height: 240px;
    overflow-y: auto;
}

.bpf-address-suggestion {
    padding: 10px 14px;
    font-size: 13.5px;
    color: var(--bpf-text);
    cursor: pointer;
    border-bottom: 1px solid var(--bpf-border);
    line-height: 1.4;
    display: flex;
    align-items: center;
    gap: 8px;
}

.bpf-address-suggestion:last-child { border-bottom: none; }
.bpf-address-suggestion:hover { background: var(--bpf-bg-alt, #f1f5f9); }
.bpf-address-suggestion__icon { color: var(--bpf-primary); font-size: 12px; flex-shrink: 0; }

.bpf-address-powered {
    padding: 6px 12px;
    font-size: 10px;
    color: var(--bpf-text-muted);
    border-top: 1px solid var(--bpf-border);
    text-align: right;
}

/* =====================================================
   GOOGLE PLACES AUTOCOMPLETE DROPDOWN
   pac-container is appended to <body> by Google Maps.
   Needs a high z-index to appear above form containers
   that use overflow:hidden or have their own stacking context.
===================================================== */

.pac-container {
    z-index: 999999 !important;
    border-radius: 6px !important;
    border: 1.5px solid #e2e8f0 !important;
    box-shadow: 0 6px 20px rgba(0,0,0,0.10) !important;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
    margin-top: 2px !important;
}

.pac-item {
    padding: 8px 14px !important;
    font-size: 13.5px !important;
    cursor: pointer !important;
    border-top: 1px solid #f1f5f9 !important;
    line-height: 1.4 !important;
}

.pac-item:first-child { border-top: none !important; }
.pac-item:hover, .pac-item-selected { background: #f8fafc !important; }

.pac-item-query {
    font-size: 13.5px !important;
    color: #1a1a2e !important;
}

.pac-matched { font-weight: 600 !important; }

/* Hide the "powered by Google" logo line height oddity */
.pac-logo::after { margin: 4px 12px !important; }

/* =====================================================
   ADDRESS SUBFIELDS – 2-column compact grid
===================================================== */

.bpf-address-compact-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}

.bpf-address-subfield--full {
    width: 100%;
}

/* Stack to single column on mobile */
@media ( max-width: 480px ) {
    .bpf-address-compact-row {
        grid-template-columns: 1fr;
    }
}

/* =====================================================
   SUBMIT BUTTON – HOVER EFFECTS
===================================================== */

/* Default: darken (existing hover rule handles this) */

/* Lift – rises with shadow */
.bpf-form[style*="--bpf-submit-hover-effect:lift"] .bpf-btn-submit {
    transition: background var(--bpf-trans), transform 0.18s ease, box-shadow 0.18s ease, opacity var(--bpf-trans) !important;
}
.bpf-form[style*="--bpf-submit-hover-effect:lift"] .bpf-btn-submit:hover:not(:disabled) {
    transform: translateY(-3px) !important;
    box-shadow: 0 8px 20px rgba(0,0,0,0.18) !important;
    background: var(--bpf-submit-hover, var(--bpf-primary)) !important;
}

/* Grow – scales up */
.bpf-form[style*="--bpf-submit-hover-effect:grow"] .bpf-btn-submit {
    transition: background var(--bpf-trans), transform 0.18s ease, opacity var(--bpf-trans) !important;
}
.bpf-form[style*="--bpf-submit-hover-effect:grow"] .bpf-btn-submit:hover:not(:disabled) {
    transform: scale(1.05) !important;
    background: var(--bpf-submit-hover, var(--bpf-primary)) !important;
}

/* Shrink – scales down (subtle press feel) */
.bpf-form[style*="--bpf-submit-hover-effect:shrink"] .bpf-btn-submit {
    transition: background var(--bpf-trans), transform 0.18s ease, opacity var(--bpf-trans) !important;
}
.bpf-form[style*="--bpf-submit-hover-effect:shrink"] .bpf-btn-submit:hover:not(:disabled) {
    transform: scale(0.96) !important;
    background: var(--bpf-submit-hover, var(--bpf-primary)) !important;
}

/* Accent bar – coloured bottom border slides in */
.bpf-form[style*="--bpf-submit-hover-effect:accent-bar"] .bpf-btn-submit {
    border-bottom: 3px solid transparent !important;
    transition: background var(--bpf-trans), border-color 0.2s ease, transform 0.18s ease !important;
    padding-bottom: 9px !important;
}
.bpf-form[style*="--bpf-submit-hover-effect:accent-bar"] .bpf-btn-submit:hover:not(:disabled) {
    border-bottom-color: rgba(255,255,255,0.55) !important;
    transform: translateY(-1px) !important;
    background: var(--bpf-submit-hover, var(--bpf-primary)) !important;
}

/* None – no hover change at all */
.bpf-form[style*="--bpf-submit-hover-effect:none"] .bpf-btn-submit:hover:not(:disabled) {
    background: var(--bpf-submit-bg, var(--bpf-primary)) !important;
    transform: none !important;
    box-shadow: none !important;
}
