/* Container principale shortcode */
.lsv-register-form-container {
    max-width: 762px;
    margin: 0 auto;
    padding: 80px 0;
}

/* Woo error list within our container */
.lsv-register-form-container .woocommerce-error {
    list-style: none;
    margin: 0 0 1.5rem 0;
    border: 1px solid #f5c6cb;
    background: #f8d7da;
    color: #721c24;
    border-radius: 10px;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.03);
}

.lsv-register-form-container .woocommerce-error li {
    margin-top: 12px;
    font-weight: 600;
    font-size: 16px;
    line-height: 16px;
}

.lsv-register-form-container .woocommerce-error:focus {
    outline: none;
    box-shadow: 0 0 0 2px rgba(114, 28, 36, 0.15);
}

/* Titolo del form */
.lsv-form-title {
    text-align: center;
    color: #122244;
    margin-bottom: 2rem;
    font-size: 38px;
    font-family: 'Playfair Display';
    font-weight: 600;
}

/* Descrizione del form */
.lsv-form-description {
    background: #f8f9fa;
    border-left: 4px solid #0073aa;
    padding: 15px 20px;
    margin-bottom: 25px;
    border-radius: 4px;
}

.lsv-form-description p {
    margin: 0;
    color: #555;
    font-size: 14px;
    line-height: 1.5;
}

button.button-link.lsv-remove-participant {
    background: #ec3d3d;
    border: none;
    font-weight: 600;
}

/* Layout form con classi WooCommerce */
.lsv-register-form {
    background: #fff;
    border: 1px solid #E6EAF2;
    border-radius: 20px;
    padding: 3rem;
    box-shadow: 0 2px 20px rgba(0, 0, 0, 0.01);
}

@media(max-width: 761px) {
    .lsv-register-form {
        padding: 2rem;
    }
}

form.lsv-register-form p {
    margin-bottom: 0;
}

/* Label sopra gli input */
.lsv-register-form .form-row label,
.lsv-register-form .lsv-field label {
    display: block;
    margin-bottom: 8px;
    font-weight: 600;
    color: #333;
}

.lsv-register-form .form-row input,
.lsv-register-form .form-row select,
.lsv-register-form .form-row textarea,
.lsv-register-form .lsv-field input,
.lsv-register-form .lsv-field select,
.lsv-register-form .lsv-field textarea {
    width: 100%;
    padding: 1.5rem;
    border: 1px solid #c8c8c8;
    border-radius: 10px;
    font-size: 1rem;
    margin-bottom: 2rem;
}

/* ==============================
   Campo Password con icona toggle
   ============================== */

/* Wrapper */
.lsv-register-form-container .password-input {
    position: relative;
    display: block;
    margin-bottom: 2rem;
    /* spacing del campo password */
}

/* Input password: annulla margine bottom e aggiunge spazio a destra */
.lsv-register-form-container .password-input input[type="password"],
.lsv-register-form-container .password-input input[type="text"] {
    margin-bottom: 0;
    /* sovrascrive i 2rem dell'input */
    padding-right: 3rem;
    /* spazio per l’icona */
}

/* Bottone toggle */
.lsv-register-form-container .show-password-input {
    position: absolute;
    top: 50%;
    right: 1rem;
    transform: translateY(-50%);
    border: none;
    background: transparent;
    cursor: pointer;
    width: 32px;
    /* tap-friendly (prima era 22px) */
    height: 32px;
    padding: 0;
    line-height: 0;
    appearance: none;
    -webkit-appearance: none;
    /* iOS/Safari */
}

