/* ══════════════════════════════════════════════════════════
   RESET TEMA — solo su single-mne_corso
   Nasconde hero/cover/titolo iniettati da qualsiasi tema
   (Neve, Astra, GeneratePress, ecc.) senza toccare il resto del sito.
   Usa .single-mne_corso che WordPress aggiunge sempre al <body>.
   ══════════════════════════════════════════════════════════ */

/* Neve Pro / Neve — post cover grigio */
.single-mne_corso .nv-post-cover,
.single-mne_corso .nv-post-cover + style { display: none !important; }

/* Neve — titolo di pagina in entry-header fuori dal nostro template */
.single-mne_corso .neve-main > article > .entry-header,
.single-mne_corso .neve-main > .container > article > .entry-header,
.single-mne_corso .nv-content-wrap > .entry-header { display: none !important; }

/* Astra — hero/banner titolo pagina */
.single-mne_corso .ast-breadcrumbs-wrapper:not(#mne-corso-single *),
.single-mne_corso .entry-header.ast-no-thumbnail:not(#mne-corso-single *),
.single-mne_corso .ast-post-single-meta:not(#mne-corso-single *) { display: none !important; }

/* GeneratePress — page hero */
.single-mne_corso .inside-page-hero:not(#mne-corso-single *) { display: none !important; }

/* OceanWP */
.single-mne_corso #top .page-header:not(#mne-corso-single *) { display: none !important; }

/* Kadence */
.single-mne_corso .entry-hero-container-inner:not(#mne-corso-single *) { display: none !important; }

/* Blocchi WordPress nativi (block theme) */
.single-mne_corso .wp-block-post-title:not(#mne-corso-single *),
.single-mne_corso .wp-block-post-featured-image:not(#mne-corso-single *) { display: none !important; }

/* Margine/padding extra che il tema mette sopra il main */
.single-mne_corso .neve-main,
.single-mne_corso main#content.neve-main { padding-top: 0 !important; margin-top: 0 !important; }


/* ============================================================
   Mnemosine Corsi — Frontend CSS v1.1
   Brand: Navy #0D1B2A | Gold #C9A84C | BG #F7F5F0
   ============================================================ */

:root {
  --mne-navy:      #0D1B2A;
  --mne-navy-800:  #1A3A52;
  --mne-navy-100:  #E8EDF2;
  --mne-gold:      #C9A84C;
  --mne-gold-dark: #A07830;
  --mne-gold-100:  #FBF4E3;
  --mne-bg:        #F7F5F0;
  --mne-white:     #FFFFFF;
  --mne-text:      #1a1a1a;
  --mne-text-muted:#555;
  --mne-border:    #e0ddd5;
  --mne-radius:    10px;
  --mne-shadow:    0 4px 24px rgba(13,27,42,.10);
  --mne-font-serif:'Georgia','Times New Roman',serif;
  --mne-font-sans: -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
}

/* ── Layout base ─────────────────────────────────────────── */
.mne-wrap { max-width:1160px; margin:0 auto; padding:0 24px; }

.mne-layout {
  display:grid;
  grid-template-columns:1fr 380px;
  gap:48px;
  padding-top:48px;
  padding-bottom:80px;
  align-items:start;
}
@media(max-width:900px){
  .mne-layout{grid-template-columns:1fr;}
  .mne-sidebar{order:-1;}
}

/* ══════════════════════════════════════════════════════════
   BANNER CODICE SCONTO — MASSIMA VISIBILITÀ
   Appare SOPRA tutto il resto, prima ancora dell'hero
   ══════════════════════════════════════════════════════════ */
.mne-codice-topbar {
  background: var(--mne-gold);
  padding: 12px 24px;
  text-align: center;
  position: sticky;
  top: 0;
  z-index: 999;
  box-shadow: 0 2px 12px rgba(201,168,76,.4);
}
.mne-codice-topbar-inner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  flex-wrap: wrap;
  max-width: 1160px;
  margin: 0 auto;
}
.mne-codice-topbar-label {
  font-size: 14px;
  font-weight: 600;
  color: var(--mne-navy);
}
.mne-codice-topbar-code {
  font-family: var(--mne-font-serif);
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--mne-navy);
  letter-spacing: .12em;
  background: rgba(255,255,255,.35);
  padding: 2px 16px;
  border-radius: 6px;
  border: 2px solid rgba(13,27,42,.2);
}
/* Pulsante Copia topbar — navy su sfondo oro, ben visibile */
.mne-codice-topbar-copy {
  background: var(--mne-navy) !important;
  color: #fff !important;
  border: none;
  cursor: pointer;
  font-size: 13px;
  font-weight: 700;
  padding: 7px 16px;
  border-radius: 6px;
  font-family: inherit;
  transition: opacity .2s;
  white-space: nowrap;
}
.mne-codice-topbar-copy:hover { opacity: .85; }
.mne-codice-topbar-copy.copied { background: #22c55e !important; }
.mne-codice-topbar-note {
  font-size: 12px;
  color: rgba(13,27,42,.7);
}

/* ── Hero ────────────────────────────────────────────────── */
.mne-hero {
  background: var(--mne-navy);
  position: relative;
  overflow: hidden;
  min-height: 380px;
  display: flex;
  align-items: flex-end;
}
.mne-hero.has-image { background-size:cover; background-position:center; }

.mne-hero__overlay {
  background: linear-gradient(to top, rgba(13,27,42,.92) 60%, rgba(13,27,42,.55));
  width: 100%;
  padding: 56px 0 48px;
}

.mne-breadcrumb { font-size:13px; color:rgba(255,255,255,.6); margin-bottom:14px; }
.mne-breadcrumb a { color:rgba(255,255,255,.7); text-decoration:none; }
.mne-breadcrumb a:hover { color:var(--mne-gold); }
.mne-breadcrumb span { margin:0 6px; }

.mne-badge-tipo {
  display:inline-block;
  background:var(--mne-gold);
  color:var(--mne-navy);
  font-size:11px; font-weight:700;
  letter-spacing:.06em; text-transform:uppercase;
  padding:4px 12px; border-radius:20px; margin-bottom:12px;
}

.mne-hero__title {
  font-family:var(--mne-font-serif);
  font-size:clamp(1.5rem,4vw,2.4rem);
  font-weight:700; color:var(--mne-white);
  margin:0 0 10px; line-height:1.2;
}
.mne-hero__excerpt {
  font-size: 1rem;
  color: rgba(255,255,255,.85) !important;
  margin: 0 auto 20px;
  max-width: 600px;
  text-align: center;
}
/* Tutto il contenuto dentro l'excerpt deve essere bianco */
.mne-archive-hero .mne-hero__excerpt,
.mne-archive-hero .mne-hero__excerpt p,
.mne-archive-hero .mne-hero__excerpt span,
.mne-archive-hero .mne-hero__excerpt li,
.mne-archive-hero .mne-hero__excerpt a {
  color: rgba(255,255,255,.85) !important;
}
/* Liste nella descrizione categoria (hero navy) */
.mne-archive-hero .mne-hero__excerpt ul,
.mne-archive-hero .mne-hero__excerpt ol {
  list-style: none;
  padding: 0;
  margin: 0 auto;
  display: inline-block;
  text-align: left;
}
.mne-archive-hero .mne-hero__excerpt li {
  padding: 3px 0 3px 18px;
  position: relative;
  font-size: .95rem;
}
.mne-archive-hero .mne-hero__excerpt li::before {
  content: '✓';
  position: absolute;
  left: 0;
  color: var(--mne-gold);
  font-size: .85rem;
}

.mne-facts { list-style:none; padding:0; margin:0; display:flex; flex-wrap:wrap; gap:18px; }
.mne-facts li { display:flex; align-items:center; gap:7px; color:rgba(255,255,255,.85); font-size:14px; }
.mne-facts li i { color:var(--mne-gold); font-size:15px; }
.mne-facts li strong { color:#fff; }

/* ── Contenuto ───────────────────────────────────────────── */
.mne-deadline-banner {
  padding: 12px 18px;
  border-radius: var(--mne-radius);
  font-weight: 700;
  font-size: 14px;
  margin-bottom: 28px;
  display: flex;
  align-items: center;
  gap: 8px;
}

/* "Ultimo giorno" più grande e con animazione */
.mne-alert-red.mne-deadline-banner {
  font-size: 15px;
  animation: mne-pulse-alert 2s ease-in-out infinite;
}
@keyframes mne-pulse-alert {
  0%, 100% { opacity: 1; }
  50%       { opacity: .75; }
}

.mne-section { margin-bottom:48px; padding-bottom:48px; border-bottom:1px solid var(--mne-border); }
.mne-section:last-child { border-bottom:none; margin-bottom:0; }

.mne-section h2 {
  font-family:var(--mne-font-serif);
  font-size:1.3rem; color:var(--mne-navy);
  margin:0 0 14px; padding-bottom:8px;
  border-bottom:2px solid var(--mne-gold); display:inline-block;
}

.mne-prose { color:var(--mne-text); line-height:1.75; font-size:15px; }
.mne-prose p { margin:0 0 14px; }
.mne-prose ul { padding-left:20px; }
.mne-prose li { margin-bottom:6px; }

.mne-classi-grid { display:flex; flex-wrap:wrap; gap:8px; }
.mne-classe-tag {
  display:inline-block; background:var(--mne-navy-100); color:var(--mne-navy);
  border:1px solid var(--mne-border); border-radius:6px; padding:5px 12px;
  font-size:13px; font-weight:600; text-decoration:none; transition:background .2s,color .2s;
}
.mne-classe-tag:hover { background:var(--mne-navy); color:var(--mne-white); }

/* FAQ */
.mne-faq-list { display:flex; flex-direction:column; gap:8px; }
.mne-faq-item { border:1px solid var(--mne-border); border-radius:var(--mne-radius); overflow:hidden; }
.mne-faq-domanda {
  cursor:pointer; padding:16px 20px; font-size:15px; font-weight:600; color:var(--mne-navy);
  background:var(--mne-white); list-style:none; display:flex; justify-content:space-between; align-items:center; gap:12px;
}
.mne-faq-domanda::-webkit-details-marker { display:none; }
.mne-faq-domanda::after { content:'+'; font-size:20px; color:var(--mne-gold); flex-shrink:0; }
details[open] .mne-faq-domanda::after { content:'−'; }
.mne-faq-domanda:hover { background:var(--mne-bg); }
.mne-faq-risposta { padding:0 20px 16px; background:var(--mne-bg); font-size:14px; color:var(--mne-text); line-height:1.7; }

/* ── CTA bottom ─────────────────────────────────────────── */
.mne-cta-bottom {
  background: var(--mne-navy) !important;
  border-radius: 16px !important;
  padding: 32px !important;
  border: none !important;
  text-align: center;
}
.mne-cta-bottom__label {
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: rgba(255,255,255,.6);
  margin: 0 0 8px;
}
.mne-cta-bottom__code {
  font-family: var(--mne-font-serif);
  font-size: 2.4rem;
  font-weight: 700;
  color: var(--mne-gold);
  letter-spacing: .12em;
  margin: 0 0 24px;
  line-height: 1;
}
.mne-cta-bottom .mne-btn-iscriviti {
  margin: 0 auto;
  max-width: 420px;
}

/* ══════════════════════════════════════════════════════════
   SIDEBAR CTA — CODICE MT30 AL CENTRO DI TUTTO
   ══════════════════════════════════════════════════════════ */
.mne-sidebar { position:sticky; top:80px; } /* 80px = altezza topbar */

.mne-cta-box {
  background:var(--mne-white);
  border:2px solid var(--mne-gold);
  border-radius:14px;
  box-shadow:0 8px 32px rgba(201,168,76,.2);
  overflow:hidden;
}

/* Codice sconto — HERO della sidebar */
.mne-codice-box {
  background: linear-gradient(135deg, var(--mne-navy) 0%, #1A3A52 100%);
  padding: 28px 24px 24px;
  text-align: center;
  position: relative;
  overflow: hidden;
}
.mne-codice-box::before {
  content: '';
  position: absolute;
  top: -30px; right: -30px;
  width: 120px; height: 120px;
  background: rgba(201,168,76,.08);
  border-radius: 50%;
}
.mne-codice-box::after {
  content: '';
  position: absolute;
  bottom: -20px; left: -20px;
  width: 80px; height: 80px;
  background: rgba(201,168,76,.06);
  border-radius: 50%;
}

.mne-codice-label {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .15em;
  text-transform: uppercase;
  color: rgba(255,255,255,.55);
  margin: 0 0 10px;
}

/* Il codice vero e proprio — massima prominenza */
.mne-codice-value {
  font-family: var(--mne-font-serif);
  font-size: clamp(1.4rem, 4vw, 3rem);
  font-weight: 700;
  color: var(--mne-gold);
  letter-spacing: .06em;
  line-height: 1.1;
  margin-bottom: 10px;
  text-shadow: 0 2px 20px rgba(201,168,76,.3);
  position: relative;
  z-index: 1;
  word-break: break-word;
  overflow-wrap: anywhere;
  hyphens: none;
}

.mne-codice-copy {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.2);
  color: rgba(255,255,255,.8);
  font-size: 11px;
  font-weight: 600;
  padding: 5px 12px;
  border-radius: 20px;
  cursor: pointer;
  transition: background .2s;
  position: relative;
  z-index: 1;
}
.mne-codice-copy:hover { background:rgba(255,255,255,.2); }
.mne-codice-copy.copied { background:rgba(201,168,76,.3); color:#fff; }

.mne-codice-sub {
  font-size: 11px;
  color: rgba(255,255,255,.45);
  margin: 8px 0 0;
  position: relative;
  z-index: 1;
}

/* Risparmio pill */
.mne-risparmio-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: var(--mne-gold);
  color: var(--mne-navy);
  font-size: 13px;
  font-weight: 700;
  padding: 6px 16px;
  border-radius: 0;
  width: 100%;
  justify-content: center;
}

/* Prezzi — WCAG AA compliant */
.mne-prezzi { padding: 16px 24px 0; }

/* Label "Prezzo di listino" */
.mne-prezzo-label {
  font-size: 14px;
  font-weight: 700;
  color: #3d3d3d;
  display: block;
  margin-bottom: 6px;
}

/* Prezzo barrato */
.mne-prezzo-barrato {
  font-size: 1.25rem;
  color: #3d3d3d;
  text-decoration: line-through;
  text-decoration-thickness: 2px;
  display: block;
  margin-bottom: 14px;
}

/* Prezzo finale */
.mne-prezzo-finale {
  font-size: 2.8rem;
  font-weight: 700;
  color: var(--mne-navy);
  font-family: var(--mne-font-serif);
  display: block;
  line-height: 1.1;
  margin-bottom: 6px;
}

/* Label "Con codice XXXXX" */
.mne-prezzo-con-codice {
  font-size: 14px;
  font-weight: 600;
  color: #3d3d3d;
  display: block;
  margin-bottom: 18px;
}

.mne-risparmio-badge { background:#d4edda; color:#155724; font-size:12px; font-weight:700; padding:4px 12px; border-radius:20px; display:inline-block; margin-top:6px; }

/* Bottoni */
.mne-btn-iscriviti {
  display:flex; align-items:center; justify-content:center; gap:8px;
  background:var(--mne-gold); color:var(--mne-navy);
  font-size:15px; font-weight:700;
  padding:18px 24px; border-radius:8px; text-decoration:none;
  margin:18px 24px 0;
  transition:background .2s,transform .15s;
  box-shadow:0 4px 16px rgba(201,168,76,.35);
}
.mne-btn-iscriviti:hover { background:var(--mne-gold-dark); transform:translateY(-2px); color:var(--mne-navy); }

.mne-cta-note {
  font-size:12px; color:var(--mne-text-muted); text-align:center;
  margin:10px 24px 0; line-height:1.5;
  padding:8px 12px; background:var(--mne-gold-100);
  border-radius:6px; border-left:3px solid var(--mne-gold);
}
.mne-cta-note strong { color:var(--mne-navy); font-size:13px; }

.mne-btn-whatsapp {
  display:flex; align-items:center; justify-content:center; gap:8px;
  background:#25D366; color:#fff;
  font-size:14px; font-weight:600;
  padding:13px 24px; border-radius:8px; text-decoration:none;
  margin:10px 24px 0; transition:background .2s;
}
.mne-btn-whatsapp:hover { background:#1ebe5d; color:#fff; }

.mne-btn-chiuso {
  text-align:center; background:#e9ecef; color:#6c757d;
  font-weight:600; padding:16px 24px; border-radius:8px;
  margin:20px 24px 0; font-size:14px;
}

.mne-btn-in-arrivo {
  display:block;
  text-align:center; background:#eaf3f8; color:#2e86ab;
  font-weight:600; padding:16px 24px; border-radius:8px;
  margin:20px 24px 0; font-size:14px;
  border:1px solid rgba(46,134,171,.25);
  text-decoration:none;
  transition:background .2s;
}
a.mne-btn-in-arrivo:hover { background:#d8ecf5; }

/* Sezione primo elemento — spazio extra in cima */
.mne-section--first { padding-top: 8px; }

/* Sedi esami — griglia 2 colonne */
.mne-sedi-grid {
  list-style: none; padding: 0; margin: 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6px 24px;
}
.mne-sedi-grid li {
  font-size: 14px; color: var(--mne-text);
  padding: 6px 0;
  border-bottom: 1px solid var(--mne-border);
  display: flex; align-items: center; gap: 8px;
}
.mne-sedi-grid li::before {
  content: '📍';
  font-size: 12px;
  flex-shrink: 0;
}
@media(max-width:500px) {
  .mne-sedi-grid { grid-template-columns: 1fr; }
}

/* Vantaggi sidebar — versione arricchita */
.mne-vantaggi-list {
  list-style: none; padding: 16px 20px 20px; margin: 10px 0 0;
  border-top: 1px solid var(--mne-border);
  display: flex; flex-direction: column; gap: 12px;
}
.mne-vantaggi-list li {
  display: flex; align-items: flex-start; gap: 12px;
  font-size: 13px; color: var(--mne-text);
}
.mne-vantaggi-list li div {
  display: flex; flex-direction: column; gap: 1px;
}
.mne-vantaggi-list li strong {
  color: var(--mne-navy); font-size: 13px; font-weight: 700; line-height: 1.3;
}
.mne-vantaggi-list li span {
  color: var(--mne-text-muted); font-size: 12px; line-height: 1.3;
}
.mne-check {
  width: 22px; height: 22px; background: var(--mne-gold); color: var(--mne-navy);
  border-radius: 50%; display: flex; align-items: center; justify-content: center;
  font-size: 11px; font-weight: 700; flex-shrink: 0; margin-top: 1px;
}


/* ══════════════════════════════════════════════════════════
   ARCHIVIO
   ══════════════════════════════════════════════════════════ */
.mne-archive-page { background:var(--mne-bg); }

.mne-archive-hero { background:var(--mne-navy); padding:56px 0 44px; text-align:center; }
.mne-archive-hero h1 { font-family:var(--mne-font-serif); color:var(--mne-white); font-size:clamp(1.8rem,4vw,2.8rem); margin:0 0 12px; }
.mne-archive-hero p { color:rgba(255,255,255,.75); font-size:1rem; margin:0 auto 28px; max-width:580px; }
.mne-archive-hero strong { color:var(--mne-gold); }

/* Filtri */
.mne-filters-grid { display:flex; flex-wrap:wrap; gap:10px; justify-content:center; }
.mne-filter-btn {
  padding: 10px 22px;
  background: var(--mne-gold);
  color: var(--mne-navy);
  border: none;
  border-radius: 8px;
  font-weight: 700;
  font-size: 14px;
  cursor: pointer;
  transition: background .2s;
  white-space: nowrap;
}
.mne-filter-btn:hover { background: var(--mne-gold-dark); }

/* Griglia */
.mne-archive-results { padding:44px 0; }
.mne-corsi-grid {
  display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:24px;
  /* Senza questo, le card della stessa riga vengono forzate (default
     "normal"=stretch) all'altezza della più alta — con contenuti di
     lunghezza molto diversa (es. piano di studi con nomi più lunghi su un
     corso) le card più corte restavano con un grande vuoto interno prima
     dei pulsanti in fondo. */
  align-items: start;
}

/* ══════════════════════════════════════════════════════════
   CARD CORSO — codice MT30 sempre visibile
   ══════════════════════════════════════════════════════════ */
.mne-corso-card {
  background:var(--mne-white); border:1px solid var(--mne-border);
  border-radius:14px; overflow:hidden; display:flex; flex-direction:column;
  transition:box-shadow .2s,transform .2s; position:relative;
}
.mne-corso-card:hover { box-shadow:var(--mne-shadow); transform:translateY(-3px); }
.mne-card-featured { border-color:var(--mne-gold); border-width:2px; }

.mne-card-featured-badge {
  position:absolute; top:12px; right:12px;
  background:var(--mne-gold); color:var(--mne-navy);
  font-size:11px; font-weight:700; padding:3px 10px; border-radius:20px;
  text-transform:uppercase; letter-spacing:.05em; z-index:1;
}

/* Striscia codice in cima alla card — sempre visibile */
.mne-card-codice-strip {
  background: var(--mne-navy);
  padding: 8px 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}
.mne-card-codice-strip-label {
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--mne-text-muted);
  display: block;
  margin-bottom: 2px;
}
.mne-card-codice-strip-value {
  font-family: var(--mne-font-serif);
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--mne-gold);
  letter-spacing: .1em;
}
.mne-card-codice-strip-save {
  font-size: 11px;
  font-weight: 700;
  background: var(--mne-gold);
  color: var(--mne-navy);
  padding: 2px 8px;
  border-radius: 10px;
}

/* ── Card base — usata dallo shortcode [mne_corsi] ────────── */
.mne-card {
  background: #fff;
  border: 1px solid var(--mne-border);
  border-radius: 12px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: box-shadow .2s, transform .2s;
}
.mne-card:hover {
  box-shadow: 0 8px 24px rgba(13,27,42,.12);
  transform: translateY(-2px);
}
.mne-card--expired { opacity: .65; }

/* "In offerta" — contorno colorato differente + badge */
.mne-card--offerta {
  border: 2px solid #ff6b35;
  box-shadow: 0 0 0 1px rgba(255,107,53,.15);
}
.mne-card-badge-offerta {
  display: inline-block;
  background: #ff6b35;
  color: #fff;
  border-radius: 4px;
  font-size: 11px;
  font-weight: 700;
  padding: 2px 8px;
  text-transform: uppercase;
  letter-spacing: .06em;
  margin-bottom: 9px;
  margin-right: 6px;
}

/* "In arrivo" — contorno colorato differente + badge */
.mne-card--arrivo {
  border: 2px solid #2e86ab;
  box-shadow: 0 0 0 1px rgba(46,134,171,.15);
}
.mne-card-badge-arrivo {
  display: inline-block;
  background: #2e86ab;
  color: #fff;
  border-radius: 4px;
  font-size: 11px;
  font-weight: 700;
  padding: 2px 8px;
  text-transform: uppercase;
  letter-spacing: .06em;
  margin-bottom: 9px;
  margin-right: 6px;
}

.mne-card-badge {
  display: inline-block;
  background: var(--mne-gold-100);
  color: var(--mne-gold-dark);
  border: 1px solid var(--mne-gold);
  border-radius: 4px;
  font-size: 11px;
  font-weight: 700;
  padding: 2px 8px;
  text-transform: uppercase;
  letter-spacing: .06em;
  margin-bottom: 9px;
}

.mne-card-meta {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 12px;
  color: var(--mne-text-muted);
  margin-bottom: 12px;
}
.mne-card-sconto {
  background: #d4edda;
  color: #155724;
  font-size: 11px;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: 12px;
}

.mne-card-alert {
  font-size: 13px;
  font-weight: 700;
  padding: 8px 12px;
  border-radius: 6px;
  margin-bottom: 10px;
  display: flex;
  align-items: center;
  gap: 6px;
}

.mne-card-actions {
  display: flex;
  gap: 8px;
  margin-top: auto;
  padding-top: 14px;
  flex-wrap: wrap;
}
.mne-card-btn-detail {
  flex: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #f4f4f4;
  color: var(--mne-navy);
  border: 1px solid var(--mne-border);
  font-size: 13px;
  font-weight: 600;
  padding: 9px 14px;
  border-radius: 7px;
  text-decoration: none;
  transition: background .15s;
  white-space: nowrap;
}
.mne-card-btn-detail:hover { background: #e8e8e8; }

.mne-card-btn-iscriviti {
  flex: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--mne-gold);
  color: var(--mne-navy);
  font-size: 13px;
  font-weight: 700;
  padding: 9px 14px;
  border-radius: 7px;
  text-decoration: none;
  transition: background .2s;
  white-space: nowrap;
  border: none;
  cursor: pointer;
}
.mne-card-btn-iscriviti:hover { background: var(--mne-gold-dark); }

.mne-card-btn-chiuso {
  flex: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #e0e0e0;
  color: #888;
  font-size: 13px;
  font-weight: 600;
  padding: 9px 14px;
  border-radius: 7px;
}

.mne-card-codice-strip {
  display: flex;
  align-items: center;
  gap: 8px;
  background: rgba(201,168,76,.1);
  border: 1px solid rgba(201,168,76,.25);
  border-radius: 6px;
  padding: 6px 10px;
  margin-bottom: 12px;
  font-size: 12px;
  color: var(--mne-text-muted);
  flex-wrap: wrap;
}
.mne-card-codice-strip strong {
  color: var(--mne-navy);
  font-size: 13px;
  letter-spacing: .06em;
  font-family: var(--mne-font-serif);
}
.mne-card-codice-strip em {
  margin-left: auto;
  font-style: normal;
  font-size: 11px;
  color: #22c55e;
  font-weight: 700;
}

.mne-thumb { display:block; height:170px; overflow:hidden; }
.mne-card-thumb { display:block; height:170px; overflow:hidden; }
.mne-card-thumb img { width:100%; height:100%; object-fit:cover; transition:transform .3s; }
.mne-card:hover .mne-card-thumb img { transform:scale(1.04); }



.mne-card-body { padding:18px; display:flex; flex-direction:column; flex:1; }

.mne-card-tipo {
  display: inline-block;
  background: rgba(201,168,76,.08);
  color: var(--mne-text-muted);
  border: 1px solid rgba(201,168,76,.3);
  border-radius: 4px;
  font-size: 10px;
  font-weight: 600;
  padding: 2px 7px;
  text-transform: uppercase;
  letter-spacing: .07em;
  margin-bottom: 8px;
}

.mne-card-title {
  font-family: var(--mne-font-serif);
  font-size: 1.1rem;
  font-weight: 700;
  margin: 0 0 10px;
  line-height: 1.35;
}
/* Override Neve accent color sui link — WCAG: navy #0D1B2A su beige = 15:1 */
html body .mne-card-title a,
html body .mne-card-title a:link,
html body .mne-card-title a:visited {
  /* Massima specificità per battere Neve accent color — WCAG navy su beige ~15:1 */
  color: var(--mne-navy) !important;
  text-decoration: none;
}
html body .mne-card-title a:hover,
html body .mne-card-title a:focus {
  color: var(--mne-gold-dark) !important;
  text-decoration: underline;
}
.mne-card-excerpt { font-size:13px; color:var(--mne-text-muted); margin:0 0 12px; line-height:1.5; }

.mne-card-facts { display:flex; flex-wrap:wrap; gap:10px; font-size:12px; color:var(--mne-text-muted); margin-bottom:14px; }
.mne-card-facts span { display:flex; align-items:center; gap:5px; }
.mne-card-facts i { color:var(--mne-gold); font-size:13px; }

.mne-card-footer {
  margin-top:auto; padding-top:14px; border-top:1px solid var(--mne-border);
  display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap;
}
.mne-card-prezzo { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.mne-card-prezzo-val { font-size:1.25rem; font-weight:700; color:var(--mne-navy); }
.mne-card-prezzo-orig { font-size:.85rem; color:var(--mne-text-muted); text-decoration:line-through; }
.mne-card-risparmio { background:#d4edda; color:#155724; font-size:11px; font-weight:700; padding:2px 8px; border-radius:12px; }

.mne-card-btn {
  display:inline-block; background:var(--mne-navy); color:var(--mne-white);
  font-size:13px; font-weight:600; padding:9px 16px; border-radius:7px;
  text-decoration:none; white-space:nowrap; transition:background .2s;
}
.mne-card-btn:hover { background:var(--mne-navy-800); color:var(--mne-white); }

/* CTA archivio */
.mne-archive-cta { background:var(--mne-navy); padding:44px 0; }
.mne-archive-cta-box { display:flex; align-items:center; justify-content:space-between; gap:32px; flex-wrap:wrap; }
.mne-archive-cta h3 { font-family:var(--mne-font-serif); color:var(--mne-white); font-size:1.4rem; margin:0 0 8px; }
.mne-archive-cta p { color:rgba(255,255,255,.7); font-size:14px; margin:0; }

/* Paginazione */
.mne-pagination { margin-top:36px; text-align:center; }
.mne-pagination .page-numbers {
  display:inline-flex; align-items:center; justify-content:center;
  min-width:36px; height:36px; padding:0 10px; margin:0 3px;
  border-radius:6px; text-decoration:none; font-size:14px;
  color:var(--mne-navy); border:1px solid var(--mne-border); background:var(--mne-white);
}
.mne-pagination .current { background:var(--mne-navy); color:var(--mne-white); border-color:var(--mne-navy); }
.mne-no-results { text-align:center; padding:48px 0; color:var(--mne-text-muted); }

/* ══════════════════════════════════════════════════════════
   MODAL ISTRUZIONI ISCRIZIONE — multi-step, mobile-first
   ══════════════════════════════════════════════════════════ */

/* Overlay */
#mne-modal-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(13,27,42,.75);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  z-index: 99990;
  align-items: flex-end;   /* mobile: sale dal basso */
  justify-content: center;
  padding: 0;
}
#mne-modal-overlay.mne-modal-open {
  display: flex;
  animation: mne-overlay-in .25s ease;
}
@keyframes mne-overlay-in { from { opacity:0; } to { opacity:1; } }

/* Contenitore modale */
#mne-modal {
  background: #fff;
  width: 100%;
  max-width: 520px;
  border-radius: 20px 20px 0 0;
  max-height: 92dvh;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  animation: mne-modal-up .3s cubic-bezier(.22,1,.36,1);
  position: relative;
  padding-bottom: env(safe-area-inset-bottom, 16px);
}
@media (min-width: 560px) {
  #mne-modal-overlay { align-items: center; padding: 16px; }
  #mne-modal { border-radius: 20px; max-height: 88vh; }
}
@keyframes mne-modal-up {
  from { transform: translateY(60px); opacity: 0; }
  to   { transform: translateY(0);    opacity: 1; }
}

/* Handle drag (mobile look) */
#mne-modal-handle {
  width: 40px; height: 4px;
  background: #ddd; border-radius: 2px;
  margin: 12px auto 0;
}

/* Header modale */
#mne-modal-header {
  display: flex; align-items: center; justify-content: space-between;
  padding: 16px 20px 12px;
  border-bottom: 1px solid #f0f0f0;
  position: sticky; top: 0; background: #fff; z-index: 2;
}
#mne-modal-header h3 {
  margin: 0; font-size: 1rem; font-weight: 700;
  color: var(--mne-navy); font-family: var(--mne-font-serif);
}
#mne-modal-close {
  background: #f4f4f4; border: none; cursor: pointer;
  width: 32px; height: 32px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 18px; color: #666; transition: background .15s;
  flex-shrink: 0;
}
#mne-modal-close:hover { background: #e8e8e8; }

/* Progress steps */
#mne-modal-progress {
  display: flex; align-items: center; justify-content: center;
  gap: 8px; padding: 14px 20px 10px;
}
.mne-step-dot {
  width: 28px; height: 28px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 12px; font-weight: 700;
  background: #f0f0f0; color: #999;
  transition: all .3s;
}
.mne-step-dot.active {
  background: var(--mne-navy); color: #fff;
  box-shadow: 0 0 0 4px rgba(13,27,42,.12);
}
.mne-step-dot.done {
  background: #22c55e; color: #fff;
}
.mne-step-line {
  flex: 1; max-width: 36px; height: 2px;
  background: #e8e8e8; border-radius: 1px;
  transition: background .3s;
}
.mne-step-line.done { background: #22c55e; }

/* Corpo modale — steps */
#mne-modal-body { padding: 0; }

.mne-modal-step { display: none; padding: 20px 20px 0; }
.mne-modal-step.active { display: block; }

/* STEP 1 — Codice */
.mne-modal-step-title {
  font-size: .8rem; font-weight: 700; text-transform: uppercase;
  letter-spacing: .08em; color: var(--mne-text-muted); margin: 0 0 4px;
}
.mne-modal-step-heading {
  font-family: var(--mne-font-serif); font-size: 1.35rem; font-weight: 700;
  color: var(--mne-navy); margin: 0 0 16px; line-height: 1.25;
}

.mne-modal-codice-box {
  background: var(--mne-navy);
  border-radius: 14px;
  padding: 22px;
  text-align: center;
  margin-bottom: 16px;
}
.mne-modal-codice-label {
  font-size: 12px; color: rgba(255,255,255,.6);
  font-weight: 600; text-transform: uppercase; letter-spacing: .08em;
  margin: 0 0 6px;
}
.mne-modal-codice-value {
  font-family: var(--mne-font-serif);
  font-size: clamp(1.6rem, 5vw, 2.6rem);
  font-weight: 700;
  color: var(--mne-gold);
  letter-spacing: .06em;
  margin: 0 0 16px;
  line-height: 1.15;
  word-break: break-word;
  overflow-wrap: anywhere;
}
.mne-modal-copy-btn {
  background: var(--mne-gold);
  color: var(--mne-navy);
  border: none; cursor: pointer;
  font-size: 15px; font-weight: 700;
  padding: 12px 28px;
  border-radius: 50px;
  display: inline-flex; align-items: center; gap: 8px;
  transition: all .2s;
  font-family: inherit;
}
.mne-modal-copy-btn:hover { background: var(--mne-gold-dark); }
.mne-modal-copy-btn.copied {
  background: #22c55e; color: #fff;
  animation: mne-pulse .4s ease;
}
@keyframes mne-pulse {
  0%   { transform: scale(1); }
  50%  { transform: scale(1.07); }
  100% { transform: scale(1); }
}
.mne-modal-codice-note {
  font-size: 12px; color: rgba(255,255,255,.55);
  margin: 12px 0 0; line-height: 1.4;
}

.mne-modal-warning-box {
  background: #fff8e1; border: 1px solid #f6c90e;
  border-radius: 10px; padding: 12px 14px;
  font-size: 13px; color: #7a5c00; line-height: 1.5;
  margin-bottom: 0;
}
.mne-modal-warning-box strong { color: var(--mne-navy); }

/* STEP 2 — Istruzioni visive */
.mne-visual-guide {
  background: #f8f9fc;
  border: 1.5px solid #e5e8f0;
  border-radius: 14px;
  padding: 0;
  overflow: hidden;
  margin-bottom: 16px;
}
.mne-visual-guide-header {
  background: var(--mne-navy);
  padding: 10px 16px;
  display: flex; align-items: center; gap: 8px;
}
.mne-visual-guide-header span {
  font-size: 12px; color: rgba(255,255,255,.7); font-weight: 600;
}
/* Finta barra browser */
.mne-fake-browser-dots { display: flex; gap: 5px; }
.mne-fake-browser-dots i {
  width: 10px; height: 10px; border-radius: 50%;
  display: inline-block;
}
.mne-visual-guide-body { padding: 16px; }

/* Simulazione campo modulo */
.mne-form-sim {
  background: #fff; border: 1.5px solid #d0d5dd;
  border-radius: 8px; padding: 10px 14px;
  position: relative; margin-bottom: 12px;
}
.mne-form-sim-label {
  font-size: 11px; color: #888; font-weight: 600;
  text-transform: uppercase; letter-spacing: .06em; display: block; margin-bottom: 5px;
}
.mne-form-sim-input {
  font-size: 15px; color: #333; display: block;
  width: 100%; border: none; outline: none;
  font-family: monospace; letter-spacing: .1em;
  background: transparent;
}
.mne-form-sim.highlighted {
  border-color: var(--mne-gold);
  box-shadow: 0 0 0 3px rgba(201,168,76,.2);
  animation: mne-field-glow 1.5s ease infinite alternate;
}
@keyframes mne-field-glow {
  from { box-shadow: 0 0 0 3px rgba(201,168,76,.15); }
  to   { box-shadow: 0 0 0 6px rgba(201,168,76,.35); }
}
.mne-form-sim-arrow {
  position: absolute; right: -42px; top: 50%;
  transform: translateY(-50%);
  font-size: 22px; animation: mne-arrow-bounce .8s ease infinite alternate;
}
@keyframes mne-arrow-bounce {
  from { transform: translateY(-50%) translateX(0); }
  to   { transform: translateY(-50%) translateX(-5px); }
}

/* Steps numerati */
.mne-steps-list {
  list-style: none; margin: 0; padding: 0;
  display: flex; flex-direction: column; gap: 10px;
}
.mne-steps-list li {
  display: flex; align-items: flex-start; gap: 12px;
  font-size: 14px; line-height: 1.4; color: #333;
}
.mne-step-num {
  width: 24px; height: 24px; border-radius: 50%;
  background: var(--mne-navy); color: #fff;
  font-size: 12px; font-weight: 700;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0; margin-top: 1px;
}
.mne-step-code-inline {
  display: inline-block;
  background: var(--mne-navy); color: var(--mne-gold);
  font-family: monospace; font-size: .85em; font-weight: 700;
  padding: 1px 7px; border-radius: 4px; letter-spacing: .08em;
}

/* STEP 3 — Sei pronto */
.mne-ready-icon {
  font-size: 3rem; text-align: center; margin-bottom: 12px;
}
.mne-vantaggi-modal {
  background: #f8f9fc; border-radius: 12px;
  padding: 16px; margin-bottom: 16px;
}
.mne-vantaggi-modal h4 {
  font-size: 13px; font-weight: 700; color: var(--mne-navy);
  margin: 0 0 10px; text-transform: uppercase; letter-spacing: .06em;
}
.mne-vantaggi-modal ul {
  list-style: none; margin: 0; padding: 0;
  display: flex; flex-direction: column; gap: 7px;
}
.mne-vantaggi-modal li {
  font-size: 13px; color: #333;
  display: flex; align-items: center; gap: 8px;
}
.mne-vantaggi-modal li::before {
  content: '✓'; width: 20px; height: 20px;
  background: #22c55e; color: #fff; border-radius: 50%;
  font-size: 11px; font-weight: 700;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}

.mne-modal-btn-iscriviti {
  display: flex; align-items: center; justify-content: center; gap: 10px;
  background: var(--mne-navy); color: #fff;
  font-size: 16px; font-weight: 700; font-family: inherit;
  padding: 16px 24px; border-radius: 12px;
  text-decoration: none; width: 100%; box-sizing: border-box;
  transition: background .2s; border: none; cursor: pointer;
  margin-bottom: 10px;
}
.mne-modal-btn-iscriviti:hover { background: var(--mne-navy-800); color: #fff; }
.mne-modal-btn-iscriviti svg { flex-shrink: 0; }

.mne-modal-step-note {
  font-size: 12px; color: var(--mne-text-muted);
  text-align: center; line-height: 1.4;
}

/* Footer navigazione modale */
#mne-modal-footer {
  padding: 16px 20px 20px;
  display: flex; gap: 10px;
  position: sticky; bottom: 0;
  background: #fff;
  border-top: 1px solid #f0f0f0;
}
.mne-modal-btn-back {
  flex: 0 0 auto;
  background: #f4f4f4; color: #555; border: none;
  font-size: 14px; font-weight: 600; font-family: inherit;
  padding: 12px 18px; border-radius: 10px; cursor: pointer;
  transition: background .15s;
}
.mne-modal-btn-back:hover { background: #e8e8e8; }
.mne-modal-btn-back[disabled],
.mne-modal-btn-back:disabled { opacity: 0; pointer-events: none; }
.mne-modal-btn-next {
  flex: 1;
  background: var(--mne-gold); color: var(--mne-navy); border: none;
  font-size: 15px; font-weight: 700; font-family: inherit;
  padding: 13px 24px; border-radius: 10px; cursor: pointer;
  transition: background .2s;
}
.mne-modal-btn-next:hover { background: var(--mne-gold-dark); }
/* Nasconde il footer al terzo step (CTA interna) */
#mne-modal-footer.mne-footer-hidden { display: none; }

/* ══════════════════════════════════════════════════════════
   DARK MODE — fix colori su prefers-color-scheme: dark
   Neve attiva il dark tramite questa media query standard.
   Sovrascriviamo solo le variabili e le regole che servono
   all'interno del nostro #mne-corso-single.
   ══════════════════════════════════════════════════════════ */


/* ══════════════════════════════════════════════════════════
   DARK MODE — Neve Pro cambia --nv-site-bg e --nv-text-color
   a runtime via JS senza aggiungere classi al body.
   Usiamo @media (prefers-color-scheme: dark) come fallback
   MA soprattutto ancorassimo le variabili Neve dove servono.
   ══════════════════════════════════════════════════════════ */

/* Neve espone --nv-site-bg (scuro in dark) e --nv-text-color (chiaro in dark).
   Usiamo color-mix o fallback per adattarci. Il trucco è usare
   @container style() — non ancora supportato ovunque.
   Soluzione robusta: JS che aggiunge classe al body al cambio tema. */

/* Classe .mne-dark aggiunta dal nostro JS quando Neve è in dark mode */
body.mne-dark #mne-corso-single .mne-section h2,
body.mne-dark #mne-corso-single .mne-section h3 {
  color: #fff;
}
body.mne-dark #mne-corso-single .mne-prose,
body.mne-dark #mne-corso-single .mne-prose p,
body.mne-dark #mne-corso-single .mne-prose li {
  color: rgba(255,255,255,.85);
}
body.mne-dark #mne-corso-single .mne-faq-domanda {
  background: rgba(255,255,255,.06);
  color: #fff;
}
body.mne-dark #mne-corso-single .mne-faq-risposta {
  background: rgba(255,255,255,.04);
  color: rgba(255,255,255,.8);
}
body.mne-dark #mne-corso-single .mne-faq-item {
  border-color: rgba(255,255,255,.12);
}
body.mne-dark #mne-corso-single .mne-section {
  border-bottom-color: rgba(255,255,255,.1);
}
body.mne-dark #mne-corso-single .mne-sedi-grid li {
  color: rgba(255,255,255,.85);
  border-bottom-color: rgba(255,255,255,.1);
}
body.mne-dark #mne-corso-single .mne-classe-tag {
  background: rgba(255,255,255,.08);
  color: rgba(255,255,255,.85);
  border-color: rgba(255,255,255,.15);
}
body.mne-dark #mne-corso-single .mne-cta-box {
  background: #1a2535;
  border-color: var(--mne-gold);
  box-shadow: 0 8px 32px rgba(0,0,0,.4);
}
body.mne-dark #mne-corso-single .mne-prezzo-finale {
  color: #fff;
}
body.mne-dark #mne-corso-single .mne-prezzo-label,
body.mne-dark #mne-corso-single .mne-prezzo-con-codice,
body.mne-dark #mne-corso-single .mne-prezzo-barrato {
  color: rgba(255,255,255,.75);
}
body.mne-dark .mne-nota-codice-extra {
  color: rgba(255,255,255,.8);
  background: rgba(201,168,76,.12);
}
body.mne-dark #mne-corso-single .mne-cta-note {
  background: rgba(201,168,76,.12);
  border-left-color: var(--mne-gold);
  color: rgba(255,255,255,.75);
}
body.mne-dark #mne-corso-single .mne-cta-note strong {
  color: var(--mne-gold);
}
body.mne-dark #mne-corso-single .mne-vantaggi-list li strong {
  color: #fff;
}
body.mne-dark #mne-corso-single .mne-vantaggi-list li span {
  color: rgba(255,255,255,.6);
}
body.mne-dark #mne-corso-single .mne-vantaggi-list {
  border-top-color: rgba(255,255,255,.1);
}

