/* Trip Payment Form – Fully Responsive & Accessible */

body {
    font-family: 'Roboto', sans-serif;
    background-color: #ffffff !important;
    color: #000000 !important;
}


input,
select,
textarea {
    color: #000000 !important;
    border: 1px solid #aba7a7 !important;
    border-radius: 12px !important;
}

/* Main Container */
.trip-payment-form {
    max-width: 800px !important;
    margin: 3rem auto !important;
    padding: 2rem !important;
    background: #ffffff !important;
    border-radius: 8px !important;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05) !important;
}

/* Section Headings */
.trip-payment-form h3 {
    border-bottom: 1px solid #e0e0e0 !important;
    padding-bottom: 0.5rem !important;
    font-weight: 700 !important;
}

/* Labels */
.trip-payment-form label {
    display: block !important;
    margin: 0.5rem 0 0.25rem !important;
    font-weight: 500 !important;
    color: #000000 !important;
}

.trip-payment-form input,
.trip-payment-form select,
.trip-payment-form textarea {
    padding: 12px 16px !important;
    margin-bottom: 1rem !important;
    border: 1px solid #aba7a7 !important;
    border-radius: 12px !important;
    font-size: 1rem !important;
    background-color: #fafafa !important;
    transition: all 0.3s ease !important;
    box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1) !important;
}

.trip-payment-form input::placeholder {
    color: #9e9e9e !important;
}

.trip-payment-form input:focus,
.trip-payment-form select:focus,
.trip-payment-form textarea:focus {
    border-color: #daba70 !important;
    box-shadow: 0 0 0 2px rgba(98, 0, 238, 0.1), 0 2px 6px rgba(0, 0, 0, 0.08) !important;
    outline: none !important;
    background-color: #ffffff !important;
}

/* Error Handling */
.input-error {
    border-color: #b00020 !important;
    box-shadow: 0 0 0 1px #b00020 !important;
}

.error-message {
    color: #b00020 !important;
    font-size: 0.875rem !important;
    margin-top: -0.5rem !important;
    margin-bottom: 1rem !important;
}

/* Group Fields */
.name-fields,
.address-row {
    display: flex !important;
    gap: 1rem !important;
    margin-bottom: 1rem !important;
}

.name-fields > *,
.address-row > * {
    flex: 1 !important;
}

/* Payment Options */
.payment-options {
    margin: 1rem 0 !important;
}

.payment-option-label {
    display: flex;
    align-items: center !important;
    flex-direction: row !important;
    gap: 0.75rem;
    padding: 0.75rem 1rem;
    margin-bottom: 0.75rem;
    background-color: #f9f9f9;
    border-radius: 4px;
    cursor: pointer;
    transition: all 0.3s ease;
}


.payment-option-label:hover {
    background-color: #f0f0f0 !important;
}

.payment-option-label small {
    display: block !important;
    color: #616161 !important;
    font-size: 0.85rem !important;
    margin-top: 0.25rem !important;
}

/* Total Display */
.total-amount {
    padding: 1rem !important;
    margin-top: 1.5rem !important;
	margin-bottom: 1.5rem !important;
    background-color: #fafafa !important;
    border-radius: 4px !important;
/*     text-align: right !important; */
    font-size: 1rem !important;
    font-weight: 500 !important;
    border: 1px solid #e0e0e0 !important;
}

.total-amount strong {
    color: #daba70 !important;
    font-size: 1.4rem !important;
}

/* Card Element */
#card-element {
    padding: 1rem !important;
    border: 1px solid #e0e0e0 !important;
    border-radius: 4px !important;
    background-color: #fafafa !important;
    margin-bottom: 1rem !important;
}

/* Terms */
.terms-label {
    display: flex !important;
    align-items: center !important;
    gap: 0.5rem !important;
    margin-top: 1.25rem !important;
    font-size: 0.95rem !important;
}

.terms-box {
    max-height: 160px !important;
    overflow-y: auto !important;
    padding: 1rem !important;
    margin: 1rem 0 !important;
    border: 1px solid #e0e0e0 !important;
    border-radius: 4px !important;
    background-color: #fdfdfd !important;
    font-size: 0.95rem !important;
    line-height: 1.5 !important;
}

/* Submit Button */
button[type="submit"] {
    width: 100% !important;
    padding: 1rem !important;
    background-color: #6200ee !important;
    color: #ffffff !important;
    border: none !important;
    border-radius: 4px !important;
    font-size: 1.1rem !important;
    font-weight: 600 !important;
    cursor: pointer !important;
    transition: all 0.3s ease !important;
}

button[type="submit"]:hover {
    background-color: #3700b3 !important;
}

button[type="submit"]:disabled {
    background-color: #bdbdbd !important;
    cursor: not-allowed !important;
}

/* Status Messages */
.payment-message {
    margin-top: 1rem !important;
    padding: 1rem !important;
    border-radius: 4px !important;
    text-align: center !important;
    font-size: 1rem !important;
    display: none !important;
}

.payment-message.success {
    display: block !important;
    background-color: #e8f5e9 !important;
    border: 1px solid #c8e6c9 !important;
    color: #2e7d32 !important;
}

.payment-message.error {
    display: block !important;
    background-color: #ffebee !important;
    border: 1px solid #ffcdd2 !important;
    color: #c62828 !important;
}

/* Responsive Design */
@media (max-width: 1024px) {
    .trip-payment-form {
        padding: 1.5rem !important;
    }

    .name-fields,
    .address-row {
        gap: 0.75rem !important;
    }
}

@media (max-width: 768px) {
    .trip-payment-form {
        padding: 1rem !important;
        margin: 2rem auto !important;
    }

    .name-fields,
    .address-row {
        flex-direction: column !important;
        gap: 0 !important;
    }

    .total-amount {
        font-size: 0.95rem !important;
    }

    .total-amount strong {
        font-size: 1.2rem !important;
    }

    button[type="submit"] {
        font-size: 1rem !important;
        padding: 0.9rem !important;
    }
}

@media (max-width: 480px) {
    .trip-payment-form {
        padding: 1rem 0.75rem !important;
    }

    .trip-payment-form h3 {
        font-size: 1.25rem !important;
    }

    .payment-option-label {
        flex-direction: column !important;
        align-items: flex-start !important;
    }

    .terms-label {
        flex-direction: column !important;
        align-items: flex-start !important;
    }
}
