/**
 * Application Form Styles
 *
 * Design based on SVG specifications:
 * - Main heading: Behind The Nineties, 50px, medium, uppercase
 * - Section headings: Behind The Nineties, 30px, medium, uppercase
 * - Labels: Poppins Regular, 22px, uppercase
 * - Input values: Poppins Regular, 20px
 * - Help text: Poppins Regular, 16px
 * - Button: Behind The Nineties Bold, 20px, uppercase
 */

/* ========================================================================
   PAGE HEADER SPACING
   ======================================================================== */

#header-box {
    padding-top: 60px;
}

/* ========================================================================
   APPLICATION FORM CONTAINER
   ======================================================================== */

.application-form {
    max-width: 988px;
    margin: 0 auto;
    padding: 60px 0;
    background: #fff;
}

/* Form Title (if added via page content) */
.application-form h1,
.application-form h2.form-title {
    font-family: 'behind_the_nineties', sans-serif;
    font-weight: 500;
    font-size: 50px;
    text-transform: uppercase;
    text-align: left;
    margin-bottom: 40px;
    color: #282828;
}

/* ========================================================================
   MESSAGES (Error/Success)
   ======================================================================== */

#bk-form-messages {
    margin-bottom: 30px;
}

.form-message {
    padding: 20px 30px;
    border-radius: 10px;
    margin-bottom: 20px;
    font-family: 'Poppins', 'Roboto', sans-serif;
    font-size: 16px;
    line-height: 1.6;
}

.form-message__title {
    font-family: 'behind_the_nineties', sans-serif;
    font-size: 24px;
    font-weight: 500;
    margin-top: 0;
    margin-bottom: 15px;
}

.form-message__list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.form-message__list li {
    margin-bottom: 8px;
}

.form-message__list li:last-child {
    margin-bottom: 0;
}

.form-message__list a {
    color: inherit;
    text-decoration: underline;
    font-weight: 500;
}

.form-message__list a:hover {
    text-decoration: none;
}

.form-message--error {
    background-color: #fee;
    border: 2px solid #c33;
    color: #c33;
}

.form-message--success {
    background-color: #efe;
    border: 2px solid #3c3;
    color: #2d5016;
}

/* ========================================================================
   FIELD-LEVEL VALIDATION FEEDBACK
   ======================================================================== */

/* Error state for input fields */
.application-form input.error,
.application-form select.error,
.application-form textarea.error {
    border-color: #c33;
    border-width: 1px;
    background-color: #fff5f5;
}

.application-form input.error:focus,
.application-form select.error:focus,
.application-form textarea.error:focus {
    border-color: #c33;
    box-shadow: 0 0 0 3px rgba(204, 51, 51, 0.1);
}

/* Valid state for input fields */
.application-form input.valid,
.application-form select.valid,
.application-form textarea.valid {
    border-color: #3c3;
    border-width: 1px;
    background-color: #f9fef9;
}

.application-form input.valid:focus,
.application-form select.valid:focus,
.application-form textarea.valid:focus {
    border-color: #3c3;
    box-shadow: 0 0 0 3px rgba(51, 204, 51, 0.1);
}

/* Error message span */
.field-error {
    display: none;
    font-family: 'Poppins', 'Roboto', sans-serif;
    font-size: 14px;
    font-weight: 600;
    color: #c33;
    margin-top: 5px;
    margin-bottom: 0;
}

.field-error:not(:empty) {
    display: block;
}

/* Success indicator span - positioned inside input field */
.field-success {
    display: none !important;
    position: absolute;
    right: 15px;
    top: 50%;
    transform: translateY(-50%);
    margin-top: 0;
    width: auto;
    height: auto;
    color: #3c3;
    font-size: 26px;
    line-height: 1;
    text-align: center;
    font-weight: bold;
    pointer-events: none; /* Don't interfere with input clicks */
    z-index: 10;
}

.field-success::before {
    content: '✓';
}

/* Show success indicator only when input is valid */
.application-form input.valid ~ .field-success,
.application-form select.valid ~ .field-success,
.application-form textarea.valid ~ .field-success {
    display: block !important;
}

/* Position success indicator correctly for different field types */
.application-form .form-group {
    position: relative;
}

/* Better positioning for text inputs - align with input center */
/* Label is ~30px (22px font + 8px margin), Input is ~48px (12+20+12+4), so center is at ~54px */
.application-form input[type="text"] ~ .field-success,
.application-form input[type="email"] ~ .field-success,
.application-form input[type="tel"] ~ .field-success,
.application-form input[type="date"] ~ .field-success {
    top: 54px; /* Label height (30px) + half of input height (24px) */
    transform: none;
}

