/* =============================================================================
   LEARNDASH — layout Academy
   Veste tutte le pagine di LearnDash con il linguaggio di `layout-accademy/`:
   corso, lezione, argomento, quiz, gruppo, archivio e Focus Mode.

   Due livelli di lavoro:
     · `.mca-ld…`          la cornice disegnata dai template del tema
                           (single-sfwd-*.php, template-parts/learndash/)
     · `.learndash-wrapper` il contenuto generato dal plugin, rivestito qui

   Il secondo blocco non è annidato in `.mca` di proposito: LearnDash stampa
   anche fuori dalle nostre pagine (shortcode, widget, Focus Mode) e lo stile
   deve seguirlo ovunque. I token li ridichiariamo sul wrapper per questo.

   Markup: single-sfwd-*.php · learndash/ld30/ · Base: academy-base.css
   ========================================================================== */

/* =============================================================================
   TOKEN
   ========================================================================== */
.mca-ld,
.learndash-wrapper {
    --mca-ink: #0e0e0e;
    --mca-body: #5a564f;
    --mca-muted: #8a8580;
    --mca-cream: #f5f4f2;
    --mca-onDark: #c9c5be;
    /* Il muted è tarato sul bianco: sul nero della cover resta appena sopra la
       soglia e a corpo piccolo si perde. Questi due sono le sue controparti per
       i fondi scuri — testo di lettura e secondari. */
    --mca-onDark-strong: #ded9d2;
    --mca-onDark-dim: #b3aea7;
    --mca-line: rgba(14, 14, 14, .12);
    --mca-line-soft: rgba(14, 14, 14, .08);
    --mca-silver: #c9c3bc;

    /* Verde del «completato»: l'unico accento cromatico di queste pagine.
       Scuro e poco saturo per stare accanto ai neutri caldi del layout, e con
       contrasto sufficiente sia sul bianco sia sul fondo scuro della sidebar. */
    --mca-done: #17845a;

    /* Le due barre sticky (header del sito e barra del corso) si impilano:
       l'offset tiene conto dell'altezza reale dell'header misurata da
       assets/js/header-spacer.js. */
    --mca-ld-bar-top: var(--header-height, 83px);
}

/* =============================================================================
   COVER — testata scura di corso, passo, archivio e gruppo
   ========================================================================== */
.mca-ldcover {
    position: relative;
    overflow: hidden;
    background: var(--mca-ink);
    color: #fff;
}
.mca-ldcover__bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: .38;
}
.mca-ldcover__veil {
    position: absolute;
    inset: 0;
    /* La copertura resta piena finché dura la colonna del testo e solo dopo si
       apre: qualunque foto venga caricata, sotto le parole c'è sempre lo stesso
       fondo e la leggibilità non dipende dall'immagine. */
    background: linear-gradient(to right, rgba(14, 14, 14, .94) 0%, rgba(14, 14, 14, .9) 34%, rgba(14, 14, 14, .62) 100%);
}
.mca-ldcover__ring {
    position: absolute;
    top: -90px;
    right: -70px;
    width: 360px;
    opacity: .18;
    animation: mcaSpin 60s linear infinite;
}
.mca-ldcover__inner {
    position: relative;
    z-index: 2;
    padding-top: 56px;
    padding-bottom: 52px;
}

/* L'archivio non ha card d'iscrizione a riempire la colonna: respira di più. */
.mca-ldcover--archive .mca-ldcover__inner { padding-top: 76px; padding-bottom: 72px; }

.mca-ldcover__grid {
    display: grid;
    grid-template-columns: 1.55fr .95fr;
    gap: 56px;
    align-items: start;
}

.mca-ldcover__badges {
    display: flex;
    align-items: center;
    gap: 9px;
    flex-wrap: wrap;
}

/* Il titolo della cover è composto come il logo: Jost — il geometrico che il
   tema già carica, ed è quello che più somiglia alle lettere del marchio —
   maiuscolo e in peso leggero.
 
   La spaziatura no. Misurata sul logo è di .42em (la stessa che il tema usava
   per il sottotitolo del lockup testuale), ma quel valore è tarato su un
   marchio piccolo: la crenatura si stringe man mano che il corpo cresce, e a
   56px .42em vorrebbe dire 24px di aria fra una lettera e l'altra, cioè titoli
   che vanno a capo tre volte. .12em tiene il respiro geometrico del marchio
   restando un titolo.
 
   Il corpo scende da 56 a 46 perché il maiuscolo occupa più spazio del misto a
   parità di corpo, e la spaziatura allarga ancora le righe. */
.mca .mca-ldcover__title,
.mca-ldcover__title {
    font-family: 'Jost', sans-serif;
    font-weight: 300;
    font-size: 46px;
    line-height: 1.18;
    letter-spacing: .12em;
    text-transform: uppercase;
    margin: 20px 0 0;
    max-width: 860px;
    color: #fff;
    /* Distribuisce le righe invece di lasciare una o due parole da sole in
       fondo: a questo corpo un orfano si nota parecchio. */
    text-wrap: balance;
}

/* Il prefisso `.mca` è obbligatorio, non un vezzo: academy-base dichiara
   `.mca p { color: var(--mca-body) }`, che vale (0,1,1) e batte la classe da
   sola. Senza prefisso questo paragrafo, che sta su fondo scuro, finiva del
   grigio caldo pensato per il testo su fondo chiaro. */
.mca .mca-ldcover__text {
    max-width: 620px;
    margin: 18px 0 0;
    font-size: 18px;
    line-height: 1.66;
    font-weight: 400;
    color: var(--mca-onDark-strong);
    text-wrap: pretty;
}

.mca-ldcover__stats {
    display: flex;
    gap: 34px;
    margin-top: 32px;
    flex-wrap: wrap;
}
.mca-ldcover .mca-stat__num { font-size: 26px; font-weight: 700; line-height: 1; }
.mca-ldcover .mca-stat__label {
    font-size: 11.5px;
    font-weight: 500;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--mca-onDark-dim);
    margin-top: 6px;
}

/* Tutto ciò che nella cover è secondario passa ai toni per fondo scuro. La card
   d'iscrizione è bianca e resta fuori: lì il muted normale è quello giusto. */
.mca-ldcover .mca-crumbs--light,
.mca-ldcover .mca-crumbs--light a,
.mca-ld .mca-ldcover .mca-teacher__link { color: var(--mca-onDark-dim); }

