/* ==========================================================
   TWILIA APP BUILDER
   Pagina: configuratore-app
   ========================================================== */

/* =========================
   TWILIA APP BUILDER - STEPS
   ========================= */

.twab-steps {
    position: relative;
    display: flex;
    width: 100%;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0;
}

/* Singolo step */
.twab-step-indicator {
    position: relative;
    flex: 1 1 20%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    text-align: center;
    z-index: 2;
}

/* Cerchio numero */
.twab-step-number {
    position: relative;
    z-index: 3;
    width: 36px !important;
    min-width: 36px;
    height: 36px;
    min-height: 36px !important;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 50%;
    background: #e9edf3;
    border: 2px solid #cdd5df;
}

/* Elimina margini Elementor sul numero */
.twab-step-number h1,
.twab-step-number h2,
.twab-step-number h3,
.twab-step-number h4,
.twab-step-number h5,
.twab-step-number h6,
.twab-step-number p {
    margin: 0 !important;
    line-height: 1 !important;
    font-size: 15px !important;
    font-weight: 700;
    color: #667085;
}

/* Etichetta sotto il cerchio */
.twab-step-label {
    margin-top: 8px;
    font-size: 13px;
    line-height: 1.25;
    font-weight: 500;
    color: #667085;
    white-space: nowrap;
}

/* Rimuove eventuali margini del widget testo */
.twab-step-label p {
    margin: 0 !important;
}

/* Linea tra gli step */
.twab-step-indicator:not(:last-child)::after {
    content: "";
    position: absolute;
    top: 17px;
    left: calc(50% + 18px);
    width: calc(100% - 36px);
    height: 2px;
    background: #d9dee7;
    z-index: 1;
}

/* Step attivo */
.twab-step-indicator.is-active .twab-step-number {
    background: #2166f3;
    border-color: #2166f3;
}

.twab-step-indicator.is-active .twab-step-number h1,
.twab-step-indicator.is-active .twab-step-number h2,
.twab-step-indicator.is-active .twab-step-number h3,
.twab-step-indicator.is-active .twab-step-number h4,
.twab-step-indicator.is-active .twab-step-number h5,
.twab-step-indicator.is-active .twab-step-number h6,
.twab-step-indicator.is-active .twab-step-number p {
    color: #ffffff;
}

.twab-step-indicator.is-active .twab-step-label {
    color: #2166f3;
    font-weight: 600;
}


/* =========================
   TWILIA APP BUILDER - FIELDS
   ========================= */

.twab-field {
    width: 100%;
    margin-top: 24px;
}

.twab-field label {
    display: block;
    margin-bottom: 8px;

    font-family: var(--body_typography-font-family, Arial, sans-serif) !important;
    font-size: 14px !important;
    line-height: 1.4;
    font-weight: 600 !important;

    color: #1f2937;
}

.twab-field input[type="text"],
.twab-field input[type="email"],
.twab-field input[type="tel"],
.twab-field textarea,
.twab-field select {
    width: 100%;
    min-height: 48px;

    padding: 12px 14px;

    border: 1px solid #d0d5dd;
    border-radius: 8px;

    background: #ffffff;
    color: #101828;

    font-family: var(--body_typography-font-family, Arial, sans-serif) !important;
    font-size: 15px;
    line-height: 1.4;

    box-sizing: border-box;

    transition:
        border-color 0.2s ease,
        box-shadow 0.2s ease;
}

.twab-field input::placeholder,
.twab-field textarea::placeholder {
    color: #98a2b3;
}

.twab-field input:focus,
.twab-field textarea:focus,
.twab-field select:focus {
    outline: none;
    border-color: #2166f3;
    box-shadow: 0 0 0 3px rgba(33, 102, 243, 0.12);
}

/* =========================
   TWILIA APP BUILDER - STEP CONTENT
   ========================= */

/* Titolo principale dello step */
.twab-step-title .elementor-heading-title {
    margin: 0 !important;

    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 30px !important;
    line-height: 1.2 !important;
    font-weight: 700 !important;

    color: #1f2937 !important;
}

/* Descrizione dello step */
.twab-step-description {
    margin-top: 8px;
}

.twab-step-description,
.twab-step-description p {
    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 16px !important;
    line-height: 1.55 !important;
    font-weight: 400 !important;

    color: #667085 !important;
}

.twab-step-description p {
    margin: 0 !important;
}

/* Label dei campi */
.twab-step .twab-field label {
    display: block;
    margin-bottom: 8px;

    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 14px !important;
    line-height: 1.4 !important;
    font-weight: 600 !important;

    color: #344054 !important;
}

/* =========================
   TWILIA APP BUILDER - LOGO UPLOAD
   ========================= */

.twab-logo-field {
    margin-top: 24px;
}

.twab-upload-box {
    position: relative;
    width: 100%;
    min-height: 130px;

    display: flex;
    align-items: center;
    justify-content: center;

    border: 2px dashed #cfd6df;
    border-radius: 10px;

    background: #f9fafb;

    cursor: pointer;
    overflow: hidden;

    transition:
        border-color 0.2s ease,
        background-color 0.2s ease;
}

.twab-upload-box:hover {
    border-color: #2166f3;
    background: #f5f8ff;
}

/* Input file trasparente sopra tutto il box */
.twab-upload-box input[type="file"] {
    position: absolute;
    inset: 0;

    width: 100%;
    height: 100%;

    opacity: 0;
    cursor: pointer;
    z-index: 2;
}

.twab-upload-placeholder {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;

    gap: 4px;
    padding: 20px;

    text-align: center;
    pointer-events: none;
}

.twab-upload-icon {
    width: 34px;
    height: 34px;

    display: flex;
    align-items: center;
    justify-content: center;

    margin-bottom: 4px;

    border-radius: 50%;
    background: #eaf1ff;
    color: #2166f3;

    font-size: 22px;
    line-height: 1;
    font-weight: 500;
}

.twab-upload-placeholder strong {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 14px;
    font-weight: 600;
    color: #344054;
}

.twab-upload-placeholder span:last-child {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 12px;
    color: #98a2b3;
}

/* Pulsante rimuovi logo */
.twab-remove-logo {
    display: none;
    margin-top: 10px;
}

.twab-remove-logo.is-visible {
    display: block;
}

.twab-remove-logo .elementor-button {
    background: transparent !important;
    color: #667085 !important;
    border: 0 !important;
    padding: 0 !important;

    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 13px !important;
    font-weight: 600 !important;
}

.twab-remove-logo .elementor-button:hover {
    color: #d92d20 !important;
}

/* label dimensioni logo */

.twab-field-help {
    margin-top: 5px;
    margin-bottom: 10px;

    font-family: Arial, Helvetica, sans-serif;
    font-size: 12px;
    line-height: 1.45;
    font-weight: 400;

    color: #667085;
}

/* errore caricamento  logo */

.twab-logo-error {
    margin-top: 8px;

    font-family: Arial, Helvetica, sans-serif;
    font-size: 13px;
    line-height: 1.4;
    font-weight: 400;

    color: #d92d20;
}

