/* ========================================
   FORM PAGE STYLES
   ======================================== */

/* === CSS VARIABLES === */
:root {
    /* Primary colors */
    --primary-color: #1A7B88;
    --primary-hover: #156772;
    --color-primary: #1A7B88;
    --color-primary-dark: #0D5E6B;

    /* Text colors */
    --text-primary: #111827;
    --text-secondary: #6B7280;

    /* Backgrounds */
    --background: #F9FAFB;
    --card-bg: #FFFFFF;
    --border-color: #E5E7EB;

    /* Status colors */
    --error-color: #EF4444;
    --success-color: #10B981;

    /* Transitions */
    --transition-fast: 0.2s;
    --transition-medium: 0.3s;

    /* Border radius */
    --radius-sm: 0.375rem;
    --radius-md: 0.75rem;
    --radius-lg: 1.5rem;
    --radius-full: 9999px;
}

/* === RESET === */
* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

body {
    font-family: 'Poppins', -apple-system, BlinkMacSystemFont, sans-serif;
    line-height: 1.6;
    background-color: var(--background);
    color: var(--text-primary);
}

/* === FORM LAYOUT === */
.form-layout {
    display: flex;
    min-height: calc(100vh - 90px);
    position: relative;
    padding: 2rem 0;
    margin: 0 auto;
    max-width: 1400px;
    gap: 1.5rem;
    justify-content: center;
}

/* === LEFT SIDEBAR === */
.progress-sidebar {
    width: 320px;
    background: #FFFFFF;
    padding: 1rem 1.5rem;
    position: sticky;
    top: 110px;
    height: auto;
    max-height: calc(100vh - 120px);
    overflow-y: visible;
    z-index: 10;
    border-radius: 16px;
    border: 1px solid #E5E7EB;
    align-self: flex-start;
}

.progress-stepper {
    display: flex;
    flex-direction: column;
    gap: 0;
}

/* === PROGRESS STEP ITEM === */
.progress-step-item {
    position: relative;
    padding: 0.75rem 0;
    opacity: 0.6;
    transition: all 0.3s ease;
}

.progress-step-item:not(.active) {
    padding: 0.5rem 0;
}

.progress-step-item.active {
    opacity: 1;
}

.progress-step-item.completed {
    opacity: 1;
}

.step-indicator {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: #E5E7EB;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 0.5rem;
    border: 3px solid #E5E7EB;
    transition: all 0.3s ease;
    flex-shrink: 0;
}

.progress-step-item:not(.active) .step-indicator {
    margin-bottom: 0.25rem;
}

.progress-step-item.active .step-indicator {
    background: #1A7B88;
    border-color: #1A7B88;
}

.progress-step-item.completed .step-indicator {
    background: #10B981;
    border-color: #10B981;
}

.step-indicator svg {
    color: #6B7280;
    stroke-width: 2;
    transition: all 0.3s ease;
}

.progress-step-item.active .step-indicator svg {
    color: #FFFFFF;
}

.progress-step-item.completed .step-indicator::after {
    content: '✓';
    position: absolute;
    color: #FFFFFF;
    font-size: 20px;
    font-weight: bold;
}

.progress-step-item.completed .step-indicator svg {
    display: none;
}

.progress-step-item:not(.active) .step-indicator {
    width: 48px;
    height: 48px;
}

.progress-step-item:not(.active) .step-indicator svg {
    width: 18px;
    height: 18px;
}

.progress-step-item.active .step-status {
    color: #1A7B88;
    font-weight: 600;
}

.progress-step-item.completed .step-status {
    color: #10B981;
}

.step-content h3 {
    font-size: 0.875rem;
    font-weight: 600;
    color: #111827;
    margin-bottom: 0.25rem;
    transition: all 0.3s ease;
}

.progress-step-item:not(.active) .step-content h3 {
    font-size: 0.75rem;
}

.step-status {
    font-size: 0.7rem;
    color: #6B7280;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    transition: all 0.3s ease;
}

.progress-step-item:not(.active) .step-status {
    font-size: 0.65rem;
}

.step-details {
    margin-top: 0.75rem;
    padding-top: 0.75rem;
    border-top: 1px solid #E5E7EB;
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    transition: all 0.3s ease;
}