/* ── Briciole ───────────────────────────────────────────────────────────── */
.mca-crumbs {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    font-size: 12px;
    margin-bottom: 26px;
}
.mca-crumbs--light { color: var(--mca-muted); }
.mca-crumbs--light a { color: var(--mca-muted); }
.mca-crumbs--light a:hover { color: #fff; }
.mca-crumbs--light .is-current { color: #fff; }
.mca-crumbs--dark { color: var(--mca-muted); margin-bottom: 18px; }
.mca-crumbs--dark a { color: var(--mca-muted); }
.mca-crumbs--dark a:hover { color: var(--mca-ink); }
.mca-crumbs--dark .is-current { color: var(--mca-ink); }

/* ── Badge del livello ──────────────────────────────────────────────────── */
.mca-badge--level {
    background: var(--mca-silver);
    color: var(--mca-ink);
    border-color: var(--mca-silver);
    letter-spacing: .16em;
}
.mca-badge--onDark {
    color: #fff;
    /* Il solo bordo al 30% sul nero spariva: un contorno più netto e un velo di
       bianco dentro fanno leggere il badge come un oggetto, non come testo
       sospeso. */
    border-color: rgba(255, 255, 255, .45);
    background: rgba(255, 255, 255, .07);
    font-weight: 500;
    letter-spacing: .16em;
}

/* ── Docente in cover ───────────────────────────────────────────────────── */
.mca-teacher {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-top: 32px;
}
.mca-teacher__avatar {
    width: 46px;
    height: 46px;
    border-radius: 50%;
    object-fit: cover;
}
.mca-teacher__name { font-size: 14.5px; }
.mca-teacher--onDark .mca-teacher__name { color: #fff; }
.mca-teacher--onDark .mca-teacher__name strong { font-weight: 500; color: #fff; }
.mca-ld .mca-teacher__link { font-size: 12.5px; color: var(--mca-muted); text-decoration: underline; text-underline-offset: 3px; }
.mca-ld .mca-teacher--onDark .mca-teacher__link:hover { color: #fff; }

/* =============================================================================
   BARRA DI AVANZAMENTO — usata ovunque, anche dentro LearnDash
   ========================================================================== */
.mca-progress {
    position: relative;
    flex: 1;
    height: 6px;
    min-width: 90px;
    border-radius: 100px;
    background: rgba(14, 14, 14, .1);
    overflow: hidden;
}
.mca-progress__fill {
    display: block;
    height: 100%;
    background: var(--mca-ink);
    border-radius: inherit;
    transition: width .6s cubic-bezier(.19, 1, .22, 1);
}
.mca-progress--onDark { background: rgba(255, 255, 255, .18); }
.mca-progress--onDark .mca-progress__fill { background: #fff; }

/* =============================================================================
   CARD D'ISCRIZIONE — colonna destra della cover del corso
   ========================================================================== */
.mca-enroll {
    background: #fff;
    color: var(--mca-ink);
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 30px 70px rgba(0, 0, 0, .4);
    /* Resta agganciata sotto le due barre sticky mentre si scorre la pagina. */
    position: sticky;
    top: calc(var(--mca-ld-bar-top) + 22px);
}
.mca-enroll__media {
    position: relative;
    aspect-ratio: 16 / 10;
    overflow: hidden;
}
/* Stesso ancoraggio a sinistra delle schede in archivio e nei percorsi: è la
   stessa foto nello stesso taglio 16/10, il ritaglio deve coincidere. */
.mca-enroll__media img { width: 100%; height: 100%; object-fit: cover; object-position: left; }
.mca-enroll__tag {
    position: absolute;
    top: 14px;
    left: 14px;
    background: rgba(255, 255, 255, .92);
    font-size: 10px;
    letter-spacing: .14em;
    text-transform: uppercase;
    padding: 6px 12px;
    border-radius: 100px;
}
.mca-enroll__body { padding: 28px 28px 30px; }

.mca-enroll__label {
    font-size: 11px;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: var(--mca-muted);
}

.mca-enroll__price { display: flex; align-items: baseline; gap: 12px; }
.mca-enroll__price-now { font-size: 40px; font-weight: 700; line-height: 1; }
.mca-enroll__price-old { font-size: 16px; color: var(--mca-muted); text-decoration: line-through; }
.mca-enroll__note { font-size: 12.5px; color: var(--mca-body); margin-top: 6px; }

/* Prossima partenza: una riga sola sotto al prezzo, con il calendarietto a
   sinistra. È l'ultima verifica prima del carrello, quindi sta prima dei
   bottoni e non dopo. */
.mca-enroll__start {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px solid var(--mca-line);
    font-size: 13.5px;
    line-height: 1.5;
    color: var(--mca-body);
}
.mca-enroll__start svg { flex-shrink: 0; margin-top: 1px; color: var(--mca-muted); }
.mca-enroll__start strong { font-weight: 500; color: var(--mca-ink); }
.mca-enroll__venue { color: var(--mca-muted); }
/* I posti rimasti sulla prossima partenza, accanto alla data. */
.mca-enroll__seats {
    display: inline-block;
    margin-left: 8px;
    padding: 2px 9px;
    border-radius: 100px;
    background: rgba(23, 132, 90, .1);
    font-size: 11px;
    font-weight: 600;
    color: #17845a;
    white-space: nowrap;
}

.mca-enroll__progress { display: flex; align-items: center; gap: 12px; margin-top: 12px; }
.mca-enroll__progress .mca-progress { height: 8px; }
.mca-enroll__percent { font-size: 15px; font-weight: 600; white-space: nowrap; }

.mca-enroll__locked {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    margin-top: 14px;
    padding: 12px 14px;
    border-radius: 12px;
    background: var(--mca-cream);
    font-size: 13px;
    line-height: 1.5;
    color: var(--mca-body);
}
.mca-enroll__locked svg { flex-shrink: 0; margin-top: 2px; }

/* Sbloccato dal Level Match: stessa riga, segno opposto. Il verde è quello
   degli step completati di LearnDash, così «fatto» ha un colore solo. */
.mca-enroll__locked--open { color: var(--mca-done, #17845a); }

/* Le competenze per il Level Match, sotto il lucchetto: chiuse di base, si
   aprono solo per chi sta valutando la strada dell'esame. */
.mca-enroll__skills { margin-top: 8px; padding: 0 14px; border: 1px solid var(--mca-line); border-radius: 12px; font-size: 13px; line-height: 1.5; color: var(--mca-body); }
.mca-enroll__skills summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 11px 0;
    color: var(--mca-ink);
    font-weight: 500;
    cursor: pointer;
    list-style: none;
}
.mca-enroll__skills summary::-webkit-details-marker { display: none; }
.mca-enroll__skills summary::after { content: "+"; font-size: 17px; line-height: 1; color: var(--mca-muted); }
.mca-enroll__skills[open] summary::after { content: "−"; }
.mca-enroll__skills ul { display: grid; gap: 6px; margin: 0; padding: 0 0 0 18px; }
.mca-enroll__skills li::marker { color: var(--mca-muted); }
.mca-enroll__skills a { display: inline-flex; align-items: center; gap: 6px; margin: 12px 0 14px; color: var(--mca-ink); font-weight: 500; text-decoration: underline; text-underline-offset: 3px; }

/* Accesso teoria: riquadro neutro, non un avviso. Non è un problema da
   risolvere — è metà percorso che è già suo. */
.mca-enroll__theory {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    margin-bottom: 16px;
    padding: 12px 14px;
    border-radius: 12px;
    background: var(--mca-cream);
    font-size: 13px;
    line-height: 1.55;
    color: var(--mca-body);
}
.mca-enroll__theory svg { flex-shrink: 0; margin-top: 2px; color: var(--mca-muted); }
.mca-enroll__theory strong { display: block; color: var(--mca-ink); font-weight: 600; margin-bottom: 2px; }

/* Solo su candidatura: stesso riquadro neutro dell'accesso teoria. Non è un
   avviso — non c'è niente che sia andato storto — è il modo in cui a questo
   percorso si entra, e sta sopra al bottone che lo mette in pratica. */
.mca-enroll__apply {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    margin-top: 20px;
    padding: 12px 14px;
    border-radius: 12px;
    background: var(--mca-cream);
    font-size: 13px;
    line-height: 1.55;
    color: var(--mca-body);
}
.mca-enroll__apply svg { flex-shrink: 0; margin-top: 2px; color: var(--mca-muted); }
.mca-enroll__apply strong { display: block; color: var(--mca-ink); font-weight: 600; margin-bottom: 2px; }

/* Credito del Level Match: stessa riga dell'avviso «sbloccato», con il codice
   sotto. Verde come tutto quello che nell'Accademia vuol dire «fatto». */
.mca-enroll__credit {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    margin-top: 14px;
    padding: 12px 14px;
    border-radius: 12px;
    background: rgba(23, 132, 90, .08);
    color: var(--mca-done, #17845a);
    font-size: 13.5px;
    line-height: 1.5;
}
.mca-enroll__credit svg { flex-shrink: 0; margin-top: 2px; }
.mca-enroll__credit strong { font-weight: 600; color: inherit; }
.mca-enroll__credit-code { display: block; margin-top: 3px; color: var(--mca-body); }
.mca-enroll__credit-code code {
    font-family: inherit;
    font-weight: 600;
    letter-spacing: .06em;
    color: var(--mca-ink);
}

/* Avviso al posto dei bottoni quando l'iscrizione non è acquistabile: stessa
   forma del riquadro «si sblocca dopo», ma contornato invece che pieno, così
   si legge come un'informazione e non come un prerequisito. */
.mca-enroll__notice {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    margin-top: 20px;
    padding: 13px 15px;
    border: 1px solid var(--mca-line);
    border-radius: 12px;
    font-size: 13px;
    line-height: 1.5;
    color: var(--mca-body);
}
.mca-enroll__notice svg { flex-shrink: 0; margin-top: 1px; color: var(--mca-ink); }

.mca-enroll__actions { margin-top: 20px; }
.mca-enroll .mca-btn { margin-top: 10px; }
.mca-enroll__actions + .mca-btn { margin-top: 10px; }

.mca-enroll__includes {
    margin-top: 24px;
    padding-top: 22px;
    border-top: 1px solid var(--mca-line);
}
.mca-enroll__includes ul {
    list-style: none;
    margin: 14px 0 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.mca-enroll__includes li {
    display: flex;
    gap: 11px;
    align-items: flex-start;
    font-size: 14.5px;
    line-height: 1.45;
    font-weight: 300;
    color: #33302b;
}
.mca-check {
    flex-shrink: 0;
    width: 19px;
    height: 19px;
    border-radius: 50%;
    background: var(--mca-ink);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 10px;
    margin-top: 1px;
}

/* =============================================================================
   BARRA STICKY — ancore delle sezioni + avanzamento
   ========================================================================== */
.mca-ldbar {
    position: sticky;
    top: var(--mca-ld-bar-top);
    z-index: 60;
    background: rgba(255, 255, 255, .96);
    backdrop-filter: blur(14px);
    border-bottom: 1px solid var(--mca-line);
}
.mca-ldbar__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 30px;
    flex-wrap: wrap;
}
.mca-ldbar__nav { display: flex; gap: 6px; flex-wrap: wrap; }
.mca-ld .mca-ldbar__tab {
    font-size: 13px;
    letter-spacing: .08em;
    text-transform: uppercase;
    padding: 22px 18px;
    border-bottom: 2px solid transparent;
    color: var(--mca-muted);
}
.mca-ld .mca-ldbar__tab:hover { color: var(--mca-ink); }
.mca-ld .mca-ldbar__tab.is-active { color: var(--mca-ink); border-bottom-color: var(--mca-ink); }

.mca-ldbar__progress { display: flex; align-items: center; gap: 14px; }
.mca-ldbar__progress .mca-progress { width: 180px; flex: none; }
.mca-ldbar__label {
    font-size: 12px;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--mca-muted);
}
.mca-ldbar__percent { font-size: 13px; font-weight: 600; }

/* =============================================================================
   CORPO — contenuto a sinistra, sidebar a destra
   ========================================================================== */
.mca-ldbody {
    display: grid;
    grid-template-columns: 1.55fr .95fr;
    gap: 56px;
    align-items: start;
    padding-top: 56px;
    padding-bottom: 110px;
}
.mca-ldbody--full { grid-template-columns: 1fr; }

.mca-ldbody__main { min-width: 0; }

/* Le sezioni ancorate lasciano spazio alle barre sticky quando ci si salta. */
.mca-ldsection {
    scroll-margin-top: calc(var(--mca-ld-bar-top) + 80px);
}
.mca-ldsection + .mca-ldsection { margin-top: 64px; }

.mca-ldsection__head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px;
    flex-wrap: wrap;
    margin-bottom: 24px;
}
.mca-ldsection__meta {
    margin: 8px 0 0;
    font-size: 14.5px;
    color: var(--mca-body);
    font-weight: 300;
}
.mca-ldsection__actions { display: flex; align-items: center; gap: 16px; }
.mca-ldsection__count { font-size: 12px; color: var(--mca-muted); white-space: nowrap; }

/* ── Sidebar ────────────────────────────────────────────────────────────── */
.mca-ldside {
    display: flex;
    flex-direction: column;
    gap: 14px;
    position: sticky;
    top: calc(var(--mca-ld-bar-top) + 90px);
}
.mca-ldcard {
    border: 1px solid var(--mca-line);
    border-radius: 18px;
    padding: 26px 24px;
    background: #fff;
}
.mca-ldcard--cream { background: var(--mca-cream); border-color: transparent; }

.mca-ldcard__label {
    font-family: 'Jost', sans-serif;
    font-size: 11px;
    font-weight: 400;
    letter-spacing: .2em;
    text-transform: uppercase;
    color: var(--mca-muted);
    margin: 0 0 16px;
}
.mca-ldcard__text {
    margin: 12px 0 0;
    font-size: 14.5px;
    line-height: 1.65;
    font-weight: 300;
    color: var(--mca-body);
}
.mca-ldcard__cta { margin-top: 16px; }

.mca-ldcard__rte { font-size: 14.5px; line-height: 1.7; font-weight: 300; color: var(--mca-body); }
.mca-ldcard__rte p { margin: 0 0 10px; }
.mca-ldcard__rte p:last-child { margin-bottom: 0; }
.mca-ldcard__rte ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 11px; }
.mca-ldcard__rte li { position: relative; padding-left: 20px; }
.mca-ldcard__rte li::before {
    content: '';
    position: absolute;
    left: 0;
    top: .65em;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--mca-ink);
}
.mca-ldcard__rte a { text-decoration: underline; text-underline-offset: 3px; }

/* Scheda dei dati del corso */
.mca-facts { margin: 0; }
.mca-facts__row {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 16px;
    padding: 11px 0;
    border-bottom: 1px solid var(--mca-line-soft);
}
.mca-facts__row:last-child { border-bottom: 0; padding-bottom: 0; }
.mca-facts dt { font-size: 13px; color: var(--mca-muted); margin: 0; }
.mca-facts dd { font-size: 14.5px; margin: 0; text-align: right; }

/* Certificazione */
.mca-cert { display: flex; gap: 16px; align-items: center; }
/* Il cuore del marchio firma l'attestato. Sta a 68px e non meno: è linea
   sottile, e sotto i 64 il disegno si impasta. */
.mca-cert__mark { height: 68px; width: auto; flex-shrink: 0; display: block; }
.mca-cert__name { font-size: 17px; font-weight: 600; }
.mca-cert p { margin: 5px 0 0; font-size: 14px; line-height: 1.55; font-weight: 300; }

/* Elenco di link nella sidebar */
/* ── Date in programma ────────────────────────────────────────────────── */
.mca-ldsessions {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 18px;
}
.mca-ldsession + .mca-ldsession { border-top: 1px solid var(--mca-line); padding-top: 18px; }
.mca-ldsession.is-full { opacity: .65; }

.mca-ldsession__head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 10px;
    flex-wrap: wrap;
}
.mca-ldsession__range { font-size: 17px; font-weight: 600; letter-spacing: -.01em; }
/* I posti che restano sull'edizione. Verde finché ce ne sono — è la risposta
   che si sta cercando — e spento quando l'edizione è andata. */
.mca-ldsession__badge {
    padding: 3px 9px;
    border-radius: 100px;
    background: rgba(23, 132, 90, .1);
    font-size: 10px;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: #17845a;
    white-space: nowrap;
}
.mca-ldsession__badge.is-full { background: rgba(14, 14, 14, .07); color: var(--mca-muted); }
.mca-ldsession__venue { font-size: 13px; color: var(--mca-muted); margin-top: 3px; }

.mca-ldsession__days {
    list-style: none;
    margin: 11px 0 0;
    padding: 0 0 0 14px;
    border-left: 1px solid var(--mca-line);
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.mca-ldsession__days li { font-size: 13.5px; font-weight: 300; line-height: 1.45; }
.mca-ldsession__days em { font-style: normal; color: var(--mca-muted); }
.mca-ldsession__days em::before { content: ' — '; }

.mca-ldsession__note { font-size: 12.5px; color: var(--mca-muted); margin-top: 9px; }

.mca-ldcard__link {
    display: inline-block;
    margin-top: 16px;
    font-size: 13.5px;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.mca-ldlinks { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.mca-ldlinks a { display: flex; align-items: center; gap: 11px; font-size: 14.5px; font-weight: 300; }
.mca-ld .mca-ldlinks a:hover { color: var(--mca-ink); }
.mca-ldlinks svg { flex-shrink: 0; opacity: .6; }

/* ── Biografia del docente ──────────────────────────────────────────────── */
.mca-bio {
    display: grid;
    grid-template-columns: 200px 1fr;
    gap: 28px;
    margin-top: 24px;
    align-items: start;
}
.mca-bio__photo { width: 100%; height: auto; aspect-ratio: 3 / 4; object-fit: cover; border-radius: 16px; }
.mca-bio__name { font-size: 26px; font-weight: 600; }
.mca-bio__role {
    font-size: 12px;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--mca-muted);
    margin-top: 5px;
}
.mca-bio__text { margin-top: 16px; font-size: 16px; line-height: 1.75; font-weight: 300; color: var(--mca-body); }
.mca-bio__text p { margin: 0 0 14px; }

/* =============================================================================
   BARRA D'ACQUISTO — compare scorrendo, quando la card esce dallo schermo
   ========================================================================== */
.mca-ldbuy {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 70;
    background: rgba(255, 255, 255, .95);
    backdrop-filter: blur(14px);
    border-top: 1px solid var(--mca-line);
    transform: translateY(100%);
    transition: transform .45s cubic-bezier(.19, 1, .22, 1);
}
.mca-ldbuy.is-visible { transform: none; }
.mca-ldbuy__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    flex-wrap: wrap;
    padding-top: 16px;
    padding-bottom: 16px;
}
.mca-ldbuy__info { display: flex; align-items: baseline; gap: 18px; flex-wrap: wrap; }
.mca-ldbuy__title { font-size: 19px; font-weight: 600; }
.mca-ldbuy__old { font-size: 13px; color: var(--mca-muted); text-decoration: line-through; }
.mca-ldbuy__price { font-size: 24px; font-weight: 700; }

/* Il link al carrello che WooCommerce accoda al bottone: nella barra è una riga
   sola, quindi si affianca invece di andare a capo come nelle card. */
.mca-ldbuy .added_to_cart {
    display: inline-block;
    margin: 0 0 0 16px;
    white-space: nowrap;
}

/* =============================================================================
   ARCHIVIO DEI CORSI
   ========================================================================== */
.mca-ldgrid-wrap { padding-top: 60px; padding-bottom: 110px; }

.mca-ldgrid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

.mca-ldempty { padding: 60px 0 80px; font-size: 17px; font-weight: 300; }

.mca-coursecard {
    display: flex;
    flex-direction: column;
    border: 1px solid var(--mca-line);
    border-radius: 22px;
    overflow: hidden;
    background: #fff;
    transition: border-color .3s ease, box-shadow .3s ease,
                opacity .8s cubic-bezier(.19, 1, .22, 1), transform .8s cubic-bezier(.19, 1, .22, 1);
}
.mca-coursecard:hover {
    border-color: rgba(14, 14, 14, .3);
    box-shadow: 0 24px 50px rgba(14, 14, 14, .1);
}
.mca-coursecard__media {
    position: relative;
    display: block;
    overflow: hidden;
    background: var(--mca-cream);
}
/* Niente riquadro imposto: la foto entra con le sue proporzioni e non viene
   tagliata. `object-*` resta per il giorno in cui il riquadro tornasse. */
.mca-coursecard__media img {
    width: 100%;
    height: auto;
    object-fit: cover;
    /* Le copertine dei corsi hanno il soggetto (e spesso il titolo) in alto. */
    object-position: top;
    transition: transform .7s cubic-bezier(.19, 1, .22, 1);
}
.mca-coursecard:hover .mca-coursecard__media img { transform: scale(1.04); }

.mca-coursecard__level,
.mca-coursecard__access {
    position: absolute;
    top: 14px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 10px;
    letter-spacing: .14em;
    text-transform: uppercase;
    padding: 6px 12px;
    border-radius: 100px;
    background: rgba(255, 255, 255, .92);
    color: var(--mca-ink);
}
.mca-coursecard__level { left: 14px; }
.mca-coursecard__access { right: 14px; }
.mca-coursecard__access.is-locked { background: rgba(14, 14, 14, .85); color: #fff; }

.mca-coursecard__body {
    display: flex;
    flex-direction: column;
    flex: 1;
    padding: 26px 26px 28px;
}
.mca-coursecard__title { font-size: 25px; font-weight: 600; margin: 0; }
.mca-coursecard__text {
    margin: 10px 0 0;
    font-size: 15px;
    line-height: 1.65;
    font-weight: 300;
    color: var(--mca-body);
    /* Spinge prezzo e bottone in fondo: le card restano allineate. */
    flex: 1;
}
.mca-coursecard__tags { display: flex; gap: 7px; margin-top: 16px; flex-wrap: wrap; }
.mca-coursecard__price { display: flex; align-items: baseline; gap: 10px; margin-top: 22px; }
.mca-coursecard__price-now { font-size: 30px; font-weight: 700; }
.mca-coursecard__price-old { font-size: 14px; color: var(--mca-muted); text-decoration: line-through; }
.mca-coursecard__progress { display: flex; align-items: center; gap: 12px; margin-top: 22px; }
.mca-coursecard__percent { font-size: 12.5px; color: var(--mca-body); white-space: nowrap; }
.mca-coursecard .mca-btn--block { margin-top: 18px; }

.mca-ldpagination { margin-top: 44px; }
.mca-ldpagination .nav-links { display: flex; gap: 8px; justify-content: center; flex-wrap: wrap; }
.mca-ldpagination .page-numbers {
    min-width: 42px;
    height: 42px;
    padding: 0 14px;
    border-radius: 100px;
    border: 1px solid var(--mca-line);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
}
.mca-ldpagination .page-numbers:hover { border-color: var(--mca-ink); }
.mca-ldpagination .page-numbers.current { background: var(--mca-ink); border-color: var(--mca-ink); color: #fff; }

/* =============================================================================
   RIGA DI CORSO — elenchi e dashboard
   ========================================================================== */
.mca-ldrow {
    display: grid;
    grid-template-columns: 74px 1fr auto;
    gap: 22px;
    align-items: center;
    border: 1px solid var(--mca-line);
    border-radius: 18px;
    padding: 22px 24px;
    background: #fff;
}
.mca-ldrow + .mca-ldrow { margin-top: 12px; }
.mca-ldrow.is-complete { background: var(--mca-cream); border-color: transparent; }
.mca-ldrow__thumb { width: 74px; height: 74px; border-radius: 12px; overflow: hidden; display: block; }
.mca-ldrow__thumb img { width: 100%; height: 100%; object-fit: cover; object-position: top; }
.mca-ld .mca-ldrow__title, .learndash-wrapper .mca-ldrow__title { display: block; font-size: 19px; font-weight: 500; }
.mca-ldrow__progress { display: flex; align-items: center; gap: 12px; margin-top: 12px; }
.mca-ldrow__progress .mca-progress { max-width: 180px; }
.mca-ldrow__percent { font-size: 12.5px; color: var(--mca-body); white-space: nowrap; }

/* =============================================================================
   ═══ DA QUI IN GIÙ: IL CONTENUTO GENERATO DA LEARNDASH ═══
   Fuori da `.mca` di proposito — vedi la nota in testa al file.
   ========================================================================== */
.learndash-wrapper {
    font-family: 'Jost', sans-serif;
    color: var(--mca-ink);
}
.learndash-wrapper a { text-decoration: none; color: var(--mca-ink); }
.learndash-wrapper h1,
.learndash-wrapper h2,
.learndash-wrapper h3,
.learndash-wrapper h4 { font-family: 'Space Grotesk', sans-serif; letter-spacing: -.01em; }

/* LearnDash colora molti elementi con le sue classi «primary/secondary»
   prendendo i colori dalle impostazioni del plugin: qui li riportiamo alla
   palette Academy in un colpo solo. */
.learndash-wrapper .ld-primary-background,
.learndash-wrapper .ld-secondary-background { background-color: var(--mca-ink) !important; }
.learndash-wrapper .ld-primary-color,
.learndash-wrapper .ld-secondary-color,
.learndash-wrapper .ld-primary-color-hover:hover,
.learndash-wrapper .ld-secondary-color-hover:hover { color: var(--mca-ink) !important; }
.learndash-wrapper .ld-tertiary-background { background-color: var(--mca-cream) !important; color: var(--mca-ink) !important; }

/* ── Il blu di serie di LearnDash → inchiostro ──────────────────────────── */
/* Il plugin scrive #00a2e8 dentro il proprio foglio, non in una variabile, e
   pubblica il blocco di override dei colori solo se in impostazioni ne è stato
   scelto uno diverso dal default. Finché resta il default il blu arriva dal CSS
   statico, quindi va spento selettore per selettore: sotto ci sono tutti quelli
   che restavano scoperti dalle regole dei componenti qui accanto. */
.learndash-wrapper .ld-status-unlocked,
.learndash-wrapper .ld-item-name:hover,
.learndash-wrapper .ld-table-list a.ld-table-list-item-preview:hover,
.learndash-wrapper .ld-table-list .ld-table-list-item .ld-table-list-title a:hover,
.learndash-wrapper .ld-pagination .ld-pages i:hover,
.learndash-wrapper .ld-course-navigation .ld-lesson-item.ld-is-current-lesson .ld-lesson-item-preview-heading,
.learndash-wrapper .ld-course-navigation .ld-lesson-item.ld-is-current-lesson .ld-lesson-title,
.learndash-wrapper .ld-course-navigation .ld-lesson-item-preview a.ld-lesson-item-preview-heading:hover {
    color: var(--mca-ink) !important;
}

.learndash-wrapper .ld-item-list-item.ld-is-next,
.learndash-wrapper .wpProQuiz_content .wpProQuiz_questionListItem label.is-selected,
.learndash-wrapper .wpProQuiz_content .wpProQuiz_questionListItem label:focus-within,
.learndash-wrapper .ld-course-navigation .ld-lesson-item.ld-is-current-lesson .ld-status-incomplete {
    border-color: var(--mca-ink) !important;
}

.learndash-wrapper .ld-login-modal .ld-login-modal-register,
.learndash-wrapper .ld-login-modal input[type='submit'],
.learndash-wrapper .ld-focus .ld-focus-sidebar .ld-focus-sidebar-trigger,
.learndash-wrapper .ld-tabs .ld-tabs-navigation .ld-tab.ld-active:after,
.learndash-wrapper .wpProQuiz_content .wpProQuiz_box li.wpProQuiz_reviewQuestionTarget,
.learndash-wrapper .wpProQuiz_reviewDiv .wpProQuiz_reviewQuestion li.wpProQuiz_reviewQuestionTarget,
#learndash-tooltips .ld-tooltip:after,
#learndash-tooltips .ld-tooltip,
.ld-tooltip:not(.ld-tooltip--modern) [role="tooltip"] {
    /* Colore letterale: i tooltip vivono in fondo al <body>, fuori dal wrapper
       dove sono dichiarate le variabili. Le ultime due righe pareggiano il
       foglio in linea dei colori di LearnDash, che li dipinge con `!important`
       (il fumetto, non solo la sua punta). */
    background-color: #0e0e0e !important;
}

/* Lo spinner di caricamento gira con un solo bordo colorato. */
.learndash-wrapper .ld-loading::before { border-top-color: var(--mca-ink) !important; }
.ld-loading::before { border-top-color: #0e0e0e !important; }

/* ── Testo lungo (descrizioni, contenuto delle lezioni) ─────────────────── */
.mca-rte,
.learndash-wrapper .ld-tab-content {
    font-size: 17px;
    line-height: 1.8;
    font-weight: 300;
    color: var(--mca-body);
}
.mca-rte > *:first-child { margin-top: 0; }
.mca-rte p { margin: 0 0 18px; }
.mca-rte h2,
.mca-rte h3,
.mca-rte h4 { color: var(--mca-ink); font-weight: 600; margin: 36px 0 14px; letter-spacing: -.01em; }
.mca-rte h2 { font-size: 30px; }
.mca-rte h3 { font-size: 24px; }
.mca-rte h4 { font-size: 19px; }
.mca-rte ul,
.mca-rte ol { margin: 0 0 18px; padding-left: 22px; }
.mca-rte li { margin-bottom: 8px; }
.mca-rte a { text-decoration: underline; text-underline-offset: 3px; }
.mca-rte img,
.mca-rte iframe,
.mca-rte video { max-width: 100%; border-radius: 16px; }
.mca-rte blockquote {
    margin: 26px 0;
    padding: 20px 26px;
    border-left: 2px solid var(--mca-ink);
    background: var(--mca-cream);
    font-style: italic;
}

/* =============================================================================
   PROGRAMMA DEL CORSO — l'elenco a fisarmonica dei moduli
   ========================================================================== */
.learndash-wrapper .ld-item-list { margin: 0; }
.learndash-wrapper .ld-item-list-items { margin: 0; }

/* Ogni modulo è una card chiusa, come nel layout. */
.learndash-wrapper .ld-item-list-item {
    border: 1px solid var(--mca-line);
    border-radius: 16px;
    overflow: hidden;
    margin: 0 0 12px;
    background: #fff;
    transition: border-color .3s ease;
}
.learndash-wrapper .ld-item-list-item:hover { border-color: rgba(14, 14, 14, .28); }
.learndash-wrapper .ld-item-list-item.ld-is-current-item { border-color: var(--mca-ink); }

.learndash-wrapper .ld-item-list-item .ld-item-list-item-preview {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 20px 24px;
    background: var(--mca-cream);
}
.learndash-wrapper .ld-item-list-item-expanded .ld-item-list-item-preview { border-bottom: 1px solid var(--mca-line-soft); }

.learndash-wrapper .ld-item-name {
    display: flex;
    align-items: center;
    gap: 14px;
    flex: 1;
    min-width: 0;
    padding: 0;
}
.learndash-wrapper .ld-item-title {
    font-family: 'Space Grotesk', sans-serif;
    font-size: 19px;
    font-weight: 500;
    line-height: 1.3;
    color: var(--mca-ink);
}
.learndash-wrapper .ld-item-name:hover .ld-item-title { color: #444; }

/* Contatori «3 lezioni | 1 quiz» sotto al titolo del modulo. */
.learndash-wrapper .ld-item-components {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    margin-top: 5px;
    font-family: 'Jost', sans-serif;
    font-size: 12.5px;
    font-weight: 300;
    color: var(--mca-muted);
}
.learndash-wrapper .ld-item-component { color: inherit; }
.learndash-wrapper .ld-sep { opacity: .5; }

.learndash-wrapper .ld-item-details {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-left: auto;
}

/* ── Pastiglie di stato (anteprima, bloccato, disponibile dal…) ─────────── */
.learndash-wrapper .ld-status {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: 'Jost', sans-serif;
    font-size: 10px;
    font-weight: 400;
    letter-spacing: .14em;
    text-transform: uppercase;
    padding: 5px 11px;
    border-radius: 100px;
    border: 1px solid var(--mca-line);
    background: transparent;
    color: var(--mca-body);
}
.learndash-wrapper .ld-status.ld-status-progress {
    background: var(--mca-ink) !important;
    border-color: var(--mca-ink);
    color: #fff !important;
}
.learndash-wrapper .ld-status.ld-status-complete {
    background: var(--mca-done) !important;
    border-color: var(--mca-done);
    color: #fff !important;
}
.learndash-wrapper .ld-status.ld-status-waiting { background: var(--mca-cream); border-color: transparent; }

/* ── Pallini di completamento a sinistra di ogni riga ───────────────────── */
.learndash-wrapper .ld-status-icon {
    flex-shrink: 0;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 10px;
}
.learndash-wrapper .ld-status-icon.ld-status-incomplete {
    border: 1.5px solid rgba(14, 14, 14, .25);
    background: transparent;
}
/* Completato = verde. È l'unico colore del sito oltre all'inchiostro: serve a
   far leggere l'avanzamento a colpo d'occhio nell'indice, dove i pallini sono
   tutti uguali e la sola differenza sarebbe il pieno contro il vuoto. */
.learndash-wrapper .ld-status-icon.ld-status-complete {
    background: var(--mca-done) !important;
    color: #fff;
    border: 0;
}
/* Iniziato ma non finito: anello con due quarti verdi. Serve a distinguerlo
   dal passo mai aperto, che altrimenti gli è identico — è il caso dei moduli
   che contengono lezioni, dove il pallino del modulo resta vuoto finché non
   sono completate tutte. */
.learndash-wrapper .ld-status-icon.ld-status-in-progress {
    border: 2px solid var(--mca-line);
    border-top-color: var(--mca-done);
    border-left-color: var(--mca-done);
    background: transparent;
}

/* Le regole dei due stati «non fatto» vanno ripetute con il prefisso
   `.ld-course-navigation`: lì LearnDash le scrive a (0,4,0) e batterebbe le
   nostre, rimettendo il suo grigio #e2e7ed fuori palette. */
.learndash-wrapper .ld-course-navigation .ld-status-icon.ld-status-incomplete {
    border: 2px solid rgba(14, 14, 14, .25);
    background: transparent;
}
.learndash-wrapper .ld-course-navigation .ld-status-icon.ld-status-in-progress {
    border: 2px solid var(--mca-line);
    border-top-color: var(--mca-done);
    border-left-color: var(--mca-done);
    background: transparent;
}
.learndash-wrapper .ld-status-icon.ld-quiz-complete,
.learndash-wrapper .ld-status-icon.ld-quiz-incomplete,
.learndash-wrapper .ld-status-icon.ld-quiz-pending {
    border: 0;
    background: transparent;
    color: var(--mca-ink);
    opacity: .55;
    font-size: 15px;
}
/* Anche il quiz superato passa al verde, per non avere due grammatiche
   diverse di «fatto» nello stesso elenco. */
.learndash-wrapper .ld-status-icon.ld-quiz-complete {
    opacity: 1;
    color: var(--mca-done) !important;
}

/* ── Bottone «espandi» ──────────────────────────────────────────────────── */
.learndash-wrapper .ld-expand-button,
.mca-ldexpand {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    padding: 10px 18px;
    border-radius: 100px;
    border: 1px solid var(--mca-line);
    background: transparent !important;
    color: var(--mca-ink) !important;
    font-family: 'Space Grotesk', sans-serif;
    font-size: 11.5px;
    font-weight: 500;
    letter-spacing: .08em;
    text-transform: uppercase;
    cursor: pointer;
    white-space: nowrap;
    transition: border-color .3s ease, background .3s ease;
}
.learndash-wrapper .ld-expand-button:hover { border-color: var(--mca-ink); }
.learndash-wrapper .ld-expand-button .ld-icon {
    background: transparent !important;
    color: inherit !important;
    font-size: 10px;
    transition: transform .4s ease;
}
.learndash-wrapper .ld-expand-button.ld-expanded .ld-icon { transform: rotate(180deg); }

/* Il bottone dentro la riga del modulo è più discreto: solo la freccia. */
.learndash-wrapper .ld-item-details .ld-expand-button {
    width: 36px;
    height: 36px;
    padding: 0;
    justify-content: center;
    gap: 0;
}
.learndash-wrapper .ld-item-details .ld-expand-button .ld-text { display: none; }

/* Il foglio in linea con cui LearnDash applica i colori scelti in impostazioni
   ridipinge questo bottone con `.ld-expand-button:not([disabled])` e
   `!important`: pesa (0,3,0) e batteva il `background: transparent !important`
   qui sopra, che pesa (0,2,0). Stessa forma di selettore per pareggiare — il
   nostro foglio si accoda dopo il suo. Vedi LearnDashController::ignore_inline_css()
   per i bottoni che invece possono chiamarsi fuori da quelle regole. */
.learndash-wrapper .ld-expand-button:not([disabled]),
.learndash-wrapper .ld-expand-button.ld-button-alternate:not([disabled]) {
    background: transparent !important;
    color: var(--mca-ink) !important;
}
.learndash-wrapper .ld-expand-button:not([disabled]) .ld-icon,
.learndash-wrapper .ld-expand-button.ld-button-alternate:not([disabled]) .ld-icon {
    background: transparent !important;
    color: inherit !important;
}

/* ── Elenco interno: lezioni e quiz del modulo ──────────────────────────── */
.learndash-wrapper .ld-item-list-item-expanded { background: #fff; }
.learndash-wrapper .ld-table-list { border: 0; margin: 0; }
.learndash-wrapper .ld-table-list .ld-table-list-header {
    background: transparent !important;
    border: 0;
    padding: 16px 24px 6px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    font-size: 11px;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: var(--mca-muted);
}
.learndash-wrapper .ld-table-list .ld-table-list-title { display: flex; align-items: center; gap: 8px; }
.learndash-wrapper .ld-table-list .ld-table-list-header .ld-item-icon { display: none; }
.learndash-wrapper .ld-table-list .ld-table-list-lesson-details { display: flex; gap: 14px; letter-spacing: .1em; }

.learndash-wrapper .ld-table-list .ld-table-list-items { padding: 0 24px 12px; }

.learndash-wrapper .ld-table-list .ld-table-list-item {
    border: 0;
    border-bottom: 1px solid var(--mca-line-soft);
}
.learndash-wrapper .ld-table-list .ld-table-list-item:last-child { border-bottom: 0; }

.learndash-wrapper .ld-table-list .ld-table-list-item-preview {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 14px 0;
    font-size: 15.5px;
    font-weight: 300;
    color: var(--mca-body);
}
.learndash-wrapper .ld-table-list .ld-table-list-item-preview:hover { color: var(--mca-ink); }
.learndash-wrapper .ld-table-list .ld-topic-title,
.learndash-wrapper .ld-table-list .ld-item-title { flex: 1; min-width: 0; font-size: 15.5px; font-weight: 300; }
.learndash-wrapper .ld-table-list .ld-is-current-item { color: var(--mca-ink); font-weight: 400; }

/* Riga non ancora disponibile: si vede, ma spenta. */
.learndash-wrapper .learndash-not-available .ld-table-list-item-preview,
.learndash-wrapper .learndash-not-available .ld-item-list-item-preview { opacity: .55; }

/* ── Intestazione di sezione del programma ──────────────────────────────── */
.learndash-wrapper .ld-item-list-section-heading {
    margin: 32px 0 14px;
    padding: 0;
    background: transparent;
    border: 0;
}
.learndash-wrapper .ld-lesson-section-heading {
    font-family: 'Space Grotesk', sans-serif;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--mca-muted);
}

/* =============================================================================
   AVVISI
   ========================================================================== */
.learndash-wrapper .ld-alert,
.mca-alert {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    flex-wrap: wrap;
    margin: 0 0 24px;
    padding: 20px 24px;
    border-radius: 16px;
    border: 1px solid var(--mca-line);
    background: var(--mca-cream);
    color: var(--mca-ink);
}
.mca-alert__content { display: flex; align-items: center; gap: 14px; flex: 1; min-width: 240px; }
.mca-alert__icon { flex-shrink: 0; display: flex; color: var(--mca-ink); }
.mca-alert__text { font-size: 15px; line-height: 1.6; font-weight: 300; color: var(--mca-body); }
.mca-alert__text p { margin: 0; }
.mca-alert__text p + p { margin-top: 8px; }
.mca-alert__text a { text-decoration: underline; text-underline-offset: 3px; }
.mca-alert__btn { flex-shrink: 0; }

.mca-alert--success { background: var(--mca-ink); border-color: var(--mca-ink); color: #fff; }
.mca-alert--success .mca-alert__icon,
.mca-alert--success .mca-alert__text { color: #fff; }
.mca-alert--success .mca-alert__text a { color: #fff; }
/* Due classi sul bottone, non una: sull'avviso nero il pulsante è chiaro, e
   deve battere `.mca-btn--dark` che sta più in basso nel foglio e a parità di
   peso vincerebbe. La seconda riga di ogni coppia ripete il guardiano di
   LearnDash 5 (vedi la nota sui bottoni più avanti): dentro `.learndash-wrapper`
   la variante scura pesa (0,5,0), e senza guardiano l'avviso perderebbe. */
.mca-alert--success .mca-btn.mca-alert__btn,
.learndash-wrapper:not(.ld-registration__outer-wrapper):not(.learndash-wrapper--modern) .mca-alert--success .mca-btn.mca-alert__btn { background-color: #fff; color: var(--mca-ink); }
.mca-alert--success .mca-btn.mca-alert__btn:hover,
.learndash-wrapper:not(.ld-registration__outer-wrapper):not(.learndash-wrapper--modern) .mca-alert--success .mca-btn.mca-alert__btn:hover { background-color: var(--mca-onDark); color: var(--mca-ink); }

.mca-alert--warning { background: #fff; border-color: rgba(14, 14, 14, .25); }

/* =============================================================================
   TAB DEI CONTENUTI
   ========================================================================== */
.learndash-wrapper .ld-tabs { margin: 0; }
.learndash-wrapper .ld-tabs .ld-tabs-navigation {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    border-bottom: 1px solid var(--mca-line);
    margin-bottom: 26px;
    background: transparent;
}
.learndash-wrapper .ld-tabs .ld-tabs-navigation .ld-tab {
    background: transparent;
    border: 0;
    border-bottom: 2px solid transparent;
    border-radius: 0;
    padding: 14px 16px;
    font-family: 'Space Grotesk', sans-serif;
    font-size: 12.5px;
    font-weight: 500;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--mca-muted);
    cursor: pointer;
}
.learndash-wrapper .ld-tabs .ld-tabs-navigation .ld-tab:hover { color: var(--mca-ink); }
.learndash-wrapper .ld-tabs .ld-tabs-navigation .ld-tab.ld-active {
    color: var(--mca-ink);
    border-bottom-color: var(--mca-ink);
}
.learndash-wrapper .ld-tabs .ld-tabs-content .ld-tab-content { display: none; padding: 0; }
.learndash-wrapper .ld-tabs .ld-tabs-content .ld-tab-content.ld-visible { display: block; }
/* Con una tab sola il modulo non stampa la navigazione: il pannello va mostrato
   comunque, anche se il JS di LearnDash non ci ha messo `.ld-visible`. */
.learndash-wrapper .ld-tab-count-1 .ld-tab-content { display: block; }

/* =============================================================================
   ALLEGATI SCARICABILI
   Le righe che Support\LearnDash::materials() costruisce al posto dei link nudi
   del campo «Materiali»: icona del documento, nome, tipo e peso, «Scarica».

   Il markup è tutto inline (`<a>` con dentro `<span>`) perché i materiali
   passano da wpautop e stanno dentro un `<p>`: la forma a scheda la dà il CSS.
   Per lo stesso motivo l'icona è disegnata qui con una maschera e non da un
   `<svg>` nel markup, che wp_kses_post() toglierebbe.
   ========================================================================== */
a.mca-file {
    display: flex;
    align-items: center;
    gap: 16px;
    margin: 0 0 10px;
    padding: 14px 18px 14px 14px;
    border: 1px solid var(--mca-line);
    border-radius: 16px;
    background: #fff;
    color: var(--mca-ink);
    text-decoration: none;
    transition: border-color .25s ease, background .25s ease;
}
a.mca-file:last-child { margin-bottom: 0; }
a.mca-file:hover {
    color: var(--mca-ink);
    border-color: rgba(14, 14, 14, .3);
    background: var(--mca-cream);
}

/* Il quadro con il foglio: dice «qui dietro c'è un file» prima che si legga
   il nome. La sigla del tipo sta nella riga sotto, dove c'è anche il peso. */
.mca-file__icon {
    flex: 0 0 auto;
    width: 44px;
    height: 44px;
    border-radius: 12px;
    background: var(--mca-cream);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230e0e0e' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 2.5H6.5A1.5 1.5 0 0 0 5 4v16a1.5 1.5 0 0 0 1.5 1.5h11A1.5 1.5 0 0 0 19 20V7.5z'/%3E%3Cpath d='M14 2.5V8h5'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: center;
    background-size: 22px 22px;
}
a.mca-file:hover .mca-file__icon { background-color: #fff; }

.mca-file__text {
    /* Senza questo un nome lungo allarga la riga oltre la colonna invece di
       andare a capo: in un flex gli elementi non scendono sotto il contenuto. */
    min-width: 0;
    flex: 1 1 auto;
    display: block;
}
.mca-file__name {
    display: block;
    font-size: 15px;
    line-height: 1.4;
    color: var(--mca-ink);
    overflow-wrap: anywhere;
}
.mca-file__meta {
    display: block;
    margin-top: 3px;
    font-size: 12px;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--mca-muted);
}

.mca-file__cta {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 9px 16px;
    border: 1px solid rgba(14, 14, 14, .25);
    border-radius: 100px;
    font-size: 11.5px;
    font-weight: 500;
    letter-spacing: .08em;
    text-transform: uppercase;
    white-space: nowrap;
}
.mca-file__cta::after {
    content: "";
    width: 13px;
    height: 13px;
    background-color: currentColor;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3v13M6 11l6 6 6-6M4 21h16'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3v13M6 11l6 6 6-6M4 21h16'/%3E%3C/svg%3E") center / contain no-repeat;
}
a.mca-file:hover .mca-file__cta { border-color: var(--mca-ink); background: var(--mca-ink); color: #fff; }

/* In sidebar e su schermo stretto la colonna non regge nome e bottone scritto:
   resta la sola freccia, che con la riga tutta cliccabile basta a dire cosa fa.
   `font-size: 0` spegne la parola senza toglierla ai lettori di schermo. */
@media (max-width: 560px) {
    .mca-file__cta { font-size: 0; padding: 11px; gap: 0; }
}
.mca-ldcard__body .mca-file__cta { font-size: 0; padding: 11px; gap: 0; }
.mca-ldcard__body a.mca-file { padding: 12px 12px 12px 10px; gap: 12px; }
.mca-ldcard__body .mca-file__icon { width: 38px; height: 38px; background-size: 19px 19px; }

/* =============================================================================
   NAVIGAZIONE FRA I PASSI
   ========================================================================== */
/* LearnDash 5 impagina questa riga da sé — `display: flex; justify-content:
   space-between` a (0,4,0), più `padding: 1em 0` e un bordo grigio — e la
   griglia del tema, a (0,2,0), non contava più: i tre bottoni finivano in fila
   con «torna al corso» di fianco invece che sotto. Stesso guardiano del plugin
   per pareggiare (la nota lunga sui bottoni, più avanti, spiega perché). */
.learndash-wrapper:not(.ld-registration__outer-wrapper):not(.learndash-wrapper--modern) .ld-content-actions,
.mca-ldnav {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    gap: 18px;
    align-items: center;
    margin-top: 44px;
    padding-top: 30px;
    border-top: 1px solid var(--mca-line);
    background: transparent;
    border-radius: 0;
}
/* Le celle vanno scritte con il prefisso `.ld-content-actions`: LearnDash le
   impagina con `.learndash-wrapper .ld-content-actions .ld-content-action`
   (0,3,0) — colonne da 200px, `padding: 1em`, flex in colonna — e le nostre a
   classe singola perdevano. Da lì il bottone «lezione precedente» usciva con
   una scatola non nostra e il bordo che ne restava fuori. */
.learndash-wrapper:not(.ld-registration__outer-wrapper):not(.learndash-wrapper--modern) .ld-content-actions .ld-content-action,
.mca-ldnav__side,
.mca-ldnav__center {
    display: flex;
    align-items: center;
    flex: none;
    flex-basis: auto;
    padding: 0;
    min-width: 0;
}
.learndash-wrapper .ld-content-actions .mca-ldnav__side { justify-content: flex-start; }
.learndash-wrapper .ld-content-actions .mca-ldnav__side--next,
.mca-ldnav__side--next { justify-content: flex-end; }
.learndash-wrapper .ld-content-actions .mca-ldnav__center,
.mca-ldnav__center {
    justify-content: center;
    text-align: center;
}

/* «Torna al corso» (e l'avviso della progressione video) su una riga propria,
   a tutta larghezza sotto i tre bottoni: dentro la cella centrale facevano
   crescere la colonna di mezzo, e con la barra centrata verticalmente «segna
   completato» finiva più in alto di «precedente» e «successiva». */
.learndash-wrapper .ld-content-actions .mca-ldnav__foot,
.mca-ldnav__foot {
    grid-column: 1 / -1;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    margin-top: 4px;
    padding: 0;
    text-align: center;
}

/* Il bottone non deve essere stirato dalla cella: la sua altezza è quella del
   suo contenuto, altrimenti il bordo si stacca dal testo. */
.learndash-wrapper .ld-content-actions .mca-btn {
    flex: none;
    align-self: center;
    width: auto;
}
/* Stesso motivo delle celle: LearnDash scrive questo link a (0,4,0) e lo
   stende a tutta larghezza con `font-size: 1rem`. */
.learndash-wrapper .ld-content-actions .mca-ldnav__back,
.mca-ldnav__back {
    display: inline-block;
    width: auto;
    margin: 0;
    font-size: 13px;
    text-align: center;
    color: var(--mca-muted);
}
.learndash-wrapper .ld-content-actions .mca-ldnav__back:hover,
.mca-ldnav__back:hover { color: var(--mca-ink); }
/* Spiega perché il completamento è bloccato: senza, si clicca e non succede nulla. */
.mca-ldnav__hint {
    max-width: 44ch;
    margin: 0;
    font-size: 13px;
    line-height: 1.55;
    font-weight: 300;
    color: var(--mca-body);
}
.learndash-wrapper:not(.ld-registration__outer-wrapper):not(.learndash-wrapper--modern) .ld-content-actions .ld-empty { min-height: 1px; }

/* Form «segna come completato» — vedi la nota sulla specificità qui sotto.
   Il plugin scrive anche `#learndash_mark_complete_button`: un id pesa più di
   qualsiasi classe, quindi la regola del tema deve portarlo a sua volta. */
.learndash-wrapper:not(.ld-registration__outer-wrapper):not(.learndash-wrapper--modern) .learndash_mark_complete_button,
.learndash-wrapper:not(.ld-registration__outer-wrapper):not(.learndash-wrapper--modern) #learndash_mark_complete_button,
.learndash-wrapper:not(.ld-registration__outer-wrapper):not(.learndash-wrapper--modern) .learndash_mark_incomplete_button,
.learndash-wrapper:not(.ld-registration__outer-wrapper):not(.learndash-wrapper--modern) #learndash_mark_incomplete_button {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    /* LearnDash 5 stende questo bottone (`width: 100%; max-width: 385px`) e gli
       lascia andare il testo a capo: diventava alto il doppio degli altri due e
       usciva dalla riga. Torna della larghezza del suo testo, come `.mca-btn`. */
    width: auto;
    max-width: none;
    white-space: nowrap;
    background: var(--mca-ink);
    color: #fff;
    border: 0;
    border-radius: 100px;
    padding: 16px 30px;
    font-family: 'Space Grotesk', sans-serif;
    font-size: 13px;
    font-weight: 500;
    letter-spacing: .06em;
    text-transform: uppercase;
    cursor: pointer;
    transition: background .3s ease;
}
.learndash-wrapper:not(.ld-registration__outer-wrapper):not(.learndash-wrapper--modern) .learndash_mark_complete_button:hover,
.learndash-wrapper:not(.ld-registration__outer-wrapper):not(.learndash-wrapper--modern) #learndash_mark_complete_button:hover,
.learndash-wrapper:not(.ld-registration__outer-wrapper):not(.learndash-wrapper--modern) .learndash_mark_incomplete_button:hover,
.learndash-wrapper:not(.ld-registration__outer-wrapper):not(.learndash-wrapper--modern) #learndash_mark_incomplete_button:hover { background: #333; color: #fff; }
.learndash-wrapper:not(.ld-registration__outer-wrapper):not(.learndash-wrapper--modern) .learndash_mark_incomplete_button,
.learndash-wrapper:not(.ld-registration__outer-wrapper):not(.learndash-wrapper--modern) #learndash_mark_incomplete_button {
    background: transparent;
    color: var(--mca-ink);
    border: 1px solid rgba(14, 14, 14, .25);
}
.learndash-wrapper:not(.ld-registration__outer-wrapper):not(.learndash-wrapper--modern) .learndash_mark_incomplete_button:hover,
.learndash-wrapper:not(.ld-registration__outer-wrapper):not(.learndash-wrapper--modern) #learndash_mark_incomplete_button:hover { background: transparent; border-color: var(--mca-ink); color: var(--mca-ink); }

/* LearnDash 5 disegna l'anello di focus in blu (#235af3). Non va tolto — serve
   a chi naviga da tastiera — ma torna inchiostro come il resto della palette. */
.learndash-wrapper:not(.ld-registration__outer-wrapper):not(.learndash-wrapper--modern) .mca-btn:focus,
.learndash-wrapper:not(.ld-registration__outer-wrapper):not(.learndash-wrapper--modern) .ld-button:focus,
.learndash-wrapper:not(.ld-registration__outer-wrapper):not(.learndash-wrapper--modern) .learndash_mark_complete_button:focus,
.learndash-wrapper:not(.ld-registration__outer-wrapper):not(.learndash-wrapper--modern) #learndash_mark_complete_button:focus,
.learndash-wrapper:not(.ld-registration__outer-wrapper):not(.learndash-wrapper--modern) .learndash_mark_incomplete_button:focus,
.learndash-wrapper:not(.ld-registration__outer-wrapper):not(.learndash-wrapper--modern) #learndash_mark_incomplete_button:focus {
    outline: 2px solid var(--mca-ink);
    outline-offset: 2px;
}
.learndash-wrapper form.sfwd-mark-complete { margin: 0; }
.learndash-wrapper .learndash_checkbox_label { font-size: 13.5px; color: var(--mca-body); font-weight: 300; }

/* I template in learndash/ld30/ usano `.mca-btn`, ma LearnDash stampa anche
   fuori dalle pagine `.mca` (shortcode, widget): lì le varianti di colore di
   academy-base.css — scritte come `.mca .mca-btn--…` — non arriverebbero. */
/* I bottoni del tema dentro LearnDash portano anche `ld-button`, per non
   perdere gli hook e il JS del plugin: le regole del plugin li colpiscono in
   pieno — fondo azzurro #235af3, angoli a 20px, larghezza piena, testo bianco
   in grassetto — e vanno battute sulla specificità.

   Da LearnDash 5 ogni regola di ld30 è preceduta dal guardiano

       .learndash-wrapper:not(.ld-registration__outer-wrapper):not(.learndash-wrapper--modern)

   (serve al plugin per tenere fuori la pagina di registrazione e il nuovo tema
   «modern»), e da solo pesa (0,3,0): i vecchi `.learndash-wrapper .mca-btn`
   (0,2,0) hanno smesso di contare e i bottoni sono tornati azzurri.
   Le regole del tema portano quindi lo stesso guardiano — stessa specificità,
   e il nostro foglio si accoda dopo quello del plugin (vedi la dipendenza
   `learndash-front` in LearnDashController), quindi vince.

   Le varianti ripetono `.mca-btn` prima del modificatore per pareggiare le due
   classi del plugin (`.ld-button.ld-button-transparent` e simili).
   L'ordine conta: da qui in giù le regole pesano tutte uguale. */
.learndash-wrapper:not(.ld-registration__outer-wrapper):not(.learndash-wrapper--modern) .mca-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    width: auto;
    max-width: none;
    height: auto;
    margin: 0;
    padding: 17px 30px;
    border: 0;
    border-radius: 100px;
    background-color: transparent;
    color: var(--mca-ink);
    font-family: 'Space Grotesk', sans-serif;
    font-size: 13px;
    font-weight: 500;
    line-height: 1;
    letter-spacing: .06em;
    text-transform: uppercase;
    text-align: center;
    white-space: nowrap;
}
.learndash-wrapper:not(.ld-registration__outer-wrapper):not(.learndash-wrapper--modern) .mca-btn:hover { background-color: transparent; }
/* Nelle card il bottone chiude la colonna e va a piena larghezza. */
.learndash-wrapper:not(.ld-registration__outer-wrapper):not(.learndash-wrapper--modern) .mca-btn.mca-btn--block { display: flex; width: 100%; font-size: 12.5px; padding: 16px 24px; gap: 10px; }

.learndash-wrapper:not(.ld-registration__outer-wrapper):not(.learndash-wrapper--modern) .mca-btn.mca-btn--dark { background-color: var(--mca-ink); color: #fff; }
.learndash-wrapper:not(.ld-registration__outer-wrapper):not(.learndash-wrapper--modern) .mca-btn.mca-btn--dark:hover { background-color: #333; color: #fff; }
.learndash-wrapper:not(.ld-registration__outer-wrapper):not(.learndash-wrapper--modern) .mca-btn.mca-btn--ghost { background-color: transparent; border: 1px solid rgba(14, 14, 14, .25); color: var(--mca-ink); }
.learndash-wrapper:not(.ld-registration__outer-wrapper):not(.learndash-wrapper--modern) .mca-btn.mca-btn--ghost:hover { background-color: transparent; border-color: var(--mca-ink); color: var(--mca-ink); }
.learndash-wrapper:not(.ld-registration__outer-wrapper):not(.learndash-wrapper--modern) .mca-btn.mca-btn--light { background-color: #fff; color: var(--mca-ink); }
.learndash-wrapper:not(.ld-registration__outer-wrapper):not(.learndash-wrapper--modern) .mca-btn.mca-btn--light:hover { background-color: #ddd; color: var(--mca-ink); }

/* Il plugin distanzia due bottoni affiancati e spinge il testo dentro il
   bottone: la barra del tema usa `gap`, quindi vanno spenti. */
.learndash-wrapper:not(.ld-registration__outer-wrapper):not(.learndash-wrapper--modern) .mca-btn + .mca-btn { margin-left: 0; }
.learndash-wrapper:not(.ld-registration__outer-wrapper):not(.learndash-wrapper--modern) .mca-btn .ld-text { padding: 0; flex: 0 1 auto; }
.learndash-wrapper:not(.ld-registration__outer-wrapper):not(.learndash-wrapper--modern) .mca-btn .ld-icon { font-size: inherit; }

/* LearnDash spegne il bordo inferiore di QUALSIASI link. Serve a togliere le
   sottolineature dei temi, ma colpisce anche i bordi veri: i nostri bottoni e
   le frecce di paginazione sono <a>, e restavano con tre lati su quattro.

   In LearnDash 5 la regola è

       .learndash-wrapper:not(.ld-registration__outer-wrapper):not(.learndash-wrapper--modern) a:not(.button):not(.screen-reader-shortcut)
           { border-bottom: none !important }

   cioè (0,5,1) — prima era (0,2,1). Un `!important` si batte solo con un altro
   `!important` e almeno pari specificità: non basta più `a.` davanti alla
   classe, servono il guardiano e la seconda classe che i bottoni portano già. */
.learndash-wrapper:not(.ld-registration__outer-wrapper):not(.learndash-wrapper--modern) a.mca-btn.mca-btn--ghost { border-bottom: 1px solid rgba(14, 14, 14, .25) !important; }
.learndash-wrapper:not(.ld-registration__outer-wrapper):not(.learndash-wrapper--modern) a.mca-btn.mca-btn--ghost:hover { border-bottom-color: var(--mca-ink) !important; }
.learndash-wrapper:not(.ld-registration__outer-wrapper):not(.learndash-wrapper--modern) a.ld-button.ld-button-transparent { border-bottom: 1px solid rgba(14, 14, 14, .25) !important; }

/* Bottoni generici del plugin (acquisto, accesso, invio) */
.learndash-wrapper:not(.ld-registration__outer-wrapper):not(.learndash-wrapper--modern) .ld-button:not(.mca-btn),
.learndash-wrapper:not(.ld-registration__outer-wrapper):not(.learndash-wrapper--modern) .btn-join,
.learndash-wrapper:not(.ld-registration__outer-wrapper):not(.learndash-wrapper--modern) input[type="submit"].btn-join {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    background: var(--mca-ink);
    color: #fff;
    border: 0;
    border-radius: 100px;
    padding: 17px 30px;
    font-family: 'Space Grotesk', sans-serif;
    font-size: 13px;
    font-weight: 500;
    letter-spacing: .06em;
    text-transform: uppercase;
    text-decoration: none;
    cursor: pointer;
    transition: background .3s ease;
}
.learndash-wrapper:not(.ld-registration__outer-wrapper):not(.learndash-wrapper--modern) .ld-button:not(.mca-btn):hover,
.learndash-wrapper:not(.ld-registration__outer-wrapper):not(.learndash-wrapper--modern) .btn-join:hover { background: #333; color: #fff; }
.learndash-wrapper:not(.ld-registration__outer-wrapper):not(.learndash-wrapper--modern) .ld-button.ld-button-transparent:not(.mca-btn) {
    background: transparent;
    color: var(--mca-ink);
    border: 1px solid rgba(14, 14, 14, .25);
}
.learndash-wrapper:not(.ld-registration__outer-wrapper):not(.learndash-wrapper--modern) .ld-button.ld-button-alternate:not(.mca-btn) { background: transparent; color: var(--mca-ink); }

/* Nella card d'iscrizione i bottoni di pagamento occupano tutta la colonna. */
.mca-enroll__actions .ld-button,
.mca-enroll__actions .btn-join,
.mca-enroll__actions input[type="submit"],
.mca-enroll__actions .learndash-wrapper .ld-button { width: 100%; }
.mca-enroll__actions form { margin: 0; }
.mca-enroll__actions > * + * { margin-top: 10px; }

/* =============================================================================
   PAGINAZIONE DEL PLUGIN
   ========================================================================== */
.learndash-wrapper .ld-pagination {
    display: flex;
    justify-content: center;
    padding: 18px 0 4px;
    background: transparent;
    border: 0;
}
.learndash-wrapper .ld-pagination .ld-pages {
    display: flex;
    align-items: center;
    gap: 14px;
    font-size: 13px;
    color: var(--mca-body);
}
/* Stesso `border-bottom: none !important` di LearnDash sui link, stesso rimedio
   dei bottoni: qui però la freccia non porta classi proprie, quindi la
   specificità si pareggia ricalcando il `:not(.button)` del plugin. */
.learndash-wrapper:not(.ld-registration__outer-wrapper):not(.learndash-wrapper--modern) .ld-pagination a:not(.button) {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    border: 1px solid var(--mca-line);
    /* Stesso motivo dei bottoni bordati: vedi la nota su `border-bottom: none
       !important` nella sezione dei bottoni. */
    border-bottom: 1px solid var(--mca-line) !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--mca-ink);
}
.learndash-wrapper:not(.ld-registration__outer-wrapper):not(.learndash-wrapper--modern) .ld-pagination a:not(.button):hover { border-color: var(--mca-ink); border-bottom-color: var(--mca-ink) !important; }
.learndash-wrapper:not(.ld-registration__outer-wrapper):not(.learndash-wrapper--modern) .ld-pagination a.disabled { opacity: .35; pointer-events: none; }

/* =============================================================================
   BARRA INFORMATIVA (shortcode [ld_infobar])
   ========================================================================== */
.learndash-wrapper .ld-course-status,
.mca-ldinfobar {
    display: flex;
    align-items: center;
    gap: 32px;
    flex-wrap: wrap;
    margin: 0 0 30px;
    padding: 24px 28px;
    border-radius: 18px;
    border: 1px solid var(--mca-line);
    background: var(--mca-cream);
}
.mca-ldinfobar__cell { display: flex; flex-direction: column; gap: 6px; }
.mca-ldinfobar__cell--action { margin-left: auto; }
.mca-ldinfobar__label {
    font-size: 11px;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: var(--mca-muted);
}
.mca-ldinfobar__price { font-size: 28px; font-weight: 700; line-height: 1; }
.mca-ldinfobar__note { font-size: 13px; color: var(--mca-body); font-weight: 300; }
.learndash-wrapper .mca-ldinfobar__login { font-size: 13px; color: var(--mca-body); text-decoration: underline; text-underline-offset: 3px; }

/* Livello bloccato dai prerequisiti: al posto del pagamento, il livello da
   superare prima. Stessa forma dei bottoni scuri del tema, ma qui la classe
   `.mca-btn` non arriva — l'infobar la stampa LearnDash, fuori da `.mca`. */
.learndash-wrapper .mca-ldinfobar__unlock {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 14px 26px;
    border-radius: 100px;
    background: var(--mca-ink);
    color: #fff;
    font-family: 'Space Grotesk', sans-serif;
    font-size: 13px;
    font-weight: 500;
    letter-spacing: .06em;
    text-transform: uppercase;
    text-decoration: none;
    white-space: nowrap;
}
.learndash-wrapper .mca-ldinfobar__unlock:hover { background: #333; color: #fff; }
.mca-ldinfobar--enrolled { display: block; }
.mca-ldinfobar--enrolled .mca-ldprogress { margin-bottom: 12px; }

/* Barra di avanzamento del plugin */
.learndash-wrapper .ld-progress { padding: 0; margin: 0; background: transparent; }
.mca-ldprogress__head {
    display: flex;
    align-items: baseline;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 9px;
}
.mca-ldprogress__label,
.mca-ldprogress__steps { font-size: 12px; color: var(--mca-muted); }
.mca-ldprogress__steps { margin-left: auto; }
.mca-ldprogress__percent { font-size: 13px; font-weight: 600; color: var(--mca-ink); }
.learndash-wrapper .ld-progress .ld-progress-bar {
    height: 6px;
    border-radius: 100px;
    background: rgba(14, 14, 14, .1);
    border: 0;
    overflow: hidden;
}
.learndash-wrapper .ld-progress .ld-progress-bar-percentage {
    display: block;
    height: 100%;
    background: var(--mca-ink) !important;
    border-radius: inherit;
}

/* =============================================================================
   AULA — lezione, argomento, quiz e compito
   Indice del corso a sinistra, contenuto a destra, azioni in fondo.
   Markup: template-parts/learndash/step-page.php
   ========================================================================== */
.mca-player {
    display: grid;
    grid-template-columns: 320px 1fr;
    gap: 48px;
    align-items: start;
    padding-top: 44px;
    padding-bottom: 100px;
}

/* Nel DOM il contenuto viene per primo — su mobile si legge subito la lezione —
   e la griglia lo sposta nella colonna di destra. */
.mca-player__main { grid-column: 2; min-width: 0; }
/* `align-self: stretch` non è un dettaglio: la griglia allinea in alto
   (`align-items: start`), quindi senza questa riga la colonna dell'indice resta
   alta quanto il suo contenuto e lo `position: sticky` del riquadro dentro non
   ha un centimetro in cui scorrere — sticky dichiarato, indice che scorre via.
   Stirata a tutta la riga, il riquadro resta agganciato per tutta la lezione. */
.mca-player__nav { grid-column: 1; grid-row: 1; min-width: 0; align-self: stretch; }

/* ── Testata del passo ──────────────────────────────────────────────────── */
.mca-player__head {
    padding-bottom: 26px;
    margin-bottom: 30px;
    border-bottom: 1px solid var(--mca-line);
}
.mca-player__head .mca-crumbs { margin-bottom: 16px; }
.mca .mca-player__title,
.mca-player__title {
    font-family: 'Space Grotesk', sans-serif;
    font-size: 40px;
    font-weight: 600;
    line-height: 1.08;
    letter-spacing: -.02em;
    margin: 10px 0 0;
}

/* ── Colonna dell'indice ────────────────────────────────────────────────── */
.mca-player__navinner {
    position: sticky;
    top: calc(var(--mca-ld-bar-top) + 22px);
    border: 1px solid var(--mca-line);
    border-radius: 18px;
    overflow: hidden;
    background: #fff;
    /* L'indice di un corso lungo non deve superare lo schermo: scorre da sé. */
    max-height: calc(100vh - var(--mca-ld-bar-top) - 44px);
    display: flex;
    flex-direction: column;
}

.mca-player__course {
    padding: 22px 22px 20px;
    background: var(--mca-ink);
    color: #fff;
    flex-shrink: 0;
}
.mca-ld .mca-player__back {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    font-size: 12px;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--mca-onDark);
}
.mca-ld .mca-player__back:hover { color: #fff; }
.mca-player__coursename {
    font-size: 19px;
    font-weight: 600;
    line-height: 1.25;
    margin-top: 12px;
    color: #fff;
}
.mca-player__progress { display: flex; align-items: center; gap: 12px; margin-top: 16px; }
.mca-player__progress .mca-progress { background: rgba(255, 255, 255, .18); }
.mca-player__progress .mca-progress__fill { background: #fff; }
.mca-player__percent { font-size: 13px; font-weight: 600; color: #fff; white-space: nowrap; }
.mca-player__steps { font-size: 12px; color: var(--mca-muted); margin-top: 8px; }

/* ── L'elenco del widget dentro l'indice ────────────────────────────────── */
/* Il widget «Navigazione corso» porta con sé il proprio foglio, e le sue regole
   sono scritte tutte a `.learndash-wrapper .ld-course-navigation …`: due classi
   più delle nostre. Finché nessuna lezione ha argomenti la differenza non si
   vede — le righe sono piatte e restano quelle che disegniamo noi — ma appena
   una lezione diventa espandibile entrano in scena il bottone d'apertura e il
   pannello degli argomenti, che il plugin fa larghi quanto la colonna: il
   bottone è dichiarato `width: 100%; flex-basis: 100%`, quindi in una riga
   flex schiaccia a zero il titolo della lezione, e il pannello si stacca su un
   riquadro grigio rientrato di 20px con tanto di freccetta.
   Da qui in giù i selettori ripetono quindi il prefisso del plugin: senza,
   il nostro stile perde il confronto e la colonna si scompone. */
.mca-player__index {
    padding: 8px 18px 14px;
    overflow-y: auto;
    font-size: 14.5px;

    /* Una colonna sola per i pallini di stato: il titolo della lezione parte
       sempre a `icona + gap` dal bordo, e gli argomenti si incolonnano lì
       sotto invece di rientrare di una misura loro. */
    --mca-idx-icon: 18px;
    --mca-idx-gap: 11px;
    --mca-idx-indent: calc(var(--mca-idx-icon) + var(--mca-idx-gap));
}

/* Il widget di LearnDash porta con sé il proprio wrapper: qui va appiattito. */
.mca-player__index .learndash-wrapper { font-size: inherit; }
.mca-player__index .learndash-wrapper .ld-course-navigation .ld-course-navigation-heading {
    padding: 10px 0 6px;
    border: 0;
}
/* «Home del corso» lo dice già il link in testa alla colonna. */
.mca-player__index .ld-home-link { display: none; }
.mca-player__index .ld-course-navigation-actions { display: flex; justify-content: flex-end; }

/* ── Righe delle lezioni ────────────────────────────────────────────────── */
.mca-player__index .learndash-wrapper .ld-course-navigation .ld-lesson-item { border: 0; }
.mca-player__index .learndash-wrapper .ld-course-navigation .ld-lesson-item + .ld-lesson-item {
    border-top: 1px solid var(--mca-line-soft);
}

/* Non una riga flex: titolo e bottone «n argomenti» si impilano, così in una
   colonna da 320px il titolo ha tutta la larghezza per sé. */
.mca-player__index .learndash-wrapper .ld-course-navigation .ld-lesson-item-preview {
    display: block;
    padding: 2px 0 6px;
}
.mca-player__index .learndash-wrapper .ld-course-navigation .ld-lesson-item-preview .ld-lesson-item-preview-heading {
    display: flex;
    flex-flow: row nowrap;
    align-items: flex-start;
    gap: var(--mca-idx-gap);
    padding: 10px 0 0;
    line-height: 1.35;
}
.mca-player__index .learndash-wrapper .ld-course-navigation .ld-lesson-item-preview .ld-lesson-title {
    display: block;
    flex: 1 1 auto;
    min-width: 0;
    font-family: 'Space Grotesk', sans-serif;
    font-size: 14.5px;
    font-weight: 500;
    line-height: 1.35;
    color: var(--mca-ink);
}

/* ── Pallini di stato ───────────────────────────────────────────────────── */
/* Il plugin li rimpicciolisce a 15px e li stacca con un `margin-right` suo:
   sommato al nostro `gap` il titolo finiva 7px più in là di quanto disegnato. */
.mca-player__index .learndash-wrapper .ld-course-navigation .ld-status-icon {
    width: var(--mca-idx-icon);
    height: var(--mca-idx-icon);
    flex: 0 0 var(--mca-idx-icon);
    margin: 1px 0 0;
    font-size: 8px;
}

/* La lezione aperta e il passo in corso: gli unici due punti d'orientamento. */
.mca-player__index .learndash-wrapper .ld-course-navigation .ld-is-current-lesson > .ld-lesson-item-preview .ld-lesson-title {
    font-weight: 600;
}

/* ── Bottone «n argomenti» ──────────────────────────────────────────────── */
/* Va sotto al titolo, incolonnato con esso, e pesa come una didascalia: è un
   conteggio, non un'azione da rincorrere. */
.mca-player__index .learndash-wrapper .ld-course-navigation .ld-expand-button {
    flex: 0 0 auto;
    width: auto;
    max-width: none;
    margin: 0;
    padding: 0;
    gap: 6px;
    justify-content: flex-start;
    background: transparent;
    border: 0;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: .06em;
    text-transform: uppercase;
    line-height: 1.2;
    color: var(--mca-muted) !important;
}
.mca-player__index .learndash-wrapper .ld-course-navigation .ld-expand-button:hover,
.mca-player__index .learndash-wrapper .ld-course-navigation .ld-expand-button:focus {
    background: transparent;
    opacity: 1;
    color: var(--mca-ink) !important;
}
.mca-player__index .learndash-wrapper .ld-course-navigation .ld-lesson-item-preview .ld-expand-button {
    padding: 8px 0 2px var(--mca-idx-indent);
}
/* La freccia è la pastiglia tonda del plugin, ripulita: qui basta il segno. */
.mca-player__index .learndash-wrapper .ld-course-navigation .ld-expand-button .ld-icon {
    width: 12px;
    height: 12px;
    flex: 0 0 12px;
    padding: 0;
    border-radius: 0;
    line-height: 12px;
    font-size: 7px;
    background: transparent !important;
    color: inherit;
}
.mca-player__index .learndash-wrapper .ld-course-navigation .ld-expand-button .ld-text {
    flex: 0 1 auto;
    padding: 0;
    text-align: left;
}
.mca-player__index .learndash-wrapper .ld-course-navigation .ld-course-navigation-actions .ld-expand-button {
    margin-left: auto;
    font-size: 10px;
}

/* ── Elenco degli argomenti ─────────────────────────────────────────────── */
/* Aperto è la continuazione della lezione, non un riquadro a parte: via il
   fondo grigio, i margini laterali e la freccetta del plugin. La transizione
   su `max-height` invece resta — è quella che il suo JS anima. */
.mca-player__index .learndash-wrapper .ld-course-navigation .ld-lesson-item-expanded {
    margin: 0;
    background: transparent;
    border-radius: 0;
}
.mca-player__index .learndash-wrapper .ld-course-navigation .ld-lesson-item-expanded::before { display: none; }
.mca-player__index .learndash-wrapper .ld-course-navigation .ld-lesson-item-expanded.ld-expanded { margin-bottom: 0; }

.mca-player__index .learndash-wrapper .ld-course-navigation .ld-table-list.ld-topic-list { margin: 0; }
.mca-player__index .learndash-wrapper .ld-course-navigation .ld-table-list-header { display: none; }
.mca-player__index .learndash-wrapper .ld-course-navigation .ld-table-list.ld-topic-list .ld-table-list-items {
    position: relative;
    padding: 0 0 10px var(--mca-idx-indent);
    border: 0;
    background: transparent;
    font-size: inherit;
}
/* Filo verticale sull'asse dei pallini: lega gli argomenti alla loro lezione
   senza doverli rientrare di più. */
.mca-player__index .learndash-wrapper .ld-course-navigation .ld-table-list.ld-topic-list .ld-table-list-items::before {
    content: '';
    position: absolute;
    left: calc(var(--mca-idx-icon) / 2);
    top: 0;
    bottom: 16px;
    width: 1px;
    background: var(--mca-line-soft);
}

.mca-player__index .learndash-wrapper .ld-course-navigation .ld-table-list.ld-topic-list .ld-table-list-item {
    margin: 0;
    border: 0;
    font-size: inherit;
    line-height: inherit;
}
.mca-player__index .learndash-wrapper .ld-course-navigation .ld-table-list.ld-topic-list .ld-table-list-item .ld-table-list-item-preview {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    padding: 7px 0;
    font-size: 14px;
}
.mca-player__index .learndash-wrapper .ld-course-navigation .ld-table-list.ld-topic-list .ld-status-icon {
    width: 14px;
    height: 14px;
    flex: 0 0 14px;
    margin: 3px 0 0;
    font-size: 7px;
}
.mca-player__index .learndash-wrapper .ld-course-navigation .ld-table-list.ld-topic-list .ld-table-list-item .ld-table-list-item-preview .ld-topic-title {
    display: block;
    flex: 1 1 auto;
    min-width: 0;
    font-size: 14px;
    font-weight: 300;
    line-height: 1.4;
    color: var(--mca-body);
}
.mca-player__index .learndash-wrapper .ld-course-navigation .ld-table-list.ld-topic-list .ld-table-list-item .ld-table-list-item-preview.ld-is-current-item .ld-topic-title {
    color: var(--mca-ink);
    font-weight: 500;
}

/* ── Azioni in fondo al contenuto ───────────────────────────────────────── */
/* `modules/course-steps.php` chiude il contenuto di LearnDash: nell'aula
   diventa una barra riconoscibile, staccata dal testo della lezione. */
.mca-ld--player .learndash-wrapper .ld-content-actions,
.mca-ld--player .mca-ldnav,
.mca-ld--player .learndash-wrapper:not(.ld-registration__outer-wrapper):not(.learndash-wrapper--modern) .ld-content-actions {
    margin-top: 48px;
    padding: 26px 28px;
    border: 1px solid var(--mca-line);
    border-radius: 18px;
    background: var(--mca-cream);
}

/* =============================================================================
   QUIZ
   ========================================================================== */
.learndash-wrapper .wpProQuiz_content { font-family: 'Jost', sans-serif; }
.learndash-wrapper .wpProQuiz_header,
.learndash-wrapper .wpProQuiz_quiz_time,
.learndash-wrapper .wpProQuiz_catOverview {
    font-size: 14px;
    color: var(--mca-body);
}
.learndash-wrapper .wpProQuiz_listItem {
    border: 1px solid var(--mca-line);
    border-radius: 16px;
    padding: 26px 28px;
    background: #fff;
    margin-bottom: 16px;
}
.learndash-wrapper .wpProQuiz_question_text {
    font-family: 'Space Grotesk', sans-serif;
    font-size: 20px;
    font-weight: 500;
    line-height: 1.4;
    color: var(--mca-ink);
    margin-bottom: 18px;
}
.learndash-wrapper .wpProQuiz_questionList { border: 0; margin: 0; padding: 0; }
.learndash-wrapper .wpProQuiz_questionListItem {
    border: 1px solid var(--mca-line);
    border-radius: 12px;
    padding: 0;
    margin: 0 0 10px;
    background: #fff;
    transition: border-color .25s ease, background .25s ease;
}
.learndash-wrapper .wpProQuiz_questionListItem:hover { border-color: rgba(14, 14, 14, .3); }
.learndash-wrapper .wpProQuiz_questionListItem label {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 15px 18px;
    font-size: 15.5px;
    line-height: 1.55;
    font-weight: 300;
    color: var(--mca-body);
    cursor: pointer;
    margin: 0;
}
.learndash-wrapper .wpProQuiz_questionInput { margin: 3px 0 0; accent-color: #0e0e0e; }

/* Esito della risposta */
.learndash-wrapper .wpProQuiz_answerCorrect {
    border-color: var(--mca-ink);
    background: var(--mca-cream);
}
.learndash-wrapper .wpProQuiz_answerIncorrect { border-color: rgba(14, 14, 14, .35); opacity: .7; }

.learndash-wrapper .wpProQuiz_response,
.learndash-wrapper .wpProQuiz_incorrect,
.learndash-wrapper .wpProQuiz_correct {
    border-radius: 14px;
    border: 1px solid var(--mca-line);
    background: var(--mca-cream);
    padding: 18px 22px;
    font-size: 15px;
    line-height: 1.6;
    font-weight: 300;
    color: var(--mca-body);
}

.learndash-wrapper .wpProQuiz_button,
.learndash-wrapper input.wpProQuiz_button,
.learndash-wrapper input[name="startQuiz"],
.learndash-wrapper input[name="checkQuestion"],
.learndash-wrapper input[name="next"],
.learndash-wrapper input[name="back"],
.learndash-wrapper input[name="restartQuiz"] {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background: var(--mca-ink);
    color: #fff;
    border: 0;
    border-radius: 100px;
    padding: 15px 28px;
    font-family: 'Space Grotesk', sans-serif;
    font-size: 12.5px;
    font-weight: 500;
    letter-spacing: .06em;
    text-transform: uppercase;
    cursor: pointer;
    box-shadow: none;
    transition: background .3s ease;
}
.learndash-wrapper .wpProQuiz_button:hover { background: #333; color: #fff; }
.learndash-wrapper .wpProQuiz_button2,
.learndash-wrapper input.wpProQuiz_button2 {
    background: transparent;
    color: var(--mca-ink);
    border: 1px solid rgba(14, 14, 14, .25);
}
.learndash-wrapper .wpProQuiz_button2:hover { background: transparent; border-color: var(--mca-ink); }

/* Risultato finale */
.learndash-wrapper .wpProQuiz_results {
    border: 1px solid var(--mca-line);
    border-radius: 18px;
    padding: 30px 32px;
    background: #fff;
}
.learndash-wrapper .wpProQuiz_resultsList { list-style: none; padding: 0; }
.learndash-wrapper:not(.ld-registration__outer-wrapper):not(.learndash-wrapper--modern) .ld-quiz-actions .ld-button { margin-right: 10px; }
.learndash-wrapper .wpProQuiz_time_limit .wpProQuiz_progress { background: var(--mca-ink) !important; }

/* =============================================================================
   COMPITI
   ========================================================================== */
.learndash-wrapper .ld-assignment-list,
.learndash-wrapper .ld-file-upload {
    border: 1px solid var(--mca-line);
    border-radius: 16px;
    padding: 24px 26px;
    background: #fff;
    margin-top: 26px;
}
.learndash-wrapper .ld-file-upload .ld-file-input { font-size: 14px; }
.learndash-wrapper .ld-assignment-list .ld-item-list-item { margin-bottom: 8px; }

/* =============================================================================
   PROFILO / DASHBOARD
   ========================================================================== */
.learndash-wrapper .ld-profile-header {
    border-radius: 20px;
    padding: 30px 32px;
    background: var(--mca-ink);
    color: #fff;
    border: 0;
}
.learndash-wrapper .ld-profile-heading,
.learndash-wrapper .ld-profile-card .ld-profile-name {
    font-family: 'Space Grotesk', sans-serif;
    color: #fff;
}
.learndash-wrapper .ld-profile-avatar img { border-radius: 50%; }
.learndash-wrapper .ld-profile-summary { color: var(--mca-onDark); }
.learndash-wrapper .ld-profile-stats .ld-profile-stat-label { color: var(--mca-muted); }

.learndash-wrapper .ld-item-list.ld-course-list .ld-item-list-item { background: #fff; }
.learndash-wrapper .ld-profile-edit-link { font-size: 13px; color: var(--mca-onDark); }

/* =============================================================================
   FOCUS MODE
   Il plugin prende il controllo della pagina: qui si allinea la sua barra
   laterale e il contenuto alla palette Academy.
   ========================================================================== */
.learndash-wrapper .ld-focus { font-family: 'Jost', sans-serif; }
.learndash-wrapper .ld-focus .ld-focus-sidebar {
    background: var(--mca-ink);
    border-right: 0;
    color: #fff;
}
.learndash-wrapper .ld-focus .ld-focus-sidebar .ld-course-navigation-heading,
.learndash-wrapper .ld-focus .ld-focus-sidebar .ld-lesson-title,
.learndash-wrapper .ld-focus .ld-focus-sidebar a { color: #fff; }
.learndash-wrapper .ld-focus .ld-focus-sidebar .ld-topic-title { color: var(--mca-onDark); }
.learndash-wrapper .ld-focus .ld-focus-sidebar .ld-status-icon.ld-status-incomplete { border-color: rgba(255, 255, 255, .3); }
.learndash-wrapper .ld-focus .ld-focus-sidebar .ld-status-icon.ld-status-complete { background: var(--mca-done) !important; color: #fff; }
.learndash-wrapper .ld-focus .ld-focus-sidebar .ld-progress-bar { background: rgba(255, 255, 255, .18); }
.learndash-wrapper .ld-focus .ld-focus-sidebar .ld-progress-bar-percentage { background: #fff !important; }

.learndash-wrapper .ld-focus .ld-focus-header {
    background: #fff;
    border-bottom: 1px solid var(--mca-line);
}
.learndash-wrapper .ld-focus .ld-focus-header .ld-content-action .ld-button { padding: 13px 24px; font-size: 12px; }
.learndash-wrapper .ld-focus .ld-focus-content { font-size: 17px; line-height: 1.8; font-weight: 300; color: var(--mca-body); }
.learndash-wrapper .ld-focus .ld-focus-content h1,
.learndash-wrapper .ld-focus .ld-focus-content h2,
.learndash-wrapper .ld-focus .ld-focus-content h3 { color: var(--mca-ink); }

/* =============================================================================
   MODALE DI ACCESSO
   ========================================================================== */
.learndash-wrapper .ld-modal {
    border-radius: 20px;
    border: 0;
    box-shadow: 0 30px 70px rgba(0, 0, 0, .3);
}
.learndash-wrapper .ld-modal .ld-modal-heading { font-family: 'Space Grotesk', sans-serif; font-weight: 600; }
.learndash-wrapper .ld-login-modal input[type="text"],
.learndash-wrapper .ld-login-modal input[type="email"],
.learndash-wrapper .ld-login-modal input[type="password"] {
    border: 1px solid var(--mca-line);
    border-radius: 100px;
    padding: 14px 20px;
    font-family: 'Jost', sans-serif;
    font-size: 15px;
}
.learndash-wrapper .ld-login-modal input:focus { border-color: var(--mca-ink); outline: none; }

/* =============================================================================
   RESPONSIVE
   ========================================================================== */
/* ── Risultati dei corsisti ──────────────────────────────────────────────── */
/* Markup: template-parts/learndash/course-results.php
   JS: assets/js/learndash.js (lightbox)

   Un muro di foto a colonne invece di una griglia a caselle uguali: le mani si
   fotografano come vengono, e un ritaglio quadrato su uno scatto verticale
   taglia via proprio l'unghia. Le colonne lasciano a ogni foto il suo formato
   e riempiono i vuoti da sole. */
.mca-ldresults__grid {
    columns: 4 240px;
    column-gap: 14px;
}

.mca-ldresults__item {
    /* `inline-block` e non `block`: senza, le colonne spezzano la figura a
       metà fra una colonna e l'altra nonostante il break-inside. */
    display: inline-block;
    width: 100%;
    margin: 0 0 14px;
    break-inside: avoid;
}

.mca-ldresults__open {
    display: block;
    width: 100%;
    padding: 0;
    border: 0;
    background: var(--mca-cream);
    cursor: zoom-in;
    overflow: hidden;
    line-height: 0;
}

.mca-ldresults__open img {
    display: block;
    width: 100%;
    height: auto;
    transition: transform .6s cubic-bezier(.19, 1, .22, 1);
}
.mca-ldresults__open:hover img { transform: scale(1.04); }

.mca-ldresults__open:focus-visible {
    outline: 2px solid var(--mca-ink);
    outline-offset: 3px;
}

.mca-ldresults__caption {
    margin: 8px 2px 0;
    font-size: 13.5px;
    line-height: 1.5;
    font-weight: 300;
    color: var(--mca-body);
}

/* ── Lightbox ───────────────────────────────────────────────────────────── */
/* Il nodo lo costruisce il JS al primo clic, quindi qui non c'è niente da
   nascondere in partenza: se lo stile arriva prima del JS, non c'è ancora
   nessun elemento a cui applicarlo. */
.mca-lightbox {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: none;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 24px;
    background: rgba(10, 10, 10, .94);
}
.mca-lightbox.is-open { display: flex; }

/* La pagina sotto non scorre mentre si guarda una foto. */
.mca-lb-open, .mca-lb-open body { overflow: hidden; }

.mca-lightbox__figure {
    margin: 0;
    max-width: min(1100px, 100%);
    max-height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 14px;
}

.mca-lightbox__img {
    max-width: 100%;
    /* Meno dell'altezza piena: la didascalia e i bordi hanno bisogno del loro
       spazio, altrimenti su schermi bassi finiscono fuori. */
    max-height: calc(100vh - 140px);
    width: auto;
    height: auto;
    object-fit: contain;
}

.mca-lightbox__caption {
    margin: 0;
    max-width: 60ch;
    text-align: center;
    font-size: 14px;
    line-height: 1.6;
    font-weight: 300;
    color: var(--mca-onDark);
}
.mca-lightbox__caption[hidden] { display: none; }

.mca-lightbox__nav,
.mca-lightbox__close {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    border: 1px solid var(--mca-line-light);
    background: rgba(255, 255, 255, .06);
    color: #fff;
    cursor: pointer;
    transition: background .2s ease;
}
.mca-lightbox__nav:hover,
.mca-lightbox__close:hover { background: rgba(255, 255, 255, .16); }
.mca-lightbox__nav[hidden] { display: none; }

.mca-lightbox__nav {
    width: 52px;
    height: 52px;
    border-radius: 50%;
    font-size: 30px;
    line-height: 1;
    padding-bottom: 4px;
}

.mca-lightbox__close {
    position: absolute;
    top: 18px;
    right: 18px;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    font-size: 26px;
    line-height: 1;
}

@media (max-width: 1199.98px) {
    .mca .mca-ldcover__title { font-size: 36px; }

    .mca-ldcover__grid { grid-template-columns: 1fr; gap: 36px; }

    /* Impilato il testo attraversa tutta la larghezza e finirebbe sulla parte
       aperta del velo: la copertura passa in verticale per restare sotto di lui. */
    .mca-ldcover__veil {
        background: linear-gradient(to bottom, rgba(14, 14, 14, .93) 0%, rgba(14, 14, 14, .88) 58%, rgba(14, 14, 14, .7) 100%);
    }
    .mca-enroll { position: static; max-width: 520px; }

    .mca-ldbody { grid-template-columns: 1fr; gap: 40px; }
    .mca-ldside { position: static; }

    /* L'aula tiene le due colonne più a lungo: l'indice serve mentre si studia,
       e a 320px la colonna sta ancora comoda. */
    .mca-player { grid-template-columns: 280px 1fr; gap: 36px; }

    .mca-ldgrid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 991.98px) {
    /* Sotto i 1000px le barre sticky si accavallerebbero al menu mobile:
       meglio lasciarle scorrere con la pagina. */
    .mca-ldbar { position: static; }
    .mca-ldsection { scroll-margin-top: 100px; }

    .mca-ldcover__inner { padding-top: 44px; padding-bottom: 40px; }

    .mca-ldbar__inner { gap: 0; }
    .mca-ldbar__nav { overflow-x: auto; flex-wrap: nowrap; -webkit-overflow-scrolling: touch; }
    .mca-ld .mca-ldbar__tab { padding: 18px 14px; white-space: nowrap; }
    .mca-ldbar__progress { padding-bottom: 16px; }

    /* L'aula si impila: prima la lezione, poi l'indice — che smette di essere
       sticky e si limita in altezza, altrimenti occuperebbe tutto lo schermo. */
    .mca-player { grid-template-columns: 1fr; gap: 36px; padding-top: 28px; }
    .mca-player__main { grid-column: 1; }
    .mca-player__nav { grid-column: 1; grid-row: auto; align-self: auto; }
    .mca-player__navinner { position: static; max-height: none; }
    .mca-player__index { max-height: 60vh; }
    .mca .mca-player__title { font-size: 30px; }

    .mca-bio { grid-template-columns: 1fr; gap: 20px; }
    .mca-bio__photo { max-width: 220px; }

    .mca-ldrow { grid-template-columns: 60px 1fr; }
    .mca-ldrow__thumb { width: 60px; height: 60px; }
    .mca-ldrow__action { grid-column: 1 / -1; }

    .learndash-wrapper:not(.ld-registration__outer-wrapper):not(.learndash-wrapper--modern) .ld-content-actions,
    .mca-ldnav { grid-template-columns: 1fr; gap: 14px; }
    .mca-ldnav__side,
    .mca-ldnav__side--next { justify-content: center; }
    .learndash-wrapper:not(.ld-registration__outer-wrapper):not(.learndash-wrapper--modern) .ld-content-actions .ld-empty { display: none; }
    /* Sotto i 640px il plugin manda in fondo la cella centrale (`order: 1` su
       `div:nth-child(2)`): nella griglia «segna completato» finirebbe dopo
       «torna al corso». */
    .learndash-wrapper:not(.ld-registration__outer-wrapper):not(.learndash-wrapper--modern) .ld-content-actions > div.ld-content-action { order: 0; }
}

@media (max-width: 767.98px) {
    /* Sul telefono la spaziatura si stringe: a schermo stretto .12em manda a
       capo anche i titoli corti. */
    .mca .mca-ldcover__title { font-size: 28px; letter-spacing: .08em; }
    .mca-ldcover__text { font-size: 16px; }
    .mca-ldcover__stats { gap: 24px; }

    .mca-ldbody { padding-top: 36px; padding-bottom: 70px; }
    .mca-ldgrid { grid-template-columns: 1fr; }
    .mca-ldgrid-wrap { padding-top: 40px; padding-bottom: 70px; }

    .mca-enroll__body { padding: 22px 20px 24px; }
    .mca-enroll__price-now { font-size: 34px; }

    .mca .mca-player__title { font-size: 26px; }
    .mca-player { padding-bottom: 60px; }
    .mca-player__head { padding-bottom: 20px; margin-bottom: 24px; }
    .mca-ld--player .learndash-wrapper .ld-content-actions,
    .mca-ld--player .mca-ldnav,
    .mca-ld--player .learndash-wrapper:not(.ld-registration__outer-wrapper):not(.learndash-wrapper--modern) .ld-content-actions { padding: 20px 20px; margin-top: 34px; }

    .learndash-wrapper .ld-item-list-item .ld-item-list-item-preview { padding: 16px 18px; gap: 12px; }
    .learndash-wrapper .ld-item-title { font-size: 17px; }
    .learndash-wrapper .ld-table-list .ld-table-list-items { padding: 0 18px 10px; }

    .learndash-wrapper .wpProQuiz_listItem { padding: 20px 20px; }
    .learndash-wrapper .wpProQuiz_question_text { font-size: 18px; }

    /* Due colonne restano leggibili anche su telefono: una sola farebbe
       scorrere all'infinito un muro di dieci foto. */
    .mca-ldresults__grid { columns: 2 130px; column-gap: 10px; }
    .mca-ldresults__item { margin-bottom: 10px; }
    .mca-ldresults__caption { font-size: 12.5px; }

    /* Le frecce scendono sotto la foto: ai lati si mangerebbero metà schermo. */
    .mca-lightbox { flex-wrap: wrap; padding: 16px; align-content: center; }
    .mca-lightbox__figure { flex: 1 0 100%; order: -1; }
    .mca-lightbox__img { max-height: calc(100vh - 220px); }
    .mca-lightbox__nav { width: 46px; height: 46px; }

    /* La barra d'acquisto su mobile va a due righe: il bottone resta pieno. */
    .mca-ldbuy__inner { gap: 12px; }
    .mca-ldbuy__inner .mca-btn { width: 100%; justify-content: center; }
}

/* La barra d'acquisto è un aiuto allo scroll: senza JS non deve comparire. */
@media (prefers-reduced-motion: reduce) {
    .mca-ldbuy { transition: none; }
    .mca-ldresults__open img { transition: none; }
    .mca-ldresults__open:hover img { transform: none; }
}

/* ── Cosa imparerai ──────────────────────────────────────────────────────────
   template-parts/learndash/course-learn.php. Schede a due colonne: la foto
   del lavoro sopra, il numero appoggiato sulla foto, titolo e due righe sotto.
   Senza foto il numero grande prende il suo posto, così una scheda senza
   immagine non sembra una scheda a cui manca qualcosa. */
.mca-ldlearn { margin-bottom: 64px; }

.mca-ldlearn__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.mca-ldlearn__item {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid var(--mca-line);
    border-radius: 18px;
    background: #fff;
}
.mca-ldlearn__item:not(.has-image) { background: var(--mca-cream); border-color: transparent; }

.mca-ldlearn__media { position: relative; aspect-ratio: 4 / 3; overflow: hidden; background: var(--mca-cream); }
.mca-ldlearn__media img { width: 100%; height: 100%; object-fit: cover; display: block; }

.mca-ldlearn__num {
    position: absolute;
    left: 14px;
    bottom: 14px;
    padding: 6px 12px;
    border-radius: 100px;
    background: rgba(14, 14, 14, .82);
    color: #fff;
    font-size: 12px;
    font-weight: 500;
    letter-spacing: .08em;
}
.mca-ldlearn__num--plain {
    position: static;
    align-self: flex-start;
    margin: 24px 24px 0;
    padding: 0;
    background: none;
    color: var(--mca-ink);
    font-size: 40px;
    line-height: 1;
    letter-spacing: 0;
}

.mca-ldlearn__body { padding: 18px 22px 22px; }
.mca-ldlearn__item:not(.has-image) .mca-ldlearn__body { padding-top: 14px; }
.mca-ldlearn__title { margin: 0; font-size: 18px; line-height: 1.25; font-weight: 500; color: var(--mca-ink); }
.mca-ldlearn__text { margin: 8px 0 0; font-size: 14.5px; line-height: 1.55; font-weight: 300; }

@media (max-width: 575.98px) {
    .mca-ldlearn { margin-bottom: 48px; }
    .mca-ldlearn__grid { grid-template-columns: 1fr; gap: 12px; }
}