/* Stato default: occhio */
.lsv-register-form-container .show-password-input::before {
    content: "";
    display: block;
    width: 22px;
    /* dimensione icona */
    height: 22px;
    margin: 5px auto;
    /* centra l’icona dentro i 32px */
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
    background-image: url("data:image/svg+xml,<svg width='20' height='20' viewBox='0 0 20 20' fill='none' xmlns='http://www.w3.org/2000/svg'><path d='M17.3 3.3C16.9 2.9 16.2 2.9 15.7 3.3L13.3 5.7C12.2437 5.3079 11.1267 5.1048 10 5.1C6.2 5.2 2.8 7.2 1 10.5C1.2 10.9 1.5 11.3 1.8 11.7C2.6 12.8 3.6 13.7 4.7 14.4L3 16.1C2.6 16.5 2.5 17.2 3 17.7C3.4 18.1 4.1 18.2 4.6 17.7L17.3 4.9C17.7 4.4 17.7 3.7 17.3 3.3ZM6.7 12.3L5.4 13.6C4.2 12.9 3.1 11.9 2.3 10.7C3.5 9 5.1 7.8 7 7.2C5.7 8.6 5.6 10.8 6.7 12.3ZM10.1 9C9.6 8.5 9.7 7.7 10.2 7.2C10.7 6.8 11.4 6.8 11.9 7.2L10.1 9ZM18.3 9.5C17.8 8.8 17.2 8.1 16.5 7.6L15.5 8.6C16.3 9.2 17 9.9 17.6 10.8C15.9 13.4 13 15 9.9 15H9.1L8.1 16C8.8 15.9 9.4 16 10 16C13.3 16 16.4 14.4 18.3 11.7C18.6 11.3 18.8 10.9 19.1 10.5C18.8 10.2 18.6 9.8 18.3 9.5ZM14 10L10 14C12.2 14 14 12.2 14 10Z' fill='%23111111'/></svg>");
}

/* Stato attivo: occhio sbarrato (classe sul WRAPPER) */
.lsv-register-form-container .password-input.display-password .show-password-input::before {
    background-image: url("data:image/svg+xml,<svg width='20' height='20' viewBox='0 0 20 20' fill='none' xmlns='http://www.w3.org/2000/svg'><path d='M18.3 9.49999C15 4.89999 8.50002 3.79999 3.90002 7.19999C2.70002 8.09999 1.70002 9.29999 0.900024 10.6C1.10002 11 1.40002 11.4 1.70002 11.8C5.00002 16.4 11.3 17.4 15.9 14.2C16.8 13.5 17.6 12.8 18.3 11.8C18.6 11.4 18.8 11 19.1 10.6C18.8 10.2 18.6 9.79999 18.3 9.49999ZM10.1 7.19999C10.6 6.69999 11.4 6.69999 11.9 7.19999C12.4 7.69999 12.4 8.49999 11.9 8.99999C11.4 9.49999 10.6 9.49999 10.1 8.99999C9.60003 8.49999 9.60003 7.69999 10.1 7.19999ZM10 14.9C6.90002 14.9 4.00002 13.3 2.30002 10.7C3.50002 8.99999 5.10002 7.79999 7.00002 7.19999C6.30002 7.99999 6.00002 8.89999 6.00002 9.89999C6.00002 12.1 7.70002 14 10 14C12.2 14 14.1 12.3 14.1 9.99999V9.89999C14.1 8.89999 13.7 7.89999 13 7.19999C14.9 7.79999 16.5 8.99999 17.7 10.7C16 13.3 13.1 14.9 10 14.9Z' fill='%23111111'/></svg>");
}