.progress-step-item.active .step-details {
    max-height: 500px;
    opacity: 1;
}

.progress-step-item:not(.active) .step-details {
    display: none;
}

.progress-step-item:not(.active) .step-connector {
    height: 20px;
}

.step-description {
    font-size: 0.875rem;
    color: #6B7280;
    line-height: 1.6;
    margin-bottom: 1rem;
}

.step-tips {
    margin-top: 1rem;
}

.step-tips h4 {
    font-size: 0.875rem;
    font-weight: 600;
    color: #111827;
    margin-bottom: 0.75rem;
}

.step-tips ul {
    list-style: none;
    padding: 0;
}

.step-tips li {
    font-size: 0.8125rem;
    color: #4B5563;
    margin-bottom: 0.5rem;
    padding-left: 1.25rem;
    position: relative;
    line-height: 1.5;
}

.step-tips li::before {
    content: '•';
    position: absolute;
    left: 0;
    color: #1A7B88;
    font-weight: bold;
    font-size: 1.2rem;
}

/* === STEP CONNECTOR === */
.step-connector {
    width: 2px;
    height: 40px;
    background: #E5E7EB;
    margin-left: 23px;
    position: relative;
    transition: all 0.3s ease;
}

.progress-step-item.completed+.step-connector {
    background: #10B981;
}

/* === FLOATING HELP BUTTON === */
.floating-help-btn {
    display: none;
}

@media (max-width: 768px) {
    .help-pulse {
        display: none;
    }
}

/* === FORM CONTENT === */
.form-content {
    flex: 1;
    max-width: 900px;
    padding: 1rem 2rem;
    margin: 0;
    align-self: flex-start;
}

/* === FORM TITLE AREA === */
.form-title-area {
    margin: 0 0 1rem 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.form-title {
    color: #0D5E6B;
    font-size: 2rem;
    font-weight: 700;
    line-height: 1.2;
    margin: 0 0 0.25rem 0;
}

.form-subtitle {
    color: #6B7280;
    font-size: 1rem;
    line-height: 1.6;
}

/* === CONTAINER (for compatibility) === */
.container {
    display: flex;
    flex-direction: column;
    width: 100%;
}

/* === DOCUMENT BADGE === */
.document-badge {
    display: inline-block;
    background: #E0F2F5;
    color: #1A7B88;
    font-size: 0.875rem;
    font-weight: 600;
    padding: 0.5rem 1.5rem;
    border-radius: var(--radius-full);
    margin-bottom: 1.5rem;
    border: 2px solid #1A7B88;
    letter-spacing: 0.02em;
    text-align: center;
    position: relative;
    z-index: 2;
}

/* === OLD PROGRESS BAR (kept for mobile) === */
.progress-bar {
    display: none;
}

.progress-bar::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 0;
    right: 0;
    height: 2px;
    background: #e4e0f3;
    z-index: 0;
}

.step {
    background: white;
    border: 2px solid #eeeeee;
    border-radius: var(--radius-full);
    padding: 0.875rem 1.75rem;
    font-size: 0.9375rem;
    font-weight: 600;
    color: #666;
    position: relative;
    z-index: 1;
    transition: all 0.3s ease;
}

.step.active {
    background: #1A7B88;
    border-color: #1A7B88;
    color: white;
}

.step.completed {
    background: #10B981;
    border-color: #10B981;
    color: white;
}

/* === FORM SECTIONS === */
.form-section {
    background: white;
    border-radius: 0.75rem;
    border: 1px solid #e5e7eb;
    padding: 1rem 3rem 3rem 3rem;
    width: 100%;
    transition: all 0.3s ease;
    position: relative;
    margin-bottom: 0;
}

.form-step {
    display: block;
    opacity: 1;
    transition: opacity 0.3s ease;
}

.form-step.hidden {
    display: none;
}

.form-step h2 {
    color: #0D5E6B;
    margin-bottom: 2rem;
    font-size: 1.75rem;
    font-weight: 700;
}

/* New small description where title used to be */
.form-step-description {
    color: #6B7280;
    font-size: 1rem;
    line-height: 1.6;
    margin-bottom: 1.25rem;
}

