.customer-type-toggle {
    display: flex;
    gap: 10px;
    margin-bottom: 20px;
}
.customer-type-btn {
    flex: 1;
    text-align: center;
    padding: 15px;
    background-color: #f0f0f0;
    border: 2px solid #ccc;
    border-radius: 5px;
    cursor: pointer;
    font-size: 1.2em;
    transition: all 0.2s ease-in-out;
    text-transform: uppercase;
}
.customer-type-btn:hover {
    background-color: #e0e0e0;
}
.registrazione-utente-wrapper input[type="radio"]:checked + label {
    background-color: #6f1517;
    color: #fff;
    border-color: #6f1517;
}
.company-fields.hidden {
    display: none;
}
.account-message.custom-message {
    background: #f0f8ff;
    border-left: 4px solid #00b1e6;
    padding: 20px;
    margin-bottom: 30px;
    border-radius: 5px;
}
.promo-box {
    background: #fff3cd;
    padding: 15px;
    margin-top: 15px;
    border-left: 4px solid #f7a800;
}
.login-container .block .block-content,
.login-container .block .block-content *,
.login-container .block .block-title strong {
    font-size: 18px !important;
}
.login-container .block-new-customer{
    margin-bottom: 40px;
}
.form-create-account{
    margin-bottom: 20px;
}
.form-create-account .password-strength-meter{
    font-size: 12px;
}
.form-create-account .fieldset.create.info{
    margin-bottom: 0px;
}
.form-create-account .fieldset > .field,
.form-create-account .company-fields > .field,
.form-create-account select {
    font-size: 18px !important;
}
.form-create-account .company-fields .label{
    font-weight: bold;
}
.form-create-account .fieldset.additional_info{
    margin: 0px;
}
.form-create-account .fieldset.additional_info .g-recaptcha{
    margin-bottom: 20px;
}