/* Accessibilità */
.lsv-register-form-container .show-password-input:focus-visible {
    outline: 2px solid var(--text-color, #003248);
    outline-offset: 2px;
}




/* Errori inline per campo */
.lsv-field.has-error input,
.lsv-field.has-error select,
.lsv-field.has-error textarea {
    border-color: #e74c3c;
}

.lsv-field .field-error {
    color: #e74c3c;
    font-size: 12px;
    margin-top: -10px;
    margin-bottom: 10px;
    display: block;
}

.lsv-register-form select:not([size]):not([multiple]) {
    border: 1px solid #c8c8c8;
    border-radius: 10px;
    padding: 1.5rem;
}

.lsv-register-form .form-row input:focus,
.lsv-register-form .form-row select:focus,
.lsv-register-form .form-row textarea:focus,
.lsv-register-form .lsv-field input:focus,
.lsv-register-form .lsv-field select:focus,
.lsv-register-form .lsv-field textarea:focus {
    border-color: #0073aa;
    outline: none;
    box-shadow: 0 0 0 2px rgba(0, 115, 170, 0.1);
}

@media(max-width: 767.99px) {
    select.lsv-dob-day {
        margin-bottom: 0 !important;
    }

    select.lsv-dob-month {
        margin-bottom: 0px !important;
    }
}

/* Data di nascita su una riga */
.lsv-dob-wrap {
    display: flex;
    gap: 12px;
    flex-wrap: nowrap;
    align-items: end;
}

.lsv-dob-wrap select {
    flex: 1;
    min-width: 0;
}

/* Stili per campi extra */

.lsv-register-form .lsv-field label {
    margin-bottom: 8px;
}

/* Radio buttons */
.lsv-register-form .lsv-field input[type="radio"] {
    width: auto;
    margin-right: 8px;
    margin-bottom: 0;
}

.lsv-register-form .lsv-field label:has(input[type="radio"]) {
    display: inline-block;
    margin-right: 20px;
    margin-bottom: 8px;
    font-weight: normal;
}

.lsv-participants {
    margin: 12px 0 0;
}

.lsv-participants-description {
    margin: 10px 0 15px 0;
    padding: 12px 12px;
    background: #a5d6cb26;
    border-left: 3px solid #a5d6cb;
    border-radius: 10px;
}

.lsv-register-form .lsv-add-participant {
    width: 100%;
    padding: 1rem;
    font-size: 16px;
    font-weight: 600;
    background: #a5d6cb;
    color: white;
    border: none;
    border-radius: 10px;
    cursor: pointer;
    transition: background-color 0.3s;
    padding: 1.5rem;
}

.lsv-register-form .lsv-add-participant:hover {
    background: #6cd2bd;
}

.lsv-participants-description p {
    margin: 0;
    font-size: 15px;
    color: #00614a;
}

.lsv-participant-row {
    border: 1px solid #e5e5e5;
    padding: 1rem;
    border-radius: 10px;
    margin-top: 1rem;
    background: #fafafa;
    margin-bottom: 1rem;
}

.lsv-participant-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 15px;
}

.lsv-participant-row label {
    display: block;
    margin-bottom: 8px;
    font-weight: 600;
    color: #333;
}

.lsv-participant-row input {
    width: 100%;
    padding: 12px;
    border: 1px solid #ddd;
    border-radius: 4px;
    font-size: 16px;
    margin-bottom: 15px;
}

.lsv-other {
    margin-top: 8px;
}

.lsv-static-box {
    padding: 1rem;
    background: #F2F5FA;
    border: 1px solid #E6EAF2;
    border-radius: 10px;
    margin: 2rem 0;
}

.lsv-static-box .lsv-static-content {
    max-height: 300px;
    overflow-y: auto;
    padding-right: 8px;
    line-height: 1.5;
    color: #222;
    white-space: pre-line;
}

.form-row.form-row-wide.lsv-field.lsv-field-lsv_trip_type {
    margin-top: 2rem;
}

.form-row.form-row-wide.lsv-field.lsv-field-lsv_consent_2,
.form-row.form-row-wide.lsv-field.lsv-field-lsv_traveled_5y,
.form-row.form-row-wide.lsv-field.lsv-field-lsv_has_voucher,
.form-row.form-row-wide.lsv-field.lsv-field-lsv_consent_1 {
    margin-bottom: 2rem;
}

/* Pulsante submit */
.lsv-register-form .button-form-submit-reg {
    width: 100%;
    padding: 1rem;
    font-size: 16px;
    font-weight: 600;
    background: #122244;
    color: white;
    border: none;
    border-radius: 10px;
    cursor: pointer;
    transition: background-color 0.3s;
    margin-top: 2rem;
    height: 80px;
}

.lsv-register-form .button-form-submit-reg:hover {
    background: #005a87;
}

/* Responsive */
@media (max-width: 768px) {
    .lsv-register-form-container {
        padding: 2rem;
    }

    .lsv-register-form {
        padding: 20px;
    }

    .lsv-dob-wrap {
        flex-direction: column;
        gap: 8px;
    }

    .lsv-dob-wrap select {
        width: 100%;
    }
}