/*
 * Area riservata dei clienti, checkout, box acquisto corso, card del query loop.
 *
 * I colori vengono dal tema del CMS attraverso le variabili --acc-* qui sotto:
 *   --acc-primary  pulsanti principali (--accent)
 *   --acc-dark     pulsanti secondari e titoli (--accent-color, altrimenti --text)
 *   --acc-hover    hover dei pulsanti (--secondary-color, altrimenti --accent-hover)
 * Per adattare lo stile a un sito basta ridefinire le --acc-* nel foglio del tema.
 */
:root {
    /* Colori dal tema del CMS (style.css / colors-override.css / color.css); ogni sito può ridefinire le --acc-* */
    --acc-text: var(--text, #1e293b);
    --acc-muted: var(--text-secondary, #64748b);
    --acc-primary: var(--accent, #2563eb);
    --acc-dark: var(--accent-color, var(--text, #1e293b));
    --acc-hover: var(--secondary-color, var(--accent-hover, #1d4ed8));
    --acc-page: var(--surface, #ffffff);
    --acc-field: var(--surface-alt, #f8fafc);
    --acc-line: color-mix(in srgb, var(--acc-dark) 14%, transparent);   /* bordi e separatori */
    --acc-chip: color-mix(in srgb, var(--acc-primary) 15%, var(--acc-page));
    --acc-tag: color-mix(in srgb, var(--acc-dark) 8%, transparent);     /* sfondi dei riquadri */
    --acc-radius-card: 28px;
    --acc-radius: 16px;
    --acc-control-h: 60px;
    --acc-arrow-down: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 33.1 16.64'%3E%3Cg transform='translate(33.1 0) rotate(90)'%3E%3Cpath fill='%231e293b' d='M5,33.1c-1.28,0-2.56-.49-3.54-1.46-1.95-1.95-1.95-5.12,0-7.07l3.17-3.17c2.67-2.67,2.67-7.02,0-9.69l-3.17-3.17c-1.95-1.95-1.95-5.12,0-7.07,1.95-1.95,5.12-1.95,7.07,0l3.17,3.17c3.18,3.18,4.94,7.41,4.94,11.91s-1.75,8.73-4.94,11.91l-3.17,3.17c-.98.98-2.26,1.46-3.54,1.46Z'/%3E%3C/g%3E%3C/svg%3E");
    --acc-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16.64 33.1'%3E%3Cpath d='M5,33.1c-1.28,0-2.56-.49-3.54-1.46-1.95-1.95-1.95-5.12,0-7.07l3.17-3.17c2.67-2.67,2.67-7.02,0-9.69l-3.17-3.17c-1.95-1.95-1.95-5.12,0-7.07,1.95-1.95,5.12-1.95,7.07,0l3.17,3.17c3.18,3.18,4.94,7.41,4.94,11.91s-1.75,8.73-4.94,11.91l-3.17,3.17c-.98.98-2.26,1.46-3.54,1.46Z'/%3E%3C/svg%3E");
}

.acc-wrap {
    padding: 56px 0 96px;
    color: var(--acc-text);
    background: var(--acc-page);
}

.acc-wrap *, .acc-wrap *::before, .acc-wrap *::after {
    box-sizing: border-box;
}

.acc-container {
    max-width: var(--container-max, 1340px);
    margin: 0 auto;
    padding: 0 var(--container-pad, 20px);
}

.acc-narrow {
    max-width: 560px;
    margin: 0 auto;
}

.acc-medium {
    max-width: 860px;
    margin: 0 auto;
}

/* Titoli e breadcrumb */
.acc-breadcrumb {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    font-size: 14px;
    line-height: 14px;
    margin-bottom: 1.25rem;
    color: var(--acc-text);
}

.acc-breadcrumb a {
    color: inherit;
    text-decoration: none;
}

.acc-breadcrumb a:hover {
    color: var(--acc-primary);
}

.acc-breadcrumb span:last-child {
    font-weight: 700;
}

.acc-page-title, .acc-wrap h1 {
    font-family: var(--font-heading, inherit);
    font-weight: 700;
    color: var(--acc-dark);
    line-height: 1.1;
    letter-spacing: -.01em;
}

.acc-page-title {
    font-size: clamp(2rem, 4vw, 3.5rem);
    margin: 0 0 .75rem;
}

.acc-wrap h2 {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--acc-dark);
    margin: 0 0 .5rem;
    line-height: 1.2;
}

.acc-wrap h3 {
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--acc-dark);
    margin: 0 0 .5rem;
}

.acc-muted {
    color: var(--acc-muted);
    font-size: .95rem;
}

.acc-intro {
    color: var(--acc-muted);
    font-size: 1.05rem;
    margin: 0 0 2rem;
}

/* Card */
.acc-card {
    background: transparent;
    border: 2px solid color-mix(in srgb, var(--acc-dark) 14%, transparent);
    border-radius: var(--acc-radius-card);
    padding: 2rem;
}

.acc-card + .acc-card {
    margin-top: 1.5rem;
}

.acc-card h1 {
    font-size: 2rem;
    margin: 0 0 .5rem;
}

/* Layout area riservata con menu laterale */
.acc-layout {
    display: grid;
    grid-template-columns: 280px 1fr;
    gap: 2.5rem;
    align-items: start;
}

.acc-nav {
    border: 2px solid color-mix(in srgb, var(--acc-dark) 14%, transparent);
    border-radius: var(--acc-radius-card);
    padding: 1rem;
    position: sticky;
    top: 130px;
}

.acc-nav__user {
    padding: .5rem .75rem 1rem;
    border-bottom: 2px solid var(--acc-line);
    margin-bottom: .75rem;
}

.acc-nav__user strong {
    display: block;
    font-size: 1.1rem;
    color: var(--acc-dark);
}

.acc-nav__user span {
    font-size: .85rem;
    color: var(--acc-muted);
    word-break: break-all;
}

.acc-nav a, .acc-nav button {
    display: flex;
    align-items: center;
    gap: .7rem;
    width: 100%;
    padding: .75rem .9rem;
    border-radius: 12px;
    color: var(--acc-dark);
    text-decoration: none;
    font: inherit;
    font-size: .98rem;
    font-weight: 500;
    background: none;
    border: 0;
    cursor: pointer;
    text-align: left;
    transition: background .2s, color .2s;
}

.acc-nav a:hover, .acc-nav button:hover {
    background: color-mix(in srgb, var(--acc-primary) 8%, transparent);
}

.acc-nav a.is-active {
    background: var(--acc-dark);
    color: #fff;
}

.acc-nav svg {
    width: 18px;
    height: 18px;
    flex-shrink: 0;
}

.acc-nav__sep {
    height: 2px;
    background: var(--acc-line);
    margin: .75rem 0;
}

/* Form: campi "pillola" */
.acc-form {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px 12px;
}

.acc-form .acc-full {
    grid-column: 1 / -1;
}

.acc-field label {
    display: block;
    font-size: .9rem;
    font-weight: 500;
    margin: 0 0 .4rem .25rem;
    color: var(--acc-dark);
}

.acc-field input:not([type=checkbox]):not([type=radio]):not([type=file]), .acc-field select, .acc-field textarea {
    display: block;
    width: 100%;
    min-height: var(--acc-control-h);
    padding: .9rem 1.6rem;
    font: inherit;
    font-size: 1rem;
    color: var(--acc-dark);
    background-color: var(--acc-field);
    border: 2px solid color-mix(in srgb, var(--acc-dark) 14%, transparent);
    border-radius: var(--acc-radius);
    transition: border-color .2s, box-shadow .2s;
    appearance: none;
    -webkit-appearance: none;
}

.acc-field textarea {
    min-height: 120px;
}

.acc-field select {
    padding-right: 3rem;
    cursor: pointer;
    background-image: var(--acc-arrow-down);
    background-repeat: no-repeat;
    background-position: right 1.4rem center;
    background-size: 14px 7px;
}

.acc-field--select {
    position: relative;
}

.acc-field input[type=file] {
    width: 100%;
    padding: .9rem 1rem;
    border: 2px dashed var(--acc-line);
    border-radius: var(--acc-radius);
    background: var(--acc-field);
    color: var(--acc-dark);
    font: inherit;
}

.acc-field input::placeholder, .acc-field textarea::placeholder {
    color: #8A93B8;
}

.acc-field .is-invalid {
    border-color: #DC2626 !important;
}

.acc-field input:disabled, .acc-field select:disabled {
    opacity: .6;
    cursor: not-allowed;
}

.acc-error {
    color: #DC2626;
    font-size: .85rem;
    margin: .35rem 0 0 .25rem;
}

.acc-check {
    display: flex;
    gap: .75rem;
    align-items: flex-start;
    font-size: .95rem;
    line-height: 1.45;
    cursor: pointer;
}

.acc-check input {
    appearance: none;
    -webkit-appearance: none;
    transition: 0.5s;
    flex-shrink: 0;
    width: 28px;
    height: 28px;
    margin: -2px 0 0;
    background: var(--acc-field);
    border: 2px solid color-mix(in srgb, var(--acc-dark) 14%, transparent);
    border-radius: 8px;
    cursor: pointer;
    display: grid;
    place-content: center;
    /* transition: background .2s, border-color .2s; */
}

.acc-check input:checked {
    /* background: var(--acc-primary); */
    /* border-color: color-mix(in srgb, var(--acc-primary) 44%, transparent); */
    /* background-color: var(--acc-dark); */
    /* box-shadow: inset 0 0 0px 5px var(--bg-primary); */
    border-color: color-mix(in srgb, var(--acc-primary) 44%, transparent);
}

.acc-check input::after {
    content: '';
    width: 0;
    background: var(--acc-dark);
    height: 0;
    border-top: 0;
    border-right: 0;
    border-radius: 4px;
    transition:0.2s all;
}

.acc-check input:checked::after {
    content: '';
    width: 18px;
    background: var(--acc-dark);
    height: 18px;
    border-top: 0;
    border-right: 0;
    border-radius: 4px;
}

.acc-check a {
    color: inherit;
    text-decoration: underline;
}

.acc-hp {
    position: absolute !important;
    left: -9999px !important;
}

.acc-section-title {
    grid-column: 1 / -1;
    margin: 1.25rem 0 0 !important;
    padding-top: 1.25rem;
    border-top: 2px solid var(--acc-line);
}

/* Pulsanti: etichetta a sinistra, freccia a destra */
.acc-btn {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
    min-height: var(--acc-control-h);
    padding: 0 1.8rem;
    font: inherit;
    font-weight: 700;
    font-size: 1rem;
    line-height: 1.2;
    border-radius: var(--acc-radius);
    border: 2px solid var(--acc-primary);
    background: var(--acc-primary);
    color: #fff;
    cursor: pointer;
    text-decoration: none;
    transition: background .2s, border-color .2s, color .2s;
    text-align: left;
}

.acc-btn::after {
    content: '';
    width: 7px;
    height: 14px;
    flex-shrink: 0;
    background: currentColor;
    -webkit-mask: var(--acc-arrow) center / contain no-repeat;
    mask: var(--acc-arrow) center / contain no-repeat;
}

.acc-btn:hover, .acc-btn:focus-visible {
    background: var(--acc-hover);
    border-color: var(--acc-hover);
    color: #fff;
}

.acc-btn[disabled], .acc-btn[disabled]:hover {
    opacity: .55;
    cursor: not-allowed;
    background: var(--acc-primary);
    border-color: var(--acc-primary);
}

.acc-btn--dark {
    background: var(--acc-dark);
    border-color: var(--acc-dark);
}

.acc-btn--ghost {
    background: transparent;
    color: var(--acc-dark);
    border-color: var(--acc-dark);
}

.acc-btn--ghost:hover {
    background: var(--acc-dark);
    border-color: var(--acc-dark);
    color: #fff;
}

.acc-btn--danger {
    background: transparent;
    color: #DC2626;
    border-color: #DC2626;
}

.acc-btn--danger:hover {
    background: #DC2626;
    border-color: #DC2626;
}

.acc-btn--danger::after {
    display: none;
}

.acc-btn--sm {
    min-height: 44px;
    padding: 0 1.2rem;
    font-size: .9rem;
    border-radius: 12px;
    gap: 1rem;
}

.acc-btn--block {
    width: 100%;
}

.acc-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
    align-items: center;
}

.acc-link {
    color: var(--acc-primary);
    text-decoration: none;
    font-weight: 500;
}

.acc-link:hover {
    color: var(--acc-hover);
}

/* Avvisi */
.acc-alert {
    padding: 1rem 1.25rem;
    border-radius: var(--acc-radius);
    margin-bottom: 1.5rem;
    font-size: .95rem;
    border: 2px solid transparent;
}

.acc-alert--success {
    background: #E8F6EE;
    border-color: #A7DDBE;
    color: #0F5132;
}

.acc-alert--error {
    background: #FDECE7;
    border-color: #F6B8A2;
    color: #9A2F0B;
}

.acc-alert--info {
    background: #E9EEFE;
    border-color: #BCCBFD;
    color: var(--acc-dark);
}

.acc-alert--warning {
    background: #FFF1D6;
    border-color: #F5D18A;
    color: #7A4B00;
}

.acc-alert ul {
    margin: .35rem 0 0 1.2rem;
}

/* Tabelle */
/* Numero d'ordine e totale sempre su una riga: va a capo il nome del corso */
.acc-table .acc-nowrap {
    white-space: nowrap;
}

.acc-table-wrap {
    overflow-x: auto;
}

.acc-table {
    width: 100%;
    border-collapse: collapse;
    font-size: .95rem;
}

.acc-table th {
    text-align: left;
    font-size: .8rem;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--acc-muted);
    font-weight: 500;
    padding: .7rem .75rem;
    border-bottom: 2px solid var(--acc-line);
}

.acc-table td {
    padding: .9rem .75rem;
    border-bottom: 1px solid var(--acc-line);
    vertical-align: middle;
}

.acc-table tr:last-child td {
    border-bottom: 0;
}

.acc-right {
    text-align: right;
}

/* Badge / chip */
.acc-badge {
    display: inline-block;
    padding: .3rem .8rem;
    font-size: .8rem;
    font-weight: 700;
    border-radius: 8px;
    background: var(--acc-chip);
    color: var(--acc-primary);
    white-space: nowrap;
}

.acc-badge--paid {
    background: #D9F2E3;
    color: #0F5132;
}

.acc-badge--pending, .acc-badge--awaiting_payment {
    background: #FFE9C7;
    color: #7A4B00;
}

.acc-badge--cancelled, .acc-badge--failed, .acc-badge--refunded {
    background: #FBD9CC;
    color: #9A2F0B;
}

.acc-chip {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    padding: .35rem .8rem;
    line-height: 16px;
    font-size: 13px;
    font-weight: 700;
    border-radius: 10px;
    background-color: color-mix(in srgb, var(--acc-dark) 8%, transparent);
    color: var(--acc-dark);
}

.acc-chip svg {
    width: 18px;
    height: 18px;
    flex-shrink: 0;
}

.acc-chip--category {
    background: var(--acc-chip);
    color: var(--acc-primary);
    padding: .4rem 1.4rem;
}

/* Griglie card (corsi dell'area riservata) */
.acc-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 20px;
}

/* Corsi acquistati: card della pagina corsi (.ql-dual) con le informazioni sull'accesso */
.acc-course__meta {
    display: grid;
    gap: .2rem;
    font-size: .95rem;
    color: var(--acc-muted);
}

.acc-stats {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 20px;
    margin-bottom: 1.5rem;
}

.acc-stat {
    border: 2px solid color-mix(in srgb, var(--acc-dark) 14%, transparent);
    border-radius: var(--acc-radius-card);
    padding: 1.4rem 1.6rem;
    text-decoration: none;
    color: var(--acc-dark);
    transition: border-color .2s;
}

.acc-stat:hover {
    border-color: var(--acc-primary);
}

.acc-stat strong {
    display: block;
    font-size: 2.4rem;
    line-height: 1;
    color: var(--acc-primary);
}

.acc-stat span {
    font-size: .95rem;
    font-weight: 500;
}

.acc-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.acc-list li {
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    align-items: center;
    padding: 1rem 0;
    border-bottom: 1px solid var(--acc-line);
}

.acc-list li:last-child {
    border-bottom: 0;
}

.acc-list__main {
    min-width: 0;
}

.acc-list__main strong {
    display: block;
    color: var(--acc-dark);
}

.acc-kv {
    display: grid;
    grid-template-columns: max-content 1fr;
    gap: .5rem 1.5rem;
    font-size: .98rem;
    margin: 0;
}

.acc-kv dt {
    color: var(--acc-muted);
}

.acc-kv dd {
    margin: 0;
    font-weight: 500;
}

/* Checkout */
.acc-checkout {
    display: grid;
    grid-template-columns: 1fr 400px;
    gap: 2.5rem;
    align-items: start;
}

.acc-summary {
    position: sticky;
    top: 130px;
    background: linear-gradient(160deg, #EFE8DB 0%, #FBF4E6 100%);
}

.acc-summary__row {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: .4rem 0;
    font-size: 1rem;
}

.acc-summary__total {
    border-top: 2px solid var(--acc-line);
    margin-top: .75rem;
    padding-top: 1rem;
    font-weight: 700;
    font-size: 1.6rem;
    color: var(--acc-primary);
}

.acc-methods {
    display: grid;
    gap: 12px;
}

.acc-method {
    display: flex;
    gap: 1rem;
    align-items: flex-start;
    padding: 1.2rem 1.4rem;
    border: 2px solid color-mix(in srgb, var(--acc-dark) 14%, transparent);
    border-radius: var(--acc-radius);
    background: var(--acc-field);
    cursor: pointer;
    transition: border-color .2s, background .2s;
}

.acc-method:hover {
    border-color: var(--acc-primary);
}

.acc-method input {
    appearance: none;
    -webkit-appearance: none;
    flex-shrink: 0;
    width: 24px;
    height: 24px;
    margin: 0;
    border: 2px solid color-mix(in srgb, var(--acc-dark) 14%, transparent);
    border-radius: 50%;
    background: #fff;
    cursor: pointer;
}

.acc-method input:checked {
    border: 7px solid var(--acc-primary);
}

.acc-method.is-selected {
    border-color: var(--acc-primary);
    background: #fff;
}

.acc-method strong {
    display: block;
    color: var(--acc-dark);
}

.acc-instructions {
    white-space: pre-line;
    background: var(--acc-field);
    border: 2px dashed var(--acc-line);
    padding: 1.25rem;
    border-radius: var(--acc-radius);
    font-size: .95rem;
}

/* ─── Box acquisto corso (widget "Acquista corso" / pagina corso) ─── */
.course-buy {
    color: var(--acc-text);
}

.course-buy__box {
    position: relative;
    border: 2px solid color-mix(in srgb, var(--acc-dark) 14%, transparent);
    border-radius: var(--acc-radius-card);
    background: linear-gradient(160deg, #EDE6DA 0%, #FBF4E6 100%);
    padding: 2rem 1.9rem calc(var(--acc-control-h) + 1.5rem);
}

.course-buy__box--no-buy {
    padding-bottom: 2rem;
}

.course-buy__price {
    font-size: 3rem;
    font-weight: 700;
    line-height: 1;
    color: var(--acc-primary);
    letter-spacing: -.02em;
}

.course-buy__old {
    display: block;
    font-size: 1.1rem;
    font-weight: 500;
    color: var(--acc-muted);
    text-decoration: line-through;
    margin-bottom: .35rem;
}

.course-buy__vat {
    font-size: .9rem;
    font-weight: 500;
    color: #8DA3F9;
    margin-top: .35rem;
}

.course-buy__facts {
    list-style: none;
    margin: 1.75rem 0 0;
    padding: 1.75rem 0 0;
    border-top: 2px solid var(--acc-line);
    display: grid;
    gap: .8rem;
}

.course-buy__facts li {
    display: flex;
    align-items: center;
    gap: .75rem;
    font-size: .95rem;
    font-weight: 700;
    color: var(--acc-dark);
}

.course-buy__facts svg {
    width: 18px;
    height: 18px;
    flex-shrink: 0;
}

.course-buy__main {
    position: absolute;
    left: -2px;
    right: -2px;
    bottom: -2px;
    width: auto;
    border-radius: var(--acc-radius);
}

.course-buy__secondary {
    display: grid;
    gap: 20px;
    margin-top: 20px;
}

.course-buy__note {
    font-size: .9rem;
    color: var(--acc-muted);
    margin-top: 1rem;
}

.course-buy__seats {
    font-size: .9rem;
    font-weight: 700;
    color: var(--acc-hover);
    margin-top: 1rem;
}

.course-buy__status {
    margin-top: 1.5rem;
    font-weight: 700;
    color: var(--acc-dark);
}

.acc-checks-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: .75rem 1.25rem;
}

.is-hidden {
    display: none !important;
}

@media (max-width: 991px) {
    .acc-layout, .acc-checkout {
        grid-template-columns: 1fr;
    }

    .acc-nav, .acc-summary {
        position: static;
    }

    .acc-nav {
        display: flex;
        flex-wrap: wrap;
        gap: .25rem;
    }

    .acc-nav__user {
        width: 100%;
    }

    .acc-nav a, .acc-nav button {
        width: auto;
    }

    .acc-nav__sep {
        display: none;
    }
}

@media (max-width: 700px) {
    .acc-form {
        grid-template-columns: 1fr;
    }

    .acc-card {
        padding: 1.4rem;
        border-radius: 22px;
    }

    .acc-kv {
        grid-template-columns: 1fr;
    }

    

    

    

    

    

    
}

/* ─── Query loop: card "due pulsanti" (corsi) ─── */
.ql-dual {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    height: 100%;
    min-height: 290px;
    padding: 1.9rem;
    border: 2px solid color-mix(in srgb, var(--acc-dark) 14%, transparent);
    border-radius: var(--acc-radius-card);
    color: var(--acc-text);
    transition: box-shadow .25s, transform .25s;
}

.ql-dual:hover {
    box-shadow: 0 14px 34px color-mix(in srgb, var(--acc-dark) 10%, transparent);
}

/* Tutta la card porta alla pagina: il link del titolo si estende sulla card; i pulsanti restano cliccabili sopra */
.ql-dual { position: relative; cursor: pointer; }
.ql-dual__link::after { content: ''; position: absolute; inset: 0; z-index: 1; border-radius: inherit; }
.ql-dual__buttons .acc-btn { position: relative; z-index: 2; }
.ql-dual:has(.ql-dual__link:focus-visible) { outline: 2px solid var(--acc-primary); outline-offset: 3px; }
.ql-dual__link:focus-visible { outline: none; }
/* Il pulsante della stessa pagina cambia colore già all'hover della card */
.ql-dual:hover .ql-dual__main {
    background: var(--acc-hover);
    border-color: var(--acc-hover);
    color: #fff;
}
/* ...ma non mentre il mouse è sull'altro pulsante: si accende solo quello */
.ql-dual:has(.ql-dual__buttons .acc-btn:not(.ql-dual__main):hover) .ql-dual__main:not(:hover) {
    background: var(--acc-primary);
    border-color: var(--acc-primary);
}

.ql-dual__cats {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.ql-dual__title {
    font-size: 1.75rem;
    font-weight: 700;
    line-height: 1.15;
    margin: .25rem 0 0;
    color: var(--acc-dark);
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.ql-dual__title a {
    color: inherit;
    text-decoration: none;
    color: var(--acc-dark);
    font-size: 28px;
    line-height: 30px;
    text-transform: ;
}

.ql-dual__title a:hover {
    color: var(--acc-primary);
}

.ql-dual__excerpt {
    margin: 0;
    color: var(--acc-muted);
    font-size: .95rem;
}

.ql-dual__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: auto;
}

.ql-dual__buttons {
    display: grid;
    grid-template-columns: 1.7fr 1fr;
    gap: 20px;
    margin-top: auto;
}

.ql-dual__buttons--single {
    grid-template-columns: 1fr;
}

.ql-dual__chips + .ql-dual__buttons {
    margin-top: 0;
}

.ql-dual__buttons .acc-btn {
    padding: 0 1.6rem;
}

@media (max-width: 480px) {
    .ql-dual__buttons {
        grid-template-columns: 1fr;
    }
}

/* Form: etichette accessibili (solo screen reader), data con etichetta interna */
.acc-sr {
    position: absolute !important;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.acc-field--inline-label {
    position: relative;
}

.acc-field--inline-label label {
    position: absolute;
    left: 1.6rem;
    top: 50%;
    transform: translateY(-50%);
    margin: 0 !important;
    font-weight: 500;
    color: var(--acc-dark) !important;
    pointer-events: none;
}

.acc-field--inline-label input {
    padding-left: 11rem !important;
    text-align: right;
    color: #8A93B8 !important;
}

.acc-field--inline-label input:valid {
    color: var(--acc-dark) !important;
}

/* ── Pagine a tutta larghezza (accesso, area riservata): stessi rientri delle pagine del builder ── */
.acc-wrap--page {
    padding: 5rem 2rem;
}

.acc-wrap--page > .acc-container {
    max-width: none;
    padding: 0;
}

.acc-wrap--page .acc-breadcrumb {
    margin-bottom: 1.5rem;
}

.acc-page-title--xl {
    font-size: clamp(2.25rem, 4.2vw, 3.5rem);
    margin: 0 0 2rem;
}

/* Riquadro dei form di accesso */
.acc-panel {
    background: color-mix(in srgb, var(--acc-dark) 8%, transparent);
    border: 2px solid color-mix(in srgb, var(--acc-dark) 14%, transparent);
    border-radius: 20px;
    padding: 1.25rem 1.25rem 1.75rem;
}

.acc-panel .acc-form {
    gap: 10px 8px;
}

.acc-panel__intro {
    margin: 0 0 .9rem;
    font-size: .95rem;
}

.acc-panel__links {
    display: grid;
    gap: 1.1rem;
    margin-top: 1.5rem;
    font-size: .95rem;
}

.acc-panel__links p {
    margin: 0;
}

.acc-panel__links a {
    color: var(--acc-dark);
    font-weight: 700;
    text-decoration: underline;
}

.acc-panel__links a:hover {
    color: var(--acc-hover);
}

.acc-panel .acc-btn {
    min-width: 280px;
}

/* Data con etichetta a sinistra e gg/mm/aaaa a destra */
.acc-field--date {
    position: relative;
}

.acc-field--date label {
    position: absolute;
    left: 1.6rem;
    top: 50%;
    transform: translateY(-50%);
    margin: 0;
    pointer-events: none;
    font-size: 1rem;
    font-weight: 400;
    color: var(--acc-dark);
    z-index: 1;
}

.acc-field--date input {
    text-align: right;
    padding-left: 12rem !important;
}

.acc-field--date .acc-error {
    position: static;
}

/* Informativa e consensi */
.acc-gdpr, .acc-gdpr .acc-check {
    font-size: .82rem;
    line-height: 1.4;
}

.acc-field input.acc-upper {
    text-transform: uppercase;
}

.acc-field input.acc-upper::placeholder {
    text-transform: none;
}

.acc-gdpr p {
    margin: 0 0 .75rem;
}

.acc-gdpr a {
    color: inherit;
    text-decoration: underline;
}

/* Radio dei consensi: stesso stile di .acc-radio-group (come i radio del form dinamico dei contatti) */

@media (max-width: 700px) {
    .acc-wrap--page {
        padding: 3rem 2rem;
    }

    .acc-panel .acc-btn {
        min-width: 0;
        width: 100%;
    }

    

    

    .acc-field--date input {
        padding-left: 1.6rem !important;
        padding-top: 1.9rem !important;
    }

    .acc-field--date label {
        top: .9rem;
        transform: none;
        font-size: .8rem;
    }
}

.acc-form--inline {
    grid-template-columns: minmax(0, 3.3fr) minmax(0, 1fr);
    align-items: start;
}

@media (max-width: 700px) {
    .acc-form--inline {
        grid-template-columns: 1fr;
    }
}

/* Mobile: spazio laterale 1rem, come le sezioni del page builder */
@media (max-width: 767px) {
    .acc-wrap--page {
        padding-left: 1rem;
        padding-right: 1rem;
    }

    
}

.acc-form--geo {
    grid-template-columns: repeat(3, 1fr);
}

@media (max-width: 700px) {
    .acc-form--geo {
        grid-template-columns: 1fr;
    }
}

/* ── Mobile: le colonne dei form non si allargano oltre il riquadro (campi data con rientro, placeholder lunghi) ── */
.acc-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.acc-form > *, .acc-field input, .acc-field select { min-width: 0; }
.acc-form--geo { grid-template-columns: repeat(3, minmax(0, 1fr)); }
/* Form in riga (recupero password): campo largo e pulsante stretto, non due colonne uguali */
.acc-form--inline { grid-template-columns: minmax(0, 3.3fr) minmax(0, 1fr); }
.acc-panel .acc-form--inline { gap: 8px calc(10px + .75rem); }
@media (max-width: 700px) {
    .acc-form, .acc-form--geo, .acc-form--inline { grid-template-columns: minmax(0, 1fr); }
    .acc-field input:not([type=checkbox]):not([type=radio]):not([type=file]), .acc-field select { padding-left: 1.15rem; padding-right: 1.15rem; }
    .acc-field select { padding-right: 2.6rem; background-position: right 1.1rem center; }
    .acc-field--inline-label label { left: 1.15rem; top: .8rem; transform: none; font-size: .8rem; }
    .acc-field--inline-label input { padding-left: 1.15rem !important; padding-top: 1.8rem !important; padding-bottom: .5rem !important; text-align: left; }
    .acc-field--date label { left: 1.15rem; }
    .acc-field--date input { padding-left: 1.15rem !important; }
    
}
/* Colonne del checkout: niente allargamento per parole lunghe, URL o tabelle */
.acc-checkout > *, .acc-layout > * { min-width: 0; }

/* Icone Bootstrap Icons nei dettagli del corso (box acquisto) */
.course-buy__facts .bi { flex-shrink: 0; width: 1.35rem; font-size: 1.3rem; line-height: 1; text-align: center; }
/* Form in invio (AJAX) */
.acc-btn.is-loading { opacity: .7; cursor: progress; }
.acc-btn.is-loading::after { animation: acc-btn-pulse .9s ease-in-out infinite; }
@keyframes acc-btn-pulse { 50% { transform: translateX(4px); } }
/* Errori di campo uniformi (form-errors.js): bordo rosso anche su tendine multiple, radio e checkbox */

.acc-check input.is-invalid { border-color: #DC2626 !important; }

.acc-full > .acc-check + .acc-error { margin-left: calc(28px + .75rem); }

/* ─── Checkout del carrello ─── */
.acc-cart { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(0, 1fr); gap: 3.5rem; align-items: start; }
.acc-cart .acc-page-title--xl { margin: 0 0 1.75rem; }
.acc-cart__link { color: var(--acc-dark); font-weight: 700; text-decoration: underline; }
.acc-cart__link:hover { color: var(--acc-hover); }
.acc-cart__label { margin: 0 0 .75rem; font-size: .95rem; font-weight: 700; letter-spacing: .02em; text-transform: uppercase; color: var(--acc-dark); }
.acc-cart__item { display: flex; justify-content: space-between; align-items: flex-end; gap: 1rem; padding: 1rem 1.25rem; border-radius: 12px; background-color: color-mix(in srgb, var(--acc-dark) 8%, transparent); color: var(--acc-dark); }
.acc-cart__item-title { display: block; font-size: 1.1rem; line-height: 1.3; color: var(--acc-dark); text-decoration: none; }
a.acc-cart__item-title:hover { color: var(--acc-primary); }
.acc-cart__item-qty { display: block; margin-top: .35rem; font-size: .85rem; color: var(--acc-muted); }
.acc-cart__item-side { display: grid; justify-items: end; gap: .25rem; white-space: nowrap; }
.acc-cart__remove { padding: 0; border: 0; background: none; font: inherit; font-size: .8rem; color: var(--acc-muted); text-decoration: underline; cursor: pointer; }
.acc-cart__remove:hover { color: #DC2626; }
.acc-cart__total { display: flex; justify-content: space-between; align-items: center; margin: 1.25rem 0 1.75rem; padding: 1rem 0; border-top: 2px solid var(--acc-line); border-bottom: 2px solid var(--acc-line); }
.acc-cart__total .acc-cart__label { margin: 0; }
.acc-cart__total strong { font-size: 1.9rem; font-weight: 700; color: var(--acc-dark); }
.acc-cart__methods { display: grid; gap: .9rem; }
.acc-cart__method { font-size: 1.05rem; color: var(--acc-dark); }
.acc-cart__method-info { margin: -.25rem 0 .25rem calc(28px + .75rem); font-size: .95rem; line-height: 1.45; color: var(--acc-dark); }
.acc-cart__method-info a { color: inherit; }
.acc-cart__privacy { margin: 1.5rem 0 1.25rem; font-size: .95rem; line-height: 1.45; color: var(--acc-dark); }
.acc-cart__privacy a { color: inherit; text-decoration: underline; }
.acc-cart__hint { margin: 1rem 0 .5rem; font-size: .9rem; color: var(--acc-muted); }
.acc-cart .acc-btn--block { margin-top: 1.25rem; }
.acc-cart-empty { display: grid; justify-items: start; gap: 1rem; max-width: 100%; }
.acc-cart-empty p { margin: 0; font-size: 1.05rem; color: var(--acc-dark); }
/* Stesso riquadro anche nell'area riservata (es. elenchi vuoti): niente padding/raggio dei riquadri dell'area */
.acc-area .acc-panel.acc-cart-empty { padding: 1.25rem 1.25rem 1.75rem; border-radius: 20px; }
@media (max-width: 991px) {
    .acc-cart { grid-template-columns: 1fr; gap: 2.5rem; }
}

/* ══ Area riservata ══ */
.acc-area .acc-layout {
    grid-template-columns: 270px 1fr;
    gap: 4rem;
}

/* Menu a riquadri: corsi, ordini, account */
.acc-area .acc-nav {
    border: 0;
    padding: 0;
    border-radius: 0;
    top: 150px;
    display: grid;
    gap: 1rem;
}

.acc-area .acc-nav__group {
    background-color: color-mix(in srgb, var(--acc-dark) 8%, transparent);
    border: 2px solid color-mix(in srgb, var(--acc-dark) 14%, transparent);
    border-radius: 8px;
    overflow: hidden;
}

.acc-area .acc-nav a, .acc-area .acc-nav button {
    display: block;
    padding: 1.1rem 1.25rem;
    border-radius: 0;
    font-size: 1rem;
    font-weight: 500;
    color: var(--acc-dark);
    border-top: 1px solid var(--acc-line);
}

.acc-area .acc-nav__group > :first-child, .acc-area .acc-nav__group form:first-child button {
    border-top: 0;
}

.acc-area .acc-nav a:hover, .acc-area .acc-nav button:hover {
    background: color-mix(in srgb, var(--acc-primary) 8%, transparent);
}

.acc-area .acc-nav a.is-active {
    background: var(--acc-primary);
    color: #fff;
}

.acc-area .acc-nav__group--more a, .acc-area .acc-nav__group--more button {
    padding: .8rem 1.25rem;
    font-size: .92rem;
}

.acc-area .acc-main {
    display: grid;
    gap: 1.5rem;
    min-width: 0;
}

.acc-area .acc-main > .acc-alert {
    margin: 0;
}

.acc-area .acc-main .acc-page-title {
    font-size: 1.6rem;
    margin: 0;
}

/* Riquadri dei form */
.acc-area .acc-panel {
    padding: 1.6rem 1.75rem 1.9rem;
    border-radius: 16px;
}

.acc-area .acc-panel__title, .acc-panel__title {
    font-size: 1.2rem;
    font-weight: 500;
    color: var(--acc-dark);
    margin: 0 0 1.1rem;
}

.acc-panel__actions {
    margin-top: 1rem;
}

.acc-area .acc-panel .acc-form {
    gap: 12px;
}

.acc-panel--attached {
    border-top-left-radius: 0 !important;
    border-top-right-radius: 0 !important;
    border-top: 0;
    margin-top: -2px;
}

/* Pulsante compatto: testo centrato, senza freccia (Modifica campi, Aggiungi, Salva, Elimina…) */
.acc-btn--compact {
    justify-content: center;
    min-width: 150px;
    padding: 0 2rem;
    text-align: center;
}

.acc-btn--compact::after {
    display: none;
}

.acc-btn--outline {
    background: transparent;
    color: var(--acc-dark);
    border-color: var(--acc-dark);
}

.acc-btn--outline:hover, .acc-btn--outline:focus-visible {
    background: var(--acc-dark);
    border-color: var(--acc-dark);
    color: #fff;
}

.acc-btn[data-exp-edit][aria-expanded=true] {
    background: #ADADAD;
    border-color: #ADADAD;
    color: #fff;
}

/* "I miei corsi": due card per riga (una su mobile) */
.acc-grid--2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}
@media (max-width: 700px) {
    .acc-grid--2 {
        grid-template-columns: minmax(0, 1fr);
    }
}

.acc-area .acc-panel .acc-btn--compact {
    min-width: 150px;
}

/* Domanda Sì/No su una riga (Titolo conseguito, In corso) */
.acc-inline-yesno {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .75rem 2rem;
    padding: .35rem .25rem;
}

.acc-inline-yesno .acc-error {
    flex-basis: 100%;
    margin: 0;
}

/* Dati ricerca lavoro: domande Sì/No su due colonne */
.acc-field--date-wide {
    margin-bottom: 1rem;
}

/* Scelta file (curriculum): nome del file a sinistra, "Seleziona" a destra */
.acc-fieldset {
    border: 0;
    padding: 0;
    margin: 0;
    min-width: 0;
}

.acc-fieldset[disabled] {
    opacity: .55;
}

.acc-field .acc-file {
    position: relative;
    display: flex;
    align-items: center;
    gap: 1rem;
    min-height: var(--acc-control-h);
    padding: .4rem .45rem .4rem 1.6rem;
    background: var(--acc-field);
    border: 2px solid color-mix(in srgb, var(--acc-dark) 14%, transparent);
    border-radius: var(--acc-radius);
    cursor: pointer;
    margin: 0 !important;
    font-weight: 400 !important;
}

.acc-file input[type=file] {
    position: absolute;
    inset: 0;
    opacity: 0;
    cursor: pointer;
    width: 100%;
    padding: 0;
    border: 0;
}

.acc-file__name {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: #8A93B8;
}

.acc-file.has-file .acc-file__name {
    color: var(--acc-dark);
}

.acc-file__btn {
    background: var(--acc-dark);
    color: #fff;
    font-weight: 700;
    font-size: .9rem;
    padding: .7rem 1.9rem;
    border-radius: 10px;
}

.acc-file:focus-within {
    border-color: var(--acc-primary);
    box-shadow: 0 0 0 4px color-mix(in srgb, var(--acc-primary) 15%, transparent);
}

.acc-field input[readonly] {
    color: var(--acc-muted);
    cursor: default;
}

@media (max-width: 1200px) {
    .acc-area .acc-layout {
        grid-template-columns: 230px 1fr;
        gap: 2.5rem;
    }

    
}

@media (max-width: 991px) {
    .acc-area .acc-layout {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }

    /* Menu: le sezioni in una riga scorrevole */
    .acc-area .acc-nav {
        display: grid;
        gap: .6rem;
    }

    .acc-area .acc-nav__group {
        display: flex;
        overflow-x: auto;
        scrollbar-width: none;
    }

    .acc-area .acc-nav__group::-webkit-scrollbar {
        display: none;
    }

    .acc-area .acc-nav a, .acc-area .acc-nav button {
        white-space: nowrap;
        border-top: 0;
        border-left: 1px solid var(--acc-line);
        padding: .85rem 1.1rem;
        flex-shrink: 0;
    }

    .acc-area .acc-nav__group > :first-child, .acc-area .acc-nav__group form:first-child button {
        border-left: 0;
    }
}

@media (max-width: 767px) {
     

    

    

    

    .acc-area .acc-panel {
        padding: 1.25rem 1rem 1.5rem;
    }

    .acc-panel__actions .acc-btn {
        width: 100%;
    }
}

/* Pulsanti di tutti i form statici: misure del pulsante "Accedi" (.acc-btn, 60px, almeno 280px di larghezza)
   e in hover solo lo sfondo arancione, come il pulsante del form Contatti */
form.acc-form .acc-btn[type=submit],
.acc-panel form .acc-btn[type=submit],
.acc-form .acc-full > .acc-btn[type=submit] {
    min-width: 280px;
}
form .acc-btn:not([disabled]):hover,
form .acc-btn:not([disabled]):focus-visible {
    background: var(--acc-hover);
    border-color: var(--acc-hover);
    color: #fff;
}
@media (max-width: 480px) {
    form.acc-form .acc-btn[type=submit],
    .acc-panel form .acc-btn[type=submit],
    .acc-form .acc-full > .acc-btn[type=submit] {
        min-width: 0;
        width: 100%;
    }
}

/* Focus di tutti i form statici come il form Contatti (.page-form in site-theme.css): bordo color-mix(in srgb, var(--acc-dark) 38%, transparent),
   niente contorno del browser né alone. Senza !important: un campo con errore (.is-invalid) resta rosso */
.acc-field input:not([type=checkbox]):not([type=radio]):not([type=file]):focus,
.acc-field select:focus, .acc-field textarea:focus {
    outline: none;
    border-color: color-mix(in srgb, var(--acc-dark) 38%, transparent);
    box-shadow: none;
}

/* ══ Più corsi nel carrello (multiacquisto) ══ */
.acc-cart__items { display: grid; gap: 10px; }
.acc-cart__more { display: inline-block; margin-top: .9rem; font-size: .95rem; }
.acc-cart__total { flex-wrap: wrap; }
.acc-cart__vat { flex-basis: 100%; text-align: right; font-size: .9rem; color: var(--acc-muted); }
.course-buy__incart { display: flex; align-items: center; gap: .65rem; margin-top: 1.5rem; font-weight: 700; color: var(--acc-dark); }
.course-buy__incart::before { content: ''; width: 26px; height: 26px; flex-shrink: 0; border-radius: 50%; background: var(--acc-dark) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='5 12 10 17 19 7'/%3E%3C/svg%3E") center / 14px no-repeat; }
.course-buy__main.is-loading { opacity: .7; pointer-events: none; }
.course-buy__error { margin-top: 1rem; font-size: .95rem; font-weight: 700; color: #B42318; }

/* Chiuso: resta visibile finché il pannello non è uscito (visibility cambia alla fine della transizione) */
.pp-cart-drawer { position: fixed; inset: 0; z-index: 10050; visibility: hidden; transition: visibility 0s linear .32s; }
.pp-cart-drawer.is-open { visibility: visible; transition-delay: 0s; }
/* Sotto la barra di amministrazione (utenti del backend) */
html.has-pp-admin-bar .pp-cart-drawer { top: var(--pab-h, 40px); }
.pp-cart-drawer__backdrop { position: absolute; inset: 0; background: color-mix(in srgb, var(--acc-dark) 28%, transparent); opacity: 0; transition: opacity .28s ease-in; }
.pp-cart-drawer.is-open .pp-cart-drawer__backdrop { opacity: 1; transition: opacity .35s ease-out; }
.pp-cart-drawer__panel { position: absolute; top: 0; right: 0; bottom: 0; width: min(460px, 100%); box-sizing: border-box; display: flex; flex-direction: column; gap: 1.25rem; padding: 2rem; overflow-y: auto; background: var(--acc-page); color: var(--acc-dark); box-shadow: -12px 0 40px color-mix(in srgb, var(--acc-dark) 18%, transparent); transform: translateX(100%); transition: transform .3s cubic-bezier(.4, 0, 1, 1); }
/* Entrata: slide da destra con frenata morbida; uscita (sopra): più rapida, accelera verso destra */
.pp-cart-drawer.is-open .pp-cart-drawer__panel { transform: none; transition: transform .45s cubic-bezier(.22, 1, .36, 1); }
/* All'apertura i contenuti arrivano uno dopo l'altro, appena dietro al pannello */
.pp-cart-drawer.is-open .pp-cart-drawer__panel > * { animation: pp-cart-in .45s cubic-bezier(.22, 1, .36, 1) both; }
.pp-cart-drawer.is-open .pp-cart-drawer__panel > :nth-child(2) { animation-delay: .06s; }
.pp-cart-drawer.is-open .pp-cart-drawer__panel > :nth-child(3) { animation-delay: .12s; }
.pp-cart-drawer.is-open .pp-cart-drawer__panel > :nth-child(n+4) { animation-delay: .18s; }
@keyframes pp-cart-in { from { opacity: 0; transform: translateX(28px); } to { opacity: 1; transform: none; } }
.pp-cart-drawer__head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.pp-cart-drawer__title { margin: 0; font-family: var(--font-heading, inherit); font-size: 1.9rem; font-weight: 700; line-height: 1.1; color: var(--acc-dark); }
.pp-cart-drawer__close { width: 44px; height: 44px; flex-shrink: 0; border: 0; border-radius: 50%; background: var(--acc-tag); color: var(--acc-dark); cursor: pointer; display: flex; align-items: center; justify-content: center; }
.pp-cart-drawer__close:hover { background: color-mix(in srgb, var(--acc-dark) 14%, transparent); }
.pp-cart-drawer__added { margin: 0; padding: .75rem 1rem; border-radius: 12px; background: var(--acc-dark); color: #fff; font-size: .95rem; line-height: 1.4; }
.pp-cart-drawer__items { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.pp-cart-drawer__item { display: flex; justify-content: space-between; gap: 1rem; padding: 1rem 1.1rem; border-radius: 12px; background: var(--acc-tag); }
.pp-cart-drawer__item a, .pp-cart-drawer__item-title { display: block; font-size: 1.05rem; line-height: 1.3; color: var(--acc-dark); text-decoration: none; }
.pp-cart-drawer__item a:hover { color: var(--acc-primary); }
.pp-cart-drawer__item-meta { display: block; margin-top: .25rem; font-size: .85rem; color: var(--acc-muted); }
.pp-cart-drawer__item strong { white-space: nowrap; font-size: 1.05rem; }
.pp-cart-drawer__empty { margin: 0; font-size: 1.05rem; }
.pp-cart-drawer__spacer { flex-grow: 1; }
.pp-cart-drawer__total { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 1rem 0; border-top: 2px solid var(--acc-line); font-weight: 700; }
.pp-cart-drawer__total strong { font-size: 1.9rem; }
.pp-cart-drawer .acc-btn { width: 100%; }
.pp-cart-drawer__continue { min-height: 48px; border: 0; background: none; font: inherit; font-weight: 700; color: var(--acc-dark); text-decoration: underline; cursor: pointer; }
.pp-cart-drawer__continue:hover { color: var(--acc-hover); }
body.pp-cart-drawer-open { overflow: hidden; }
@media (max-width: 575px) { .pp-cart-drawer__panel { padding: 1.5rem 1rem; } }
@media (prefers-reduced-motion: reduce) {
    .pp-cart-drawer, .pp-cart-drawer.is-open, .pp-cart-drawer__panel, .pp-cart-drawer.is-open .pp-cart-drawer__panel,
    .pp-cart-drawer__backdrop, .pp-cart-drawer.is-open .pp-cart-drawer__backdrop { transition: none; }
    .pp-cart-drawer.is-open .pp-cart-drawer__panel > * { animation: none; }
}

/* Acquista corso: pulsanti con le impostazioni del widget Pulsante (scheda Stile) dentro il flusso del box */
.course-buy__box--custom-btn { padding-bottom: 2rem; }
.course-buy__btn { margin-top: 1.5rem; }
.course-buy__secondary > .template-button .custom-button { box-sizing: border-box; }

/* ══ Riquadri dei form statici: stesso padding del form dinamico della pagina Contatti, per dispositivo ══
   Accesso, password, registrazione (anche nel carrello) e form dell'area riservata.
   Solo i riquadri che sono un form o ne contengono uno: gli altri restano come sono. */
.acc-panel:is(form, :has(form)),
.acc-area .acc-panel:is(form, :has(form)) {
    padding: 50px;
}
@media (min-width: 768px) and (max-width: 1024px), (min-width: 768px) and (max-width: 1280px) and (orientation: portrait) {
    .acc-panel:is(form, :has(form)),
    .acc-area .acc-panel:is(form, :has(form)) {
        padding: 30px;
    }
}
@media (max-width: 767px) {
    .acc-panel:is(form, :has(form)),
    .acc-area .acc-panel:is(form, :has(form)) {
        padding: 20px;
    }
}

/* Riquadri dell'area riservata (.acc-item, .acc-card) e avvisi informativi: stesso padding dei riquadri dei form, per dispositivo */

.acc-card,
.acc-area .acc-panel.acc-order,
.acc-alert--info {
    padding: 50px;
}
@media (min-width: 768px) and (max-width: 1024px), (min-width: 768px) and (max-width: 1280px) and (orientation: portrait) {
    
    .acc-card,
    .acc-area .acc-panel.acc-order,
    .acc-alert--info {
        padding: 30px;
    }
}
@media (max-width: 767px) {
    
    .acc-card,
    .acc-area .acc-panel.acc-order,
    .acc-alert--info {
        padding: 20px;
    }
}

/* Codice sconto nel carrello */
.acc-cart__coupon { margin-top: 1.25rem; }
.acc-cart__coupon-form { display: flex; gap: 10px; align-items: stretch; }
.acc-cart__coupon-form .acc-field { flex: 1; min-width: 0; }
.acc-cart__coupon-form .acc-btn { min-width: 0; flex-shrink: 0; }
.acc-cart__coupon-on { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: .85rem 1.25rem; border-radius: 12px; border: 2px dashed var(--acc-line); color: var(--acc-dark); }
.acc-cart__discount { display: flex; justify-content: space-between; margin-top: 1.25rem; font-weight: 700; color: var(--acc-hover); }
.acc-cart__discount + .acc-cart__total { margin-top: .5rem; }
.acc-cart__item-old { font-size: .85rem; color: var(--acc-muted); }

/* Titolo h1 delle pagine statiche (accesso, area riservata, carrello, checkout, privacy…): 70 / 50 / 40px */
h1.acc-page-title,
.acc-wrap h1,
.acc-card h1 {
    font-size: 70px;
    line-height: 70px;
}
@media (min-width: 768px) and (max-width: 1024px), (min-width: 768px) and (max-width: 1280px) and (orientation: portrait) {
    h1.acc-page-title,
    .acc-wrap h1,
    .acc-card h1 {
        font-size: 50px;
        line-height: 50px;
    }
}
@media (max-width: 767.98px) {
    h1.acc-page-title,
    .acc-wrap h1,
    .acc-card h1 {
        font-size: 40px;
        line-height: 40px;
    }
}

/* Campo password con l'occhio per mostrarla / nasconderla */
.acc-pass {
    position: relative;
}
.acc-field .acc-pass input:not([type=checkbox]):not([type=radio]):not([type=file]) {
    padding-right: 3.75rem;
}
.acc-pass__toggle {
    position: absolute;
    top: 50%;
    right: 1.1rem;
    transform: translateY(-50%);
    display: grid;
    place-items: center;
    width: 36px;
    height: 36px;
    padding: 0;
    border: 0;
    border-radius: 8px;
    background: none;
    color: var(--acc-dark);
    cursor: pointer;
    opacity: .7;
    transition: opacity .2s;
}
.acc-pass__toggle:hover,
.acc-pass__toggle:focus-visible {
    opacity: 1;
}
.acc-pass__toggle:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 2px;
}
.acc-pass__eye-off,
.acc-pass__toggle[aria-pressed="true"] .acc-pass__eye {
    display: none;
}
.acc-pass__toggle[aria-pressed="true"] .acc-pass__eye-off {
    display: block;
}

/* Dettaglio ordine (area riservata): riquadri acc-panel come il resto dell'area */
/* Titolo del dettaglio ordine con il ritorno all'elenco: freccia dei pulsanti in un riquadro blu */
.acc-order__titlebar {
    display: flex;
    align-items: center;
    gap: 14px;
}
.acc-order__back-btn {
    flex-shrink: 0;
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    border-radius: 12px;
    background: var(--acc-dark);
    color: #fff;
    transition: background .2s;
}
.acc-order__back-btn::before {
    content: '';
    width: 15px;
    height: 15px;
    background: currentColor;
    -webkit-mask: var(--acc-arrow) center / contain no-repeat;
    mask: var(--acc-arrow) center / contain no-repeat;
    transform: rotate(180deg);
}
.acc-order__back-btn:hover,
.acc-order__back-btn:focus-visible {
    background: var(--acc-hover);
    color: #fff;
}
.acc-order__back-btn:focus-visible {
    outline: 2px solid var(--acc-dark);
    outline-offset: 2px;
}
.acc-order__text {
    margin: 0 0 1.1rem;
    color: var(--acc-dark);
}
.acc-order__text:last-child {
    margin-bottom: 0;
}
.acc-order .acc-form {
    margin-bottom: 1.25rem;
}
.acc-order .acc-field textarea {
    min-height: 110px;
}

/* Riepilogo ordine su due colonne: corsi a sinistra, stato, pagamento e totali a destra (su tablet e mobile uno sotto l'altro) */
.acc-order-sum {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 320px;
    gap: 32px;
    align-items: start;
}
.acc-order-sum__head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .5rem 1rem;
    margin-bottom: 14px;
}
.acc-order-sum__title {
    margin: 0;
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--acc-dark);
}
.acc-order-sum__meta {
    font-size: .85rem;
    color: var(--acc-muted);
}
.acc-order-sum__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 10px;
}
.acc-order-sum__item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 18px 20px;
    background: var(--acc-field);
    border-radius: 12px;
}
.acc-order-sum__item-text {
    display: grid;
    gap: 4px;
    min-width: 0;
}
.acc-order-sum__name {
    font-weight: 700;
    line-height: 1.35;
    color: var(--acc-dark);
}
.acc-order-sum__detail {
    font-size: .85rem;
    color: var(--acc-muted);
}
.acc-order-sum__price {
    flex-shrink: 0;
    font-size: 1.05rem;
    font-weight: 700;
    white-space: nowrap;
    color: var(--acc-dark);
}
.acc-order-sum__side {
    padding: 24px;
    background: var(--acc-field);
    border-radius: 12px;
}
.acc-order-sum__rows {
    margin: 0;
    display: grid;
    gap: 10px;
    font-size: .9rem;
}
.acc-order-sum__rows > div {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 12px;
}
.acc-order-sum__rows dt {
    color: var(--acc-muted);
}
.acc-order-sum__rows dd {
    margin: 0;
    font-weight: 600;
    text-align: right;
    white-space: nowrap;
    color: var(--acc-dark);
}
.acc-order-sum__rows--info {
    padding-bottom: 16px;
    margin-bottom: 16px;
    border-bottom: 2px solid var(--acc-line);
}
.acc-order-sum__rows--info dd {
    font-weight: 700;
    white-space: normal;
}
.acc-order-sum__total {
    margin-top: 4px;
    padding-top: 14px;
    border-top: 2px solid var(--acc-line);
}
.acc-order-sum__rows .acc-order-sum__total dt {
    font-size: 1rem;
    font-weight: 700;
    color: var(--acc-dark);
}
.acc-order-sum__rows .acc-order-sum__total dd {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--acc-primary);
}
@media (max-width: 1024px), (min-width: 768px) and (max-width: 1280px) and (orientation: portrait) {
    .acc-order-sum {
        grid-template-columns: minmax(0, 1fr);
        gap: 24px;
    }
}
@media (max-width: 767px) {
    .acc-order-sum__item {
        flex-direction: column;
        align-items: stretch;
        gap: 10px;
        padding: 16px;
    }
    .acc-order-sum__price {
        align-self: flex-end;
    }
    .acc-order-sum__side {
        padding: 20px;
    }
}

/* Finestra di conferma dell'area riservata (es. richiesta di rimborso) al posto di quella del browser */
.acc-dialog {
    /* il reset globale azzera i margini: si centra di nuovo nella finestra */
    position: fixed;
    inset: 0;
    margin: auto;
    height: fit-content;
    max-height: calc(100vh - 32px);
    overflow: auto;
    width: min(540px, calc(100vw - 32px));
    box-sizing: border-box;
    padding: 32px;
    border: 2px solid var(--acc-line);
    border-radius: 20px;
    background: var(--acc-page);
    color: var(--acc-dark);
    box-shadow: 0 24px 60px color-mix(in srgb, var(--acc-dark) 25%, transparent);
}
.acc-dialog::backdrop {
    background: color-mix(in srgb, var(--acc-dark) 45%, transparent);
    backdrop-filter: blur(3px);
}
.acc-dialog[open] {
    animation: acc-dialog-in .2s ease-out;
}
@keyframes acc-dialog-in {
    from { opacity: 0; transform: translateY(8px) scale(.98); }
    to { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
    .acc-dialog[open] { animation: none; }
}
.acc-dialog__title {
    margin: 0 0 .6rem;
    font-size: 1.35rem;
    font-weight: 700;
    color: var(--acc-dark);
}
.acc-dialog__text {
    margin: 0 0 1.5rem;
    line-height: 1.5;
}
.acc-dialog__actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 10px;
}
.acc-dialog__actions .acc-btn {
    min-width: 0;
    white-space: nowrap;
}
@media (max-width: 767px) {
    .acc-dialog {
        padding: 24px 20px;
    }
    .acc-dialog__actions .acc-btn {
        flex: 1 1 100%;
    }
}

/* Area riservata: i riquadri dell'area principale non si allargano oltre la colonna (una tabella larga
   allargava la card e la pagina la tagliava; ora scorre nel suo contenitore) */
.acc-area .acc-main > * {
    min-width: 0;
}

/* Tabelle dell'area riservata su mobile: un blocco per riga, etichetta a sinistra e valore a destra */
@media (max-width: 767px) {
    .acc-table--stack thead {
        display: none;
    }
    .acc-table--stack,
    .acc-table--stack tbody {
        display: block;
        width: 100%;
    }
    .acc-table--stack tr {
        display: flex;
        flex-direction: column;
        gap: 8px;
        padding: 16px 0;
        border-bottom: 1px solid var(--acc-line);
    }
    .acc-table--stack tr:first-child {
        padding-top: 0;
    }
    .acc-table--stack tr:last-child {
        border-bottom: 0;
        padding-bottom: 0;
    }
    .acc-table--stack td {
        display: flex;
        justify-content: space-between;
        align-items: baseline;
        gap: 16px;
        padding: 0;
        border: 0;
        text-align: right;
    }
    .acc-table--stack td[data-label]::before {
        content: attr(data-label);
        flex-shrink: 0;
        font-size: .85rem;
        color: var(--acc-muted);
        text-align: left;
    }
    .acc-table--stack .acc-table__head-cell {
        order: -1;
        justify-content: flex-start;
        text-align: left;
        font-weight: 700;
        font-size: 1.05rem;
    }
    .acc-table--stack .acc-table__action-cell:empty,
    .acc-table--stack .acc-table__action-cell:not(:has(*)) {
        display: none;
    }
    .acc-table--stack .acc-table__action-cell .acc-btn {
        width: 100%;
        margin-top: 4px;
    }
}