/* =========================
   TWILIA APP BUILDER - STEP ACTIONS
   ========================= */

.twab-step-actions {
    width: 100%;
    margin-top: 28px;
	gap: 16px;
}

/* Pulsante Avanti Elementor */
.twab-next .elementor-button {
    min-height: 48px;
    padding: 13px 24px;

    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;

    border: 0;
    border-radius: 8px;

    background: #2166f3 !important;
    color: #ffffff !important;

    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 15px !important;
    line-height: 1.2;
    font-weight: 600 !important;

    box-shadow: none;

    transition:
        background-color 0.2s ease,
        transform 0.2s ease,
        box-shadow 0.2s ease;
}

.twab-next .elementor-button:hover {
    background: #1854d1 !important;
    color: #ffffff !important;

    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(33, 102, 243, 0.20);
}

.twab-next .elementor-button:focus {
    color: #ffffff !important;
    outline: none;
    box-shadow: 0 0 0 3px rgba(33, 102, 243, 0.18);
}

/* Pulsante Indietro Elementor */
.twab-prev .elementor-button {
    min-height: 48px;
    padding: 13px 20px;

    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;

    border: 1px solid #d0d5dd !important;
    border-radius: 8px;

    background: #ffffff !important;
    color: #344054 !important;

    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 15px !important;
    line-height: 1.2;
    font-weight: 600 !important;

    box-shadow: none;

    transition:
        background-color 0.2s ease,
        border-color 0.2s ease,
        color 0.2s ease,
        transform 0.2s ease;
}

.twab-prev .elementor-button:hover {
    background: #f9fafb !important;
    border-color: #98a2b3 !important;
    color: #1f2937 !important;

    transform: translateY(-1px);
}

.twab-prev .elementor-button:focus {
    background: #ffffff !important;
    color: #344054 !important;
    outline: none;

    box-shadow: 0 0 0 3px rgba(52, 64, 84, 0.10);
}

/* =========================
   TWILIA APP BUILDER - PHONE PREVIEW
   ========================= */

.twab-phone-wrap {
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: flex-start;
}

/* Corpo smartphone */
.twab-phone {
    width: 320px;
    max-width: 100%;

    padding: 10px;

    background: #111827;
    border-radius: 38px;

    box-shadow:
        0 18px 45px rgba(16, 24, 40, 0.18),
        0 4px 12px rgba(16, 24, 40, 0.10);
}

/* Schermo */
.twab-phone-screen {
    position: relative;

    width: 100%;
    height: 620px;
    min-height: 620px;

    overflow: hidden;

    background: #ffffff;
    border-radius: 29px;
}

/* Barra superiore */
.twab-phone-statusbar {
    height: 34px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    padding: 0 18px;

    font-family: Arial, Helvetica, sans-serif;
    font-size: 11px;
    font-weight: 600;

    color: #111827;
}

/* Area contenuto App */
.twab-app-preview {
    height: 586px;
    min-height: 586px;

    display: flex;
    flex-direction: column;
    align-items: center;

    padding: 34px 24px;

    overflow: hidden;

    text-align: center;
}
/* Placeholder logo */
.twab-preview-logo {
    width: 84px;
    height: 84px;

    display: flex;
    align-items: center;
    justify-content: center;

    margin-bottom: 24px;

    border: 1px dashed #cfd6df;
    border-radius: 18px;

    background: #f8fafc;

    font-family: Arial, Helvetica, sans-serif;
    font-size: 12px;
    font-weight: 600;

    color: #98a2b3;
}

/* Nome attività */
#twab-preview-business-name {
    margin: 0;

    font-family: Arial, Helvetica, sans-serif;
    font-size: 24px;
    line-height: 1.2;
    font-weight: 700;

    color: #1f2937;
}

/* Slogan */
#twab-preview-business-slogan {
    margin: 10px 0 0;

    font-family: Arial, Helvetica, sans-serif;
    font-size: 14px;
    line-height: 1.5;
    font-weight: 400;

    color: #667085;
}

/* Logo caricato nella preview */
.twab-preview-logo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

/* Logo presente: rimuove lo stile placeholder */
.twab-preview-logo.has-logo {
    border: none;
    background: transparent;
    border-radius: 0;
}

/* =========================
   TWILIA APP BUILDER - STEP VISIBILITY
   ========================= */

.twab-steps-content .twab-step {
    display: none;
}

.twab-steps-content .twab-step.is-active {
    display: flex;
}

/* =========================
   TWILIA APP BUILDER - ELEMENTOR EDITOR
   Mostra tutti gli step durante la modifica
   ========================= */

body.elementor-editor-active .twab-steps-content .twab-step,
body.elementor-editor-preview .twab-steps-content .twab-step {
    display: flex !important;
}

/* =========================
   TWILIA APP BUILDER - VALIDATION
   ========================= */

.twab-field input.twab-field-error {
    border-color: #d92d20 !important;
}

.twab-field input.twab-field-error:focus {
    border-color: #d92d20 !important;
    box-shadow: 0 0 0 3px rgba(217, 45, 32, 0.12);
}

.twab-error-message {
    margin-top: 6px;

    font-family: Arial, Helvetica, sans-serif;
    font-size: 13px;
    line-height: 1.4;
    font-weight: 400;

    color: #d92d20;
}

/* =========================
   TWILIA APP BUILDER - STYLE CARDS
   ========================= */

.twab-style-grid {
    width: 100%;
    margin-top: 28px;
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
}

/* Singola card stile */
.twab-style-card {
    position: relative;

    width: calc(50% - 8px);
    flex: 0 0 calc(50% - 8px);

    padding: 16px;

    border: 2px solid #e4e7ec;
    border-radius: 14px;

    background: #ffffff;

    cursor: pointer;

    transition:
        border-color 0.2s ease,
        box-shadow 0.2s ease,
        transform 0.2s ease;
}

.twab-style-card:hover {
    border-color: #b9c5d6;
    transform: translateY(-2px);

    box-shadow: 0 8px 24px rgba(16, 24, 40, 0.08);
}

/* Mini-preview dello stile */
.twab-style-preview {
    width: 100%;
    min-height: 170px;

    margin-bottom: 16px;

    border-radius: 10px;

    background: #f4f6f8;
    border: 0;
}

/* Nome dello stile */
.twab-style-name .elementor-heading-title {
    margin: 0 !important;

    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 18px !important;
    line-height: 1.3 !important;
    font-weight: 700 !important;

    color: #1f2937 !important;
}

/* Descrizione */
.twab-style-description {
    margin-top: 6px;
}

.twab-style-description,
.twab-style-description p {
    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 13px !important;
    line-height: 1.5 !important;
    font-weight: 400 !important;

    color: #667085 !important;
}

.twab-style-description p {
    margin: 0 !important;
}

/* Radio dello stile */
.twab-style-card input[type="radio"] {
    margin-right: 6px;
}