.bgfunari {
    animation:slidecolor 3s ease-in-out infinite alternate;
    background-image: linear-gradient(-60deg, #fcd205 50%, #0994dc 50%);
    bottom:0;
    left:-50%;
    opacity:.5;
    position:fixed;
    right:-50%;
    top:0;
    z-index:-1;
}

.bgfunari.bg2 {
    animation-direction:alternate-reverse;
    animation-duration:4s;
}

.bgfunari.bg3 {
    animation-duration:5s;
}

.login-container > .block{
    font-size: clamp(16px, 2.5vw, 18px);
    color: #000;
    background-color: rgba(255,255,255,.8);
    border-radius: .25em;
    box-shadow: 0 0 .25em rgba(0,0,0,.25);
    box-sizing: border-box;
    padding: 2rem;
}

.login-container .block-customer-login{
    margin-right: 15px;
}
.login-container .block-customer-login,
.login-container .block-new-customer {
    width: 100% !important;
    margin-bottom: 50px !important;
}

@keyframes slidecolor {
    0% {
        transform:translateX(-25%);
    }
    100% {
        transform:translateX(25%);
    }
}

.registrazione-utente-wrapper {
    display: flex;
    flex-direction: column;
    gap: 2rem;
}
.customer-account-login .page-title,
.customer-account-create .page-title{
    color: #FFF;
}

.registrazione-utente-wrapper .actions-toolbar .primary .action{
    margin: 0px;
    width: 100%;
}
form.form-create-account {
    max-width: 100%;
    margin: auto auto 30px auto;
    padding: 2rem;
    background-color: rgba(255,255,255,.8);
    border-radius: .25em;
    box-shadow: 0 0 .25em rgba(0,0,0,.25);
    box-sizing: border-box;
}
.customer-type-info-container {
    padding: 3rem;
    font-size: clamp(16px, 2.5vw, 18px);
    color: #000;
    background-color: rgba(255,255,255,.8);
    border-radius: .25em;
    box-shadow: 0 0 .25em rgba(0,0,0,.25);
    box-sizing: border-box;
}
form.form-create-account .fieldset.create.account:after {
    margin-top: 10px !important;
}
form.form-create-account .fieldset {
    display: flex;
    flex-wrap: wrap;
    column-gap: 1rem;
    row-gap: 1.5rem;
}
form.form-create-account .fieldset > .legend{
    text-align: center;
    margin: 0px;
}
form.form-create-account .fieldset.create.info {
    display: flex;
    flex-wrap: wrap;
    column-gap: 1rem;
    row-gap: 1.5rem;
}
form.form-create-account .fieldset.create.account {
    justify-content: flex-end;
}
form.form-create-account .fieldset > .field {
    display: flex;
    flex-direction: column;
    flex: 0 0 calc(50% - 0.5rem); /* due colonne con gap di 1rem */
    margin: 0px;
}
form.form-create-account .fieldset > .field.password {
    margin-bottom: 0px;
}
form.form-create-account .fieldset .company-fields{
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    column-gap: 1rem;
    row-gap: 1.5rem;
    margin-bottom: 0px;
}
form.form-create-account .fieldset .company-fields > .field {
    display: flex;
    flex-direction: column;
    flex: 1 1 calc(50% - 0.5rem); /* due colonne con gap di 1rem */
}
form.form-create-account .field.full-width {
    flex: 1 1 100%;
}
form.form-create-account .field .label {
    font-weight: 500;
    margin-bottom: 4px;
    color: #444;
}
form.form-create-account .field.choice {
    display: block;
    clear: both;
    flex: auto;
    width: 100%;
    margin: 0px;
    text-align: center;
}
form.form-create-account .actions-toolbar .primary{
    width: 100%;
    margin: 0 auto;
    text-align: center;
    text-transform: uppercase;
}
form.form-create-account .actions-toolbar .primary button{
    background-color: #6f1517 !important;
    border-color: #6f1517 !important;
    height: 50px;
    vertical-align: middle;
}
form.form-create-account .actions-toolbar .primary button{
    background-color: #6f1517 !important;
    border-color: #6f1517 !important;
    vertical-align: middle;
}
form.form-create-account .field .control input,
form.form-create-account .field .control select {
    border: 1px solid #ccc;
    border-radius: 6px;
    background-color: #fff;
    transition: border-color 0.2s;
}
form.form-create-account .field .control input:focus,
form.form-create-account .field .control select:focus {
    border-color: #0066cc;
    outline: none;
}

form.form-create-account button.action.primary:hover span{
    color: #CCCCCC;
}

.theme-pearl.store-view-default button.action.primary:hover{
    background-color: #FFFFFF !important;
    cursor: pointer;
    border: 1px solid #6f1517;
}

.osc-place-order-wrapper button.action.primary.checkout span{
    color: #1c842a;
}

.theme-pearl.store-view-default button.action.primary.checkout:hover{
    color: #1c842a !important;
    border: 1px solid #1c842a;
}

.box-address-shipping .campo-sdi-indirizzo,
.box-shipping-address .campo-sdi-indirizzo {
    display: none;
}

.store-view-default .form-edit-account .taxvat{
    display: none;
}

.store-view-default .form-address-edit .company,
.store-view-default .form-address-edit .mposc_field_1{
    display: none;
}

.registrazione-utente-wrapper .field.mposc_field_2 {
    margin-bottom: 20px !important;
    flex: 0 0 calc(100%) !important;
}
.registrazione-utente-wrapper .form-create-account .fieldset.address{
    margin-bottom: 20px;
}
.mposc_field_2 > label:after{
    content: '*';
    color: #e02b27;
    font-size: 1.2rem;
    margin: 0 0 0 5px;
}

/* ============================================================
   Miglioramenti grafici pagina di registrazione B2B
   ============================================================ */

/* NOTA: il tema imposta html { font-size: 62.5%; }, quindi 1rem = 10px qui.
   Da qui in poi le dimensioni del testo sono espresse in px assoluti per
   evitare di ottenere caratteri piu' piccoli del previsto. */

/* Asterisco sempre visibile sui campi azienda (indipendente dal JS) */
#company-fields .field.company > .label::after,
#company-fields .field.taxvat > .label::after,
#company-fields .field.mposc_field_1 > .label::after {
    content: '*';
    color: #e02b27;
    font-size: 14px;
    margin: 0 0 0 5px;
}

/* Intestazione principale del form */
form.form-create-account .fieldset.create.info > .legend,
form.form-create-account .fieldset.create.info > .legend > span {
    text-align: left !important;
    font-size: 28px !important;
    font-weight: 700 !important;
    letter-spacing: .01em;
    color: #2c2c2c !important;
    text-transform: none !important;
}
form.form-create-account .fieldset.create.info > .legend {
    padding-bottom: 12px;
    margin: 0 0 8px;
    border-bottom: 2px solid #6f1517;
}

/* Etichette di sezione (Dati aziendali / Indirizzo e contatti / Accesso) */
.form-section-label {
    display: block !important;
    flex: 1 1 100%;
    width: 100%;
    text-align: left !important;
    text-transform: uppercase !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    line-height: 1.3 !important;
    letter-spacing: .08em;
    color: #6f1517 !important;
    margin: 24px 0 8px !important;
}
fieldset.address > legend.legend {
    width: 100%;
    padding: 0;
    margin: 0 0 .5rem;
    text-align: left;
}
fieldset.address > legend.legend .form-section-label {
    margin: 0;
}

