/* ── La Farga Becas — Form styles ── */

:root {
    --lfb-header-height:      160px; /* Avada sticky header ~134px + small breathing space */
    --lfb-color-primary:          #de5636;
    --lfb-color-primary-dark:     #bc4024;
    --lfb-color-primary-disabled: #ffa873;
    --lfb-color-primary-tint:     rgba(222, 86, 54, 0.07);
    --lfb-color-accent:       #00a8a9;
    --lfb-color-accent-tint:  rgba(0, 168, 169, 0.08);
    --lfb-color-text:         #141617;
    --lfb-color-text-mid:     #434549;
    --lfb-color-text-muted:   #6b7280; /* was #919191 — bumped for WCAG AA contrast */
    --lfb-color-bg:           #f4f4f4;
    --lfb-color-bg-soft:      #f2f3f5;
    --lfb-color-white:        #ffffff;
    --lfb-color-border:       rgba(67, 69, 73, 0.15);
    --lfb-color-success:      #12b878;
    --lfb-color-success-bg:   rgba(18, 184, 120, 0.08);
    --lfb-color-error:        #db4b68;
    --lfb-color-error-bg:     rgba(219, 75, 104, 0.08);
    --lfb-radius-input:       10px;
    --lfb-radius-card:        10px;
    --lfb-radius-btn:         50px;
    --lfb-font:               Silka, Poppins, Arial, Helvetica, sans-serif;
    --lfb-input-height:       50px;
}

.lfb-wrap {
    max-width: 900px;
    margin: 40px auto;
    padding: 0 20px;
    font-family: var(--lfb-font);
    color: var(--lfb-color-text);
    box-sizing: border-box;
    scroll-margin-top: var(--lfb-header-height);
}

/* ── Progress ── */
.lfb-progress {
    margin-bottom: 40px;
}

.lfb-stepbar {
    position: relative;
    padding-bottom: 4px;
}

.lfb-stepbar__track {
    position: absolute;
    left: 10px;
    right: 10px;
    top: 10px;
    height: 3px;
    background: #f4f4f5;
    transform: translateY(-50%);
}

.lfb-stepbar__fill {
    height: 100%;
    background: var(--lfb-color-primary);
    width: 0%;
    transition: width 0.35s ease;
}

.lfb-stepbar__steps {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    position: relative;
    z-index: 1;
}

.lfb-stepbar__step {
    width: 20px;
    flex: none;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
}

.lfb-stepbar__dot {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: #f4f4f5;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    box-sizing: border-box;
}

.lfb-stepbar__num {
    font-size: 12px;
    font-weight: 700;
    color: #71717a;
    line-height: 1;
}

.lfb-stepbar__step.active .lfb-stepbar__dot {
    background: #fcf2e8;
    border: 2px solid var(--lfb-color-primary);
}

.lfb-stepbar__step.active .lfb-stepbar__num {
    color: var(--lfb-color-primary);
}

.lfb-stepbar__step.active .lfb-stepbar__label {
    color: var(--lfb-color-primary);
}

.lfb-stepbar__step.completed .lfb-stepbar__dot {
    background: var(--lfb-color-primary);
}

.lfb-stepbar__step.completed .lfb-stepbar__num {
    display: none;
}

.lfb-stepbar__step.completed .lfb-stepbar__dot::after {
    content: '';
    display: block;
    width: 8px;
    height: 5px;
    border-left: 2px solid #fff;
    border-bottom: 2px solid #fff;
    transform: rotate(-45deg) translate(1px, -1px);
}

.lfb-stepbar__label {
    font-size: 11px;
    font-weight: 500;
    color: #71717a;
    text-transform: uppercase;
    letter-spacing: 0.55px;
    text-align: center;
    white-space: nowrap;
    line-height: 1;
}

.lfb-stepbar__step:first-child {
    align-items: flex-start;
}

.lfb-stepbar__step:last-child {
    align-items: flex-end;
}