.twab-style-card input[type="radio"] + label {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 13px;
    font-weight: 600;

    color: #2166f3;

    cursor: pointer;
}

/* =========================
   TWILIA APP BUILDER - STYLE CARD STATES
   ========================= */

.twab-style-card {
    position: relative;
}

/* Stato selezionato */
.twab-style-card.is-selected {
    border-color: #2166f3;
    box-shadow: 0 0 0 3px rgba(33, 102, 243, 0.10);
}

/* Check in alto a destra */
.twab-style-card.is-selected::after {
    content: "✓";

    position: absolute;
    top: 12px;
    right: 12px;

    width: 26px;
    height: 26px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 50%;
    background: #2166f3;
    color: #ffffff;

    font-family: Arial, Helvetica, sans-serif;
    font-size: 14px;
    font-weight: 700;

    z-index: 3;
}

/* Il radio rimane accessibile ma non visibile */
.twab-style-radio {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

/* Nasconde la label testuale */
.twab-style-select-label {
    display: none;
}

/* =========================
   MINIATURE STILI
   ========================= */

.twab-style-preview-image {
    width: 100%;
    height: 100%;

    display: flex;
    align-items: center;
    justify-content: center;

    padding: 7px;

    overflow: hidden;
}

.twab-style-preview-image img {
    display: block;

    width: auto;
    height: 100%;

    max-width: 100%;
    max-height: 100%;

    object-fit: contain;
}

/* =========================
   TWILIA APP BUILDER - BACKGROUND GALLERY
   ========================= */

.twab-background-grid {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    margin-top: 14px;
}

/* Card base */
.twab-background-card {
    position: relative;
    min-width: 0;

    display: flex;
    flex-direction: column;
    align-items: stretch;

    padding: 8px;

    border: 2px solid #e4e7ec;
    border-radius: 12px;

    background: #ffffff;

    cursor: pointer;

    font-family: Arial, Helvetica, sans-serif;

    transition:
        border-color 0.2s ease,
        box-shadow 0.2s ease,
        transform 0.2s ease;
}

.twab-background-card:hover {
    border-color: #b9c5d6;
    transform: translateY(-2px);

    box-shadow: 0 6px 18px rgba(16, 24, 40, 0.08);
}

/* Stato selezionato */
.twab-background-card.is-selected {
    border-color: #2166f3;
    box-shadow: 0 0 0 3px rgba(33, 102, 243, 0.10);
}

/* Check */
.twab-background-card.is-selected::after {
    content: "✓";

    position: absolute;
    top: 7px;
    right: 7px;

    width: 22px;
    height: 22px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 50%;

    background: #2166f3;
    color: #ffffff;

    font-size: 12px;
    font-weight: 700;

    z-index: 3;
}

/* Miniatura */
.twab-background-thumbnail,
.twab-background-none-preview,
.twab-background-upload-preview {
    width: 100%;
    aspect-ratio: 9 / 12;

    display: flex;
    align-items: center;
    justify-content: center;

    overflow: hidden;

    border-radius: 8px;

    background: #f8fafc;
}

/* Immagine miniatura */
.twab-background-thumbnail img,
.twab-background-upload-preview img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Card Nessuno */
.twab-background-none-preview {
    position: relative;
    background: #ffffff;
    border: 1px solid #e4e7ec;
}

.twab-background-none-preview::after {
    content: "Nessuno";

    font-size: 12px;
    font-weight: 600;
    color: #98a2b3;
}

/* Label */
.twab-background-label {
    display: block;

    margin-top: 8px;

    font-size: 12px;
    line-height: 1.3;
    font-weight: 600;

    text-align: center;

    color: #344054;
}

/* Upload */
.twab-background-upload {
    position: relative;
}

.twab-background-upload-preview {
    border: 1px dashed #cfd6df;
    background: #f9fafb;
}

.twab-background-upload-icon {
    width: 32px;
    height: 32px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 50%;

    background: #eaf1ff;
    color: #2166f3;

    font-size: 21px;
    line-height: 1;
    font-weight: 500;
}

/* Input file nascosto */
.twab-background-upload-input {
    position: absolute;
    inset: 0;

    width: 100%;
    height: 100%;

    opacity: 0;

    cursor: pointer;
    z-index: 4;
}

/* Responsive */
@media (max-width: 767px) {

    .twab-background-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

}

/* =========================
   TWILIA APP BUILDER - APPEARANCE
   ========================= */

.twab-appearance-title .elementor-heading-title {
    margin: 0 !important;

    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 24px !important;
    line-height: 1.25 !important;
    font-weight: 700 !important;

    color: #1f2937 !important;
}

.twab-appearance-description,
.twab-appearance-description p {
    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 15px !important;
    line-height: 1.55 !important;
    font-weight: 400 !important;

    color: #667085 !important;
}

.twab-appearance-description p {
    margin: 0 !important;
}

.twab-appearance-section-title .elementor-heading-title {
    margin: 0 !important;

    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 18px !important;
    line-height: 1.3 !important;
    font-weight: 700 !important;

    color: #1f2937 !important;
}

.twab-appearance-section-description,
.twab-appearance-section-description p {
    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 14px !important;
    line-height: 1.5 !important;
    font-weight: 400 !important;

    color: #667085 !important;
}

.twab-appearance-section-description p {
    margin: 0 !important;
}

/* =========================
   TWILIA APP BUILDER - COLORI
   ========================= */

.twab-color-grid {
    width: 100%;
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    gap: 16px;
    align-items: stretch;
}

.twab-color-grid > .twab-color-field {
    flex: 1 1 0;
    width: auto !important;
    min-width: 0;
}

/* =========================
   TWILIA APP BUILDER - COLOR CONTROLS
   ========================= */

.twab-color-field {
    width: 100%;
}

.twab-color-field label {
    display: block;
    margin-bottom: 8px;

    font-family: Arial, Helvetica, sans-serif;
    font-size: 14px;
    line-height: 1.4;
    font-weight: 600;

    color: #344054;
}

.twab-color-control {
    display: flex;
    align-items: center;
    gap: 10px;
}

/* Color picker */
.twab-color-control input[type="color"] {
    width: 48px;
    height: 48px;

    padding: 3px;

    border: 1px solid #d0d5dd;
    border-radius: 8px;

    background: #ffffff;

    cursor: pointer;
}

/* Campo HEX */
.twab-color-control input[type="text"] {
    flex: 1 1 auto;
    min-width: 0;
    height: 48px;

    padding: 0 14px;

    border: 1px solid #d0d5dd;
    border-radius: 8px;

    background: #ffffff;
    color: #101828;

    font-family: Arial, Helvetica, sans-serif;
    font-size: 14px;
    font-weight: 500;

    text-transform: uppercase;

    box-sizing: border-box;
}

.twab-color-control input[type="text"]:focus,
.twab-color-control input[type="color"]:focus {
    outline: none;
    border-color: #2166f3;
    box-shadow: 0 0 0 3px rgba(33, 102, 243, 0.12);
}

/* =========================
   RESET COLORI
   ========================= */

.twab-reset-colors {
    display: flex;
    justify-content: flex-end;
    margin-top: 12px;
}

.twab-reset-colors .elementor-button {
    padding: 0 !important;

    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;

    color: #667085 !important;

    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 13px !important;
    font-weight: 600 !important;
}

.twab-reset-colors .elementor-button:hover {
    color: #2166F3 !important;
}

/* =========================
   TWILIA APP BUILDER - TEMPLATE ESSENZIALE
   ========================= */

.twab-app-preview {
    --twab-primary-color: #2166F3;
    --twab-secondary-color: #F3F6FA;
    --twab-text-color: #1F2937;

    --twab-font-primary: 'Manrope', Arial, sans-serif;
    --twab-font-secondary: 'Inter', Arial, sans-serif;
}


/* =========================
   COLORE TESTI
   ========================= */

#twab-preview-business-name,
#twab-preview-business-slogan {
    color: var(--twab-text-color, #1F2937);
}


/* =========================
   GERARCHIA TIPOGRAFICA
   ========================= */

/* Font principale */

#twab-preview-business-name,
.twab-essential-service-name,
.twab-essential-offcanvas-title,
.twab-essential-notifications-title {
    font-family:
        var(--twab-font-primary, Arial, sans-serif);
}


/* Font secondario */

#twab-preview-business-slogan,
.twab-essential-service-description,
.twab-essential-notification-content span {
    font-family:
        var(--twab-font-secondary, Arial, sans-serif);
}

/* =========================
   TWILIA APP BUILDER - TYPOGRAPHY PRESETS
   ========================= */

.twab-typography-grid {
    width: 100%;

    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));

    gap: 12px;
}