/* Campi di testo e tendine con la stessa identica altezza (box-sizing +
   altezza/line-height espliciti, per non dipendere dal padding e finire
   con le tendine piu' alte/piu' basse dei campi di testo) */
form.form-create-account .field .control input.input-text,
form.form-create-account .field .control select {
    box-sizing: border-box !important;
    height: 46px !important;
    line-height: 44px !important;
    padding: 0 14px !important;
}
form.form-create-account .field .control select {
    padding-right: 30px !important;
}
form.form-create-account .field .control input:focus,
form.form-create-account .field .control select:focus {
    border-color: #6f1517;
    box-shadow: 0 0 0 3px rgba(111, 21, 23, .12);
}

/* Pulsante principale piu' invitante */
form.form-create-account .actions-toolbar .primary button {
    border-radius: 6px;
    font-weight: 600;
    letter-spacing: .03em;
    transition: transform .15s ease, box-shadow .15s ease;
}
form.form-create-account .actions-toolbar .primary button:hover {
    transform: translateY(-1px);
    box-shadow: 0 6px 14px rgba(111, 21, 23, .25);
}
form.form-create-account .actions-toolbar .secondary .action.back {
    color: #6f1517;
    text-decoration: underline;
}

/* Pannello informativo a destra */
.customer-type-info-container {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}
.customer-type-info-eyebrow {
    display: block !important;
    text-transform: uppercase !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    letter-spacing: .1em;
    color: #6f1517 !important;
    margin: 0 0 8px !important;
}
.customer-type-info-headline {
    display: block !important;
    font-size: 28px !important;
    font-weight: 700 !important;
    line-height: 1.3 !important;
    margin: 0 0 16px !important;
    color: #222 !important;
}
.customer-type-info-container p,
.customer-type-info-container li {
    font-size: 17px !important;
    line-height: 1.5 !important;
}
.customer-type-info-collab-label {
    font-weight: 600;
    margin-bottom: 8px;
}
.customer-type-info-list {
    list-style: none;
    margin: 0 0 16px;
    padding: 0;
}
.customer-type-info-list li {
    position: relative;
    padding-left: 28px;
    margin-bottom: 10px;
}
.customer-type-info-list li::before {
    content: '\2713';
    position: absolute;
    left: 0;
    top: 2px;
    width: 20px;
    height: 20px;
    line-height: 20px;
    text-align: center;
    border-radius: 50%;
    background: #6f1517;
    color: #fff;
    font-size: 12px;
    font-weight: 700;
}
.customer-type-info-footer {
    font-weight: 600;
    color: #2c2c2c;
}

/* Box "sei un cliente privato" */
.private-customer-callout {
    display: flex;
    gap: 16px;
    align-items: flex-start;
    background: #f4f2ea;
    border: 1px solid #ddd6c4;
    border-radius: 8px;
    padding: 20px;
}
.private-customer-callout-icon {
    font-size: 32px;
    line-height: 1;
}
.private-customer-callout-title {
    display: block !important;
    font-size: 22px !important;
    font-weight: 700 !important;
    margin: 0 0 8px !important;
    color: #2c2c2c !important;
}
.private-customer-callout-text {
    display: block !important;
    margin: 0 0 16px !important;
    font-size: 17px !important;
    line-height: 1.5 !important;
    color: #444 !important;
}
.private-customer-callout-btn {
    display: inline-block;
    padding: 12px 22px;
    border: 1px solid #6f1517;
    border-radius: 6px;
    color: #6f1517;
    font-weight: 600;
    text-decoration: none;
    font-size: 16px;
    transition: background-color .15s ease, color .15s ease;
}
.private-customer-callout-btn:hover {
    background-color: #6f1517;
    color: #fff;
}

@media screen and (max-width: 992px) {
    .customer-type-info-headline {
        font-size: 24px !important;
    }
}

/* Layout affiancato per desktop */
@media screen and (min-width: 993px) {
    .login-container{
        display: flex;
    }

    .registrazione-utente-wrapper {
        flex-direction: row;
        align-items: flex-start;
    }

    .customer-type-info-container,
    .registrazione-utente-wrapper form {
        width: 50%;
    }

    .customer-type-info-container.mobile{
        display: none;
    }
    .customer-type-info-container.desktop{
        display: block;
    }
}

@media screen and (max-width: 992px) {
    .registrazione-utente-wrapper {
        flex-direction: column-reverse;
    }

    form.form-create-account .fieldset > .field{
        flex: 100% !important;
    }
    .customer-type-info-container {
        padding: 2rem !important;
    }

    .customer-type-info-container.mobile{
        display: block;
        margin-bottom: 20px;
    }
    .customer-type-info-container.desktop{
        display: none;
    }
}