/* === FORM GROUPS === */
.form-group {
    display: grid;
    gap: 1.25rem;
    margin-bottom: 2.5rem;
    position: relative;
    padding-right: 30px;
}

/* === FORM INPUTS === */
input,
select,
textarea {
    width: 100%;
    padding: 1rem 1.25rem;
    border: 1px solid #e4e0f3;
    border-radius: 0.5rem;
    font-size: 1rem;
    transition: all 0.2s ease;
    background: white;
    color: #333;
    font-family: 'Poppins', -apple-system, BlinkMacSystemFont, sans-serif;
}

input:focus,
select:focus,
textarea:focus {
    outline: none;
    border-color: #1A7B88;
}

input:hover,
select:hover,
textarea:hover {
    border-color: #1A7B88;
}

input:disabled {
    background-color: #f3f4f6;
    cursor: not-allowed;
    opacity: 0.7;
}

input:disabled:hover {
    border-color: #e4e0f3;
}

::placeholder {
    color: #a0a0a0;
    opacity: 0.8;
    transition: opacity 0.2s ease;
}

input:focus::placeholder {
    opacity: 0.6;
}

input[type="date"] {
    position: relative;
    padding-right: 2.5rem;
    cursor: pointer;
    color: #333;
}

input[type="date"]::-webkit-calendar-picker-indicator {
    color: transparent;
    background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%231A7B88' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='4' width='18' height='18' rx='2' ry='2'></rect><line x1='16' y1='2' x2='16' y2='6'></line><line x1='8' y1='2' x2='8' y2='6'></line><line x1='3' y1='10' x2='21' y2='10'></line></svg>") no-repeat;
    width: 20px;
    height: 20px;
    cursor: pointer;
    opacity: 0.6;
    transition: all 0.2s;
    background-size: contain;
    background-position: center;
    background-color: transparent;
}

input[type="date"]::-webkit-calendar-picker-indicator:hover {
    opacity: 1;
}

select {
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%231A7B88' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'></polyline></svg>");
    background-repeat: no-repeat;
    background-position: right 1rem center;
    background-size: 1.2em;
    padding-right: 2.5rem;
    cursor: pointer;
    color: #333;
}

input[type="number"] {
    -webkit-appearance: textfield;
    -moz-appearance: textfield;
    appearance: textfield;
}

input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

/* === INPUT CONTAINERS === */
.input-container,
.select-container,
.date-input-container {
    position: relative;
    width: 100%;
}

/* === CHECKBOX CONTAINER === */
.checkbox-container {
    position: relative;
    width: 100%;
}

.checkbox-label {
    display: flex;
    align-items: center;
    cursor: pointer;
    user-select: none;
    gap: 0.5rem;
}

.checkbox-label input[type="checkbox"] {
    width: 20px;
    height: 20px;
    cursor: pointer;
    accent-color: #1A7B88;
    margin: 0;
    flex-shrink: 0;
}

.checkbox-text {
    font-size: 0.9375rem;
    color: #1A7B88;
    font-weight: 500;
}

.checkbox-label:hover .checkbox-text {
    color: #156772;
}

/* === INFO TOOLTIPS === */
.info-tooltip {
    position: absolute;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    z-index: 5;
    right: -30px;
    top: 50%;
    transform: translateY(-50%);
}

.info-icon {
    width: 20px;
    height: 20px;
    stroke: #1A7B88;
    cursor: pointer;
    opacity: 0.7;
    transition: all 0.2s ease;
}

.info-icon:hover {
    opacity: 1;
    transform: scale(1.1);
}

.tooltip-text {
    position: absolute;
    top: -10px;
    right: 30px;
    background: #0D5E6B;
    color: white;
    padding: 0.75rem 1rem;
    border-radius: 8px;
    font-size: 0.875rem;
    width: max-content;
    max-width: 250px;
    border: 1px solid #0D5E6B;
    opacity: 0;
    visibility: hidden;
    transform: translateY(5px);
    transition: all 0.3s ease;
    pointer-events: none;
    line-height: 1.4;
}

.tooltip-text::after {
    content: '';
    position: absolute;
    top: 50%;
    right: -5px;
    transform: translateY(-50%) rotate(45deg);
    width: 10px;
    height: 10px;
    background: #0D5E6B;
}