/* For selects - same positioning */
.application-form select ~ .field-success {
    top: 54px;
    transform: none;
}

/* Add padding to valid inputs so text doesn't overlap with checkmark */
.application-form input.valid,
.application-form select.valid {
    padding-right: 45px;
}

/* For selects, account for dropdown arrow */
.application-form select.valid ~ .field-success {
    right: 45px;
}

/* Don't show success indicator for file inputs and checkboxes */
.application-form input[type="file"] ~ .field-success,
.application-form input[type="checkbox"] ~ .field-success,
.application-form input[type="radio"] ~ .field-success {
    display: none !important;
}

.application-form input[type="checkbox"] + .field-error,
.application-form input[type="radio"] + .field-error {
    position: static;
    display: inline-block;
    margin-left: 10px;
}

/* ========================================================================
   FIELDSETS & LEGENDS
   ======================================================================== */

.application-form fieldset {
    border: none;
    margin: 0 0 40px 0;
    padding: 0;
}

.application-form fieldset:last-of-type {
    margin-bottom: 30px;
}

.application-form legend {
    font-family: 'behind_the_nineties', sans-serif;
    font-weight: 500;
    font-size: 30px;
    text-transform: uppercase;
    color: #282828;
    margin-bottom: 25px;
    width: 100%;
    padding: 0;
    text-align: left;
}

/* ========================================================================
   FORM ROWS & GROUPS
   ======================================================================== */

.application-form .form-row {
    display: flex;
    gap: 20px;
    margin-bottom: 0;
}

.application-form .form-group {
    margin-bottom: 20px;
    display: flex;
    flex-direction: column;
}

/* Width variations */
.application-form .form-group--half {
    flex: 0 0 calc(50% - 10px);
}

.application-form .form-group--one-third {
    flex: 0 0 calc(33.333% - 14px);
}

.application-form .form-group--two-thirds {
    flex: 0 0 calc(66.666% - 7px);
}

.application-form .form-group--one-quarter {
    flex: 0 0 calc(25% - 15px);
}

.application-form .form-group--three-quarter {
    flex: 0 0 calc(75% - 5px);
}

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

.application-form label,
.application-form .label-like {
    font-family: 'Poppins', 'Roboto', sans-serif;
    font-weight: 400;
    font-size: 22px;
    text-transform: uppercase;
    color: #282828;
    margin-bottom: 0;
    display: block;
    text-align: left;
}

.application-form label small {
    font-size: 14px;
    text-transform: none;
    font-weight: 400;
    color: #666;
}

.application-form .form-group--checkbox label {
    text-transform: none;
    font-size: 18px;
    display: flex;
    align-items: flex-start;
    gap: 10px;
    cursor: pointer;
}

/* ========================================================================
   INPUTS, SELECTS, TEXTAREAS
   ======================================================================== */