.twab-typography-card {
    position: relative;

    min-width: 0;

    padding: 14px;

    border: 2px solid #e4e7ec;
    border-radius: 12px;

    background: #ffffff;

    cursor: pointer;

    transition:
        border-color 0.2s ease,
        box-shadow 0.2s ease,
        transform 0.2s ease;
}

.twab-typography-card:hover {
    border-color: #b9c5d6;

    transform: translateY(-2px);

    box-shadow:
        0 6px 18px rgba(16, 24, 40, 0.08);
}


/* =========================
   ANTEPRIMA FONT
   ========================= */

.twab-typography-preview {
    min-height: 76px;

    display: flex;
    flex-direction: column;
    justify-content: center;

    gap: 5px;

    padding: 12px;

    border-radius: 9px;

    background: #f8fafc;
}

.twab-typography-primary {
    display: block;

    font-size: 16px;
    line-height: 1.25;
    font-weight: 700;

    color: #1f2937;
}

.twab-typography-secondary {
    display: block;

    font-size: 11px;
    line-height: 1.4;
    font-weight: 400;

    color: #667085;
}


/* =========================
   NOME PRESET
   ========================= */

.twab-typography-label {
    margin-top: 10px;

    font-family: Arial, Helvetica, sans-serif;
    font-size: 13px;
    line-height: 1.3;
    font-weight: 600;

    color: #344054;
}


/* =========================
   STATO SELEZIONATO
   ========================= */

.twab-typography-card.is-selected {
    border-color: #2166F3;

    box-shadow:
        0 0 0 3px rgba(33, 102, 243, 0.10);
}

.twab-typography-card.is-selected::after {
    content: "✓";

    position: absolute;
    top: 8px;
    right: 8px;

    width: 22px;
    height: 22px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 50%;

    background: #2166F3;
    color: #ffffff;

    font-family: Arial, Helvetica, sans-serif;
    font-size: 12px;
    font-weight: 700;
}


/* =========================
   FONT DELLE ANTEPRIME
   ========================= */

.twab-font-manrope {
    font-family: 'Manrope', Arial, sans-serif;
}

.twab-font-inter {
    font-family: 'Inter', Arial, sans-serif;
}

.twab-font-montserrat {
    font-family: 'Montserrat', Arial, sans-serif;
}

.twab-font-open-sans {
    font-family: 'Open Sans', Arial, sans-serif;
}

.twab-font-nunito {
    font-family: 'Nunito Sans', Arial, sans-serif;
}

.twab-font-lato {
    font-family: 'Lato', Arial, sans-serif;
}

.twab-font-roboto {
    font-family: 'Roboto', Arial, sans-serif;
}

.twab-font-source-sans {
    font-family: 'Source Sans 3', Arial, sans-serif;
}


/* =========================
   RESPONSIVE
   ========================= */

@media (max-width: 767px) {

    .twab-typography-grid {
        grid-template-columns: 1fr;
    }

}


/* =========================
   SERVIZI - PAGINAZIONE FADE
   ========================= */

.twab-essential-services-viewport {
    position: relative;

    width: 100%;
    margin-top: 42px;

    flex: 1 1 auto;
    min-height: 0;

    overflow: hidden;
}

/* Singola pagina */

.twab-essential-services-page {
    position: absolute;
    inset: 0;

    display: flex;
    align-items: flex-start;

    opacity: 0;
    visibility: hidden;

    pointer-events: none;

    transition:
        opacity 0.28s ease,
        visibility 0.28s ease;
}


/* Pagina visibile */

.twab-essential-services-page.is-active {
    position: relative;

    opacity: 1;
    visibility: visible;

    pointer-events: auto;
}


/* Griglia */

.twab-essential-services {
    width: 100%;

    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));

    gap: 14px;
}


/* =========================
   PAGINAZIONE
   ========================= */

.twab-essential-services-pagination {
    display: flex;
    align-items: center;
    justify-content: center;

    gap: 6px;

    margin-top: 10px;
    margin-bottom: 4px;
}

.twab-essential-services-dot {
    width: 6px;
    height: 6px;

    padding: 0;

    border: 0;
    border-radius: 50%;

    background: rgba(102, 112, 133, 0.35);

    cursor: pointer;

    transition:
        width 0.2s ease,
        background-color 0.2s ease;
}

.twab-essential-services-dot.is-active {
    width: 18px;

    border-radius: 999px;

    background: var(--twab-primary-color, #2166F3);
}
/* =========================
   GRIGLIA SERVIZI
   ========================= */

.twab-essential-services {
    width: 100%;

    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));

    gap: 14px;

    padding-bottom: 18px;
}


/* =========================
   CARD SERVIZIO
   ========================= */