/* ══════════════════════════════════════════════════════════
   SHORTCODE [mne_corsi] — varianti colonne e wrapper
   ══════════════════════════════════════════════════════════ */
.mne-shortcode-wrap { margin: 0 0 40px; }

.mne-sc-titolo {
  font-family: var(--mne-font-serif);
  font-size: 1.8rem;
  font-weight: 700;
  color: var(--mne-navy);
  margin: 0 0 28px;
  text-align: center;
}

/* Colonne shortcode — sovrascrivono il default 3 dell'archivio */
.mne-sc-cols-2 { grid-template-columns: repeat(2, 1fr) !important; }
.mne-sc-cols-3 { grid-template-columns: repeat(3, 1fr) !important; }
.mne-sc-cols-4 { grid-template-columns: repeat(4, 1fr) !important; }

@media (max-width: 900px) {
  .mne-sc-cols-3,
  .mne-sc-cols-4 { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 560px) {
  .mne-sc-cols-2,
  .mne-sc-cols-3,
  .mne-sc-cols-4 { grid-template-columns: 1fr !important; }
}

.mne-shortcode-empty {
  text-align: center; color: var(--mne-text-muted);
  padding: 32px; font-style: italic;
}

/* Filtri shortcode inline */
.mne-sc-filters { margin-bottom: 24px; }

/* ── Dark mode card shortcode ─────────────────────────────── */
body.mne-dark .mne-card {
  background: #1a2535;
  border-color: rgba(255,255,255,.1);
}
html[data-neve-theme="dark"] body .mne-card-title a,
html[data-neve-theme="dark"] body .mne-card-title a:link,
html[data-neve-theme="dark"] body .mne-card-title a:visited,
html body.mne-dark .mne-card-title a,
html body.mne-dark .mne-card-title a:link,
html body.mne-dark .mne-card-title a:visited {
  /* dark WCAG: bianco su navy ~17:1 */
  color: #fff !important;
}
html[data-neve-theme="dark"] body .mne-card-title a:hover,
html body.mne-dark .mne-card-title a:hover { color: var(--mne-gold) !important; }
body.mne-dark .mne-card-excerpt { color: rgba(255,255,255,.7); }
body.mne-dark .mne-card-meta { color: rgba(255,255,255,.6); }
body.mne-dark .mne-card-body { background: transparent; }
body.mne-dark .mne-card-codice-strip {
  background: rgba(201,168,76,.12);
  border-color: rgba(201,168,76,.3);
  color: rgba(255,255,255,.8);
}
body.mne-dark .mne-card-codice-strip strong { color: var(--mne-gold); }
body.mne-dark .mne-card-btn-detail {
  background: rgba(255,255,255,.08);
  color: #fff;
  border-color: rgba(255,255,255,.15);
}
body.mne-dark .mne-card-btn-detail:hover {
  background: rgba(255,255,255,.15);
}
body.mne-dark .mne-sc-titolo { color: #fff; }
body.mne-dark .mne-shortcode-empty { color: rgba(255,255,255,.5); }

/* Link vantaggio sidebar */
.mne-vantaggio-link {
  color: var(--mne-gold);
  font-size: 12px;
  text-decoration: underline;
  text-underline-offset: 2px;
  line-height: 1.3;
}
.mne-vantaggio-link:hover { color: var(--mne-gold-dark); }
body.mne-dark .mne-vantaggio-link { color: var(--mne-gold); }

/* ══════════════════════════════════════════════════════════
   PIANO DI STUDI — tabella scheda corso
   ══════════════════════════════════════════════════════════ */
.mne-piano-table-wrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  margin-top: 8px;
  border-radius: 8px;
  border: 1px solid var(--mne-border);
}
.mne-piano-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 14px;
  margin-top: 0;
  min-width: 0;  /* rimossa — gestito con layout stacked su mobile */
}
.mne-piano-table thead tr {
  border-bottom: 2px solid var(--mne-navy);
}
.mne-piano-table th {
  text-align: left;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--mne-navy);
  padding: 10px 14px;
  background: rgba(13,27,42,.04);
}
.mne-piano-table th:last-child { text-align: center; }
.mne-piano-table td {
  padding: 10px 14px;
  border-bottom: 1px solid var(--mne-border);
  color: var(--mne-text);
  line-height: 1.4;
}
.mne-piano-table tbody tr:last-child td { border-bottom: none; }
.mne-piano-table tbody tr:nth-child(even) td {
  background: rgba(13,27,42,.02);
}
.mne-piano-table tbody tr:hover td {
  background: rgba(201,168,76,.06);
}
.mne-piano-ssd {
  font-family: monospace;
  font-size: 12px;
  color: var(--mne-text-muted);
  white-space: nowrap;
  width: 1%;           /* colonna stretta come il suo contenuto */
  padding: 10px 12px;
}
/* Il badge pill è su uno span interno nel template */
.mne-piano-ssd span, td.mne-piano-ssd {
  background: rgba(13,27,42,.05);
  border-radius: 4px;
}
.mne-piano-cfu {
  font-weight: 700;
  color: var(--mne-navy);
  text-align: center;
  white-space: nowrap;
  font-size: 15px;
}
.mne-piano-table tfoot td {
  border-top: 2px solid var(--mne-navy);
  border-bottom: none;
  background: rgba(13,27,42,.04);
  padding: 12px 14px;
}