.application-form input[type="text"],
.application-form input[type="email"],
.application-form input[type="tel"],
.application-form input[type="date"],
.application-form input[type="file"],
.application-form select,
.application-form textarea {
    font-family: 'Poppins', 'Roboto', sans-serif;
    font-weight: 400;
    font-size: 20px;
    color: #282828;
    background: #fff;
    border: 1px solid #282828;
    border-radius: 10px;
    padding: 12px 20px;
    width: 100%;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.application-form input[type="text"]:focus,
.application-form input[type="email"]:focus,
.application-form input[type="tel"]:focus,
.application-form input[type="date"]:focus,
.application-form select:focus,
.application-form textarea:focus {
    outline: none;
    border-color: #d4a047;
    box-shadow: 0 0 0 3px rgba(212, 160, 71, 0.1);
}

.application-form select {
    cursor: pointer;
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23282828' d='M6 8L0 0h12z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 20px center;
    padding-right: 50px;
}

.application-form select:disabled {
    background-color: #f5f5f5;
    cursor: not-allowed;
    opacity: 0.6;
}

.application-form textarea {
    min-height: auto;
    height: 48px;
    resize: vertical;
    font-family: 'Poppins', 'Roboto', sans-serif;
}

/* File inputs */
.application-form input[type="file"] {
    padding: 10px 10px 10px 0;
    font-size: 16px;
    cursor: pointer;
    border: none;
    background: transparent;
}

.application-form input[type="file"]::file-selector-button {
    font-family: 'Poppins', 'Roboto', sans-serif;
    font-weight: 600;
    font-size: 16px;
    padding: 8px 20px;
    margin-right: 15px;
    background: #fff;
    color: #282828;
    border: 2px solid #282828;
    border-radius: 6px;
    cursor: pointer;
    transition: all 0.2s ease;
}

.application-form input[type="file"]::file-selector-button:hover {
    background: #f5f5f5;
    border-color: #000;
}

/* ========================================================================
   RADIO BUTTONS & CHECKBOXES
   ======================================================================== */

.application-form .radio-group {
    display: flex;
    gap: 30px;
    align-items: center;
    margin-top: 8px;
}

.application-form .radio-group label {
    font-family: 'Poppins', 'Roboto', sans-serif;
    font-weight: 400;
    font-size: 20px;
    text-transform: none;
    margin-bottom: 0;
    display: flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
}

.application-form input[type="radio"],
.application-form input[type="checkbox"] {
    width: 20px;
    height: 20px;
    cursor: pointer;
    accent-color: #282828;
}

.application-form .form-group--checkbox {
    flex-direction: row;
    align-items: flex-start;
    gap: 10px;
}

.application-form .form-group--checkbox input[type="checkbox"] {
    flex-shrink: 0;
    margin-top: 4px;
}

.application-form .form-group--checkbox label {
    margin-bottom: 0;
}

.application-form .fieldset-style {
    border: none;
    padding: 0;
}

.application-form .fieldset-style .label-like {
    margin-bottom: 8px;
}

/* ========================================================================
   HELP TEXT & DESCRIPTIONS
   ======================================================================== */

.application-form fieldset > p:not(.form-group) {
    font-family: 'Poppins', 'Roboto', sans-serif;
    font-weight: 400;
    font-size: 16px;
    line-height: 1.6;
    color: #666;
    margin-bottom: 20px;
}

.application-form fieldset > p a {
    color: #d4a047;
    text-decoration: underline;
}

.application-form fieldset > p a:hover {
    text-decoration: none;
}

/* ========================================================================
   FORM FOOTER & SUBMIT BUTTON
   ======================================================================== */

.application-form .form-footer {
    margin-top: 40px;
    margin-bottom: 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
}

.application-form .form-group--submit {
    margin-bottom: 0;
    flex: 1;
}

.application-form .form-group--mandatory-note {
    margin-bottom: 0;
    margin-top: 15px;
}

.application-form .form-group--mandatory-note small {
    font-family: 'Poppins', 'Roboto', sans-serif;
    font-size: 14px;
    color: #666;
    font-style: italic;
}

/* Submit button uses .btn--double-outline-dark from main.css */
.application-form .application-form__submit {
    width: auto !important;
    display: inline-block !important;
    max-width: fit-content;
}

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

@media (max-width: 768px) {
    .application-form {
        padding: 40px 30px;
    }

    .application-form h1,
    .application-form h2.form-title {
        font-size: 36px;
        margin-bottom: 30px;
    }

    .application-form legend {
        font-size: 24px;
        margin-bottom: 20px;
    }

    .application-form label,
    .application-form .label-like {
        font-size: 18px;
    }

    .application-form input[type="text"],
    .application-form input[type="email"],
    .application-form input[type="tel"],
    .application-form input[type="date"],
    .application-form select,
    .application-form textarea {
        font-size: 16px;
        padding: 10px 15px;
    }

    .application-form .form-row {
        flex-direction: column;
        gap: 0;
    }

    .application-form .form-group--half,
    .application-form .form-group--one-third,
    .application-form .form-group--two-thirds,
    .application-form .form-group--one-quarter,
    .application-form .form-group--three-quarter {
        flex: 1 1 auto;
        width: 100%;
    }

    .application-form .radio-group {
        flex-direction: column;
        align-items: flex-start;
        gap: 15px;
    }

    .application-form .form-footer {
        flex-direction: column;
        align-items: stretch;
    }

    .application-form .form-group--mandatory-note {
        text-align: center !important;
    }

    .application-form .application-form__submit,
    .application-form .button--primary {
        width: 100%;
        text-align: center;
    }
}

@media (max-width: 480px) {
    .application-form {
        padding: 30px 20px;
    }

    .application-form h1,
    .application-form h2.form-title {
        font-size: 28px;
    }

    .application-form legend {
        font-size: 20px;
    }

    .application-form label,
    .application-form .label-like {
        font-size: 16px;
    }

    /* Submit button responsive styles inherited from .btn--double-outline-dark */
}