.twab-essential-service-card {
    min-height: 92px;

    display: flex;
    flex-direction: column;

    align-items: center;
    justify-content: center;

    gap: 4px;

    padding: 14px 10px;

    border: 1px solid var(--twab-primary-color, #2166F3);
    border-radius: 14px;

    background: var(--twab-secondary-color, #F3F6FA);

    color: var(--twab-primary-color, #2166F3);

    text-align: center;

    backdrop-filter: blur(4px);

    box-shadow:
        0 3px 12px rgba(16, 24, 40, 0.05);

    transition:
        transform 0.2s ease;
}


/* Icona */

.twab-essential-service-icon {
    display: flex;
    align-items: center;
    justify-content: center;

    min-height: 24px;

    margin-bottom: 2px;

    font-size: 21px;
    line-height: 1;
}

.twab-essential-service-icon i {
    display: block;

    font-size: 24px;
    line-height: 1;

    color: inherit;
}


/* Nome servizio - font principale */

.twab-essential-service-name {
    font-family:
        var(--twab-font-primary, Arial, sans-serif);

    font-size: 13px;
    line-height: 1.25;
    font-weight: 700;

    color: var(--twab-primary-color, #2166F3);
}


/* Descrizione - font secondario */

.twab-essential-service-description {
    font-family:
        var(--twab-font-secondary, Arial, sans-serif);

    font-size: 10px;
    line-height: 1.3;
    font-weight: 400;

    color: var(--twab-primary-color, #2166F3);

    opacity: 0.80;
}


/* =========================
   TWILIA APP BUILDER
   TEMPLATE ESSENZIALE - BOTTOM NAV
   ========================= */

/* Lascia spazio alla barra inferiore */
.twab-app-preview {
    position: relative;
    padding-bottom: 105px;
}

/* Barra di navigazione */
.twab-essential-bottom-nav {
    position: absolute;

    left: 16px;
    right: 16px;
    bottom: 16px;

    min-height: 68px;

    display: grid;
    grid-template-columns: repeat(4, 1fr);
    align-items: center;

    padding: 8px 6px;

    border: 1px solid rgba(16, 24, 40, 0.08);
    border-radius: 18px;

    background: var(--twab-secondary-color, #F3F6FA);

    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);

    box-shadow:
        0 8px 24px rgba(16, 24, 40, 0.10);

    z-index: 10;
}

/* Singola voce */
.twab-essential-nav-item {
    min-width: 0;

    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;

    gap: 4px;

    color: var(--twab-primary-color, #2166F3);

    font-family: Arial, Helvetica, sans-serif;

    cursor: default;
}

/* Icona */
.twab-essential-nav-icon {
    display: block;

    width: 21px;
    height: 21px;

    flex-shrink: 0;
}

/* Testo */
.twab-essential-nav-label {
    font-size: 10px;
    line-height: 1.2;
    font-weight: 600;

    white-space: nowrap;
}

/* Elemento attivo */
.twab-essential-nav-item.is-active {
    color: var(--twab-primary-color, #2166F3);
}

/* Piccolo indicatore dell'elemento attivo */
.twab-essential-nav-item.is-active::after {
    content: "";

    width: 18px;
    height: 3px;

    margin-top: 2px;

    border-radius: 999px;

    background: var(--twab-primary-color, #2166F3);
}

/* =========================
   TEMPLATE ESSENZIALE - HEADER
   ========================= */

.twab-essential-header {
    width: 100%;

    display: grid;
    grid-template-columns: 44px 1fr 44px;
    align-items: center;

    margin-bottom: 22px;
}

/* Logo centrato nell'header */
.twab-essential-header .twab-preview-logo {
    justify-self: center;
    margin: 0;
}

/* Pulsanti laterali */
.twab-essential-header-action {
    width: 38px;
    height: 38px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 12px;

    background: var(--twab-secondary-color, #F3F6FA);

    color: var(--twab-primary-color, #2166F3);

    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);

    box-shadow:
        0 2px 10px rgba(16, 24, 40, 0.06);
}

.twab-essential-header-action:first-child {
    justify-self: start;
}

.twab-essential-header-action:last-child {
    justify-self: end;
}

.twab-essential-header-icon {
    display: block;

    width: 21px;
    height: 21px;
}

/* =========================
   PREVIEW - ELEMENTI OPZIONALI
   ========================= */

.twab-preview-logo.is-empty {
    visibility: hidden;
}

#twab-preview-business-slogan.is-empty {
    display: none;
}

/* =========================
   TWILIA APP BUILDER - STICKY PREVIEW
   ========================= */

.twab-phone-wrap {
    position: sticky;
    top: 30px;
}

@media (max-width: 767px) {

    .twab-phone-wrap {
        position: static;
    }

}

/* =========================
   TEMPLATE ESSENZIALE - OFFCANVAS
   ========================= */

.twab-essential-offcanvas {
    position: absolute;
    inset: 0;

    pointer-events: none;
    z-index: 50;
}

/* Overlay */
.twab-essential-offcanvas-overlay {
    position: absolute;
    inset: 0;

    background: rgba(16, 24, 40, 0.28);

    opacity: 0;

    transition: opacity 0.28s ease;
}

/* Pannello laterale */
.twab-essential-offcanvas-panel {
    position: absolute;

    top: 0;
    left: 0;
    bottom: 0;

    width: 78%;
    max-width: 250px;

    display: flex;
    flex-direction: column;

    padding: 22px 18px 20px;

    background: var(--twab-secondary-color, #F3F6FA);

    transform: translateX(-105%);

    box-shadow:
        10px 0 28px rgba(16, 24, 40, 0.14);

    transition: transform 0.28s ease;

    overflow-y: auto;
}

/* Stato aperto */
.twab-essential-offcanvas.is-open {
    pointer-events: auto;
}

.twab-essential-offcanvas.is-open
.twab-essential-offcanvas-overlay {
    opacity: 1;
}

.twab-essential-offcanvas.is-open
.twab-essential-offcanvas-panel {
    transform: translateX(0);
}


/* =========================
   HEADER OFFCANVAS
   ========================= */

.twab-essential-offcanvas-header {
    width: 100%;

    display: flex;
    align-items: center;
    justify-content: space-between;

    margin-bottom: 26px;
}

/* Logo */
.twab-essential-offcanvas-logo {
    width: 105px;
    max-width: 105px;
    min-height: 38px;

    display: flex;
    align-items: center;
    justify-content: flex-start;

    font-family: Arial, Helvetica, sans-serif;
    font-size: 11px;
    font-weight: 600;

    color: var(--twab-primary-color, #2166F3);
}

.twab-essential-offcanvas-logo img {
    display: block;

    max-width: 100%;
    max-height: 44px;

    width: auto;
    height: auto;

    object-fit: contain;
}

.twab-essential-offcanvas-logo:not(.has-logo) {
    visibility: hidden;
}

/* Pulsante chiusura */
.twab-essential-offcanvas-close {
    width: 36px;
    height: 36px;

    flex: 0 0 36px;

    display: flex;
    align-items: center;
    justify-content: center;

    padding: 0;

    border: 0;
    border-radius: 10px;

    background: rgba(255, 255, 255, 0.52);
    color: var(--twab-primary-color, #2166F3);

    cursor: pointer;
}

.twab-essential-offcanvas-close svg {
    width: 19px;
    height: 19px;
}

.twab-essential-offcanvas-close:hover {
    background: rgba(255, 255, 255, 0.75);
}


/* =========================
   NAVIGAZIONE OFFCANVAS
   ========================= */

.twab-essential-offcanvas-nav {
    width: 100%;

    display: flex;
    flex-direction: column;

    gap: 6px;
}

.twab-essential-offcanvas-item {
    width: 100%;
    min-height: 46px;

    display: flex;
    align-items: center;

    gap: 12px;

    padding: 10px 12px;

    border-radius: 12px;

    color: var(--twab-primary-color, #2166F3);

   font-family:
    var(--twab-font-primary, Arial, sans-serif);
    font-size: 14px;
    line-height: 1.2;
    font-weight: 500;

    cursor: pointer;

    transition:
        background-color 0.2s ease,
        transform 0.2s ease;
}

.twab-essential-offcanvas-item svg {
    width: 20px;
    height: 20px;

    flex-shrink: 0;
}

/* Voce attiva */
.twab-essential-offcanvas-item.is-active {
    background: rgba(255, 255, 255, 0.56);

    font-weight: 700;
}

/* Hover */
.twab-essential-offcanvas-item:hover {
    background: rgba(255, 255, 255, 0.42);

    transform: translateX(2px);
}


/* =========================
   SEPARATORE + PROFILO
   ========================= */

.twab-essential-offcanvas-divider {
    width: 100%;
    height: 1px;

    margin: 18px 0;

    background: color-mix(
        in srgb,
        var(--twab-primary-color, #2166F3) 18%,
        transparent
    );
}

.twab-essential-offcanvas-profile {
    margin-top: auto;
}


/* =========================
   SICUREZZA SU SCHERMI PICCOLI
   ========================= */

@media (max-width: 767px) {

    .twab-essential-offcanvas-panel {
        width: 82%;
        max-width: 260px;
    }

}

/* =========================
   TEMPLATE ESSENZIALE - NOTIFICHE
   ========================= */

.twab-essential-notifications {
    position: absolute;
    inset: 0;

    pointer-events: none;
    z-index: 45;
}

.twab-essential-notifications-panel {
    position: absolute;

    top: 66px;
    right: 14px;

    width: calc(100% - 28px);
    max-width: 265px;

    padding: 14px;

    border: 1px solid rgba(16, 24, 40, 0.08);
    border-radius: 16px;

    background: var(--twab-secondary-color, #F3F6FA);

    box-shadow:
        0 12px 30px rgba(16, 24, 40, 0.16);

    opacity: 0;
    transform: translateY(-8px) scale(0.98);

    transition:
        opacity 0.2s ease,
        transform 0.2s ease;

    color: var(--twab-primary-color, #2166F3);
}

/* Stato aperto */
.twab-essential-notifications.is-open {
    pointer-events: auto;
}

.twab-essential-notifications.is-open
.twab-essential-notifications-panel {
    opacity: 1;
    transform: translateY(0) scale(1);
}

/* Header */
.twab-essential-notifications-header {
    display: flex;
    align-items: center;
    justify-content: space-between;

    margin-bottom: 12px;
}

.twab-essential-notifications-title {
    font-family:
        var(--twab-font-primary, Arial, sans-serif);

    font-size: 14px;
    font-weight: 700;

    color: var(--twab-primary-color, #2166F3);
}

/* Chiudi */
.twab-essential-notifications-close {
    width: 30px;
    height: 30px;

    display: flex;
    align-items: center;
    justify-content: center;

    padding: 0;

    border: 0;
    border-radius: 8px;

    background: rgba(255, 255, 255, 0.45);
    color: var(--twab-primary-color, #2166F3);

    cursor: pointer;
}

.twab-essential-notifications-close svg {
    width: 16px;
    height: 16px;
}

/* Lista */
.twab-essential-notifications-list {
    display: flex;
    flex-direction: column;

    gap: 8px;
}

.twab-essential-notification-item {
    display: flex;
    align-items: flex-start;

    gap: 10px;

    padding: 10px;

    border-radius: 10px;

    background: rgba(255, 255, 255, 0.48);
}

.twab-essential-notification-dot {
    width: 7px;
    height: 7px;

    flex: 0 0 7px;

    margin-top: 5px;

    border-radius: 50%;

    background: var(--twab-primary-color, #2166F3);
}

.twab-essential-notification-content {
    display: flex;
    flex-direction: column;

    gap: 3px;

    min-width: 0;
}

.twab-essential-notification-content strong {
    font-family:
        var(--twab-font-primary, Arial, sans-serif);

    font-size: 12px;
    line-height: 1.3;
    font-weight: 700;

    color: var(--twab-primary-color, #2166F3);
}

.twab-essential-notification-content span {
    font-family:
        var(--twab-font-secondary, Arial, sans-serif);

    font-size: 11px;
    line-height: 1.4;
    font-weight: 400;

    color: var(--twab-primary-color, #2166F3);
    opacity: 0.78;
}

/* ==========================================================
   TWILIA APP BUILDER - STEP 3
   SCEGLI LE FUNZIONI
   ========================================================== */


/* =========================
   SETTORE ATTIVITÀ
   ========================= */

.twab-sector-section {
    width: 100%;
    margin-top: 28px;
}

.twab-sector-field {
    width: 100%;
}

.twab-sector-field select {
    width: 100%;
    min-height: 50px;

    padding: 0 42px 0 14px;

    border: 1px solid #d0d5dd;
    border-radius: 9px;

    background-color: #ffffff;
    color: #101828;

    font-family: Arial, Helvetica, sans-serif;
    font-size: 15px;
    line-height: 1.4;
    font-weight: 500;

    cursor: pointer;

    box-sizing: border-box;

    transition:
        border-color 0.2s ease,
        box-shadow 0.2s ease;
}

.twab-sector-field select:focus {
    outline: none;

    border-color: #2166f3;

    box-shadow:
        0 0 0 3px rgba(33, 102, 243, 0.12);
}


/* =========================
   SEZIONI MODULI
   ========================= */

.twab-recommended-section,
.twab-other-modules-section {
    width: 100%;
    margin-top: 34px;
}


/* =========================
   MODULI CONSIGLIATI
   ========================= */

.twab-recommended-section-title {
    margin: 0;
}

.twab-recommended-section-title,
.twab-recommended-section-title .elementor-heading-title {
    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 20px !important;
    line-height: 1.3 !important;
    font-weight: 700 !important;

    color: #1f2937 !important;
}

.twab-recommended-section-description {
    margin-top: 5px;
}

.twab-recommended-section-description,
.twab-recommended-section-description p {
    margin-bottom: 0 !important;

    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 15px !important;
    line-height: 1.55 !important;
    font-weight: 400 !important;

    color: #667085 !important;
}


/* =========================
   ALTRI MODULI
   ========================= */

.twab-other-modules-section-title {
    margin: 0;
}

.twab-other-modules-section-title,
.twab-other-modules-section-title .elementor-heading-title {
    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 20px !important;
    line-height: 1.3 !important;
    font-weight: 700 !important;

    color: #1f2937 !important;
}

.twab-other-modules-section-description {
    margin-top: 5px;
}

.twab-other-modules-section-description,
.twab-other-modules-section-description p {
    margin-bottom: 0 !important;

    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 15px !important;
    line-height: 1.55 !important;
    font-weight: 400 !important;

    color: #667085 !important;
}


/* =========================
   GRIGLIA MODULI
   ========================= */

#twab-recommended-modules,
#twab-other-modules {
    width: 100%;

    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));

    gap: 12px;

    margin-top: 16px;
}


/* =========================
   CARD MODULO
   ========================= */

.twab-module-card {
    position: relative;

    min-width: 0;
    min-height: 118px;

    display: flex;
    flex-direction: column;

    align-items: center;
    justify-content: center;

    gap: 10px;

    padding: 16px 12px;

    border: 1px solid #2166F3;
    border-radius: 14px;

    background: #EAF1FF;

    cursor: pointer;

    text-align: center;

    box-shadow:
        0 3px 12px rgba(16, 24, 40, 0.05);

    transition:
        transform 0.22s ease,
        border-color 0.22s ease,
        box-shadow 0.22s ease,
        background-color 0.22s ease,
        color 0.22s ease;
}


/* =========================
   ICONA MODULO
   ========================= */

.twab-module-card-icon {
    width: 40px;
    height: 40px;

    display: flex;
    align-items: center;
    justify-content: center;

    color: #2166F3;

    transition: color 0.22s ease;
}

.twab-module-card-icon i {
    display: block;

    font-size: 32px;
    line-height: 1;

    color: inherit;
}

/* =========================
   NOME MODULO
   ========================= */

.twab-module-card-name {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 13px;
    line-height: 1.3;
    font-weight: 700;

    color: #2166F3;

    transition: color 0.22s ease;
}


/* =========================
   HOVER - ACRYLIC GLASS EFFECT
   ========================= */

.twab-module-card {
    overflow: hidden;
}


/* Riflesso vetro */

.twab-module-card::before {
    content: "";

    position: absolute;
    z-index: 1;

    top: -55%;
    left: -80%;

    width: 90%;
    height: 210%;

    pointer-events: none;

    opacity: 0;

    transform:
        rotate(20deg)
        translateX(-35%);

    background:
        linear-gradient(
            90deg,
            transparent 0%,
            rgba(255, 255, 255, 0.05) 25%,
            rgba(255, 255, 255, 0.42) 48%,
            rgba(255, 255, 255, 0.12) 65%,
            transparent 100%
        );

    filter: blur(2px);

    transition:
        opacity 0.35s ease,
        transform 0.65s ease;
}


/* Mantiene icona e testo sopra al riflesso */

.twab-module-card-icon,
.twab-module-card-name {
    position: relative;
    z-index: 2;
}


/* Hover */

.twab-module-card:hover {
    transform: translateY(-3px);

    border-color: rgba(255, 255, 255, 0.78);

    background:
        linear-gradient(
            145deg,
            rgba(255, 255, 255, 0.22) 0%,
            rgba(77, 151, 255, 0.82) 22%,
            rgba(33, 102, 243, 0.92) 58%,
            rgba(21, 82, 205, 0.88) 100%
        );

    -webkit-backdrop-filter:
        blur(18px)
        saturate(175%);

    backdrop-filter:
        blur(18px)
        saturate(175%);

    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.70),
        inset 1px 0 0 rgba(255, 255, 255, 0.24),
        inset -1px 0 0 rgba(255, 255, 255, 0.12),
        inset 0 -1px 0 rgba(255, 255, 255, 0.12),
        0 13px 30px rgba(62, 178, 255, 0.40),
        0 5px 14px rgba(33, 102, 243, 0.20);
}


/* Movimento del riflesso */

.twab-module-card:hover::before {
    opacity: 1;

    transform:
        rotate(20deg)
        translateX(210%);
}


.twab-module-card:hover .twab-module-card-icon,
.twab-module-card:hover .twab-module-card-name {
    color: #ffffff;
}


/* =========================
   STATO SELEZIONATO
   ACRYLIC GLASS EFFECT
   ========================= */

.twab-module-card.is-selected {
    border-color: rgba(255, 255, 255, 0.80);

    background:
        linear-gradient(
            145deg,
            rgba(255, 255, 255, 0.20) 0%,
            rgba(76, 150, 255, 0.84) 22%,
            rgba(33, 102, 243, 0.94) 58%,
            rgba(21, 82, 205, 0.90) 100%
        );

    -webkit-backdrop-filter:
        blur(18px)
        saturate(175%);

    backdrop-filter:
        blur(18px)
        saturate(175%);

    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.72),
        inset 1px 0 0 rgba(255, 255, 255, 0.24),
        inset -1px 0 0 rgba(255, 255, 255, 0.12),
        inset 0 -1px 0 rgba(255, 255, 255, 0.12),
        0 11px 27px rgba(62, 178, 255, 0.36),
        0 4px 12px rgba(33, 102, 243, 0.18);
}

.twab-module-card.is-selected .twab-module-card-icon,
.twab-module-card.is-selected .twab-module-card-name {
    color: #ffffff;
}


/* Riflesso permanente ma delicato sul selezionato */

.twab-module-card.is-selected::before {
    opacity: 0.50;

    left: -15%;

    transform:
        rotate(20deg)
        translateX(55%);
}


/* Quando passi sopra a un modulo già selezionato,
   il riflesso attraversa nuovamente la superficie */

.twab-module-card.is-selected:hover::before {
    opacity: 1;

    transform:
        rotate(20deg)
        translateX(210%);
}


/* =========================
   CHECK STATO SELEZIONATO
   ========================= */

.twab-module-card.is-selected::after {
    content: "✓";

    position: absolute;
    z-index: 3;

    top: 7px;
    right: 7px;

    width: 21px;
    height: 21px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 50%;

    background: rgba(255, 255, 255, 0.90);
    color: #2166F3;

    border: 1px solid rgba(255, 255, 255, 0.90);

    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);

    box-shadow:
        0 2px 8px rgba(16, 24, 40, 0.16),
        inset 0 1px 0 rgba(255, 255, 255, 0.95);

    font-family: Arial, Helvetica, sans-serif;
    font-size: 11px;
    font-weight: 700;
}
/* =========================
   HOVER SU CARD SELEZIONATA
   ========================= */

.twab-module-card.is-selected:hover {
    transform: translateY(-3px);

    background:
        linear-gradient(
            135deg,
            rgba(33, 102, 243, 0.96),
            rgba(65, 145, 255, 0.82)
        );

    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.45),
        inset 0 -1px 0 rgba(255, 255, 255, 0.12),
        0 14px 30px rgba(62, 178, 255, 0.44),
        0 6px 16px rgba(33, 102, 243, 0.24);
}
/* =========================
   DETTAGLI MODULO
   ========================= */

#twab-module-details {
    width: 100%;

    margin-top: 34px;

    padding: 22px;

    border: 1px solid #e4e7ec;
    border-radius: 16px;

    background: #f8fafc;

    box-sizing: border-box;
}


/* Stato vuoto */

.twab-module-details-empty {
    min-height: 120px;

    display: flex;
    flex-direction: column;

    align-items: center;
    justify-content: center;

    gap: 7px;

    padding: 16px;

    text-align: center;
}

.twab-module-details-empty strong {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 15px;
    line-height: 1.3;
    font-weight: 700;

    color: #344054;
}

.twab-module-details-empty span {
    max-width: 420px;

    font-family: Arial, Helvetica, sans-serif;
    font-size: 13px;
    line-height: 1.5;

    color: #667085;
}


/* =========================
   DETTAGLIO MODULO POPOLATO
   ========================= */

.twab-module-detail-header {
    display: flex;
    align-items: center;

    gap: 12px;

    margin-bottom: 18px;
}

.twab-module-detail-icon {
    width: 46px;
    height: 46px;

    flex: 0 0 46px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 12px;

    background: #eaf1ff;
    color: #2166f3;
}

/* Icona Phosphor */

.twab-module-detail-icon i {
    display: block;

    font-size: 28px;
    line-height: 1;

    color: inherit;
}

.twab-module-detail-title {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 21px;
    line-height: 1.25;
    font-weight: 700;

    color: #1f2937;
}

.twab-module-detail-tagline {
    margin-top: 3px;

    font-family: Arial, Helvetica, sans-serif;
    font-size: 13px;
    line-height: 1.4;

    color: #667085;
}

.twab-module-detail-block {
    margin-top: 17px;
}

.twab-module-detail-block-title {
    margin-bottom: 5px;

    font-family: Arial, Helvetica, sans-serif;
    font-size: 12px;
    line-height: 1.3;
    font-weight: 700;

    text-transform: uppercase;
    letter-spacing: 0.04em;

    color: #475467;
}

.twab-module-detail-text {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 13px;
    line-height: 1.55;

    color: #475467;
}

.twab-module-benefits {
    display: flex;
    flex-direction: column;

    gap: 7px;

    margin-top: 8px;
}

.twab-module-benefit {
    display: flex;
    align-items: flex-start;

    gap: 7px;

    font-family: Arial, Helvetica, sans-serif;
    font-size: 13px;
    line-height: 1.45;

    color: #344054;
}

.twab-module-benefit::before {
    content: "✓";

    flex: 0 0 auto;

    font-weight: 700;

    color: #2166f3;
}


/* Pulsante aggiungi */

.twab-module-add-button {
    width: 100%;

    margin-top: 20px;

    min-height: 46px;

    display: flex;
    align-items: center;
    justify-content: center;

    border: 0;
    border-radius: 9px;

    background: #2166f3;
    color: #ffffff;

    font-family: Arial, Helvetica, sans-serif;
    font-size: 14px;
    font-weight: 600;

    cursor: pointer;

    transition:
        background-color 0.2s ease,
        transform 0.2s ease;
}

.twab-module-add-button:hover {
    background: #1854d1;
}


/* =========================
   MODULI SELEZIONATI
   ========================= */

.twab-selected-modules-section {
    width: 100%;

    margin-top: 34px;

    padding-top: 28px;

    border-top: 1px solid #e4e7ec;
}


/* Titolo */

.twab-selected-modules-section-title {
    margin: 0;
}

.twab-selected-modules-section-title,
.twab-selected-modules-section-title .elementor-heading-title {
    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 20px !important;
    line-height: 1.3 !important;
    font-weight: 700 !important;

    color: #1f2937 !important;
}


/* Descrizione */

.twab-selected-modules-section-description {
    margin-top: 5px;
}

.twab-selected-modules-section-description,
.twab-selected-modules-section-description p {
    margin-bottom: 0 !important;

    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 13px !important;
    line-height: 1.5 !important;
    font-weight: 400 !important;

    color: #667085 !important;
}


#twab-selected-modules {
    width: 100%;

    display: flex;
    flex-direction: column;

    gap: 8px;

    margin-top: 14px;
}


/* Riga modulo ordinabile */

.twab-selected-module-item {
    width: 100%;

    min-height: 52px;

    display: flex;
    align-items: center;

    gap: 10px;

    padding: 8px 10px;

    border: 1px solid #e4e7ec;
    border-radius: 10px;

    background: #ffffff;

    box-sizing: border-box;
}

.twab-selected-module-handle {
    width: 24px;

    flex: 0 0 24px;

    display: flex;
    align-items: center;
    justify-content: center;

    color: #98a2b3;

    font-size: 18px;

    cursor: grab;
}

.twab-selected-module-icon {
    width: 30px;
    height: 30px;

    flex: 0 0 30px;

    display: flex;
    align-items: center;
    justify-content: center;

    color: #2166f3;
}

.twab-selected-module-icon svg {
    width: 21px;
    height: 21px;
}

.twab-selected-module-name {
    flex: 1 1 auto;

    min-width: 0;

    font-family: Arial, Helvetica, sans-serif;
    font-size: 13px;
    line-height: 1.3;
    font-weight: 600;

    color: #344054;
}

.twab-selected-module-remove {
    width: 28px;
    height: 28px;

    flex: 0 0 28px;

    display: flex;
    align-items: center;
    justify-content: center;

    padding: 0;

    border: 0;
    border-radius: 7px;

    background: transparent;

    color: #98a2b3;

    cursor: pointer;
}

.twab-selected-module-remove:hover {
    background: #fff1f0;
    color: #d92d20;
}


/* =========================
   RESPONSIVE
   ========================= */

@media (max-width: 900px) {

    #twab-recommended-modules,
    #twab-other-modules {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

}

@media (max-width: 767px) {

    #twab-recommended-modules,
    #twab-other-modules {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    #twab-module-details {
        padding: 18px;
    }

}

/* =========================
   DRAG & DROP MODULI
   ========================= */

.twab-selected-module-item {
    transition:
        opacity 0.18s ease,
        transform 0.18s ease,
        box-shadow 0.18s ease;
}

.twab-selected-module-item[draggable="true"] {
    cursor: grab;
}

.twab-selected-module-item.is-dragging {
    opacity: 0.45;

    transform: scale(0.98);

    box-shadow:
        0 8px 20px rgba(33, 102, 243, 0.16);
}

.twab-selected-module-handle {
    cursor: grab;

    user-select: none;
    -webkit-user-select: none;
}

.twab-selected-module-item:active,
.twab-selected-module-handle:active {
    cursor: grabbing;
}

/* =========================
   ERRORE VALIDAZIONE STEP 3
   ========================= */

.twab-modules-error-message {
    width: 100%;

    margin-top: 20px;

    padding: 11px 14px;

    border: 1px solid #f3b6b6;
    border-radius: 8px;

    background: #fff5f5;

    color: #b42318;

    font-family: Arial, Helvetica, sans-serif;
    font-size: 13px;
    line-height: 1.45;
    font-weight: 500;

    box-sizing: border-box;
}