/* Address card layout */
.addresses-cards {
    display: flex;
    justify-content: space-evenly;
    gap: 1rem;
}

.address-card {
    display: flex;
    flex-direction: column;
    background-color: #f9f9f9;
    border: 1px solid #ddd;
    padding: 20px;
    margin-bottom: 20px;
    border-radius: 8px;
    width: 100%;
}

.address-card p {
    margin: 10px 0;
}

.address-form label {
    display: block;
    margin-bottom: 10px;
}

.edit-address, .save-address, .cancel-address {
    font-family: var( --e-global-typography-3c95bb2-font-family ), Sans-serif;
    font-size: var( --e-global-typography-3c95bb2-font-size );
    font-weight: bold;
    line-height: 1em;
    letter-spacing: 0.5px;
    background-color: var( --e-global-color-accent ) !important;
    color: var( --e-global-color-primary ) !important;
    padding: 13px 18px;
    border: none;
    max-width: min-content;
    margin-top: auto;
}

.save-address {
    margin-top: 10px;
}

.address-form {
    margin-top: 20px;
}

/* Loading effect applied to the entire custom_addresses element */
.custom_addresses.loading-effect {
    animation: flash-effect 1.5s linear infinite;
    opacity: 0.4; /* Slight transparency during loading */
}

#message-container {
    display: none; /* Initially hidden */
    margin-bottom: 15px;
}

.message {
    padding: 10px;
    border-radius: 4px;
    font-size: 14px;
    font-weight: bold;
    text-align: center;
}

.message.success {
    background-color: #28a745;
    color: #fff;
}

.message.error {
    background-color: #dc3545;
    color: #fff;
}


/* Mobile */
@media (max-width: 767px) 
{
    .address-card {
        width: 100%; /* One card per row on mobile */
    }

    .edit-address, .save-address {
        padding: 4% 5%;
    }

    .addresses-cards {
        flex-wrap: wrap;
    }

    .edit-address, .save-address {
        font-size: 16px;
    }

    /* Styles for valid and invalid input fields */
    input.valid {
        border: 2px solid #28a745; /* Green for valid */
    }

    input.invalid {
        border: 2px solid #dc3545; /* Red for invalid */
    }

    /* Optional field indicator */
    label:after {
        content: " (optional)";
        font-size: 0.9em;
        color: #999;
    }

    label input[required] {
        border: 2px solid #0071a1;
    }
}