.lfb-stepbar__step:last-child .lfb-stepbar__label {
    text-align: right;
}

.lfb-progress-mobile {
    display: none;
    font-size: 12px;
    color: var(--lfb-color-text-muted);
    margin-top: 8px;
    font-weight: 500;
}

.lfb-progress-mobile strong {
    color: var(--lfb-color-primary);
    font-weight: 700;
}

/* ── Step header ── */
.lfb-step-header {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    margin-bottom: 32px;
}

.lfb-step-num {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: var(--lfb-color-primary);
    color: var(--lfb-color-white);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 15px;
    font-weight: 700;
    flex-shrink: 0;
    margin-top: 2px;
}

.lfb-step-header h2 {
    font-size: 1.4rem !important;
    font-weight: 400;
    margin: 0 0 6px !important;
    line-height: 1.2 !important;
    letter-spacing: -0.015em;
}

.lfb-step-header p {
    margin: 0;
    color: var(--lfb-color-text-muted);
    font-size: 14px;
    line-height: 1.5;
}

/* ── Profile grid ── */
.lfb-profile-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    margin-bottom: 24px;
}

.lfb-profile-card {
    border: 1.5px solid var(--lfb-color-border);
    border-radius: 24px;
    padding: 17px;
    cursor: pointer;
    transition: border-color 0.15s, box-shadow 0.15s, background 0.15s;
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 16px;
    background: var(--lfb-color-white);
}

.lfb-profile-card:hover {
    border-color: #fd7354;
    background: #fcf2e8;
    box-shadow: 4px 4px 8px #ffd8b2;
}

.lfb-profile-card.selected,
.lfb-wrap .lfb-profile-card:has(input:checked) {
    border-color: #fd7354;
    background: #fcf2e8;
    box-shadow: none;
}

.lfb-profile-card input[type="radio"] {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.lfb-profile-icon {
    background: #de5636;
    border-radius: 50%;
    width: 64px;
    height: 64px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 6px;
}

.lfb-profile-icon img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    filter: brightness(0) invert(1);
}

.lfb-profile-text {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding-block: 4px;
}

.lfb-profile-card strong {
    font-size: 16px;
    font-weight: 600;
    color: #0c0a09;
    line-height: 1.2;
}

.lfb-profile-card span {
    font-size: 14px;
    color: var(--lfb-color-text-muted);
    line-height: 1.2;
}

/* ── Fields ── */
.lfb-fields { display: flex; flex-direction: column; gap: 20px; }

.lfb-field-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}

.lfb-field { display: flex; flex-direction: column; gap: 6px; }
.lfb-field[hidden] { display: none; }

.lfb-field label {
    font-size: 13px;
    font-weight: 500;
    color: var(--lfb-color-text-mid);
}

.lfb-req { color: var(--lfb-color-primary); }

.lfb-field input[type="text"],
.lfb-field input[type="email"],
.lfb-field input[type="tel"],
.lfb-field input[type="number"] {
    border: 1px solid transparent;
    border-radius: var(--lfb-radius-input);
    padding: 0 15px;
    height: var(--lfb-input-height);
    font-size: 16px;
    outline: none;
    transition: border-color 0.15s, box-shadow 0.15s;
    width: 100%;
    box-sizing: border-box;
    background: var(--lfb-color-bg);
    font-family: var(--lfb-font);
    color: var(--lfb-color-text);
}

.lfb-field input::placeholder {
    color: var(--lfb-color-text-muted);
}

.lfb-field input:focus {
    border-color: var(--lfb-color-accent);
    box-shadow: 0 0 0 3px rgba(0, 168, 169, 0.12);
}

.lfb-field input.error {
    border-color: var(--lfb-color-error);
}

.lfb-field small {
    font-size: 12px;
    color: var(--lfb-color-text-muted);
    line-height: 1.4;
}