/* Dark mode piano di studi */
body.mne-dark .mne-piano-table-wrap { border-color: rgba(255,255,255,.1); }
body.mne-dark .mne-piano-table th { color: var(--mne-gold); background: rgba(255,255,255,.04); }
body.mne-dark .mne-piano-table td { color: rgba(255,255,255,.85); border-bottom-color: rgba(255,255,255,.08); }
body.mne-dark .mne-piano-table tbody tr:nth-child(even) td { background: rgba(255,255,255,.04); }
body.mne-dark .mne-piano-table thead tr { border-bottom-color: var(--mne-gold); }
body.mne-dark .mne-piano-table tfoot td { border-top-color: var(--mne-gold); background: rgba(255,255,255,.05); }
body.mne-dark .mne-piano-ssd { color: rgba(255,255,255,.5); background: rgba(255,255,255,.08); }
body.mne-dark .mne-piano-cfu { color: #fff; }

/* ── Piano di studi — versione compatta nella card ──────── */
.mne-card-piano {
  margin-bottom: 12px;
  background: rgba(13,27,42,.03);
  border: 1px solid var(--mne-border);
  border-radius: 8px;
  overflow: hidden;
}
.mne-card-piano-title {
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--mne-navy);
  background: rgba(13,27,42,.06);
  padding: 5px 10px;
  margin: 0;
  border-bottom: 1px solid var(--mne-border);
}
.mne-card-piano-list {
  list-style: none;
  margin: 0;
  padding: 4px 0;
}
.mne-card-piano-list li {
  display: flex;
  align-items: baseline;
  gap: 6px;
  padding: 5px 10px;
  font-size: 12px;
  border-bottom: 1px solid rgba(13,27,42,.05);
  flex-wrap: wrap;
}
.mne-card-piano-list li:last-child { border-bottom: none; }
.mne-card-piano-mod {
  flex: 1 1 120px;  /* cresce, può shrinkare fino a 120px poi va a capo */
  color: var(--mne-text);
  line-height: 1.3;
  min-width: 0;
  word-break: break-word;
}
.mne-card-piano-ssd {
  font-family: monospace;
  font-size: 11px;
  color: var(--mne-text-muted);
  white-space: nowrap;
  flex-shrink: 0;
}
.mne-card-piano-cfu {
  font-size: 11px;
  font-weight: 700;
  color: var(--mne-navy);
  white-space: nowrap;
}
.mne-card-piano-more {
  font-size: 11px;
  color: var(--mne-gold-dark);
  font-style: italic;
  justify-content: center;
}