.info-tooltip:hover .tooltip-text {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

/* Ensure certificate number input has enough padding for tooltip icon */
#certificateNumber {
    padding-right: 3rem;
}

/* === BUTTONS === */
button {
    padding: 0.75rem 1.5rem;
    border: none;
    border-radius: 0.5rem;
    font-weight: 500;
    font-size: 1rem;
    cursor: pointer;
    transition: all 0.2s ease;
    min-width: 150px;
}

.primary-button {
    background-color: #FF9A00;
    color: white;
    cursor: pointer;
    transition: all 0.2s;
}

.primary-button:hover {
    background-color: #E68A00;
}

.secondary-button {
    background-color: #FF9A00;
    color: white;
    border: none;
}

.secondary-button:hover {
    background-color: #E68A00;
}

a.secondary-button {
    display: inline-flex;
    align-items: center;
    text-decoration: none;
    cursor: pointer;
}

.payment-button {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding-right: 120px;
    background-color: #FF9A00;
    min-width: 220px;
}

.payment-button:hover {
    background-color: #E68A00;
}

.payment-amount {
    position: absolute;
    right: 0;
    top: 0;
    bottom: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 1.25rem;
    background: rgba(255, 255, 255, 0.15);
    border-radius: 0 0.5rem 0.5rem 0;
    font-size: 0.875rem;
    font-weight: 600;
    white-space: nowrap;
}

.button-group {
    display: flex;
    gap: 1rem;
    margin-top: 2rem;
    justify-content: center;
    width: 100%;
    align-items: center;
    flex-wrap: wrap;
}

/* Special layout for step 3 (payment step) */
.step3-button-group {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    margin-top: 2rem;
    justify-content: center;
    width: 100%;
    align-items: center;
}

.step3-button-group .button-row-top {
    display: flex;
    gap: 1rem;
    justify-content: center;
    width: 100%;
    max-width: 600px;
}

.step3-button-group .button-row-top button {
    flex: 1;
    min-width: 0;
}

.step3-button-group .payment-button {
    width: 100%;
    max-width: 600px;
    justify-content: center;
}

.step3-button-group .checkbox-container {
    margin: 0;
    padding: 0;
    width: 100%;
    max-width: 600px;
    display: flex;
    justify-content: center;
}

.step3-button-group .checkbox-label {
    margin: 0;
    justify-content: center;
    text-align: center;
}

.step3-button-group .checkbox-text {
    text-align: center;
}

.payment-info-text {
    text-align: center;
    color: #666;
    font-size: 0.9rem;
    margin-top: 1rem;
    max-width: 500px;
    margin-left: auto;
    margin-right: auto;
}

/* === ERROR MESSAGES === */
.error-message {
    color: var(--error-color);
    font-size: 0.875rem;
    margin-top: 0.25rem;
}

input.error,
select.error {
    border-color: var(--error-color);
    background-color: rgba(239, 68, 68, 0.05);
}

input.error:focus,
select.error:focus {
    box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.1);
}

/* === LOADING INDICATOR === */
.loading-indicator {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: white;
    padding: 1.5rem 2rem;
    border-radius: 0.5rem;
    border: 2px solid #1A7B88;
    z-index: 1000;
    font-weight: 500;
    color: var(--text-primary);
    text-align: center;
    min-width: 220px;
    animation: fadeIn 0.3s ease;
}

@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translate(-50%, -60%);
    }

    to {
        opacity: 1;
        transform: translate(-50%, -50%);
    }
}

/* === OWNER ENTRY === */
.owner-entry {
    background-color: transparent;
    border-radius: 0.75rem;
    padding: 0;
    margin-bottom: 2rem;
    border: none;
    position: relative;
    transition: all 0.3s ease;
}

.owner-entry:hover {
    border-color: transparent;
}

.owner-entry-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1.5rem;
}

.owner-entry-header h3 {
    font-size: 1.25rem;
    font-weight: 600;
    color: #0D5E6B;
    margin: 0;
}

.remove-owner-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 1rem;
    background-color: #EF4444;
    color: white;
    border: none;
    border-radius: 0.5rem;
    font-size: 0.875rem;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.2s ease;
}

