* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    overflow: hidden;
    font-family: 'Helvetica', sans-serif;
}

.container {
    width: 100vw;
    height: 100vh;
    background-color: black;
    position: relative;
}

.background-container .banner-festivita {
    position: absolute;
    left: 0;
    top: 4vh;
    height: 350px;
    z-index: -11;
}

.banner-festivita img {
    width: 100%;
    /* height: auto; */
    height: 100%;
    min-height: 350px;
    border-radius: 0 12px 12px 0;
    box-shadow: none;
    object-fit: contain;
    object-position: left center;
}

@media (max-width: 1100px) {
    .background-container .banner-festivita {
        left: 0;
        height: 350px;
        top: 65vh;
    }
}

@media (max-width: 800px) {
    .background-container .banner-festivita {
        left: 0;
        top: 65vh;
    }
}

.background-container .zanzara-login {
    position: absolute;
    right: 0;
    top: 0%;
    height: 100%;
}

.background-container .flidifferent-login {
    position: absolute;
    bottom: 1%;
    left: 1%;
    width: 156px;
}

.background-container .teamprimed-login {
    position: absolute;
    top: 0%;
    left: 50%;
    transform: translate(-50%, 50%);
    width: 320px;
}

.teamprimed-login img,
.flidifferent-login img {
    width: 100%;
    object-fit: contain;
}


.zanzara-login img {
    height: 100%;
    object-fit: contain;
}

/* Styling for the main box */
.box {
    position: relative;
    width: 410px;
    height: 410px;
    position: absolute;
    top: 35%;
    left: 50%;
    transform: translate(-50%, -50%);
}

/* Styling for the gradient animation on the main box */
.box::before {
    content: "";
    position: absolute;
    inset: 0;
    background: repeating-conic-gradient(from var(--a),
            #f9a825,
            #ff5722,
            #e91e63,
            #673ab7,
            #2196f3,
            #009688,
            #8bc34a);
    border-radius: 16px;
    animation: rotating 4s linear infinite;
    /* Applying rotation animation */
}

/* Styling for the blurred gradient on the main box */
.box::after {
    content: "";
    position: absolute;
    inset: 0;
    background: repeating-conic-gradient(from var(--a),
            #f9a825,
            #ff5722,
            #e91e63,
            #673ab7,
            #2196f3,
            #009688,
            #8bc34a);
    border-radius: 16px;
    animation: rotating 4s linear infinite;
    /* Applying rotation animation */
    filter: blur(40px);
    opacity: 0.75;
}

/* Styling for the inner span within the main box */
.box span {
    position: absolute;
    inset: 4px;
    background: #222;
    /* Setting background color */
    border-radius: 16px;
    z-index: 1;
    /* opacity: 0; */
    /* Uncomment to hide the inner span */
}

/* Custom property for the rotation angle */
@property --a {
    syntax: "<angle>";
    inherits: false;
    initial-value: 0deg;
}

/* Keyframes for the rotating animation */
@keyframes rotating {
    0% {
        --a: 0deg;
    }

    100% {
        --a: 360deg;
    }
}

/* Styling for the text inside the nested box */
.box .box1 span {
    color: white;
    display: flex;
    align-items: center;
}

.login-box {
    border-radius: 16px;
    padding: 20px 40px 40px 40px;
    text-align: center;
    z-index: 2;
    width: 100%;
}

.input-group {
    margin: 20px 0;
}

input {
    width: 100%;
    padding: 12px;
    border: none;
    border-radius: 5px;
    background: #333;
    color: #fff;
    font-size: 16px;
    outline: none;
    transition: background-color 0.3s;
}

input:focus {
    background-color: #444;
}

button {
    width: 100%;
    padding: 12px;
    border: none;
    border-radius: 5px;
    background-color: #c90610;
    color: #fff;
    font-size: 18px;
    cursor: pointer;
    transition: background-color 0.3s;
}

button:hover {
    background-color: #d62828;
}

.forgot-password {
    margin-top: 20px;
}

.forgot-password a {
    color: #fafafa;
    text-decoration: none;
}

.forgot-password a:hover {
    text-decoration: underline;
}

@media (max-width: 768px) {
    .wrapper-login {
        width: 90%;
    }
}

/* Stili addizionali */
.btn-whatsapp {
    width: 100%;
    padding: 12px;
    border: none;
    border-radius: 5px;
    color: #fff;
    font-size: 18px;
    cursor: pointer;
    transition: background-color 0.3s;
    background-color: #25d366;
    margin-top: 10px;
    margin-bottom: 10px;
}

.btn-whatsapp:hover {
    background-color: #1ebe57;
}

.btn-email {
    background-color: #007bff;
    width: 100%;
    padding: 12px;
    border: none;
    border-radius: 5px;
    color: #fff;
    font-size: 18px;
    cursor: pointer;
    transition: background-color 0.3s;
}

.btn-email:hover {
    background-color: #0069d9;
}

.btn-icon {
    display: flex;
    justify-content: center;
    align-items: center;
}

.btn-icon i {
    margin-right: 8px;
}

.error-message {
    background-color: #dc3545;
    color: white;
    padding: 10px;
    border-radius: 5px;
    margin-bottom: 15px;
    margin-top: 15px;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.5s ease-in-out, visibility 0.5s ease-in-out;
}

.error-message.show {
    opacity: 1;
    visibility: visible;
}

.otp-input {
    margin: 10px 5px 10px 5px;
}

/* Chrome, Safari, Edge, Opera */
input[type=number]::-webkit-inner-spin-button,
input[type=number]::-webkit-outer-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

/* Firefox */
input[type=number] {
    -moz-appearance: textfield;
}

/* Contenitore generale */
#phoneNumberContainer {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin: 1rem 0;
    gap: 15px;
    max-height: 180px;
    overflow-y: scroll;
    overflow-x: hidden;
    /* Uniforme distanza tra i radio button */
}

/* Etichetta dei numeri di telefono */
#phoneNumberContainer label {
    display: flex !important;
    align-items: center;
    /* Allinea verticalmente radio e testo */
    justify-content: center;
    /* Centra orizzontalmente il contenuto */
    margin-bottom: 0;
    /* Evita spazi extra tra le righe */
    font-size: 1.3rem;
    /* Dimensione uniforme */
    color: white;
    /* Colore del testo */
    cursor: pointer;
    letter-spacing: 2px;
    /* Spaziatura tra le cifre */
    width: 100%;
    /* Allinea al contenitore */
    transition: transform 0.2s ease;
    /* Animazione al passaggio del mouse */
}