/* Dark mode card piano */
body.mne-dark .mne-card-piano { background: rgba(255,255,255,.04); border-color: rgba(255,255,255,.1); }
body.mne-dark .mne-card-piano-title { color: var(--mne-gold); background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.1); }
body.mne-dark .mne-card-piano-mod { color: rgba(255,255,255,.85); }
body.mne-dark .mne-card-piano-ssd { color: rgba(255,255,255,.45); }
body.mne-dark .mne-card-piano-cfu { color: #fff; }

/* ── Nota codice extra (sidebar + card) ─────────────────── */
.mne-nota-codice-extra {
  font-size: 13px;
  color: #3d3d3d;           /* contrasto 10:1 su bianco */
  font-weight: 500;
  line-height: 1.55;
  margin: 0 0 0;
  padding: 12px 16px;
  background: rgba(201,168,76,.1);
  border-left: 3px solid var(--mne-gold);
  border-radius: 0 6px 6px 0;
}
.mne-card-nota-codice {
  font-size: 12px;
  color: var(--mne-text-muted);
  line-height: 1.5;
  margin-top: 8px;
  padding: 8px 10px;
  background: rgba(201,168,76,.08);
  border-left: 3px solid var(--mne-gold);
  border-radius: 0 4px 4px 0;
}
body.mne-dark .mne-nota-codice-extra,
body.mne-dark .mne-card-nota-codice {
  color: rgba(255,255,255,.65);
  background: rgba(201,168,76,.1);
}

/* ── Strip codice card aggiornata ───────────────────────── */
.mne-card-codice-value {
  font-family: var(--mne-font-serif);
  font-size: 15px;
  letter-spacing: .08em;
  color: var(--mne-navy);
}
body.mne-dark .mne-card-codice-value { color: var(--mne-gold); }

/* ── Modal inline dalla home ────────────────────────────── */
#mne-inline-modal-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(13,27,42,.75);
  backdrop-filter: blur(4px);
  z-index: 99995;
  align-items: flex-end;
  justify-content: center;
}
#mne-inline-modal-overlay.open { display: flex; animation: mne-overlay-in .25s ease; }
@media(min-width:560px) {
  #mne-inline-modal-overlay { align-items: center; padding: 16px; }
}
#mne-inline-modal {
  background: #fff;
  width: 100%;
  max-width: 480px;
  border-radius: 20px 20px 0 0;
  max-height: 90dvh;
  overflow-y: auto;
  animation: mne-modal-up .3s cubic-bezier(.22,1,.36,1);
  padding-bottom: env(safe-area-inset-bottom, 16px);
}
@media(min-width:560px) { #mne-inline-modal { border-radius: 20px; } }

#mne-inline-modal .mne-imodal-handle {
  width: 40px; height: 4px; background: #ddd; border-radius: 2px; margin: 12px auto 0;
}
#mne-inline-modal .mne-imodal-header {
  display: flex; align-items: center; justify-content: space-between;
  padding: 14px 20px 10px; border-bottom: 1px solid #f0f0f0;
  position: sticky; top: 0; background: #fff; z-index: 2;
}
#mne-inline-modal .mne-imodal-header h3 { margin:0; font-size:.95rem; font-weight:700; color:var(--mne-navy); }
#mne-inline-modal .mne-imodal-close {
  background:#f4f4f4; border:none; cursor:pointer; width:32px; height:32px;
  border-radius:50%; font-size:18px; color:#666; display:flex; align-items:center; justify-content:center;
}
#mne-inline-modal .mne-imodal-body { padding: 20px; }
#mne-inline-modal .mne-imodal-codice-box {
  background: var(--mne-navy); border-radius: 12px; padding: 20px; text-align: center; margin-bottom: 16px;
}
#mne-inline-modal .mne-imodal-code-label { font-size:11px; color:rgba(255,255,255,.6); font-weight:700; text-transform:uppercase; letter-spacing:.08em; margin:0 0 6px; }
#mne-inline-modal .mne-imodal-code-val { font-family:var(--mne-font-serif); font-size:2.2rem; font-weight:700; color:var(--mne-gold); letter-spacing:.12em; margin:0 0 14px; line-height:1; }
#mne-inline-modal .mne-imodal-copy {
  background:var(--mne-gold); color:var(--mne-navy); border:none; cursor:pointer;
  font-size:14px; font-weight:700; padding:10px 22px; border-radius:50px; font-family:inherit;
}
#mne-inline-modal .mne-imodal-steps { list-style:none; margin:0 0 16px; padding:0; display:flex; flex-direction:column; gap:10px; }
#mne-inline-modal .mne-imodal-steps li { display:flex; align-items:flex-start; gap:10px; font-size:13px; line-height:1.4; }
#mne-inline-modal .mne-imodal-step-num { width:22px; height:22px; border-radius:50%; background:var(--mne-navy); color:#fff; font-size:11px; font-weight:700; display:flex; align-items:center; justify-content:center; flex-shrink:0; margin-top:1px; }
#mne-inline-modal .mne-imodal-cta {
  display:flex; align-items:center; justify-content:center; gap:8px;
  background:var(--mne-navy); color:#fff; font-size:15px; font-weight:700;
  padding:14px 20px; border-radius:10px; text-decoration:none; width:100%; box-sizing:border-box;
  border:none; cursor:pointer; font-family:inherit;
}
#mne-inline-modal .mne-imodal-reminder { font-size:12px; color:var(--mne-text-muted); text-align:center; margin-top:10px; }

/* ══════════════════════════════════════════════════════════
   SEDI ESAMI — accordion per regione
   ══════════════════════════════════════════════════════════ */
.mne-sedi-intro {
  font-size: 14px;
  color: var(--mne-text);
  line-height: 1.6;
  margin: 0 0 20px;
  padding: 12px 16px;
  background: rgba(13,27,42,.04);
  border-left: 3px solid var(--mne-gold);
  border-radius: 0 6px 6px 0;
}

.mne-sedi-accordion {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 6px;
}
@media (max-width: 640px) {
  .mne-sedi-accordion { grid-template-columns: 1fr; }
}

.mne-sedi-item {
  border: 1px solid var(--mne-border);
  border-radius: 8px;
  overflow: hidden;
  transition: border-color .2s;
}
.mne-sedi-item[open] {
  border-color: var(--mne-gold);
  grid-column: span 2; /* quando aperto occupa tutta la larghezza */
}
@media (max-width: 640px) {
  .mne-sedi-item[open] { grid-column: span 1; }
}

.mne-sedi-regione {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 14px;
  cursor: pointer;
  list-style: none;
  background: #fff;
  transition: background .15s;
  user-select: none;
}
.mne-sedi-regione::-webkit-details-marker { display: none; }
.mne-sedi-regione:hover { background: rgba(201,168,76,.08); }
.mne-sedi-item[open] .mne-sedi-regione {
  background: var(--mne-navy);
  color: #fff;
}