.remove-owner-btn:hover {
    background-color: #DC2626;
}

.remove-owner-btn svg {
    width: 16px;
    height: 16px;
    stroke: white;
}

/* === SIGNATURE PAD === */
.signature-section {
    margin-top: 2rem;
    padding-top: 2rem;
    border-top: 1px solid rgba(26, 123, 136, 0.2);
}

.signature-pad-container {
    position: relative;
    width: 100%;
    max-width: 600px;
    margin-bottom: 0;
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
    box-sizing: border-box;
}

.signaturePad {
    width: 100%;
    height: 200px;
    border: 2px solid rgba(26, 123, 136, 0.3);
    border-radius: 0.5rem;
    background: white;
    transition: all 0.2s ease;
    cursor: crosshair;
    touch-action: none;
    z-index: 2;
    position: relative;
}

.signature-placeholder {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    color: rgba(26, 123, 136, 0.3);
    font-size: 1.25rem;
    font-weight: 500;
    pointer-events: none;
    z-index: 1;
    transition: opacity 0.3s ease;
}

.has-signature .signature-placeholder {
    opacity: 0;
}

.signaturePad:hover {
    border-color: rgba(26, 123, 136, 0.7);
}

.has-signature .signaturePad {
    border-color: rgba(26, 123, 136, 0.7);
    border-width: 2px;
}

.signature-controls {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    margin-top: 0.5rem;
    margin-bottom: 0.5rem;
    width: 100%;
    max-width: 600px;
    box-sizing: border-box;
}

.clearSignature {
    background-color: #FFC2D6;
    color: #D1154A;
    border: none;
    border-radius: 0.5rem;
    padding: 10px 16px;
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s ease;
    width: 100%;
    white-space: nowrap;
}

.clearSignature:hover {
    background-color: #FFB3C6;
    color: #A00B36;
}

.clearSignature:before {
    content: "×";
    margin-right: 6px;
    font-size: 18px;
    font-weight: bold;
}

.signature-info {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    font-size: 14px;
    color: #666;
    margin-bottom: 0.75rem;
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
}

/* === ID DOCUMENT UPLOAD === */
.id-upload-container {
    margin: 1rem 0;
    padding: 1rem;
    background-color: #F9FAFB;
    border-radius: 0.5rem;
    border: 1px solid #E5E7EB;
    transition: all 0.2s ease;
}

.id-upload-container:hover {
    border-color: #1A7B88;
}