/* ── Input with prefix ── */
.lfb-input-prefix {
    display: flex;
    align-items: center;
    border: 1px solid transparent;
    border-radius: var(--lfb-radius-input);
    overflow: hidden;
    background: var(--lfb-color-bg);
    transition: border-color 0.15s, box-shadow 0.15s;
    height: var(--lfb-input-height);
}

.lfb-input-prefix:focus-within {
    border-color: var(--lfb-color-accent);
    box-shadow: 0 0 0 3px rgba(0, 168, 169, 0.12);
}

.lfb-input-prefix > span {
    padding: 0 15px;
    background: var(--lfb-color-bg-soft);
    border-right: 1px solid var(--lfb-color-border);
    font-size: 14px;
    color: var(--lfb-color-text-muted);
    font-weight: 500;
    height: 100%;
    display: flex;
    align-items: center;
}

.lfb-input-prefix input {
    border: none !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    padding: 0 15px !important;
    height: 100% !important;
    flex: 1;
    min-width: 0;
}

/* ── Upload area ── */
.lfb-upload-area {
    border: 1.5px dashed var(--lfb-color-border);
    border-radius: var(--lfb-radius-card);
    padding: 24px;
    text-align: center;
    cursor: pointer;
    transition: border-color 0.15s, background 0.15s;
    position: relative;
    background: var(--lfb-color-bg);
}

.lfb-upload-area:hover,
.lfb-upload-area.drag-over {
    border-color: var(--lfb-color-primary);
    background: var(--lfb-color-primary-tint);
}

.lfb-upload-area.has-file {
    border-color: var(--lfb-color-success);
    background: var(--lfb-color-success-bg);
}

.lfb-upload-area.error {
    border-color: var(--lfb-color-error);
    background: var(--lfb-color-error-bg);
}

.lfb-file-input {
    position: absolute;
    inset: 0;
    opacity: 0;
    cursor: pointer;
    width: 100%;
    height: 100%;
}

.lfb-upload-icon { font-size: 24px; display: block; margin-bottom: 6px; }

.lfb-upload-label > span {
    font-size: 13px;
    color: var(--lfb-color-text-mid);
    display: block;
}

.lfb-upload-label small {
    font-size: 11px;
    color: var(--lfb-color-text-muted);
    margin-top: 4px;
    display: block;
}

.lfb-file-name {
    font-size: 13px;
    color: var(--lfb-color-success);
    font-weight: 600;
    margin-top: 8px;
}

/* ── Radio group ── */
.lfb-radio-group { display: flex; gap: 12px; flex-wrap: wrap; }

.lfb-radio-option {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 16px;
    border: 1px solid var(--lfb-color-border);
    border-radius: var(--lfb-radius-btn);
    cursor: pointer;
    transition: border-color 0.15s, background 0.15s;
    font-size: 14px;
    background: var(--lfb-color-bg);
}

.lfb-radio-option:hover {
    border-color: var(--lfb-color-primary);
    background: var(--lfb-color-primary-tint);
}

.lfb-radio-option input:checked + span {
    color: var(--lfb-color-primary);
    font-weight: 600;
}

.lfb-wrap .lfb-radio-option:has(input:checked) {
    border-color: var(--lfb-color-primary);
    background: var(--lfb-color-primary-tint);
}

.lfb-radio-option input[type="radio"] {
    accent-color: var(--lfb-color-primary);
}

/* ── Worker relation + NEE sub-selectors ── */
#lfb-worker-relation,
#lfb-nee-accionista {
    margin-top: 16px;
    padding: 16px;
    border-radius: 8px;
}

#lfb-worker-relation {
    background: #f0f9ff;
    border: 1px solid #bae6fd;
}

#lfb-nee-accionista {
    background: #fefce8;
    border: 1px solid #fde68a;
}

.lfb-relation-title {
    margin: 0 0 12px;
    font-weight: 600;
    font-size: 14px;
    color: var(--lfb-color-text);
}

.lfb-relation-group {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}