.mne-sedi-regione-nome {
  font-size: 13px;
  font-weight: 700;
  color: var(--mne-navy);
  flex: 1;
}
.mne-sedi-item[open] .mne-sedi-regione-nome { color: #fff; }

.mne-sedi-count {
  font-size: 11px;
  font-weight: 600;
  color: var(--mne-text-muted);
  background: rgba(13,27,42,.07);
  padding: 2px 8px;
  border-radius: 10px;
  white-space: nowrap;
}
.mne-sedi-item[open] .mne-sedi-count {
  background: rgba(255,255,255,.2);
  color: rgba(255,255,255,.8);
}

.mne-sedi-arrow {
  flex-shrink: 0;
  color: var(--mne-text-muted);
  transition: transform .2s;
}
.mne-sedi-item[open] .mne-sedi-arrow {
  transform: rotate(180deg);
  color: rgba(255,255,255,.7);
}

.mne-sedi-citta-wrap {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding: 12px 14px;
  background: rgba(201,168,76,.04);
  border-top: 1px solid var(--mne-border);
}

.mne-sedi-citta-tag {
  font-size: 12px;
  color: var(--mne-navy);
  background: #fff;
  border: 1px solid var(--mne-border);
  border-radius: 4px;
  padding: 3px 10px;
  white-space: nowrap;
}

/* Dark mode sedi */
body.mne-dark .mne-sedi-intro {
  color: rgba(255,255,255,.8);
  background: rgba(255,255,255,.05);
}
body.mne-dark .mne-sedi-item {
  border-color: rgba(255,255,255,.12);
}
body.mne-dark .mne-sedi-regione {
  background: #1a2535;
}
body.mne-dark .mne-sedi-regione:hover {
  background: rgba(201,168,76,.1);
}
body.mne-dark .mne-sedi-regione-nome {
  color: #fff;
}
body.mne-dark .mne-sedi-count {
  background: rgba(255,255,255,.1);
  color: rgba(255,255,255,.6);
}
body.mne-dark .mne-sedi-citta-wrap {
  background: rgba(255,255,255,.03);
  border-top-color: rgba(255,255,255,.08);
}
body.mne-dark .mne-sedi-citta-tag {
  background: rgba(255,255,255,.08);
  border-color: rgba(255,255,255,.12);
  color: rgba(255,255,255,.85);
}

/* ══════════════════════════════════════════════════════════
   COMMUNITY — riquadro gruppi social
   ══════════════════════════════════════════════════════════ */
.mne-community-intro {
  font-size: 14px;
  color: var(--mne-text);
  margin: 0 0 20px;
  line-height: 1.6;
}

.mne-community-btns {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.mne-community-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 12px 20px;
  border-radius: 10px;
  font-size: 14px;
  font-weight: 700;
  color: #fff;
  text-decoration: none;
  transition: opacity .2s, transform .15s;
  flex: 1;
  min-width: 160px;
  justify-content: center;
}
.mne-community-btn:hover {
  opacity: .88;
  transform: translateY(-2px);
  color: #fff;
}
.mne-community-btn svg { flex-shrink: 0; }

/* Colori brand ufficiali */
.mne-community-btn--wa   { background: #25D366; }
.mne-community-btn--fb   { background: #1877F2; }
.mne-community-btn--tg   { background: #26A5E4; }
.mne-community-btn--altro { background: var(--mne-navy); }

@media (max-width: 480px) {
  .mne-community-btn { min-width: 100%; }
}

/* Dark mode community */
body.mne-dark .mne-community-intro { color: rgba(255,255,255,.8); }
body.mne-dark .mne-community-btn--altro { background: rgba(255,255,255,.15); }

/* Widget HTML sidebar recensioni */
.mne-sidebar-widget {
  padding: 16px 20px;
  border-top: 1px solid var(--mne-border);
  overflow: hidden;
}
.mne-sidebar-widget > * { max-width: 100%; }

/* ══════════════════════════════════════════════════════════
   CLASSI DI CONCORSO 30CFU — tabella frontend
   ══════════════════════════════════════════════════════════ */

/* Ricerca inline */
.mne-cc-search-wrap {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 16px;
  background: #f8f9fc;
  border: 1.5px solid var(--mne-border);
  border-radius: 8px;
  padding: 10px 14px;
}
.mne-cc-search-wrap svg { color: var(--mne-text-muted); flex-shrink:0; }
.mne-cc-inline-input {
  flex: 1;
  border: none;
  background: transparent;
  font-size: 14px;
  outline: none;
  color: var(--mne-text);
}
.mne-cc-inline-count {
  font-size: 12px;
  color: var(--mne-text-muted);
  white-space: nowrap;
}

/* Tabella */
.mne-cc-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 14px;
}
.mne-cc-table thead tr {
  background: var(--mne-navy);
}
.mne-cc-table th {
  text-align: left;
  padding: 10px 14px;
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
}
.mne-cc-th-codice { width: 90px; }
.mne-cc-th-univ   { width: 220px; }

.mne-cc-tr {
  border-bottom: 1px solid var(--mne-border);
  transition: background .1s;
}
.mne-cc-tr:hover { background: rgba(201,168,76,.06); }
.mne-cc-tr:nth-child(even) { background: rgba(13,27,42,.02); }
.mne-cc-tr:nth-child(even):hover { background: rgba(201,168,76,.06); }

.mne-cc-td-codice,
.mne-cc-td-nome,
.mne-cc-td-univ { padding: 10px 14px; line-height: 1.4; }

/* Badge codice */
.mne-cc-badge-front {
  display: inline-block;
  background: var(--mne-navy);
  color: var(--mne-gold);
  font-family: monospace;
  font-size: 12px;
  font-weight: 700;
  padding: 3px 8px;
  border-radius: 4px;
  letter-spacing: .06em;
  white-space: nowrap;
}

.mne-cc-td-nome { color: var(--mne-text); }

.mne-cc-univ-tag {
  font-size: 12px;
  color: var(--mne-text-muted);
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.mne-cc-univ-nd { color: var(--mne-border); font-size: 13px; }

.mne-cc-total {
  font-size: 12px;
  color: var(--mne-text-muted);
  margin-top: 10px;
  text-align: right;
}

/* Shortcode cerca classe */
.mne-cerca-classe-wrap { margin: 0 0 32px; }
.mne-cerca-classe-form { margin-bottom: 20px; }
.mne-cerca-classe-input-wrap {
  display: flex;
  align-items: center;
  gap: 10px;
  background: #fff;
  border: 2px solid var(--mne-navy);
  border-radius: 10px;
  padding: 10px 16px;
  max-width: 600px;
}
.mne-cerca-classe-input-wrap svg { color: var(--mne-navy); flex-shrink:0; }
.mne-cerca-classe-input {
  flex: 1;
  border: none;
  outline: none;
  font-size: 15px;
  color: var(--mne-navy);
  background: transparent;
}
.mne-cerca-classe-btn {
  background: var(--mne-navy);
  color: #fff;
  border: none;
  padding: 8px 20px;
  border-radius: 6px;
  font-weight: 700;
  cursor: pointer;
  font-size: 14px;
}
.mne-cerca-classe-reset {
  display: inline-block;
  margin-top: 8px;
  font-size: 12px;
  color: var(--mne-text-muted);
  text-decoration: none;
}
.mne-cerca-nessun { color: var(--mne-text-muted); font-style: italic; }
.mne-cerca-found  { margin-bottom: 12px; color: var(--mne-text); }
.mne-cerca-card {
  border: 1px solid var(--mne-border);
  border-radius: 10px;
  padding: 16px;
  margin-bottom: 12px;
}
.mne-cerca-card-title { margin: 0 0 10px; font-size: 1rem; }
.mne-cerca-card-title a { color: var(--mne-navy); text-decoration: none; }
.mne-cerca-card-title a:hover { color: var(--mne-gold-dark); }
.mne-cerca-card-classe {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  font-size: 13px;
}
.mne-cc-badge  { background: var(--mne-navy); color: var(--mne-gold); font-family:monospace; font-weight:700; padding:2px 8px; border-radius:4px; }
.mne-cc-nome   { color: var(--mne-text); }
.mne-cc-univ   { color: var(--mne-text-muted); font-size: 12px; }

/* Dark mode */
body.mne-dark .mne-cc-search-wrap { background: rgba(255,255,255,.05); border-color: rgba(255,255,255,.1); }
body.mne-dark .mne-cc-inline-input { color: #fff; }
body.mne-dark .mne-cc-tr:nth-child(even) { background: rgba(255,255,255,.03); }
body.mne-dark .mne-cc-td-nome { color: rgba(255,255,255,.85); }
body.mne-dark .mne-cc-univ-tag { color: rgba(255,255,255,.55); }
body.mne-dark .mne-cerca-card { border-color: rgba(255,255,255,.1); }
body.mne-dark .mne-cerca-card-title a { color: #fff; }

/* Università con costo nella tabella classi concorso */
.mne-cc-univ-item {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 4px;
  flex-wrap: wrap;
}
.mne-cc-univ-item:last-child { margin-bottom: 0; }
.mne-cc-univ-costo-badge {
  font-size: 11px;
  font-weight: 700;
  color: var(--mne-navy);
  background: rgba(201,168,76,.15);
  border: 1px solid var(--mne-gold);
  padding: 1px 7px;
  border-radius: 10px;
  white-space: nowrap;
}
body.mne-dark .mne-cc-univ-costo-badge {
  color: var(--mne-gold);
  background: rgba(201,168,76,.1);
}

/* Nuove colonne tabella classi concorso */
.mne-cc-th-fascia { width: 160px; }
.mne-cc-th-prezzo { width: 100px; text-align: right; }
.mne-cc-td-fascia { padding: 10px 14px; }
.mne-cc-td-univ-nome { padding: 10px 14px; }
.mne-cc-td-prezzo { padding: 10px 14px; text-align: right; }

.mne-cc-fascia-label {
  font-size: 12px;
  color: var(--mne-text-muted);
  background: rgba(13,27,42,.06);
  padding: 2px 8px;
  border-radius: 10px;
  white-space: nowrap;
}

.mne-cc-prezzo-badge {
  font-size: 14px;
  font-weight: 700;
  color: var(--mne-navy);
  white-space: nowrap;
}

/* Dark mode */
body.mne-dark .mne-cc-fascia-label {
  background: rgba(255,255,255,.1);
  color: rgba(255,255,255,.6);
}
body.mne-dark .mne-cc-prezzo-badge { color: var(--mne-gold); }

/* Prezzo annuale e buono secondo anno */
.mne-prezzo-annuale-nota {
  font-size: 11px;
  color: var(--mne-text-muted);
  margin-top: 2px;
  display: block;
  font-style: italic;
}
.mne-secondo-anno-box {
  margin: 12px 20px;
  padding: 12px 14px;
  background: rgba(201,168,76,.08);
  border: 1px solid rgba(201,168,76,.3);
  border-radius: 8px;
}
.mne-secondo-anno-label {
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--mne-navy);
  margin: 0 0 6px;
}
.mne-secondo-anno-text {
  font-size: 13px;
  color: var(--mne-text);
  line-height: 1.5;
  margin: 0;
}
body.mne-dark .mne-secondo-anno-label { color: var(--mne-gold); }
body.mne-dark .mne-secondo-anno-text  { color: rgba(255,255,255,.8); }
body.mne-dark .mne-prezzo-annuale-nota { color: rgba(255,255,255,.5); }

/* Filtri shortcode aggiornati */
.mne-filters-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}

.mne-filter-search-wrap {
  display: flex;
  align-items: center;
  gap: 8px;
  background: #fff;
  border: 1.5px solid var(--mne-border);
  border-radius: 8px;
  padding: 9px 14px;
  flex: 1;
  min-width: 200px;
  height: 44px;
  box-sizing: border-box;
}
.mne-filter-search-wrap svg { color: var(--mne-text-muted); flex-shrink: 0; }
.mne-filter-search-input {
  border: none;
  outline: none;
  font-size: 14px;
  width: 100%;
  background: transparent;
  color: var(--mne-text);
}

.mne-filter-select {
  padding: 9px 12px;
  border: 1.5px solid var(--mne-border);
  border-radius: 8px;
  font-size: 14px;
  background: #fff;
  color: var(--mne-text);
  cursor: pointer;
  height: 44px;
  box-sizing: border-box;
  appearance: auto;
}
.mne-filter-select:focus { border-color: var(--mne-navy); outline: none; }

/* Autocomplete classi concorso */
.mne-filter-autocomplete-wrap {
  position: relative;
  flex: 1;
  min-width: 200px;
}
.mne-filter-autocomplete-input {
  width: 100%;
  padding: 9px 14px;
  border: 1.5px solid var(--mne-border);
  border-radius: 8px;
  font-size: 14px;
  background: #fff;
  color: var(--mne-text);
  outline: none;
  height: 44px;
  box-sizing: border-box;
}
.mne-filter-autocomplete-input:focus { border-color: var(--mne-navy); }
.mne-autocomplete-list {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  right: 0;
  background: #fff;
  border: 1.5px solid var(--mne-navy);
  border-radius: 10px;
  max-height: 260px;
  overflow-y: auto;
  z-index: 9999;
  box-shadow: 0 12px 32px rgba(13,27,42,.18);
  display: none;
}
.mne-autocomplete-list.open { display: block; }
.mne-autocomplete-item {
  padding: 10px 14px;
  font-size: 13px;
  cursor: pointer;
  border-bottom: 1px solid #f0f0f0;
  transition: background .1s;
  display: flex;
  align-items: center;
  gap: 10px;
  color: var(--mne-text);
  line-height: 1.4;
}
.mne-autocomplete-item:last-child { border-bottom: none; }
.mne-autocomplete-item:hover,
.mne-autocomplete-item.active {
  background: rgba(201,168,76,.08);
  color: var(--mne-navy);
}
.mne-autocomplete-badge {
  font-family: monospace;
  font-size: 11px;
  font-weight: 700;
  color: var(--mne-navy);
  background: rgba(201,168,76,.15);
  padding: 2px 7px;
  border-radius: 4px;
  white-space: nowrap;
  flex-shrink: 0;
  letter-spacing: .04em;
}
/* Scrollbar sottile nella lista */
.mne-autocomplete-list::-webkit-scrollbar { width: 4px; }
.mne-autocomplete-list::-webkit-scrollbar-track { background: #f9f9f9; }
.mne-autocomplete-list::-webkit-scrollbar-thumb { background: #ccc; border-radius: 2px; }

.mne-filter-classi {
  border-color: var(--mne-gold);
  background: rgba(201,168,76,.06);
}

.mne-filter-reset {
  font-size: 13px;
  color: var(--mne-text-muted);
  text-decoration: none;
  padding: 6px 10px;
  border-radius: 6px;
  transition: background .15s;
}
.mne-filter-reset:hover { background: rgba(0,0,0,.06); }

@media (max-width: 600px) {
  .mne-filter-search-wrap,
  .mne-filter-select,
  .mne-filter-btn { width: 100%; }
}

/* Dark mode filtri */
body.mne-dark .mne-filter-search-wrap,
body.mne-dark .mne-filter-select {
  background: #1a2535;
  border-color: rgba(255,255,255,.15);
  color: #fff;
}
body.mne-dark .mne-filter-classi {
  background: rgba(201,168,76,.1);
  border-color: var(--mne-gold);
}

/* ══════════════════════════════════════════════════════════
   ARCHIVIO TASSONOMIA — sottocategorie e layout
   ══════════════════════════════════════════════════════════ */
.mne-tax-sez-title {
  font-family: var(--mne-font-serif);
  font-size: 1.3rem;
  font-weight: 700;
  color: var(--mne-navy);
  margin: 0 0 20px;
}

.mne-tax-sottocategorie {
  margin-bottom: 40px;
  padding-bottom: 40px;
  border-bottom: 1px solid var(--mne-border);
}

.mne-tax-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 14px;
  align-items: start;
}

.mne-tax-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  background: #fff;
  border: 1.5px solid var(--mne-border);
  border-radius: 12px;
  padding: 18px 20px;
  text-decoration: none;
  transition: border-color .2s, box-shadow .2s, transform .15s;
}
.mne-tax-card:hover {
  border-color: var(--mne-gold);
  box-shadow: 0 4px 16px rgba(201,168,76,.15);
  transform: translateY(-2px);
}

.mne-tax-card-body { flex: 1; }

.mne-tax-card-title {
  font-size: 15px;
  font-weight: 700;
  color: var(--mne-navy);
  margin: 0 0 6px;
  line-height: 1.3;
}

.mne-tax-card-desc {
  font-size: 13px;
  color: var(--mne-text-muted);
  margin: 0 0 8px;
  line-height: 1.4;
}

.mne-tax-card-count {
  font-size: 12px;
  font-weight: 700;
  color: var(--mne-gold-dark);
  background: rgba(201,168,76,.1);
  padding: 2px 10px;
  border-radius: 10px;
  display: inline-block;
}

.mne-tax-card-arrow {
  font-size: 18px;
  color: var(--mne-gold);
  flex-shrink: 0;
  transition: transform .2s;
}
.mne-tax-card:hover .mne-tax-card-arrow {
  transform: translateX(4px);
}

/* Dark mode sottocategorie */
body.mne-dark .mne-tax-sez-title { color: #fff; }
body.mne-dark .mne-tax-card {
  background: #1a2535;
  border-color: rgba(255,255,255,.1);
}
body.mne-dark .mne-tax-card:hover { border-color: var(--mne-gold); }
body.mne-dark .mne-tax-card-title { color: #fff; }
body.mne-dark .mne-tax-card-desc  { color: rgba(255,255,255,.55); }
body.mne-dark .mne-tax-sottocategorie { border-bottom-color: rgba(255,255,255,.1); }

/* ══════════════════════════════════════════════════════════
   SHORTCODE [mne_categorie] — griglia categorie madri
   ══════════════════════════════════════════════════════════ */
.mne-categorie-wrap {
  display: grid;
  gap: 20px;
  margin: 0 0 40px;
}
.mne-categorie-cols-2 { grid-template-columns: repeat(2, 1fr); }
.mne-categorie-cols-3 { grid-template-columns: repeat(3, 1fr); }
.mne-categorie-cols-4 { grid-template-columns: repeat(4, 1fr); }

@media (max-width: 900px) {
  .mne-categorie-cols-3,
  .mne-categorie-cols-4 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
  .mne-categorie-cols-2,
  .mne-categorie-cols-3,
  .mne-categorie-cols-4 { grid-template-columns: 1fr; }
}

/* Card categoria madre — l'intera card è un link */
.mne-cat-card {
  background: #fff;
  border: 1.5px solid var(--mne-border);
  border-radius: 14px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  text-decoration: none;
  transition: box-shadow .2s, transform .15s, border-color .15s;
}
.mne-cat-card:hover {
  box-shadow: 0 6px 24px rgba(13,27,42,.12);
  transform: translateY(-2px);
  border-color: var(--mne-gold);
}

/* Header navy */
.mne-cat-card-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  padding: 20px 20px 18px;
  background: var(--mne-navy);
}
.mne-cat-card-titles { flex: 1; }
.mne-cat-card-title {
  font-family: var(--mne-font-serif);
  font-size: 1.05rem;
  font-weight: 700;
  color: #fff;
  margin: 0;
  line-height: 1.3;
}
.mne-cat-card-count {
  font-size: 12px;
  font-weight: 700;
  background: rgba(201,168,76,.25);
  color: var(--mne-gold);
  padding: 3px 10px;
  border-radius: 10px;
  white-space: nowrap;
  flex-shrink: 0;
  align-self: flex-start;
}

/* Testo personalizzato */
.mne-cat-card-testo {
  padding: 16px 20px;
  font-size: 13px;
  color: var(--mne-text-muted);
  line-height: 1.6;
  flex: 1;
}
.mne-cat-card-testo p { margin: 0 0 8px; }
.mne-cat-card-testo p:last-child { margin-bottom: 0; }
.mne-cat-card-testo strong { color: var(--mne-text); font-weight: 700; }

/* CTA — prezzo a sinistra, pulsante netto a destra */
.mne-cat-card-cta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 14px 20px;
  border-top: 1px solid var(--mne-border);
  background: #f9f8f5;
}
.mne-cat-card-prezzo-da {
  font-size: 13px;
  font-weight: 700;
  color: var(--mne-navy);
  white-space: nowrap;
  flex-shrink: 0;
}
.mne-cat-card-cta-btn {
  display: inline-block;
  background: var(--mne-navy);
  color: #fff;
  font-size: 13px;
  font-weight: 700;
  padding: 8px 16px;
  border-radius: 6px;
  white-space: nowrap;
  flex-shrink: 0;
  transition: background .15s;
}
.mne-cat-card:hover .mne-cat-card-cta-btn {
  background: var(--mne-gold);
  color: var(--mne-navy);
}
/* Se non c'è prezzo il bottone occupa tutto */
.mne-cat-card-cta:not(:has(.mne-cat-card-prezzo-da)) {
  justify-content: center;
}

/* Dark mode */
body.mne-dark .mne-cat-card { background: #1a2535; border-color: rgba(255,255,255,.1); }
body.mne-dark .mne-cat-card-header { background: rgba(255,255,255,.05); }
body.mne-dark .mne-cat-card-header:hover { background: rgba(255,255,255,.08); }
body.mne-dark .mne-cat-sub-item:hover { background: rgba(201,168,76,.1); }
body.mne-dark .mne-cat-sub-nome { color: rgba(255,255,255,.85); }
body.mne-dark .mne-cat-sub-count { background: rgba(255,255,255,.1); color: rgba(255,255,255,.5); }
body.mne-dark .mne-cat-sub-list { border-bottom-color: rgba(255,255,255,.1); }
body.mne-dark .mne-cat-sub-scopri { border-top-color: rgba(255,255,255,.1); }
body.mne-dark .mne-cat-card-cta { background: rgba(201,168,76,.1); color: var(--mne-gold); }
body.mne-dark .mne-cat-card-cta:hover { background: rgba(201,168,76,.18); }

/* Piano di studi card — mobile: titolo a piena larghezza, SSD + CFU sotto */
@media (max-width: 640px) {
  .mne-card-piano-list li {
    display: grid;
    grid-template-columns: 1fr auto;
    grid-template-rows: auto auto;
    grid-template-areas:
      "titolo titolo"
      "ssd    cfu";
    align-items: center;
    gap: 3px 8px;
    padding: 8px 10px;
  }
  .mne-card-piano-mod {
    grid-area: titolo;
    font-size: 12px;
    line-height: 1.3;
    width: auto;
    min-width: 0;
  }
  .mne-card-piano-ssd {
    grid-area: ssd;
    font-size: 10px;
    white-space: normal;
    word-break: break-word;
    width: auto;
    min-width: 0;
    align-self: center;
  }
  .mne-card-piano-cfu {
    grid-area: cfu;
    font-size: 11px;
    white-space: nowrap;
    font-weight: 700;
    width: auto;
    min-width: 0;
    align-self: center;
    text-align: right;
  }
}

/* Filtri archivio — stack su mobile */
@media (max-width: 640px) {
  .mne-filters-grid {
    flex-direction: column;
  }
  .mne-filter-search-wrap,
  .mne-filter-select,
  .mne-filter-btn,
  .mne-filter-reset {
    width: 100%;
  }
}

/* ══════════════════════════════════════════════════════════
   MOBILE RESPONSIVE — breakpoint principale 768px
   ══════════════════════════════════════════════════════════ */

/* Topbar — compatta su mobile */
@media (max-width: 768px) {
  .mne-codice-topbar { padding: 9px 16px; }
  .mne-codice-topbar-note { display: none; }
  .mne-codice-topbar-inner { gap: 10px; flex-wrap: nowrap; justify-content: flex-start; }
  .mne-codice-topbar-code { font-size: 1.2rem; padding: 2px 12px; }
}

/* Hero — meno alto su mobile */
@media (max-width: 768px) {
  .mne-hero { min-height: 220px; }
  .mne-hero__overlay { padding: 28px 0 24px; }
  .mne-hero__title { font-size: clamp(1.4rem, 5vw, 2.2rem); }
  /* Facts: una per riga, label + valore inline, testo wrappa normalmente */
  .mne-facts {
    gap: 8px;
    flex-direction: column;
  }
  .mne-facts li {
    font-size: 13px;
    align-items: baseline;
    width: 100%;
    flex-wrap: wrap;          /* label + valore sulla stessa riga; se troppo lungo va a capo */
  }
  .mne-facts li i {
    flex-shrink: 0;
  }
  .mne-facts li strong {
    white-space: nowrap;      /* la label non si spezza mai */
    flex-shrink: 0;
  }
}

/* Layout scheda corso — 1 colonna su mobile, sidebar SOPRA */
@media (max-width: 900px) {
  .mne-layout {
    grid-template-columns: 1fr !important;
    padding-top: 28px;
    gap: 24px;
  }
  .mne-sidebar {
    position: static !important;
    top: auto !important;
    order: -1; /* SOPRA il contenuto su mobile */
  }
}

/* Sidebar CTA box — più compatta */
@media (max-width: 768px) {
  .mne-codice-value {
    font-size: clamp(1.8rem, 8vw, 2.4rem) !important;
    letter-spacing: .08em;
  }
  .mne-prezzo-finale { font-size: 2.2rem; }
  .mne-cta-box { border-radius: 10px !important; }
  .mne-codice-box { padding: 18px; }
  .mne-prezzi { padding: 12px 18px 0; }
  .mne-vantaggi-list { padding: 12px 16px 16px; gap: 10px; }
  .mne-risparmio-pill { font-size: 12px; padding: 8px 14px; }
}

/* Sezioni contenuto */
@media (max-width: 768px) {
  .mne-section { margin-bottom: 32px; padding-bottom: 32px; }
  .mne-section h2 { font-size: 1.2rem; }
  .mne-prose { font-size: 14px; }
}

/* Tabella classi concorso mobile */
@media (max-width: 640px) {
  .mne-cc-table { font-size: 12px; }
  .mne-cc-th-fascia, .mne-cc-td-fascia { display: none; }
  .mne-cc-th-prezzo, .mne-cc-td-prezzo { width: 70px; }
  .mne-cc-search-wrap { padding: 8px 12px; }
  .mne-cc-inline-input { font-size: 13px; }
}

/* Sedi esami accordion mobile */
@media (max-width: 640px) {
  .mne-sedi-accordion { grid-template-columns: 1fr !important; }
  .mne-sedi-item[open] { grid-column: span 1 !important; }
}

/* Community btns mobile */
@media (max-width: 500px) {
  .mne-community-btns { flex-direction: column; }
  .mne-community-btn { min-width: 100%; justify-content: center; }
}

/* Griglia corsi — 1 colonna sotto 600px, 2 colonne 600-900px */
@media (max-width: 900px) {
  .mne-corsi-grid,
  .mne-sc-cols-3,
  .mne-sc-cols-4 { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 600px) {
  .mne-corsi-grid,
  .mne-sc-cols-2,
  .mne-sc-cols-3,
  .mne-sc-cols-4 { grid-template-columns: 1fr !important; }
}

/* CTA bottom mobile */
@media (max-width: 768px) {
  .mne-cta-bottom { padding: 24px !important; border-radius: 10px !important; }
  .mne-cta-bottom__code { font-size: 2rem; }
}

/* Filtri archivio — stack su mobile */
@media (max-width: 640px) {
  .mne-filters-grid { flex-direction: column; }
  .mne-filter-search-wrap,
  .mne-filter-select,
  .mne-filter-btn { width: 100%; }
}

/* Secondo anno box mobile */
@media (max-width: 768px) {
  .mne-secondo-anno-box { margin: 10px 14px; }
}

/* Prefisso "Codice riservato" nella strip card */
.mne-card-codice-label {
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--mne-text-muted);
  display: block;
  margin-bottom: 2px;
}
body.mne-dark .mne-card-codice-label { color: rgba(255,255,255,.45); }

/* ══════════════════════════════════════════════════════════
   WIDGET 30CFU — [mne_widget_30cfu]
   ══════════════════════════════════════════════════════════ */
.mne-widget-30cfu {
  background: #fff;
  border: 1px solid var(--mne-border);
  border-radius: 12px;
  padding: 28px;
  max-width: 700px;
  margin: 0 auto 32px;
}
.mne-w30-header h3 {
  color: var(--mne-navy);
  font-family: var(--mne-font-serif);
  font-size: 1.2rem;
  margin: 0 0 6px;
}
.mne-w30-header p {
  color: var(--mne-text-muted);
  font-size: 14px;
  margin: 0 0 20px;
}
.mne-w30-field { margin-bottom: 16px; }
.mne-w30-field label {
  display: block;
  font-weight: 700;
  font-size: 13px;
  color: var(--mne-navy);
  margin-bottom: 6px;
}
.mne-w30-risultato { margin-top: 24px; }
.mne-w30-classe-title {
  font-family: var(--mne-font-serif);
  font-size: 1.05rem;
  color: var(--mne-navy);
  margin: 0 0 14px;
  padding-bottom: 10px;
  border-bottom: 2px solid var(--mne-gold);
  display: inline-block;
}
.mne-w30-table-wrap { overflow-x: auto; margin-bottom: 16px; }
.mne-w30-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 14px;
}
.mne-w30-table thead tr { background: var(--mne-navy); }
.mne-w30-table th {
  padding: 9px 14px;
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .05em;
  text-align: left;
}
.mne-w30-table tr { border-bottom: 1px solid var(--mne-border); }
.mne-w30-table tr:nth-child(even) { background: rgba(13,27,42,.02); }
.mne-w30-td-univ, .mne-w30-td-label,
.mne-w30-td-prezzo, .mne-w30-td-cta { padding: 10px 14px; }
.mne-w30-td-prezzo { font-weight: 700; color: var(--mne-navy); white-space: nowrap; }
.mne-w30-iscriviti {
  background: var(--mne-gold);
  color: var(--mne-navy);
  border: none;
  padding: 7px 14px;
  border-radius: 6px;
  font-weight: 700;
  font-size: 13px;
  cursor: pointer;
  white-space: nowrap;
  transition: background .15s;
}
.mne-w30-iscriviti:hover { background: var(--mne-gold-dark); }
.mne-w30-nota {
  font-size: 13px;
  color: var(--mne-text-muted);
  background: rgba(201,168,76,.08);
  border-left: 3px solid var(--mne-gold);
  padding: 10px 14px;
  border-radius: 0 6px 6px 0;
  margin: 0;
}
.mne-w30-nessuna {
  color: var(--mne-text-muted);
  font-style: italic;
  padding: 12px 0;
}

/* ── Multi-SSD selector ─────────────────────────────── */
.mne-multi-ssd-wrap {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 8px 10px !important;
  height: auto !important;
  min-height: 44px;
  align-items: stretch !important;
}
.mne-ssd-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}
.mne-ssd-tags:empty { display: none; }

.mne-ssd-tag {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  background: var(--mne-navy);
  color: #fff;
  border-radius: 5px;
  padding: 3px 8px 3px 10px;
  font-size: 12px;
}
.mne-ssd-tag-code {
  font-family: monospace;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .04em;
}
.mne-ssd-tag-remove {
  background: none;
  border: none;
  color: rgba(255,255,255,.7);
  cursor: pointer;
  font-size: 15px;
  line-height: 1;
  padding: 0 2px;
  display: flex;
  align-items: center;
  transition: color .15s;
}
.mne-ssd-tag-remove:hover { color: #fff; }

.mne-multi-ssd-wrap .mne-ac-ssd {
  border: none;
  outline: none;
  font-size: 13px;
  background: transparent;
  width: 100%;
  padding: 0;
  color: var(--mne-text);
}
.mne-multi-ssd-wrap .mne-ac-ssd:disabled {
  opacity: .5;
  cursor: not-allowed;
}

/* ── Filtri nell'hero navy — stile coordinato ──────── */
.mne-archive-hero .mne-filters-grid,
.mne-archive-hero .mne-sc-filters .mne-filters-grid {
  gap: 8px;
}

.mne-archive-hero .mne-filter-search-wrap,
.mne-archive-hero .mne-filter-autocomplete-wrap,
.mne-archive-hero .mne-filter-select {
  background: #fff !important;
  border: 1.5px solid rgba(255,255,255,.6) !important;
  color: #0d1b2a !important;
  height: 50px !important;
  box-sizing: border-box;
}
.mne-archive-hero .mne-filter-search-wrap:focus-within,
.mne-archive-hero .mne-filter-autocomplete-wrap:focus-within {
  background: #fff !important;      /* invariato — nessun cambio colore */
  border-color: var(--mne-gold) !important;
  box-shadow: 0 0 0 2px rgba(201,168,76,.25);
}

.mne-archive-hero .mne-filter-search-wrap svg { color: #595959; }

.mne-archive-hero .mne-filter-search-input,
.mne-archive-hero .mne-filter-autocomplete-input,
.mne-archive-hero .mne-ac-tipo {
  color: #0d1b2a !important;
  background: transparent !important;
}
.mne-archive-hero .mne-filter-search-input::placeholder,
.mne-archive-hero .mne-filter-autocomplete-input::placeholder {
  color: #595959 !important;
}

.mne-archive-hero .mne-filter-select option {
  background: var(--mne-navy);
  color: #fff;
}

.mne-archive-hero .mne-filter-btn {
  height: 50px !important;
  padding: 0 28px !important;
  font-size: 15px;
  box-sizing: border-box;
}

/* Dropdown autocomplete — rimane bianco per leggibilità */
.mne-archive-hero .mne-autocomplete-list {
  background: #fff;
  color: var(--mne-text);
}
.mne-archive-hero .mne-autocomplete-item { color: var(--mne-text); }

/* Azzera link nell'hero */
.mne-archive-hero .mne-filter-reset {
  color: rgba(255,255,255,.6);
}
.mne-archive-hero .mne-filter-reset:hover { color: #fff; background: rgba(255,255,255,.1); }

/* ── Filtri fuori dall'hero — stile unificato ──────── */
.mne-filters-grid .mne-filter-search-wrap,
.mne-filters-grid .mne-filter-autocomplete-wrap,
.mne-filters-grid .mne-multi-ssd-wrap,
.mne-filters-grid .mne-filter-select {
  background: #fff;
  border: 1.5px solid var(--mne-border);
  border-radius: 8px;
  height: 50px;
  box-sizing: border-box;
  color: var(--mne-text);
}
.mne-filters-grid .mne-filter-autocomplete-wrap,
.mne-filters-grid .mne-multi-ssd-wrap {
  display: flex;
  align-items: center;
  padding: 0 14px;
  gap: 8px;
  flex: 1;
  min-width: 200px;
  position: relative;
}
.mne-filters-grid .mne-filter-autocomplete-input,
.mne-filters-grid .mne-ac-tipo,
.mne-filters-grid .mne-ac-ssd {
  border: none;
  outline: none;
  background: transparent;
  font-size: 14px;
  color: var(--mne-text);
  width: 100%;
}
.mne-filters-grid .mne-filter-autocomplete-input::placeholder,
.mne-filters-grid .mne-ac-ssd::placeholder {
  color: var(--mne-text-muted);
}
.mne-filters-grid .mne-filter-btn {
  height: 50px;
  box-sizing: border-box;
}
/* Focus state */
.mne-filters-grid .mne-filter-autocomplete-wrap:focus-within,
.mne-filters-grid .mne-multi-ssd-wrap:focus-within,
.mne-filters-grid .mne-filter-search-wrap:focus-within {
  border-color: var(--mne-navy);
  outline: none;
}

/* Fix doppio bordo — rimuove outline browser sugli input dentro i wrapper filtro */
.mne-filter-search-wrap input,
.mne-filter-autocomplete-wrap input,
.mne-multi-ssd-wrap input,
.mne-filter-search-input,
.mne-filter-autocomplete-input,
.mne-ac-tipo,
.mne-ac-ssd,
.mne-ac-classi {
  outline: none !important;
  box-shadow: none !important;
  border: none !important;
}
/* Focus sul wrapper, non sull'input */
.mne-filter-search-wrap:focus-within { border-color: var(--mne-gold) !important; }
.mne-filter-autocomplete-wrap:focus-within { border-color: var(--mne-gold) !important; }
.mne-multi-ssd-wrap:focus-within { border-color: var(--mne-gold) !important; }

/* Fix bordo extra su mne-filter-search-input (override tema Neve) */
input.mne-filter-search-input,
input.mne-filter-autocomplete-input,
input.mne-ac-tipo,
input.mne-ac-ssd,
input.mne-ac-classi {
  border: none !important;
  outline: none !important;
  box-shadow: none !important;
  -webkit-appearance: none !important;
}

/* ── Filtri uniformi — usano classe body per specificità massima ── */
/* Taxonomy corsi */
body.tax-mne_tipo_corso .mne-filter-search-wrap,
body.tax-mne_tipo_corso .mne-filter-autocomplete-wrap,
body.tax-mne_tipo_corso .mne-multi-ssd-wrap,
/* Archivio corsi (fuori hero) */
body.post-type-archive-mne_corso .mne-archive-results .mne-filter-search-wrap,
body.post-type-archive-mne_corso .mne-archive-results .mne-filter-autocomplete-wrap,
/* Shortcode su qualsiasi pagina */
.mne-sc-filters .mne-filter-search-wrap,
.mne-sc-filters .mne-filter-autocomplete-wrap {
  background: #fff !important;
  border: 1.5px solid var(--mne-border) !important;
  height: 50px !important;
  box-sizing: border-box;
  display: flex !important;
  align-items: center;
  padding: 0 14px !important;
  gap: 8px;
  flex: 1;
  min-width: 200px;
  border-radius: 8px;
  position: relative;
}
body.tax-mne_tipo_corso .mne-filter-search-wrap:focus-within,
body.tax-mne_tipo_corso .mne-filter-autocomplete-wrap:focus-within,
body.tax-mne_tipo_corso .mne-multi-ssd-wrap:focus-within {
  border-color: var(--mne-navy) !important;
}
body.tax-mne_tipo_corso .mne-filter-btn,
.mne-sc-filters .mne-filter-btn {
  height: 50px !important;
  padding: 0 28px !important;
  font-size: 15px;
  box-sizing: border-box;
}
body.tax-mne_tipo_corso .mne-filters-grid,
.mne-sc-filters .mne-filters-grid {
  gap: 10px;
  align-items: stretch;
}

/* ── Allineamento perfetto tutti i campi filtro ──────── */
.mne-filters-grid {
  display: flex;
  align-items: stretch;
  gap: 10px;
  flex-wrap: wrap;
}

/* Reset completo — tutti i campi filtro identici */
.mne-filter-search-wrap,
.mne-filter-autocomplete-wrap,
.mne-multi-ssd-wrap {
  display: flex !important;
  align-items: center !important;
  background: #fff !important;
  border: 1.5px solid #e0ddd5 !important;
  border-radius: 8px !important;
  height: 50px !important;
  padding: 0 14px !important;
  gap: 8px !important;
  flex: 1 !important;
  min-width: 180px !important;
  box-sizing: border-box !important;
  position: relative !important;
}

/* Focus state uniforme */
.mne-filter-search-wrap:focus-within,
.mne-filter-autocomplete-wrap:focus-within,
.mne-multi-ssd-wrap:focus-within {
  border-color: #0D1B2A !important;
  box-shadow: none !important;
}

/* Bottone cerca */
.mne-filter-btn {
  height: 50px !important;
  padding: 0 28px !important;
  border-radius: 8px !important;
  flex-shrink: 0 !important;
  box-sizing: border-box !important;
}

/* Input dentro i wrapper — niente bordi propri */
.mne-filter-search-wrap input,
.mne-filter-autocomplete-wrap input,
.mne-multi-ssd-wrap input {
  border: none !important;
  outline: none !important;
  box-shadow: none !important;
  background: transparent !important;
  height: auto !important;
  padding: 0 !important;
  margin: 0 !important;
  flex: 1 !important;
  font-size: 14px !important;
  color: #1a1a1a !important;
}

.mne-filter-search-wrap input::placeholder,
.mne-filter-autocomplete-wrap input::placeholder,
.mne-multi-ssd-wrap input::placeholder {
  color: #767676 !important; /* WCAG AA: 4.54:1 su bianco */
}

/* Svg icona lente */
.mne-filter-search-wrap svg {
  flex-shrink: 0;
  color: #595959; /* WCAG AA: 7:1 su bianco */
  width: 16px;
  height: 16px;
}

/* Nell'hero navy — override colori */
.mne-archive-hero .mne-filter-search-wrap,
.mne-archive-hero .mne-filter-autocomplete-wrap {
  background: rgba(255,255,255,.12) !important;
  border-color: rgba(255,255,255,.3) !important;
}
.mne-archive-hero .mne-filter-search-wrap:focus-within,
.mne-archive-hero .mne-filter-autocomplete-wrap:focus-within {
  border-color: #C9A84C !important;
}
.mne-archive-hero .mne-filter-search-wrap input,
.mne-archive-hero .mne-filter-autocomplete-wrap input {
  color: #fff !important;
}
.mne-archive-hero .mne-filter-search-wrap input::placeholder,
.mne-archive-hero .mne-filter-autocomplete-wrap input::placeholder {
  color: rgba(255,255,255,.55) !important;
}
.mne-archive-hero .mne-filter-search-wrap svg { color: rgba(255,255,255,.6); }

/* ── Bottone "Vedi tutti i corsi" ──────────────────── */
.mne-btn-vedi-tutti {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: var(--mne-navy);
  color: #fff;
  font-weight: 700;
  font-size: 14px;
  padding: 10px 22px;
  border-radius: 8px;
  text-decoration: none;
  transition: background .2s;
}
.mne-btn-vedi-tutti:hover { background: #162436; color: #fff; }
.mne-btn-vedi-tutti--large {
  font-size: 16px;
  padding: 14px 32px;
  background: var(--mne-gold);
  color: var(--mne-navy);
}
.mne-btn-vedi-tutti--large:hover { background: var(--mne-gold-dark); color: var(--mne-navy); }

/* ── Paginazione archivio ───────────────────────────── */
.mne-pagination .mne-page-item a,
.mne-pagination .mne-page-item span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 38px;
  height: 38px;
  padding: 0 10px;
  border: 1.5px solid var(--mne-border);
  border-radius: 6px;
  font-size: 14px;
  text-decoration: none;
  color: var(--mne-text);
  background: #fff;
  transition: all .15s;
}
.mne-pagination .mne-page-item a:hover { border-color: var(--mne-navy); color: var(--mne-navy); }
.mne-pagination .mne-page-item .current {
  background: var(--mne-navy);
  color: #fff;
  border-color: var(--mne-navy);
  font-weight: 700;
}

/* prezzo e CTA — vedi regole .mne-cat-card-cta sopra */

/* ══════════════════════════════════════════════════════════
   DARK MODE — Neve usa [data-neve-theme="dark"] su <html>
   Il nostro dark-mode.js aggiunge .mne-dark al body
   Supportiamo entrambi i selettori
   ══════════════════════════════════════════════════════════ */

:root[data-neve-theme="dark"] .mne-filter-search-wrap,
:root[data-neve-theme="dark"] .mne-filter-autocomplete-wrap,
:root[data-neve-theme="dark"] .mne-multi-ssd-wrap,
body.mne-dark .mne-filter-search-wrap,
body.mne-dark .mne-filter-autocomplete-wrap,
body.mne-dark .mne-multi-ssd-wrap {
  background: #1a2535 !important;
  border-color: rgba(255,255,255,.15) !important;
  color: #fff !important;
}

:root[data-neve-theme="dark"] .mne-filter-search-wrap input,
:root[data-neve-theme="dark"] .mne-filter-autocomplete-wrap input,
:root[data-neve-theme="dark"] .mne-multi-ssd-wrap input,
body.mne-dark .mne-filter-search-wrap input,
body.mne-dark .mne-filter-autocomplete-wrap input,
body.mne-dark .mne-multi-ssd-wrap input {
  color: #fff !important;
  background: transparent !important;
}

:root[data-neve-theme="dark"] .mne-filter-search-wrap input::placeholder,
:root[data-neve-theme="dark"] .mne-filter-autocomplete-wrap input::placeholder,
body.mne-dark .mne-filter-search-wrap input::placeholder,
body.mne-dark .mne-filter-autocomplete-wrap input::placeholder {
  color: rgba(255,255,255,.45) !important;
}

/* Filtri nell'hero — dark mode */
:root[data-neve-theme="dark"] .mne-archive-hero .mne-filter-search-wrap,
:root[data-neve-theme="dark"] .mne-archive-hero .mne-filter-autocomplete-wrap {
  background: rgba(255,255,255,.1) !important;
  border-color: rgba(255,255,255,.2) !important;
}

/* Card corsi — dark mode */
:root[data-neve-theme="dark"] .mne-card,
body.mne-dark .mne-card {
  background: #1a2535;
  border-color: rgba(255,255,255,.1);
}
/* dark card-title già definito sopra */
:root[data-neve-theme="dark"] .mne-card-badge,
body.mne-dark .mne-card-badge,
:root[data-neve-theme="dark"] .mne-card-tipo,
body.mne-dark .mne-card-tipo {
  background: rgba(201,168,76,.12);
  color: rgba(201,168,76,.8);
  border-color: rgba(201,168,76,.25);
}
:root[data-neve-theme="dark"] .mne-card-codice-strip,
body.mne-dark .mne-card-codice-strip { background: rgba(201,168,76,.08); border-color: rgba(201,168,76,.2); }
:root[data-neve-theme="dark"] .mne-card-btn-detail,
body.mne-dark .mne-card-btn-detail { background: rgba(255,255,255,.08); color: rgba(255,255,255,.8); }
:root[data-neve-theme="dark"] .mne-card--offerta,
body.mne-dark .mne-card--offerta {
  border-color: #ff8c66;
  box-shadow: 0 0 0 1px rgba(255,140,102,.2);
}
:root[data-neve-theme="dark"] .mne-card--arrivo,
body.mne-dark .mne-card--arrivo {
  border-color: #6bb3d9;
  box-shadow: 0 0 0 1px rgba(107,179,217,.2);
}

/* Card categoria — dark mode */
:root[data-neve-theme="dark"] .mne-cat-card,
body.mne-dark .mne-cat-card {
  background: #1a2535;
  border-color: rgba(255,255,255,.1);
}
:root[data-neve-theme="dark"] .mne-cat-card-testo,
body.mne-dark .mne-cat-card-testo { color: rgba(255,255,255,.65); }
:root[data-neve-theme="dark"] .mne-cat-card-cta,
body.mne-dark .mne-cat-card-cta {
  background: rgba(255,255,255,.05);
  border-top-color: rgba(255,255,255,.1);
}
:root[data-neve-theme="dark"] .mne-cat-card-prezzo-da,
body.mne-dark .mne-cat-card-prezzo-da { color: var(--mne-gold); }
:root[data-neve-theme="dark"] .mne-cat-card-cta-btn,
body.mne-dark .mne-cat-card-cta-btn { background: rgba(255,255,255,.12); color: #fff; }

/* Variabili CSS dark mode */
:root[data-neve-theme="dark"],
body.mne-dark {
  --mne-text: rgba(255,255,255,.88);
  --mne-text-muted: rgba(255,255,255,.55);
  --mne-border: rgba(255,255,255,.12);
}

/* WCAG — filtri: bordo, placeholder, icona, focus */
/* Bordo: #767676 su bianco = 4.54:1 ✓ | placeholder: #595959 = 7:1 ✓ */
body.tax-mne_tipo_corso .mne-filter-search-wrap,
body.tax-mne_tipo_corso .mne-filter-autocomplete-wrap,
body.tax-mne_tipo_corso .mne-multi-ssd-wrap,
body.post-type-archive-mne_corso .mne-filter-search-wrap,
body.post-type-archive-mne_corso .mne-filter-autocomplete-wrap,
.mne-sc-filters .mne-filter-search-wrap,
.mne-sc-filters .mne-filter-autocomplete-wrap {
  border: 1.5px solid #767676 !important;    /* 4.54:1 su bianco */
  background: #fff !important;
}
body.tax-mne_tipo_corso .mne-filter-search-wrap:focus-within,
body.tax-mne_tipo_corso .mne-filter-autocomplete-wrap:focus-within,
body.post-type-archive-mne_corso .mne-filter-search-wrap:focus-within,
.mne-sc-filters .mne-filter-search-wrap:focus-within {
  border-color: var(--mne-navy) !important;
  outline: 2px solid rgba(13,27,42,.2);
  outline-offset: 1px;
}
/* Placeholder e icona WCAG AA */
.mne-filter-search-wrap input::placeholder,
.mne-filter-autocomplete-wrap input::placeholder,
.mne-multi-ssd-wrap input::placeholder {
  color: #595959 !important; /* 7.0:1 su bianco — supera AA */
}
.mne-filter-search-wrap svg {
  color: #595959 !important;
}
/* Testo digitato */
.mne-filter-search-wrap input,
.mne-filter-autocomplete-wrap input,
.mne-multi-ssd-wrap input {
  color: #0d1b2a !important;  /* navy 17:1 su bianco */
}

/* WCAG — bottone "Cerca" gold: testo navy garantisce 7.6:1 ✓ */
/* WCAG — "Scopri il corso" su #f4f4f4: navy 15.8:1 ✓ */
/* WCAG — filtri bianchi: testo #1a1a1a 17.4:1 ✓ */

/* Fix: il blocco WCAG sopra (stessa specificità, dichiarato dopo) sovrascriveva lo sfondo
   del campo ricerca anche dentro l'hero navy, lasciando testo bianco su sfondo bianco.
   Selettore rinforzato per garantire priorità allo stile hero. */
.mne-archive-hero.mne-archive-hero .mne-filter-search-wrap,
.mne-archive-hero.mne-archive-hero .mne-filter-autocomplete-wrap {
  background: rgba(255,255,255,.12) !important;
  border-color: rgba(255,255,255,.3) !important;
}
.mne-archive-hero.mne-archive-hero .mne-filter-search-wrap input,
.mne-archive-hero.mne-archive-hero .mne-filter-autocomplete-wrap input {
  color: #fff !important;
}
.mne-archive-hero.mne-archive-hero .mne-filter-search-wrap input::placeholder,
.mne-archive-hero.mne-archive-hero .mne-filter-autocomplete-wrap input::placeholder {
  color: rgba(255,255,255,.55) !important;
}
.mne-archive-hero.mne-archive-hero .mne-filter-search-wrap svg,
.mne-archive-hero.mne-archive-hero .mne-filter-autocomplete-wrap svg {
  color: rgba(255,255,255,.6) !important;
}

/* Pulsante Bando di partecipazione */
.mne-bando-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin: 12px 20px 16px;
  padding: 11px 16px;
  background: #fff;
  border: 1.5px solid var(--mne-border);
  border-radius: 8px;
  font-size: 14px;
  font-weight: 600;
  color: var(--mne-navy);
  text-decoration: none;
  transition: border-color .15s, background .15s;
}
.mne-bando-btn:hover {
  border-color: var(--mne-navy);
  background: rgba(13,27,42,.04);
  color: var(--mne-navy);
}
.mne-bando-btn svg { flex-shrink: 0; color: var(--mne-navy); }

/* Dark mode */
:root[data-neve-theme="dark"] .mne-bando-btn,
body.mne-dark .mne-bando-btn {
  background: rgba(255,255,255,.06);
  border-color: rgba(255,255,255,.15);
  color: rgba(255,255,255,.85);
}
:root[data-neve-theme="dark"] .mne-bando-btn svg,
body.mne-dark .mne-bando-btn svg { color: rgba(255,255,255,.7); }
:root[data-neve-theme="dark"] .mne-bando-btn:hover,
body.mne-dark .mne-bando-btn:hover {
  border-color: var(--mne-gold);
  color: var(--mne-gold);
}

/* Dark mode — sfondo archivi e taxonomy */
:root[data-neve-theme="dark"] .mne-archive-page,
:root[data-neve-theme="dark"] .mne-tax-page,
body.mne-dark .mne-archive-page,
body.mne-dark .mne-tax-page {
  background: #060d14;
}
:root[data-neve-theme="dark"] .mne-wrap,
body.mne-dark .mne-wrap {
  background: transparent;
}
/* Card categoria dark mode */
:root[data-neve-theme="dark"] .mne-cat-card-cta,
body.mne-dark .mne-cat-card-cta { background: rgba(255,255,255,.04); }

/* Classi abilitanti front — dark mode */
:root[data-neve-theme="dark"] .mne-cc-table,
body.mne-dark .mne-cc-table { color: rgba(255,255,255,.85); }
:root[data-neve-theme="dark"] .mne-cc-table tr,
body.mne-dark .mne-cc-table tr { border-color: rgba(255,255,255,.08); }
:root[data-neve-theme="dark"] .mne-cc-table tr:nth-child(even),
body.mne-dark .mne-cc-table tr:nth-child(even) { background: rgba(255,255,255,.03); }

/* Classi concorso nella card (corsi speciali) */
.mne-card-classi-abilit { margin-bottom: 10px; }
.mne-card-classi-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin-top: 6px;
}
.mne-cc-badge-front {
  font-family: monospace;
  font-size: 11px;
  font-weight: 700;
  background: rgba(13,27,42,.08);
  color: var(--mne-navy);
  padding: 2px 7px;
  border-radius: 4px;
  white-space: nowrap;
  letter-spacing: .03em;
}
.mne-cc-badge-more {
  font-size: 11px;
  color: var(--mne-text-muted);
  padding: 2px 4px;
  align-self: center;
}
:root[data-neve-theme="dark"] .mne-cc-badge-front,
body.mne-dark .mne-cc-badge-front {
  background: rgba(255,255,255,.1);
  color: var(--mne-gold);
}

/* Pulsante Calendario — distinto dal Bando */
.mne-calendario-btn {
  background: rgba(201,168,76,.08) !important;
  border-color: var(--mne-gold) !important;
  color: var(--mne-navy) !important;
}
.mne-calendario-btn:hover {
  background: var(--mne-gold) !important;
  color: var(--mne-navy) !important;
}
.mne-calendario-btn svg { color: var(--mne-gold-dark); }
:root[data-neve-theme="dark"] .mne-calendario-btn,
body.mne-dark .mne-calendario-btn {
  background: rgba(201,168,76,.12) !important;
  border-color: var(--mne-gold) !important;
  color: var(--mne-gold) !important;
}

/* Prezzo nella card corsi */
.mne-card-prezzo {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  border-top: 1px solid var(--mne-border);
  flex-wrap: wrap;
}
.mne-card-prezzo-originale {
  font-size: 13px;
  color: var(--mne-text-muted);
  text-decoration: line-through;
}
.mne-card-prezzo-scontato {
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--mne-navy);
}
.mne-card-prezzo-scontato small {
  font-size: 12px;
  font-weight: 400;
  color: var(--mne-text-muted);
  margin-left: 2px;
}
.mne-card-sconto-badge {
  font-size: 11px;
  font-weight: 700;
  background: var(--mne-gold);
  color: var(--mne-navy);
  padding: 2px 7px;
  border-radius: 10px;
  margin-left: auto;
}
:root[data-neve-theme="dark"] .mne-card-prezzo-scontato,
body.mne-dark .mne-card-prezzo-scontato { color: #fff; }

/* Pulsante Scarica documentazione (Informazioni aggiuntive + altre sezioni che riusano lo stesso stile) */
.mne-info-doc-btn {
  background: rgba(13,27,42,.05) !important;
  border-color: var(--mne-navy) !important;
  color: var(--mne-navy) !important;
}
.mne-info-doc-btn:hover {
  background: var(--mne-navy) !important;
  color: #fff !important;
}
.mne-info-doc-btn svg { color: var(--mne-navy); }

:root[data-neve-theme="dark"] .mne-info-doc-btn,
body.mne-dark .mne-info-doc-btn {
  background: rgba(255,255,255,.06) !important;
  border-color: rgba(255,255,255,.2) !important;
  color: rgba(255,255,255,.8) !important;
}

/* Sedi — lista piatta (una sola voce): occupa tutta larghezza, nessun click */
.mne-sedi-accordion--flat {
  grid-template-columns: 1fr !important;
}
.mne-sedi-item--open {
  border-color: var(--mne-gold);
}
.mne-sedi-regione--static {
  background: var(--mne-navy);
  color: #fff;
  cursor: default;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 14px;
}
.mne-sedi-regione--static .mne-sedi-regione-nome { color: #fff; }
.mne-sedi-regione--static .mne-sedi-count {
  background: rgba(255,255,255,.2);
  color: rgba(255,255,255,.85);
}

/* Calcolatore costi Corsi Singoli (ID 179) */
.mne-cs-costi-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 14px;
  margin-bottom: 14px;
}
.mne-cs-costi-table tbody tr {
  border-bottom: 1px solid var(--mne-border);
}
.mne-cs-costi-table td {
  padding: 10px 12px;
  color: var(--mne-text);
}
.mne-cs-val {
  text-align: right;
  font-weight: 600;
  white-space: nowrap;
}
.mne-cs-totale-row {
  border-top: 2px solid var(--mne-navy);
  background: rgba(13,27,42,.03);
}
.mne-cs-totale {
  font-size: 1.2rem;
  color: var(--mne-navy);
}
.mne-cs-nota {
  font-size: 12px;
  color: var(--mne-text-muted);
  border-left: 3px solid var(--mne-gold);
  padding: 8px 12px;
  background: rgba(201,168,76,.06);
  border-radius: 0 6px 6px 0;
  margin: 0;
}
/* Dark mode */
:root[data-neve-theme="dark"] .mne-cs-totale-row,
body.mne-dark .mne-cs-totale-row { background: rgba(255,255,255,.04); }
:root[data-neve-theme="dark"] .mne-cs-totale,
body.mne-dark .mne-cs-totale { color: var(--mne-gold); }

/* Ridimensionamento codice in base alla lunghezza — mantiene su una riga */
.mne-codice--lg  { font-size: clamp(1.2rem, 3.2vw, 2.2rem) !important; letter-spacing: .04em; }
.mne-codice--xl  { font-size: clamp(1rem,   2.6vw, 1.8rem) !important; letter-spacing: .02em; }
.mne-codice--xxl { font-size: clamp(.85rem,  2vw,  1.5rem) !important; letter-spacing: .01em; }

@media (max-width: 768px) {
  .mne-codice--lg  { font-size: clamp(1.1rem, 5.5vw, 1.8rem) !important; }
  .mne-codice--xl  { font-size: clamp(.95rem, 4.5vw, 1.5rem) !important; }
  .mne-codice--xxl { font-size: clamp(.8rem,  3.8vw, 1.3rem) !important; }
}

/* ================================================================
   FIX OVERFLOW MOBILE — singolo corso
   ================================================================ */

/* Previene scroll orizzontale — solo sul singolo corso */
body.single-mne_corso {
  overflow-x: hidden;
}
/* Archivio e taxonomy: clip sul wrapper, non sul body (evita bug con flex/filtri) */
body.post-type-archive-mne_corso .mne-archive-page,
body.tax-mne_tipo_corso .mne-archive-page {
  overflow-x: clip;
}
/* Il .mne-wrap mantiene max-width:1160px */
body.single-mne_corso #mne-corso-single .mne-wrap,
body.post-type-archive-mne_corso .mne-wrap,
body.tax-mne_tipo_corso .mne-wrap {
  box-sizing: border-box;
}
/* Filtri: sempre visibili su mobile */
@media (max-width: 640px) {
  .mne-filters-grid {
    display: flex !important;
    visibility: visible !important;
  }
  .mne-filter-search-wrap,
  .mne-filter-autocomplete-wrap,
  .mne-multi-ssd-wrap {
    display: flex !important;
    visibility: visible !important;
    width: 100%;
    min-width: 0 !important;
    flex: none !important;
  }
  .mne-filter-btn,
  .mne-filter-reset {
    width: 100%;
    display: block !important;
  }
}

/* Topbar codice sconto — ridimensionamento su mobile per codici lunghi */
@media (max-width: 640px) {
  .mne-codice-topbar-inner {
    gap: 8px;
    padding: 0 4px;
  }
  .mne-codice-topbar-code {
    font-size: clamp(.9rem, 3.5vw, 1.3rem);
    letter-spacing: .04em;
    padding: 2px 10px;
    word-break: break-all;
    max-width: 100%;
  }
  .mne-codice-topbar-label { font-size: 12px; }
  .mne-codice-topbar-copy  { font-size: 12px; padding: 6px 12px; }
}

/* Tabella classi concorso — wrapper scroll orizzontale su mobile */
@media (max-width: 640px) {
  .mne-cc-section .mne-cc-table,
  .mne-corso-classi .mne-cc-table {
    display: block;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
}

/* Piano di studi — layout compatto su mobile con grid */
@media (max-width: 640px) {
  .mne-piano-table-wrap { border-radius: 6px; }
  /* Nasconde intestazione */
  .mne-piano-table thead { display: none; }
  /* Ogni riga diventa una card */
  .mne-piano-table,
  .mne-piano-table tbody { display: block; width: 100%; }
  .mne-piano-table tr {
    display: grid;
    grid-template-columns: 1fr auto;
    grid-template-rows: auto auto;
    grid-template-areas:
      "titolo titolo"
      "ssd    cfu";
    gap: 3px 8px;
    padding: 10px 12px;
    border-bottom: 1px solid var(--mne-border);
  }
  .mne-piano-table tbody tr:last-child { border-bottom: none; }
  /* Titolo — riga intera, testo che wrappa normalmente */
  .mne-piano-table td:first-child {
    grid-area: titolo;
    font-size: 13px;
    line-height: 1.4;
    padding: 0;
    border: none;
    word-break: break-word;
    color: var(--mne-text);
    width: auto;
    min-width: 0;
  }
  /* SSD — sotto a sinistra */
  .mne-piano-table .mne-piano-ssd {
    grid-area: ssd;
    display: block;
    font-size: 11px;
    white-space: normal;       /* permette wrapping su SSD molto lunghi */
    word-break: break-word;
    background: rgba(13,27,42,.06);
    border-radius: 3px;
    padding: 1px 6px;
    border: none;
    align-self: center;
    width: auto;
    min-width: 0;
  }
  /* CFU — sotto a destra */
  .mne-piano-table .mne-piano-cfu {
    grid-area: cfu;
    display: block;
    font-size: 12px;
    font-weight: 700;
    color: var(--mne-navy);
    padding: 0;
    border: none;
    text-align: right;
    align-self: center;
    white-space: nowrap;
    width: auto;
    min-width: 0;
  }
  /* Riga totale */
  .mne-piano-table tfoot { display: block; }
  .mne-piano-table tfoot tr {
    display: flex;
    justify-content: space-between;
    padding: 10px 12px;
    background: rgba(13,27,42,.04);
    border-top: 2px solid var(--mne-navy);
    border-bottom: none;
  }
  .mne-piano-table tfoot td { display: inline; border: none; padding: 0; }
  /* Dark mode */
  :root[data-neve-theme="dark"] .mne-piano-table .mne-piano-ssd,
  body.mne-dark .mne-piano-table .mne-piano-ssd {
    background: rgba(255,255,255,.1);
    color: rgba(255,255,255,.5);
  }
  :root[data-neve-theme="dark"] .mne-piano-table .mne-piano-cfu,
  body.mne-dark .mne-piano-table .mne-piano-cfu { color: #fff; }
}

/* Facts list: elementi che non escano dal viewport */
.mne-facts li {
  max-width: 100%;
  overflow-wrap: break-word;
  word-break: break-word;
}

/* Tabella 30CFU università — già ha wrapper ma assicuro max-width */
.mne-w30-table-wrap {
  max-width: 100%;
}

/* Prose e contenuto testo: sempre entro il container */
.mne-prose,
.mne-prose p,
.mne-prose li,
.mne-section {
  max-width: 100%;
  overflow-wrap: break-word;
  word-break: break-word;
}

/* Tabella costi Corsi Singoli */
@media (max-width: 640px) {
  .mne-cs-costi-table {
    font-size: 13px;
  }
  .mne-cs-totale { font-size: 1.1rem; }
}

/* Hero breadcrumb e titolo */
@media (max-width: 480px) {
  .mne-hero__title { font-size: clamp(1.3rem, 5.5vw, 2rem); }
  .mne-breadcrumb { font-size: 12px; overflow-x: hidden; white-space: nowrap; text-overflow: ellipsis; }
}

/* ================================================================
   WIDGET GUIDA ISCRIZIONI 30 CFU — [mne_guida_30cfu]
   ================================================================ */
.mne-guida-widget {
  background: #fff;
  border: 1px solid var(--mne-border);
  border-radius: 12px;
  box-shadow: 0 4px 20px rgba(13,27,42,.08);
  padding: 28px;
  max-width: 640px;
  margin: 24px auto;
  font-family: var(--mne-font-sans, Arial, sans-serif);
}
.mne-guida-widget h3 {
  color: var(--mne-navy);
  font-size: 1.2rem;
  font-weight: 700;
  margin: 0 0 6px;
}
.mne-guida-header p {
  color: #666;
  font-size: 14px;
  margin: 0 0 22px;
}
.mne-guida-field { margin-bottom: 18px; }
.mne-guida-label {
  display: block;
  font-weight: 700;
  font-size: 14px;
  color: #333;
  margin-bottom: 7px;
}
.mne-guida-select {
  width: 100%;
  padding: 10px 12px;
  border: 1px solid #ccc;
  border-radius: 6px;
  font-size: 14px;
  background: #fff;
  color: #333;
  cursor: pointer;
}
.mne-guida-select:focus { outline: 2px solid var(--mne-gold); border-color: var(--mne-gold); }
.mne-guida-btn {
  display: block;
  width: 100%;
  padding: 13px;
  background: var(--mne-navy);
  color: #fff;
  border: none;
  border-radius: 7px;
  font-size: 16px;
  font-weight: 700;
  cursor: pointer;
  transition: background .2s;
  font-family: inherit;
}
.mne-guida-btn:hover { background: var(--mne-gold); color: var(--mne-navy); }

/* Risultato */
.mne-guida-result {
  margin-top: 20px;
  padding: 18px 20px;
  border-radius: 8px;
  text-align: center;
}
.mne-guida-result--ok {
  background: rgba(16,185,129,.06);
  border: 1px solid rgba(16,185,129,.3);
}
.mne-guida-result--err {
  background: #fce8e6;
  border: 1px solid #f5c2c7;
  color: #c5221f;
}
.mne-guida-univ {
  font-size: 13px;
  font-weight: 600;
  color: var(--mne-navy);
  text-transform: uppercase;
  letter-spacing: .05em;
  margin-bottom: 4px;
}
.mne-guida-prezzo {
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--mne-navy);
  margin-bottom: 14px;
}
.mne-guida-codice-row {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 12px;
}
.mne-guida-codice-label {
  font-size: 12px;
  color: #666;
  text-transform: uppercase;
  letter-spacing: .06em;
}
.mne-guida-codice {
  font-family: var(--mne-font-serif, Georgia, serif);
  font-size: 1.6rem;
  font-weight: 700;
  color: var(--mne-gold);
  background: var(--mne-navy);
  padding: 4px 16px;
  border-radius: 6px;
  letter-spacing: .08em;
  word-break: break-all;
}
.mne-guida-copy-btn {
  background: rgba(13,27,42,.08);
  color: var(--mne-navy);
  border: 1px solid var(--mne-border);
  border-radius: 5px;
  padding: 5px 12px;
  font-size: 13px;
  cursor: pointer;
  font-family: inherit;
  transition: background .15s;
}
.mne-guida-copy-btn:hover { background: var(--mne-gold); color: var(--mne-navy); }
.mne-guida-buono {
  font-size: 14px;
  color: var(--mne-navy);
  margin-bottom: 8px;
  font-weight: 600;
}
.mne-guida-nota {
  font-size: 13px;
  color: #555;
  margin-bottom: 14px;
}
.mne-guida-iscriviti {
  display: inline-block;
  margin-top: 10px;
  padding: 11px 24px;
  background: var(--mne-navy);
  color: #fff !important;
  text-decoration: none !important;
  border-radius: 6px;
  font-size: 15px;
  font-weight: 700;
  transition: background .2s;
}
.mne-guida-iscriviti:hover { background: var(--mne-gold); color: var(--mne-navy) !important; }

/* Dark mode */
:root[data-neve-theme="dark"] .mne-guida-widget,
body.mne-dark .mne-guida-widget {
  background: rgba(255,255,255,.04);
  border-color: rgba(255,255,255,.1);
}
:root[data-neve-theme="dark"] .mne-guida-widget h3,
body.mne-dark .mne-guida-widget h3 { color: #fff; }
:root[data-neve-theme="dark"] .mne-guida-select,
body.mne-dark .mne-guida-select { background: rgba(255,255,255,.08); color: #fff; border-color: rgba(255,255,255,.2); }
:root[data-neve-theme="dark"] .mne-guida-copy-btn,
body.mne-dark .mne-guida-copy-btn { background: rgba(255,255,255,.08); color: #fff; border-color: rgba(255,255,255,.25); }
:root[data-neve-theme="dark"] .mne-guida-copy-btn:hover,
body.mne-dark .mne-guida-copy-btn:hover { background: var(--mne-gold); color: var(--mne-navy); }

@media (max-width: 480px) {
  .mne-guida-widget { padding: 18px; }
  .mne-guida-codice { font-size: 1.3rem; }
  .mne-guida-codice-row { flex-direction: column; gap: 8px; }
}

/* badge classi: sempre tutte visibili, nessun limite */