.file-upload-wrapper {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.file-upload-label {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    cursor: pointer;
}

.file-upload-label-text {
    font-size: 0.875rem;
    font-weight: 600;
    color: #111827;
    display: flex;
    align-items: center;
    gap: 0.25rem;
}

.required-asterisk {
    color: #EF4444;
    font-weight: bold;
}

.file-upload-button {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.75rem 1.25rem;
    background-color: #1A7B88;
    color: white;
    border-radius: 0.5rem;
    font-size: 0.875rem;
    font-weight: 500;
    transition: all 0.2s ease;
    cursor: pointer;
    border: none;
    width: fit-content;
    pointer-events: auto;
    user-select: none;
}

.file-upload-button:hover {
    background-color: #156772;
    transform: translateY(-1px);
    box-shadow: 0 4px 6px rgba(26, 123, 136, 0.2);
}

.file-upload-button svg {
    stroke: white;
}

.file-upload-text {
    color: white;
}

.file-name-display {
    font-size: 0.875rem;
    color: #6B7280;
    margin-top: 0.25rem;
    font-style: italic;
}

.file-upload-help-text {
    font-size: 0.75rem;
    color: #6B7280;
    margin-top: 0.5rem;
    line-height: 1.4;
}

/* === ID UPLOAD NOTIFICATION === */
.id-upload-notification {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    padding: 1rem;
    background-color: #FEF3C7;
    border: 1px solid #FCD34D;
    border-radius: 0.5rem;
    margin-top: 1rem;
    margin-bottom: 1rem;
}

.id-upload-notification svg {
    color: #D97706;
    flex-shrink: 0;
    margin-top: 0.125rem;
}

.notification-text {
    font-size: 0.875rem;
    color: #92400E;
    line-height: 1.5;
    flex: 1;
}

.signature-info svg {
    min-width: 16px;
    color: #1a7b88;
    margin-top: 3px;
}

/* === SIGNATURE ERROR STATE === */
.signature-section.signature-error {
    border: 2px solid var(--error-color);
    border-radius: var(--radius-sm);
    padding: 0.5rem;
    background-color: #FEF2F2;
}

.signature-section.signature-error .signature-pad-container {
    border-color: var(--error-color);
}

.signature-error-message {
    color: var(--error-color);
    font-size: 0.875rem;
    margin-top: 0.5rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.signature-error-message::before {
    content: "⚠";
    font-size: 1rem;
}

/* === FORM PAGE HEADER === */
.form-header {
    background: #0D5E6B;
    border-bottom: 2px solid #1A7B88;
    padding: 1rem 0;
    position: sticky;
    top: 0;
    z-index: 100;
}

.form-header-container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 2rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

/* === FORM HELP TRIGGER === */
.form-help-trigger-top {
    text-align: right;
    margin-bottom: 1rem;
    padding-right: 1rem;
}

.help-trigger-btn {
    background: transparent;
    border: none;
    color: #1A7B88;
    font-size: 0.9rem;
    font-weight: 500;
    cursor: pointer;
    padding: 0;
    transition: all 0.2s ease;
}

.chat-bubble {
    display: inline-block;
    background: transparent;
    color: #FF9A00;
    border: 2px solid #FF9A00;
    padding: 0.4rem 1rem;
    border-radius: 20px;
    font-weight: 600;
    margin-left: 0.5rem;
    transition: all 0.2s ease;
}

.help-trigger-btn:hover .chat-bubble {
    background: #FF9A00;
    color: white;
    border-color: #E68A00;
    transform: scale(1.05);
}

/* === FORM BUTTONS === */
.next-btn {
    background-color: #FF9A00;
    color: white;
    border: none;
    cursor: pointer;
    transition: all 0.2s;
}

.next-btn:hover {
    background-color: #E68A00;
}

.prev-btn {
    background-color: #1A7B88;
    color: white;
    border: none;
    cursor: pointer;
    transition: all 0.2s;
}

.prev-btn:hover {
    background-color: #156772;
}

.add-owner-btn {
    background-color: transparent;
    color: #FF9A00;
    border: 2px solid #FF9A00;
    cursor: pointer;
    transition: all 0.2s;
}

.add-owner-btn:hover {
    background-color: #FF9A00;
    color: white;
}


.form-header-logo {
    display: flex;
    align-items: center;
    text-decoration: none;
}

.form-header-logo img {
    height: 56px;
}

.form-header-back-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.625rem 1.25rem;
    background: transparent;
    color: white;
    border: 2px solid white;
    border-radius: 0.5rem;
    text-decoration: none;
    font-weight: 500;
    transition: all 0.2s ease;
}

.form-header-back-btn:hover {
    background: #FF9A00;
    color: white;
    border-color: #FF9A00;
}

/* Removed browser note - replaced with support section */

/* === HEADER PROGRESS LINE === */
.header-progress {
    width: 100%;
    height: 4px;
    background: transparent;
    position: fixed;
    top: 90px;
    /* sits just under sticky header (56px logo + 16px top padding + 16px bottom padding + 2px border) */
    z-index: 101;
    left: 0;
}

.header-progress-bar {
    width: 100%;
    height: 100%;
    background: #FF9A00;
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.35s ease;
}

/* === RESPONSIVE === */
@media (max-width: 1024px) {
    .form-layout {
        padding: 1.5rem 1rem;
        gap: 1rem;
    }

    .form-content {
        padding: 2rem;
    }

    .progress-sidebar {
        width: 280px;
        padding: 1.5rem 1rem;
    }
}

@media (max-width: 768px) {
    .form-help-trigger-top {
        padding-right: 0.5rem;
        margin-bottom: 0.75rem;
    }

    .help-trigger-btn {
        font-size: 0.85rem;
    }

    .chat-bubble {
        padding: 0.35rem 0.8rem;
        font-size: 0.9em;
    }

    .form-layout {
        flex-direction: column;
        padding: 1rem;
        gap: 0;
    }

    .progress-sidebar {
        display: none;
    }

    .progress-bar {
        display: flex !important;
        justify-content: space-between;
        margin: 2rem 1rem;
        width: calc(100% - 2rem);
        max-width: 920px;
        position: relative;
    }

    .form-content {
        padding: 1.5rem 1rem;
        width: 100%;
    }

    header {
        padding: 0.75rem 0 !important;
        background: #0D5E6B !important;
    }

    header>div {
        padding: 0 1rem !important;
    }

    header a[href="index.html"] span {
        display: none;
    }

    header img {
        height: 48px !important;
    }

    .floating-help-btn .help-btn-text {
        display: none;
    }

    .floating-help-btn {
        padding: 1rem;
        bottom: 20px;
        right: 20px;
    }

    .help-pulse {
        display: none;
    }
}

@media (max-width: 600px) {
    .form-section {
        padding: 1.25rem 0.5rem;
        border-radius: 0.75rem;
        margin-bottom: 1rem;
    }

    .form-group {
        gap: 0.75rem;
        margin-bottom: 1.25rem;
        padding-right: 0;
    }

    input,
    select,
    textarea {
        font-size: 1rem;
        padding: 0.85rem 1rem;
        border-radius: 0.5rem;
    }

    .button-group {
        flex-direction: column;
        gap: 0.75rem;
        margin-top: 1.25rem;
        max-width: 100%;
    }

    .step3-button-group .button-row-top {
        flex-direction: column;
        width: 100%;
        max-width: 100%;
    }

    .step3-button-group .payment-button {
        width: 100%;
        max-width: 100%;
    }

    .step3-button-group .checkbox-container {
        width: 100%;
        max-width: 100%;
    }

    .step3-button-group .checkbox-text {
        font-size: 0.875rem;
        text-align: center;
    }

    .add-owner-container {
        max-width: 100%;
    }

    button,
    .primary-button,
    .secondary-button {
        min-width: 0;
        width: 100%;
        font-size: 1.05rem;
        padding: 1rem 0.5rem;
        border-radius: 0.5rem;
    }


    .form-title-area {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.5rem;
    }

    .form-title {
        font-size: 1.5rem;
    }

    .form-step-description {
        font-size: 0.95rem;
        margin-bottom: 0.85rem;
    }

    .document-badge {
        font-size: 0.95rem;
        padding: 0.4rem 1rem;
        margin-bottom: 1rem;
    }

    .progress-bar {
        flex-direction: column;
        align-items: center;
        gap: 0.5rem;
        margin: 1.5rem 0;
        max-width: 100%;
    }

    .step {
        font-size: 0.95rem;
        padding: 0.6rem 1rem;
        border-radius: var(--radius-full);
    }

    .container {
        padding: 1rem;
        margin-top: 2rem;
    }
}

/* ========================================
   PAYMENT LOGOS SCROLLER
   ======================================== */
.payment-logos-scroller {
    position: relative;
    overflow: hidden;
    margin-top: 1rem;
}

.payment-logos-scroller::before,
.payment-logos-scroller::after {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    width: 48px;
    pointer-events: none;
}

.payment-logos-scroller::before {
    left: 0;
    background: linear-gradient(to right, rgba(255, 255, 255, 1), rgba(255, 255, 255, 0));
}

.payment-logos-scroller::after {
    right: 0;
    background: linear-gradient(to left, rgba(255, 255, 255, 1), rgba(255, 255, 255, 0));
}

.payment-logos-track {
    display: flex;
    gap: 2rem;
    align-items: center;
    width: max-content;
    animation: payment-scroll-left 25s linear infinite;
}

.payment-logos-scroller:hover .payment-logos-track {
    animation-play-state: paused;
}

.payment-logo-item {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 40px;
    min-width: 110px;
    padding: 0 16px;
    border-radius: 9999px;
    border: 1px solid #E5E7EB;
    background: #FFFFFF;
    color: #1A7B88;
    font-weight: 600;
    font-size: 14px;
    white-space: nowrap;
}

@keyframes payment-scroll-left {
    0% {
        transform: translateX(0);
    }

    100% {
        transform: translateX(-50%);
    }
}