.lfb-nee-option {
    flex: 1;
    min-width: 160px;
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 12px 16px;
    border: 1.5px solid var(--lfb-color-border);
    border-radius: 24px;
    cursor: pointer;
    background: var(--lfb-color-white);
    transition: border-color 0.15s, box-shadow 0.15s, background 0.15s;
    font-size: 14px;
}

.lfb-nee-option:hover {
    border-color: #fd7354;
    background: #fcf2e8;
    box-shadow: 4px 4px 8px #ffd8b2;
}

.lfb-wrap .lfb-nee-option:has(input:checked) {
    border-color: #fd7354;
    background: #fcf2e8;
    box-shadow: none;
}

.lfb-nee-option input[type="radio"] {
    accent-color: var(--lfb-color-primary);
    width: 16px;
    height: 16px;
    flex-shrink: 0;
    margin: 0;
    align-self: center;
}

.lfb-blocked-notice {
    margin-top: 12px;
    padding: 12px 16px;
    background: #fef2f2;
    border: 1px solid #fca5a5;
    border-radius: 6px;
    font-size: 13px;
    color: #7f1d1d;
}

/* ── Info box ── */
.lfb-info-box {
    background: var(--lfb-color-accent-tint);
    border-left: 4px solid var(--lfb-color-accent);
    border-radius: 0 var(--lfb-radius-input) var(--lfb-radius-input) 0;
    padding: 16px 20px;
    font-size: 13px;
    line-height: 1.6;
}

.lfb-info-box > strong { display: block; margin-bottom: 4px; color: var(--lfb-color-accent); }
.lfb-info-box p { margin: 0; color: var(--lfb-color-text-mid); }

/* ── DNI status ── */
.lfb-dni-status {
    padding: 14px 18px;
    border-radius: var(--lfb-radius-input);
    font-size: 14px;
    font-weight: 500;
    margin-top: 16px;
    line-height: 1.5;
}

.lfb-spinner {
    display: inline-block;
    width: 12px;
    height: 12px;
    border: 2px solid currentColor;
    border-top-color: transparent;
    border-radius: 50%;
    animation: lfb-spin 0.6s linear infinite;
    vertical-align: middle;
    margin-right: 4px;
}

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