/* Radio button personalizzati */
#phoneNumberContainer input[type="radio"] {
    appearance: none;
    width: 24px;
    /* Maggiore uniformità */
    height: 24px;
    border: 2px solid #fff;
    border-radius: 50%;
    /* Forma circolare */
    outline: none;
    margin-right: 12px;
    /* Spaziatura tra radio e testo */
    background-color: transparent;
    transition: all 0.3s ease;
    /* Transizione fluida */
}

#phoneNumberContainer input[type="radio"]:checked {
    border-color: #ffffff;
    /* Colore bordo selezionato */
    background-color: #c90610;
    /* Sfondo selezionato */
}

#phoneNumberContainer input[type="radio"]:hover {
    border-color: #fff;
    /* Cambia colore bordo al passaggio del mouse */
    cursor: pointer;
}

/* Effetto al passaggio del mouse su label */
#phoneNumberContainer label:hover {
    transform: scale(1.02);
    /* Leggero ingrandimento */
}

/* Testo accanto al radio button */
#phoneNumberContainer label span {
    flex: 1;
    /* Si espande per occupare tutto lo spazio disponibile */
    text-align: left;
    /* Allinea il testo */
    font-size: 1.2rem;
    /* Dimensione uniforme */
    color: white;
    /* Colore testo */
}

/* Esempio di overlay che copre tutta la pagina */
#loader {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 9999;
    /* sfondo semi-trasparente */
    display: flex;
    justify-content: center;
    align-items: center;
}

/* Semplice spinner circolare */
.spinner {
    width: 60px;
    height: 60px;
    border: 8px solid #212121;
    border-top: 8px solid #c90610;
    border-radius: 50%;
    animation: spin 1s linear infinite;
    margin: 0 auto;
}

/* Animazione */
@keyframes spin {
    0% {
        transform: rotate(0deg);
    }

    100% {
        transform: rotate(360deg);
    }
}