.lfb-dni-status.ok      { background: var(--lfb-color-success-bg); color: #0d7a50; border: 1px solid rgba(18, 184, 120, 0.25); }
.lfb-dni-status.blocked { background: var(--lfb-color-error-bg);   color: #a83050; border: 1px solid rgba(219, 75, 104, 0.25); }
.lfb-dni-status.loading { background: var(--lfb-color-bg);          color: var(--lfb-color-text-muted); border: 1px solid var(--lfb-color-border); }

/* ── Summary ── */
.lfb-summary {
    background: var(--lfb-color-bg);
    border: 1px solid var(--lfb-color-border);
    border-radius: var(--lfb-radius-card);
    padding: 24px;
    margin-bottom: 24px;
    font-size: 14px;
}

.lfb-summary h3 {
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: var(--lfb-color-text-muted);
    margin: 0 0 12px;
    padding-bottom: 8px;
    border-bottom: 1px solid var(--lfb-color-border);
}

.lfb-summary-row {
    display: flex;
    justify-content: space-between;
    padding: 6px 0;
    border-bottom: 1px solid rgba(67, 69, 73, 0.07);
    gap: 16px;
}

.lfb-summary-row:last-child { border-bottom: none; }
.lfb-summary-label { color: var(--lfb-color-text-muted); flex-shrink: 0; }
.lfb-summary-value { font-weight: 600; text-align: right; }

/* ── Checkbox ── */
.lfb-checkbox-field { margin-top: 4px; }

.lfb-checkbox-label {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    cursor: pointer;
    font-size: 13px;
    line-height: 1.5;
    color: var(--lfb-color-text-mid);
}

.lfb-checkbox-label input[type="checkbox"] {
    width: 16px;
    height: 16px;
    margin-top: 2px;
    flex-shrink: 0;
    accent-color: var(--lfb-color-primary);
}

.lfb-checkbox-label a { color: var(--lfb-color-primary); }

/* ── Field error ── */
.lfb-field-error {
    color: var(--lfb-color-error);
    font-size: 13px;
    margin-top: 6px;
    font-weight: 500;
}

/* ── Navigation ── */
.lfb-nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 36px;
    padding-top: 24px;
    border-top: 1px solid var(--lfb-color-border);
}

.lfb-nav-right { margin-left: auto; }

.lfb-btn {
    padding: 13px 29px;
    border-radius: var(--lfb-radius-btn);
    font-size: 18px;
    font-weight: 500;
    border: none;
    cursor: pointer;
    transition: background 0.15s, opacity 0.15s;
    font-family: var(--lfb-font);
    letter-spacing: 0.015em;
    line-height: 1.2;
}

.lfb-btn-primary {
    background: var(--lfb-color-primary);
    color: var(--lfb-color-white);
}

.lfb-btn-primary:hover,
.lfb-btn-primary:focus { background: var(--lfb-color-primary-dark); color: var(--lfb-color-white) !important; }
.lfb-btn-primary:disabled { background: var(--lfb-color-primary-disabled); cursor: not-allowed; }

.lfb-btn-secondary {
    background: var(--lfb-color-bg);
    color: var(--lfb-color-text-mid);
    border: 1px solid var(--lfb-color-border);
}

.lfb-btn-secondary:hover { background: var(--lfb-color-bg-soft); }

.lfb-btn:focus-visible {
    outline: 2px solid #0ba5ec;
    outline-offset: 4px;
}

/* ── Form footer (legal docs download links) ── */
.lfb-form-footer {
    margin-top: 24px;
    padding-block: 16px;
    border-top: 1px solid var(--lfb-color-border, #e5e5e5);
}

.lfb-form-footer__links {
    margin: 0;
    padding: 0;
    list-style: none;
    display: grid;
    gap: 8px;
}

.lfb-form-footer__link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding-block: 4px;
    color: var(--lfb-color-primary, #df5636);
    text-decoration: none;
    font-size: 14px;
    font-weight: 500;
}

.lfb-form-footer__link:hover {
    text-decoration: underline;
}

.lfb-form-footer__icon {
    flex-shrink: 0;
}

/* ── Result screen (inline, inside the form) ── */
.lfb-result {
    text-align: center;
    padding: 48px 24px;
    border-radius: var(--lfb-radius-card);
}
.lfb-result.success {
    background: var(--lfb-color-success-bg);
    border: 1px solid rgba(18, 184, 120, 0.25);
}
.lfb-result.denied {
    background: var(--lfb-color-error-bg);
    border: 1px solid rgba(219, 75, 104, 0.25);
}
.lfb-result-icon { font-size: 56px; margin-bottom: 16px; }
.lfb-result h3 {
    margin: 0 0 12px;
    font-size: 1.25rem;
    font-weight: 600;
    letter-spacing: -0.015em;
}
.lfb-result p { color: var(--lfb-color-text-muted); margin: 0; line-height: 1.6; }
.lfb-result .lfb-expedient {
    display: inline-block;
    background: var(--lfb-color-white);
    border: 1.5px solid var(--lfb-color-success);
    color: #0d7a50;
    font-weight: 700;
    font-size: 18px;
    padding: 10px 24px;
    border-radius: var(--lfb-radius-btn);
    margin: 20px 0;
    font-family: monospace;
    letter-spacing: 0.05em;
}

/* ── Thank-you page (full-page shortcode) ── */
.lfb-thanks-wrap {
    display: grid;
    gap: 40px;
}

/* Step bar */
.lfb-thanks-stepbar {
    position: relative;
    display: flex !important;
    flex-direction: row !important;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0;
    max-width: 860px;
    margin: 0 auto;
    width: 100%;
}
.lfb-thanks-stepbar__line {
    position: absolute;
    top: 10px;
    left: 10px;
    right: 10px;
    height: 3px;
    background: var(--lfb-color-primary, #de5636);
    z-index: 0;
}
.lfb-thanks-stepbar__step {
    display: flex !important;
    flex-direction: column !important;
    align-items: center;
    gap: 8px;
    position: relative;
    z-index: 1;
    flex: 1;
    min-width: 0;
}
.lfb-thanks-stepbar__dot {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: var(--lfb-color-primary, #de5636);
    display: flex !important;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.lfb-thanks-stepbar__dot svg {
    width: 12px;
    height: 12px;
    display: block !important;
}
.lfb-thanks-stepbar__step span {
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 0.55px;
    text-transform: uppercase;
    color: var(--lfb-color-text-muted, #71717a);
    text-align: center;
    white-space: nowrap;
    display: block !important;
}

/* Form area */
.lfb-thanks-form {
    display: grid;
    gap: 0;
}

/* Card */
.lfb-thanks-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 24px;
    padding: 40px;
    border-radius: 24px;
    border: 1px solid;
    text-align: center;
}
.lfb-thanks-card--success {
    background: #ecfdf5;
    border-color: #34d399;
}
.lfb-thanks-card--denied {
    background: #fef2f2;
    border-color: #fca5a5;
}
.lfb-thanks-card--warning {
    background: #fffbeb;
    border-color: #fcd34d;
}
.lfb-thanks-card--info {
    background: #f0f9ff;
    border-color: #7dd3fc;
}

/* Icon circle */
.lfb-thanks-card__icon {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.lfb-thanks-card__icon--success  { background: #10b978; }
.lfb-thanks-card__icon--denied   { background: #ef4444; }
.lfb-thanks-card__icon--warning  { background: #f59e0b; }
.lfb-thanks-card__icon--info     { background: #0ea5e9; }

/* Title — double selector to beat Avada's .post-content h2 specificity */
.lfb-thanks-card .lfb-thanks-card__title {
    margin: 0;
    font-size: 34px !important;
    font-weight: 400 !important;
    line-height: 1.15 !important;
    letter-spacing: -0.34px !important;
    color: #141617;
}

/* Description */
.lfb-thanks-card__desc {
    margin: 0 !important;
    font-size: 14px;
    color: #3f3f46;
    line-height: 1.6;
    letter-spacing: 0.225px;
}
.lfb-thanks-card__desc--bold {
    font-weight: 600;
    font-size: 15px;
    color: #141617;
}

/* Expedient badge */
.lfb-thanks-card__expedient {
    display: inline-block;
    background: #fff;
    border: 1px solid #34d399;
    color: #059669;
    font-weight: 500;
    font-size: 17px;
    padding: 12px 24px;
    border-radius: 9999px;
    letter-spacing: 0.02em;
}
.lfb-thanks-card__expedient--denied {
    border-color: #fca5a5;
    color: #dc2626;
}

/* Bottom nav */
.lfb-thanks-nav {
    border-top: 1px solid rgba(67, 69, 73, 0.15);
    display: flex;
    align-items: center;
    justify-content: center;
    padding-top: 24px;
    margin-top: 24px;
}

.lfb-thanks-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    text-decoration: none;
}
.lfb-thanks-btn__arrow { flex-shrink: 0; }

@media (max-width: 640px) {
    .lfb-thanks-card { padding: 24px 20px; }
    .lfb-thanks-card__title { font-size: 24px; }
    .lfb-thanks-stepbar__step span { display: none; }
}

/* ── Template: header offset ── */
body.page-template-templatespage-becas-php #main {
    padding-top: 160px !important; /* desktop: sticky header ~134px */
}
@media (max-width: 640px) {
    body.page-template-templatespage-becas-php #main {
        padding-top: 90px !important; /* mobile hamburger header ~70px */
    }
}

/* ── Campaign closed / not open ── */
.lfb-closed {
    background: var(--lfb-color-bg);
    border: 1px solid var(--lfb-color-border);
    border-radius: var(--lfb-radius-card);
    padding: 48px 32px;
    text-align: center;
    max-width: 560px;
    margin: 0 auto;
}

.lfb-closed__icon {
    font-size: 48px;
    line-height: 1;
    margin-bottom: 20px;
}

.lfb-closed__title {
    margin: 0 0 12px;
    font-size: 1.5rem !important;
    font-weight: 400;
    letter-spacing: -0.015em;
    color: var(--lfb-color-text);
    line-height: 1.25 !important;
}

.lfb-closed__desc {
    margin: 0 0 12px;
    color: var(--lfb-color-text-mid);
    line-height: 1.6;
    font-size: 15px;
}

.lfb-closed__desc strong {
    color: var(--lfb-color-primary);
    font-weight: 600;
}

.lfb-closed__contact {
    margin: 0;
    color: var(--lfb-color-text-muted);
    font-size: 13px;
}

/* ── Upload progress (submit) ── */
.lfb-upload-progress {
    margin-top: 16px;
    text-align: center;
    padding: 8px 0;
}

.lfb-upload-progress-label {
    margin: 0 0 8px;
    font-size: 13px;
    color: var(--lfb-color-text-muted);
}

.lfb-upload-progress-track {
    background: var(--lfb-color-bg-soft);
    border-radius: 4px;
    height: 6px;
    overflow: hidden;
    margin-bottom: 6px;
}

.lfb-upload-progress-bar {
    height: 6px;
    background: var(--lfb-color-primary);
    border-radius: 4px;
    width: 0%;
    transition: width 0.2s linear;
}

.lfb-upload-progress-pct {
    margin: 0;
    font-size: 12px;
    font-weight: 700;
    color: var(--lfb-color-primary);
}

/* ── Responsive ── */
@media (min-width: 601px) and (max-width: 900px) {
    .lfb-wrap { padding: 0 32px; }
}

@media (max-width: 600px) {
    .lfb-profile-grid { grid-template-columns: 1fr; }
    .lfb-field-row { grid-template-columns: 1fr; }
    .lfb-stepbar { display: none; }
    .lfb-progress-mobile { display: block; }

    .lfb-wrap { padding: 0 16px; }

    .lfb-nav {
        flex-direction: column-reverse;
        gap: 10px;
    }
    .lfb-nav-right { margin-left: 0; width: 100%; }
    .lfb-btn { width: 100%; text-align: center; justify-content: center; }

    .lfb-radio-group { flex-direction: column; }

    .lfb-closed { padding: 32px 20px; }
}

/* ── Threshold modal ─────────────────────────────────────────────────────── */
.lfb-modal { position: fixed; inset: 0; z-index: 99999; display: flex; align-items: center; justify-content: center; padding: 20px; }
.lfb-modal[hidden] { display: none; }
.lfb-modal__overlay { position: absolute; inset: 0; background: rgba(20, 22, 23, 0.55); }
.lfb-modal__box {
    position: relative;
    background: var(--lfb-color-white);
    border-radius: var(--lfb-radius-card);
    max-width: 710px;
    width: 100%;
    padding: 40px 44px;
    text-align: center;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.25);
}
.lfb-modal__icon { display: inline-flex; margin: 0 0 18px; }
.lfb-modal__title {
    margin: 0;
    font-size: 34px !important;
    font-weight: 400 !important;
    line-height: 1.15 !important;
    letter-spacing: -0.34px !important;
    color: #141617;
}
.lfb-modal__body { font-size: 16px; color: var(--lfb-color-text-mid); line-height: 1.55; margin: 16px 0 28px; }
.lfb-modal__actions { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
@media (max-width: 540px) {
    .lfb-modal__box { padding: 28px 20px; }
    .lfb-modal__title { font-size: 26px !important; }
    .lfb-modal__actions { flex-direction: column-reverse; }
    .lfb-modal__actions .lfb-btn { width: 100%; }
}
