/* ==========================================================================
   SocialPro — Design system 2026 "Rete"
   Livello grafico condiviso dalle pagine interne. Non modifica testi,
   contenuti dei corsi, annunci o funzionalità: ridisegna solo l'aspetto.
   Palette: verde petrolio (fiducia) · corallo (calore umano) · sole (energia)
   ========================================================================== */

body.academic-ui {
  /* Brand */
  --sp-ink: #0E3B3A;
  --sp-ink-2: #155654;
  --sp-ink-3: #1D6B67;
  --sp-coral: #C8432A;
  --sp-coral-dark: #A9361F;
  --sp-coral-bright: #FF6B4A;
  --sp-sun: #FFC857;
  --sp-sun-soft: #FFF3D6;
  --sp-mint: #E3F1EE;
  --sp-blush: #FDE9E3;
  /* Neutri */
  --sp-paper: #FBF8F3;
  --sp-sand: #F3EDE3;
  --sp-surface: #FFFFFF;
  --sp-line: #E7DFD3;
  --sp-line-strong: #D6CCBC;
  --sp-text: #1F2D2C;
  --sp-muted: #5A6866;
  /* Forme */
  --sp-r-sm: 10px; --sp-r-md: 16px; --sp-r-lg: 22px; --sp-r-xl: 32px;
  --sp-shadow-sm: 0 1px 2px rgba(14,59,58,.06), 0 6px 18px -12px rgba(14,59,58,.22);
  --sp-shadow-md: 0 2px 4px rgba(14,59,58,.05), 0 22px 44px -26px rgba(14,59,58,.38);
  --sp-display: 'Bricolage Grotesque', 'Figtree', system-ui, sans-serif;
  --sp-body: 'Figtree', system-ui, -apple-system, 'Segoe UI', sans-serif;

  /* Mappatura delle variabili storiche usate da style.css e corsi-premium.css */
  --primary: var(--sp-ink); --primary-light: var(--sp-ink-3); --primary-dark: #082826;
  --terra: var(--sp-coral); --terra-dark: var(--sp-coral-dark);
  --accent: var(--sp-coral); --accent-hover: var(--sp-coral-dark); --accent-light: var(--sp-blush);
  --bg-light: var(--sp-sand); --bg-white: var(--sp-surface); --bg-cream: var(--sp-paper);
  --text-dark: var(--sp-text); --text-light: var(--sp-muted); --text-muted: var(--sp-muted);
  --border: var(--sp-line); --border-light: var(--sp-line); --border-accent: #F2B5A6;
  --radius-sm: var(--sp-r-sm); --radius-md: var(--sp-r-md); --radius-lg: var(--sp-r-lg); --radius-xl: var(--sp-r-xl);
  --shadow-card: var(--sp-shadow-sm); --shadow-card-hover: var(--sp-shadow-md);
  --course-navy: var(--sp-ink); --course-navy-2: var(--sp-ink-2); --course-navy-dark: #082826;
  --course-terra: var(--sp-coral); --course-terra-dark: var(--sp-coral-dark);
  --course-gold: var(--sp-sun); --course-gold-light: var(--sp-sun-soft);
  --course-cream: var(--sp-paper); --course-paper: var(--sp-surface); --course-sand: var(--sp-sand);
  --course-ink: var(--sp-text); --course-prose: #33423F; --course-muted: var(--sp-muted);
  --course-line: var(--sp-line); --course-green: var(--sp-ink-3);
  --course-shadow: var(--sp-shadow-md);

  background: var(--sp-paper) !important;
  color: var(--sp-text);
  font-family: var(--sp-body);
  font-size: 1rem; line-height: 1.65;
  -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility;
}
body.academic-ui.dark-mode {
  --sp-paper: #0B1F1E; --sp-sand: #12302E; --sp-surface: #102826; --sp-line: #24443F; --sp-line-strong: #2F5650;
  --sp-text: #ECF3F1; --sp-muted: #A9C0BB; --sp-mint: #163B38; --sp-blush: #3A2420; --sp-sun-soft: #3A3020;
  --primary: #E3F1EE; color-scheme: dark;
}
.academic-ui ::selection { background: var(--sp-sun); color: var(--sp-ink); }
.academic-ui :is(h1,h2,h3,h4) { font-family: var(--sp-display); letter-spacing: -.02em; }
.academic-ui .wrap,
.academic-ui .container { max-width: 1280px; }
.academic-ui a { text-underline-offset: 3px; }

/* --------------------------------------------------------------------------
   Header
   -------------------------------------------------------------------------- */
.academic-ui > header {
  background: rgba(251,248,243,.86) !important;
  border-bottom: 1px solid var(--sp-line) !important;
  box-shadow: none !important;
  -webkit-backdrop-filter: saturate(160%) blur(16px); backdrop-filter: saturate(160%) blur(16px);
}
.academic-ui header > nav { gap: 22px !important; min-height: 78px; padding-top: 10px !important; padding-bottom: 10px !important; }
.academic-ui header > nav > a img { width: 190px !important; height: auto !important; }
.academic-ui header .nav-mid { gap: 18px !important; }
.academic-ui header .nav-mid > div:first-child {
  gap: 2px !important; padding: 5px; border-radius: 999px;
  background: var(--sp-surface); border: 1px solid var(--sp-line); box-shadow: var(--sp-shadow-sm);
}
.academic-ui header .nav-mid > div:first-child .nav-link {
  padding: 8px 14px !important; border-radius: 999px; font-size: .9rem !important; font-weight: 600 !important;
  color: var(--sp-text) !important; transition: background .2s, color .2s;
}
.academic-ui header .nav-mid > div:first-child .nav-link:hover { background: var(--sp-mint); color: var(--sp-ink) !important; }
.academic-ui header .nav-mid > div:first-child .nav-link[aria-current="page"] { background: var(--sp-ink); color: #fff !important; box-shadow: none; }
.academic-ui header .nav-mid > div:last-child .nav-link { color: var(--sp-ink) !important; font-weight: 700 !important; }
.academic-ui header .nav-mid > div:last-child .nav-link:hover { color: var(--sp-coral) !important; }
.academic-ui header .btn-terra {
  background: var(--sp-coral) !important; border-radius: 999px !important; font-weight: 700 !important;
  box-shadow: 0 10px 22px -12px rgba(200,67,42,.9) !important;
}
.academic-ui header .btn-terra:hover { background: var(--sp-coral-dark) !important; }
.academic-ui header .hamburger { background: var(--sp-ink) !important; border-radius: 14px !important; }
.academic-ui #mobileMenu {
  background: var(--sp-paper) !important; border-color: var(--sp-line) !important;
  max-height: calc(100dvh - 78px); overflow-y: auto; overscroll-behavior: contain;
}
.academic-ui #mobileMenu a { color: var(--sp-ink) !important; border-radius: 14px !important; }
.academic-ui #mobileMenu a:hover,
.academic-ui #mobileMenu a[aria-current="page"] { background: var(--sp-mint) !important; }
.academic-ui #mobileMenu a[href$="#login"] { border-color: var(--sp-line-strong) !important; background: var(--sp-surface); }
.academic-ui #mobileMenu a[href$="#register"] { background: var(--sp-coral) !important; color: #fff !important; }

/* Briciole di pane e accessibilità */
.academic-trail { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; padding-block: 14px; font-size: .8125rem; color: var(--sp-muted, #5A6866); }
.academic-trail a { text-decoration: none; color: var(--sp-ink, #0E3B3A); font-weight: 700; display: inline-flex; align-items: center; gap: 6px; }
.academic-trail a::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--sp-coral, #C8432A); }
.academic-trail a:hover { color: var(--sp-coral, #C8432A); }
.academic-skip { position: fixed; top: 12px; left: 16px; transform: translateY(-180%); background: #0E3B3A; color: #fff; padding: 12px 20px; border-radius: 999px; z-index: 10000; font-weight: 700; }
.academic-skip:focus { transform: none; }
.academic-ui #academic-content { scroll-margin-top: 110px; }
.academic-ui :focus-visible { outline: 3px solid var(--sp-coral); outline-offset: 3px; border-radius: 6px; }

/* --------------------------------------------------------------------------
   Hero delle pagine interne: pannello arrotondato con forme organiche
   -------------------------------------------------------------------------- */
.academic-ui :is(.sp-hero,.page-header,.corsi-hero,.lavoro-hero,.annunci-hero) {
  position: relative; isolation: isolate; overflow: hidden;
  width: min(1280px, calc(100% - 32px)); margin: 4px auto 0 !important;
  border-radius: var(--sp-r-xl) !important;
  background:
    radial-gradient(520px 320px at 92% 8%, rgba(255,200,87,.22), transparent 70%),
    radial-gradient(560px 360px at 4% 110%, rgba(255,107,74,.28), transparent 70%),
    linear-gradient(135deg, #0E3B3A 0%, #155654 100%) !important;
  color: #fff !important; border: 0 !important;
  padding: clamp(40px, 6vw, 72px) 0 clamp(40px, 5vw, 64px) !important;
  min-height: 0 !important; text-align: left !important;
}
.academic-ui :is(.sp-hero,.page-header,.corsi-hero,.lavoro-hero,.annunci-hero)::after {
  content: "" !important; display: block !important; position: absolute; z-index: -1; pointer-events: none;
  right: clamp(-120px, -6vw, -40px); bottom: -140px; width: 360px; height: 360px; border-radius: 50%;
  border: 46px solid rgba(255,255,255,.06); background: none !important;
}
.academic-ui :is(.sp-hero,.page-header,.corsi-hero,.lavoro-hero,.annunci-hero)::before { display: none !important; }
.academic-ui :is(.sp-hero-inner,.corsi-hero-inner,.annunci-hero-inner) { text-align: left !important; }
.academic-ui :is(.sp-hero,.corsi-hero,.annunci-hero) > :is(.container,.wrap,.sp-hero-inner,.corsi-hero-inner,.annunci-hero-inner) { padding-left: clamp(24px, 5vw, 64px) !important; padding-right: clamp(24px, 5vw, 64px) !important; }
.academic-ui .page-header > .container { padding-left: clamp(24px, 5vw, 64px) !important; padding-right: clamp(24px, 5vw, 64px) !important; }
.academic-ui .lavoro-hero > .wrap { text-align: left !important; padding: 0 clamp(24px, 5vw, 64px) !important; }
.academic-ui :is(.sp-hero-bg,.corsi-hero-bg,.annunci-hero-bg) { background: transparent !important; }
.academic-ui .annunci-hero-bg::after { display: none !important; }
.academic-ui .annunci-hero h1 { text-shadow: none !important; }
.academic-ui .page-header .academic-line { margin-left: 0 !important; }
.academic-ui :is(h1,h2,h3)[style*="italic"] { font-style: normal !important; }
.academic-ui :is(h1,h2) em { font-style: normal; }
.academic-ui .corsi-hero-bg::after { display: none !important; }
.academic-ui :is(.sp-hero-orb,.corsi-hero-orb) { opacity: 0 !important; pointer-events: none; }
.academic-ui :is(.sp-hero-title,.page-header h1,.corsi-hero-title,.lavoro-hero-title,.annunci-hero h1) {
  font-family: var(--sp-display) !important; font-weight: 700 !important; font-style: normal !important;
  font-size: clamp(2.5rem, 5.4vw, 4.4rem) !important; line-height: 1.02 !important; letter-spacing: -.035em !important;
  color: #fff !important; -webkit-text-fill-color: #fff !important; text-shadow: none !important; background: none !important;
  margin: 16px 0 14px !important; max-width: 16ch; text-wrap: balance;
}
.academic-ui :is(.sp-hero-title,.corsi-hero-title,.lavoro-hero-title,.page-header h1,.annunci-hero h1) em {
  font-style: normal !important; font-weight: 700 !important; color: var(--sp-sun) !important; -webkit-text-fill-color: var(--sp-sun) !important; background: none !important;
}
.academic-ui :is(.sp-hero-badge,.corsi-hero-badge,.lavoro-hero-badge,.annunci-hero-badge,.page-header .section-subtitle) {
  display: inline-flex !important; align-items: center; gap: 8px;
  background: rgba(255,255,255,.1) !important; color: #fff !important;
  border: 1px solid rgba(255,255,255,.22) !important; border-radius: 999px !important; box-shadow: none !important;
  padding: 7px 14px !important; margin-bottom: 0 !important;
  font-size: .78rem !important; font-weight: 700 !important; letter-spacing: .08em !important; text-transform: uppercase;
}
.academic-ui :is(.sp-hero-badge,.corsi-hero-badge,.lavoro-hero-badge,.annunci-hero-badge) i { color: var(--sp-sun) !important; }
.academic-ui :is(.sp-hero-sub,.corsi-hero-sub,.lavoro-hero-sub,.annunci-hero-sub,.page-header p) {
  color: #D4E6E2 !important; font-size: 1.125rem !important; line-height: 1.7 !important;
  max-width: 720px; margin-left: 0 !important; margin-right: 0 !important; opacity: 1;
}
.academic-ui :is(.sp-hero-sub,.corsi-hero-sub,.lavoro-hero-sub,.annunci-hero-sub,.page-header p) strong { color: #fff !important; }
.academic-ui :is(.sp-hero-meta,.corsi-hero-meta,.lavoro-hero-meta) { justify-content: flex-start !important; margin-top: 10px; gap: 10px; flex-wrap: wrap; }
.academic-ui :is(.sp-hero-meta,.corsi-hero-meta,.lavoro-hero-meta) span {
  background: rgba(255,255,255,.08) !important; border: 1px solid rgba(255,255,255,.18) !important; border-radius: 999px !important;
  color: #F1F7F5 !important; box-shadow: none !important; font-size: .875rem !important; font-weight: 600 !important;
}
.academic-ui :is(.sp-hero-meta,.corsi-hero-meta,.lavoro-hero-meta) i { color: var(--sp-sun) !important; }
.academic-ui .lavoro-hero .btn-terra { background: var(--sp-sun) !important; color: var(--sp-ink) !important; box-shadow: none !important; font-weight: 700 !important; }
.academic-ui .lavoro-hero .btn-terra:hover { background: #FFD883 !important; }

/* --------------------------------------------------------------------------
   Titoli di sezione
   -------------------------------------------------------------------------- */
.academic-ui :is(.section-title h2,.sec-h2) {
  font-family: var(--sp-display) !important; color: var(--sp-ink) !important; font-weight: 700 !important;
  letter-spacing: -.03em; text-shadow: none; font-size: clamp(1.9rem, 3.4vw, 2.9rem); line-height: 1.1;
  background: none; -webkit-text-fill-color: currentColor;
}
.academic-ui .section-title p { color: var(--sp-muted); font-size: 1.0625rem; }
.academic-ui .section-subtitle {
  display: inline-flex; align-items: center; gap: 8px; border-radius: 999px !important;
  color: var(--sp-coral) !important; background: var(--sp-blush) !important; border: 0 !important;
  padding: 6px 14px !important; font-size: .78rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
}
.academic-ui .academic-line { width: 56px; height: 6px; border-radius: 999px; background: linear-gradient(90deg, var(--sp-coral) 0 50%, var(--sp-sun) 50% 100%) !important; }
.academic-ui .page-title { color: var(--sp-ink) !important; font-family: var(--sp-display) !important; font-weight: 700 !important; letter-spacing: -.035em !important; font-style: normal !important; }
.academic-ui .page-title em { color: var(--sp-coral) !important; font-style: normal !important; }
.academic-ui .section-alt { background: var(--sp-sand) !important; }

/* --------------------------------------------------------------------------
   Card
   -------------------------------------------------------------------------- */
.academic-ui :is(.card-3d:not(.course-sector-card),.feature-item,.course-card,.lesson-card,.material-card,.discussion-card,.news-card,.article-card,.dashboard-card,.resource-card,.region-card,.auth-container,.reset-card,.supervision-card,.filter-container,.live-news-card,.profession-section,.news-group,.dashboard-panel,.portale-card,.job-card) {
  background: var(--sp-surface) !important; border: 1px solid var(--sp-line) !important;
  border-radius: var(--sp-r-lg) !important; box-shadow: var(--sp-shadow-sm) !important;
}
.academic-ui :is(.card-3d:not(.course-sector-card),.discussion-card,.news-card,.article-card,.region-card,.live-news-card,.portale-card,.job-card) { transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.academic-ui :is(.card-3d:not(.course-sector-card),.discussion-card,.news-card,.article-card,.region-card,.live-news-card,.portale-card,.job-card):hover {
  border-color: var(--sp-line-strong) !important; box-shadow: var(--sp-shadow-md) !important; transform: translateY(-4px);
}
.academic-ui :is(.card-3d:not(.course-sector-card),.filter-container,.profession-section)::before {
  background: linear-gradient(90deg, var(--sp-coral), var(--sp-sun)) !important;
}
.academic-ui :is(.card-3d:not(.course-sector-card),.news-card,.article-card,.live-news-card,.discussion-card) h3 { font-family: var(--sp-display); font-weight: 700; letter-spacing: -.02em; color: var(--sp-ink); }
.academic-ui :is(.card-3d p,.live-news-card h3,.profession-section-header p,.region-card p) { color: var(--sp-muted); }
.academic-ui :is(.live-news-card span,.btn-text) { color: var(--sp-coral) !important; font-weight: 700; }
.academic-ui :is(.news-card-top,.dashboard-action-icon) { background: var(--sp-ink) !important; }
.academic-ui :is(.news-card-top,.dashboard-action-icon) i { color: var(--sp-sun) !important; }
.academic-ui :is(.card-icon,.bento-icon,.region-card-title i) {
  background: var(--sp-mint) !important; color: var(--sp-ink) !important; border-color: transparent !important; border-radius: 14px !important;
}
.academic-ui .news-badge, .academic-ui .tag, .academic-ui .job-tag {
  background: var(--sp-sun-soft) !important; color: #7A5200 !important; border: 0 !important; border-radius: 999px !important; font-weight: 700;
}

/* --------------------------------------------------------------------------
   Bottoni
   -------------------------------------------------------------------------- */
.academic-ui :is(.btn,.btn-terra,.btn-navy,.btn-outline,.btn-outline-light,.btn-accent) {
  border-radius: 999px !important; box-shadow: none !important; font-weight: 700 !important; font-size: .9375rem;
  transition: transform .2s ease, background .2s ease, color .2s ease, border-color .2s ease;
}
.academic-ui :is(.btn,.btn-terra,.btn-navy,.btn-accent):hover { transform: translateY(-2px); }
.academic-ui :is(.btn-terra,.btn-primary,.btn-accent) { color: #fff !important; background: var(--sp-coral) !important; border-color: var(--sp-coral) !important; }
.academic-ui :is(.btn-terra,.btn-primary,.btn-accent):hover { background: var(--sp-coral-dark) !important; border-color: var(--sp-coral-dark) !important; }
.academic-ui .btn-navy { color: #fff !important; background: var(--sp-ink) !important; }
.academic-ui .btn-outline { color: var(--sp-ink) !important; background: transparent !important; border: 1.5px solid var(--sp-line-strong) !important; }
.academic-ui .btn-outline:hover { border-color: var(--sp-ink) !important; background: var(--sp-surface) !important; }
.academic-ui .btn-outline-light { color: #fff !important; background: transparent !important; border: 1.5px solid rgba(255,255,255,.4) !important; }
.academic-ui .btn-outline-light:hover { background: rgba(255,255,255,.1) !important; }

/* --------------------------------------------------------------------------
   Filtri e moduli
   -------------------------------------------------------------------------- */
.academic-ui .filter-container { justify-content: flex-start; gap: 16px; padding: 22px 24px !important; overflow: hidden; }
.academic-ui .filters { border-radius: 999px; background: var(--sp-surface); border: 1px solid var(--sp-line); box-shadow: var(--sp-shadow-sm); margin-left: 0 !important; padding: 5px !important; gap: 4px !important; }
.academic-ui .filter-btn { border-radius: 999px !important; color: var(--sp-ink) !important; background: transparent !important; box-shadow: none !important; font-weight: 700 !important; border: 0 !important; }
.academic-ui .filter-btn:hover { background: var(--sp-mint) !important; }
.academic-ui .filter-btn.active { color: #fff !important; background: var(--sp-ink) !important; }
.academic-ui :is(.field,.auth-field,.form-control,.region-select,.forum-field,.tutela-field,.admin-search) {
  border-radius: 14px !important; border: 1.5px solid var(--sp-line-strong) !important;
  background-color: var(--sp-surface) !important; color: var(--sp-text) !important; font-size: 1rem !important; font-family: var(--sp-body) !important;
}
.academic-ui :is(.field,.auth-field,.form-control,.region-select,.forum-field,.tutela-field,.admin-search):focus {
  outline: none; border-color: var(--sp-ink-3) !important; box-shadow: 0 0 0 4px rgba(29,107,103,.16) !important;
}
.academic-ui :is(.lbl,.auth-field-row label) { color: var(--sp-ink); font-size: .875rem; font-weight: 700; }
.academic-ui .auth-tabs { border-radius: 999px; background: var(--sp-sand); padding: 5px; border: 0 !important; gap: 4px; }
.academic-ui .auth-tab { font-size: 1rem; border-radius: 999px !important; border: 0 !important; font-weight: 700; color: var(--sp-muted); }
.academic-ui .auth-tab.active { color: #fff !important; background: var(--sp-ink) !important; }
.academic-ui :is(.info-band,.auth-note,.note-box) {
  border-radius: var(--sp-r-md) !important; border: 1px solid #F6D9A0 !important; background: var(--sp-sun-soft) !important; color: var(--sp-text);
}
.academic-ui .info-band { border-left: 6px solid var(--sp-sun) !important; padding: 18px 22px !important; }
.academic-ui .info-band strong { color: var(--sp-ink) !important; }

/* --------------------------------------------------------------------------
   Catalogo corsi
   -------------------------------------------------------------------------- */
.academic-ui .area-buttons { background: var(--sp-sand) !important; border: 1px solid var(--sp-line) !important; border-radius: var(--sp-r-lg) !important; box-shadow: none !important; }
.academic-ui .area-buttons-header { color: var(--sp-ink); }
.academic-ui .area-buttons-header i { color: var(--sp-coral); }
.academic-ui .area-btn { color: var(--sp-ink) !important; border: 1px solid var(--sp-line) !important; border-radius: 999px !important; background: var(--sp-surface) !important; box-shadow: none !important; }
.academic-ui .area-btn i { color: var(--sp-coral) !important; }
.academic-ui .area-btn:hover { color: #fff !important; background: var(--sp-ink) !important; border-color: var(--sp-ink) !important; }
.academic-ui .area-btn:hover i { color: var(--sp-sun) !important; }
.academic-ui .course-sector-card { border-radius: var(--sp-r-lg) !important; box-shadow: var(--sp-shadow-sm) !important; }
.academic-ui .course-sector-card::after { border-radius: 0 !important; }
.academic-ui .sector-eyebrow { border-radius: 999px !important; color: var(--sp-sun) !important; border-color: rgba(255,200,87,.45) !important; }
.academic-ui .corsi-hero + .section-padding { padding-top: 48px !important; }

.academic-ui .catalog-toolbar {
  display: flex; align-items: flex-end; justify-content: space-between; gap: 32px;
  margin: 0 0 28px; padding-bottom: 24px; border-bottom: 1px dashed var(--sp-line-strong);
}
.academic-ui .catalog-kicker {
  display: inline-flex; margin: 0 0 10px; padding: 5px 12px; border-radius: 999px; background: var(--sp-blush);
  color: var(--sp-coral); font-size: .75rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase;
}
.academic-ui .catalog-intro h2 {
  margin: 0 0 8px; color: var(--sp-ink); font-family: var(--sp-display);
  font-weight: 700; font-size: clamp(2rem, 3vw, 2.6rem); letter-spacing: -.035em; line-height: 1.06;
}
.academic-ui .catalog-intro p:last-child { margin: 0; max-width: 46ch; color: var(--sp-muted); }
.academic-ui .catalog-toolbar .filters { margin: 0 !important; width: auto !important; flex: 0 0 auto; }
.academic-ui .catalog { display: grid; gap: 26px; }
.academic-ui .profession {
  display: grid; grid-template-columns: 280px minmax(0, 1fr);
  background: var(--sp-surface); border: 1px solid var(--sp-line); border-radius: var(--sp-r-xl); overflow: hidden; box-shadow: var(--sp-shadow-sm);
}
.academic-ui .profession.is-hidden { display: none !important; }
.academic-ui .profession-media { position: relative; min-height: 100%; background: var(--sp-ink); padding: 12px; }
.academic-ui .profession-media img { width: 100%; height: 100%; object-fit: cover; min-height: 280px; border-radius: 22px; }
.academic-ui .profession-media p {
  position: absolute; left: 24px; bottom: 24px; margin: 0; padding: 7px 13px; border-radius: 999px;
  background: var(--sp-sun); color: var(--sp-ink); font-size: .72rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase;
}
.academic-ui .profession:nth-of-type(3n+2) .profession-media { background: var(--sp-coral); }
.academic-ui .profession:nth-of-type(3n+3) .profession-media { background: #E9A93A; }
.academic-ui .profession-body { padding: 30px 30px 24px; }
.academic-ui .profession-body h3 {
  margin: 0 0 8px; color: var(--sp-ink); font-family: var(--sp-display);
  font-weight: 700; font-size: clamp(1.7rem, 2.4vw, 2.2rem); letter-spacing: -.035em;
}
.academic-ui .profession-body > p { margin: 0 0 18px; max-width: 62ch; color: var(--sp-muted); }
.academic-ui .area-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.academic-ui .area-grid-tools { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.academic-ui .catalog-tools-label {
  margin: 20px 0 10px; color: var(--sp-muted); font-size: .75rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase;
}
.academic-ui .area-card {
  display: flex; align-items: center; gap: 12px; width: 100%; min-height: 72px;
  padding: 12px 14px; text-align: left; cursor: pointer; color: var(--sp-ink);
  background: var(--sp-paper); border: 1px solid var(--sp-line); border-radius: var(--sp-r-md);
  font: inherit; transition: transform .2s ease, background .2s ease, border-color .2s ease, box-shadow .2s ease;
}
.academic-ui .area-card i {
  display: grid; place-items: center; flex: 0 0 38px; width: 38px; height: 38px;
  background: var(--sp-mint); color: var(--sp-ink); border-radius: 12px;
}
.academic-ui .area-card-copy { min-width: 0; }
.academic-ui .area-card strong { display: block; font-size: .95rem; font-weight: 700; line-height: 1.3; }
.academic-ui .area-card small { display: block; margin-top: 3px; color: var(--sp-muted); font-size: .8rem; line-height: 1.4; }
.academic-ui .area-card:hover { background: var(--sp-surface); border-color: var(--sp-line-strong); box-shadow: var(--sp-shadow-sm); transform: translateY(-2px); }
.academic-ui .area-card:hover i { background: var(--sp-coral); color: #fff; }
.academic-ui .area-card-tool { background: var(--sp-ink); border-color: var(--sp-ink); color: #fff; }
.academic-ui .area-card-tool small { color: #BFD6D2; }
.academic-ui .area-card-tool i { background: var(--sp-sun); color: var(--sp-ink); }
.academic-ui .area-card-tool:hover { background: var(--sp-ink-2); border-color: var(--sp-ink-2); }
.academic-ui .area-card-tool:hover i { background: var(--sp-sun); color: var(--sp-ink); }

/* Lavoro: filtri su griglia */
.academic-ui .filter-container {
  display: grid !important; grid-template-columns: auto minmax(160px, 1fr) auto minmax(160px, 1fr) auto minmax(180px, 1.1fr);
  align-items: center; gap: 10px 14px;
}
.academic-ui .profession-section::before { width: 6px !important; }

/* --------------------------------------------------------------------------
   Modali dei corsi (struttura; i contenuti restano invariati)
   -------------------------------------------------------------------------- */
.academic-ui .modal { background: rgba(8,32,31,.72) !important; }
.academic-ui .modal-content,
.academic-ui .modal-content[style] { border-radius: 28px !important; background: var(--sp-surface) !important; }
.academic-ui .modal-header,
.academic-ui .modal-header[style] {
  background:
    radial-gradient(420px 220px at 95% 0%, rgba(255,200,87,.25), transparent 70%),
    radial-gradient(420px 260px at 0% 120%, rgba(255,107,74,.3), transparent 70%),
    linear-gradient(135deg, #0E3B3A, #155654) !important;
}
.academic-ui .modal-header::after { background: linear-gradient(90deg, var(--sp-coral-bright), var(--sp-sun)) !important; width: 80px !important; }
.academic-ui .modal-header :is(h1,h2,h3) { font-family: var(--sp-display) !important; font-weight: 700 !important; letter-spacing: -.025em !important; }
.academic-ui .modal-close { border-radius: 999px !important; }
.academic-ui .modal-tab-nav { gap: 6px !important; }
.academic-ui .modal-tab-btn { border-radius: 999px !important; font-family: var(--sp-body) !important; font-weight: 700 !important; }
.academic-ui .modal-tab-btn.active { background: var(--sp-ink) !important; color: #fff !important; border-color: var(--sp-ink) !important; }
.academic-ui :is(.study-card,.video-card) { border-radius: var(--sp-r-md) !important; }
.academic-ui .study-card-icon { border-radius: 14px !important; }

/* --------------------------------------------------------------------------
   Pagine specifiche
   -------------------------------------------------------------------------- */
.academic-ui .mission-grid img { border-radius: var(--sp-r-xl) !important; box-shadow: var(--sp-shadow-md) !important; }
.academic-ui .mission-grid > div:last-child > div { background: var(--sp-mint) !important; border-radius: var(--sp-r-lg) !important; }
.academic-ui .valori-grid > div { background: var(--sp-surface) !important; border-radius: var(--sp-r-lg) !important; border: 1px solid var(--sp-line) !important; box-shadow: var(--sp-shadow-sm); }
.academic-ui .valori-grid > div > div { background: var(--sp-blush) !important; color: var(--sp-coral) !important; border-radius: 14px !important; }
.academic-ui .valori-grid > div:nth-child(2) > div { background: var(--sp-mint) !important; color: var(--sp-ink) !important; }
.academic-ui .valori-grid > div:nth-child(3) > div { background: var(--sp-sun-soft) !important; color: #7A5200 !important; }
.academic-ui .quote-band h2 { font-weight: 600 !important; letter-spacing: -.025em; }
.academic-ui .contact-grid > div { min-width: 0; }
.academic-ui .contact-grid > div:last-child,
.academic-ui .contact-grid > div:first-child > div {
  background: var(--sp-surface) !important; border: 1px solid var(--sp-line) !important;
  border-radius: var(--sp-r-lg) !important; box-shadow: var(--sp-shadow-sm) !important;
}
.academic-ui .contact-grid a { overflow-wrap: anywhere; }
.academic-ui .dashboard-stat { border-radius: var(--sp-r-md) !important; }

/* Articolo lungo (educazione) */
.academic-ui .shell { max-width: 1080px; }
.academic-ui .shell .hero {
  border-radius: var(--sp-r-xl); color: #fff; box-shadow: none;
  background: radial-gradient(420px 260px at 100% 0%, rgba(255,200,87,.22), transparent 70%), linear-gradient(135deg, #0E3B3A, #155654) !important;
}
.academic-ui .shell .hero h1 { font-family: var(--sp-display); font-weight: 700; line-height: 1.1; letter-spacing: -.03em; }
.academic-ui .shell .eyebrow { color: var(--sp-sun) !important; }
.academic-ui .article { border-radius: var(--sp-r-xl); box-shadow: var(--sp-shadow-sm); background: var(--sp-surface); border: 1px solid var(--sp-line); }
.academic-ui .article-inner { padding: clamp(24px, 5vw, 60px); }
.academic-ui .article-text { color: var(--sp-text); font-family: var(--sp-body); font-size: 1.125rem; line-height: 1.8; }
.academic-ui .article-text :is(h2,h3) { color: var(--sp-ink); }

/* --------------------------------------------------------------------------
   Footer
   -------------------------------------------------------------------------- */
.academic-ui footer {
  position: relative; overflow: hidden; isolation: isolate;
  background: #0E3B3A !important; color: #BFD6D2 !important; border-top: 0 !important;
  border-radius: 32px 32px 0 0; margin-top: 40px;
}
.academic-ui footer::before {
  content: ""; position: absolute; z-index: -1; right: -120px; top: -160px; width: 420px; height: 420px; border-radius: 50%;
  background: radial-gradient(circle, rgba(255,200,87,.16), transparent 65%);
}
.academic-ui footer img[src*="logo"] { height: auto !important; width: 200px !important; }
.academic-ui footer p, .academic-ui footer li, .academic-ui footer .foot-link { color: #BFD6D2 !important; }
.academic-ui footer .foot-link:hover { color: var(--sp-sun) !important; }
.academic-ui footer h4 { color: var(--sp-sun) !important; font-family: var(--sp-body) !important; letter-spacing: .12em !important; }
.academic-ui footer .soc { background: rgba(255,255,255,.08) !important; color: var(--sp-sun) !important; border-radius: 999px !important; }
.academic-ui footer .soc:hover { background: var(--sp-coral) !important; color: #fff !important; }
.academic-ui footer .copyright-row, .academic-ui footer .copyright-row * { color: #9DBAB5 !important; }
.academic-ui footer :focus-visible { outline-color: var(--sp-sun); }

/* --------------------------------------------------------------------------
   Responsive
   -------------------------------------------------------------------------- */
@media (max-width: 1190px) {
  .academic-ui header .nav-mid { display: none !important; }
  .academic-ui header .hamburger { display: inline-flex !important; }
  .academic-ui #mobileMenu[style*="block"] { display: block !important; }
}
@media (min-width: 1191px) { .academic-ui #mobileMenu { display: none !important; } }
@media (max-width: 980px) {
  .academic-ui .catalog-toolbar { flex-direction: column; align-items: stretch; }
  .academic-ui .catalog-toolbar .filters { width: 100% !important; }
  .academic-ui .profession { grid-template-columns: 1fr; }
  .academic-ui .profession-media img { min-height: 180px; max-height: 220px; }
  .academic-ui .area-grid, .academic-ui .area-grid-tools { grid-template-columns: 1fr; }
  .academic-ui .filter-container { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .academic-ui { overflow-x: hidden; }
  .academic-ui .wrap, .academic-ui .container { padding-left: 16px; padding-right: 16px; }
  .academic-ui header > nav { min-height: 68px; }
  .academic-ui header > nav > a img { width: 164px !important; }
  .academic-ui .academic-trail { font-size: .75rem; padding-block: 12px; }
  .academic-ui :is(.sp-hero,.page-header,.corsi-hero,.lavoro-hero,.annunci-hero) { width: calc(100% - 16px); border-radius: 24px !important; padding: 34px 0 38px !important; }
  .academic-ui :is(.sp-hero,.corsi-hero,.annunci-hero) > :is(.container,.wrap,.sp-hero-inner,.corsi-hero-inner,.annunci-hero-inner),
  .academic-ui .page-header > .container,
  .academic-ui .lavoro-hero > .wrap { padding-left: 20px !important; padding-right: 20px !important; }
  .academic-ui :is(.sp-hero-title,.page-header h1,.corsi-hero-title,.lavoro-hero-title,.annunci-hero h1) { font-size: clamp(2.2rem, 10vw, 3.2rem) !important; overflow-wrap: anywhere; }
  .academic-ui :is(.sp-hero-sub,.corsi-hero-sub,.lavoro-hero-sub,.annunci-hero-sub,.page-header p) { font-size: 1.0625rem !important; overflow-wrap: anywhere; }
  .academic-ui .filter-container { padding: 18px !important; align-items: stretch; }
  .academic-ui .filter-container > select { min-width: 0; width: 100%; }
  .academic-ui .filters { width: 100%; flex-wrap: wrap; }
  .academic-ui .filter-btn { flex: 1 1 auto; padding: 12px !important; }
  .academic-ui .area-buttons { padding: 20px !important; }
  .academic-ui .area-btn { width: 100%; }
  .academic-ui header > nav, .academic-ui .corsi-hero-inner, .academic-ui .catalog-toolbar, .academic-ui .profession, .academic-ui .container { min-width: 0; max-width: 100%; }
  .academic-ui .profession { border-radius: 24px; }
  .academic-ui .profession-body { padding: 22px 18px 18px; }
  .academic-ui .catalog-intro h2 { overflow-wrap: anywhere; }
  .academic-ui .catalog-toolbar .filters { display: flex !important; flex-direction: column !important; width: 100% !important; border-radius: 22px !important; }
  .academic-ui .catalog-toolbar .filter-btn { flex: none !important; width: 100% !important; min-width: 0 !important; white-space: normal !important; line-height: 1.25; text-align: center; padding: 12px 10px !important; }
  .academic-ui footer { border-radius: 24px 24px 0 0; }
}
@media (prefers-reduced-motion: reduce) {
  html:has(.academic-ui) { scroll-behavior: auto; }
  .academic-ui *, .academic-ui *::before, .academic-ui *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

/* --------------------------------------------------------------------------
   Pagina personale: "I miei corsi"
   -------------------------------------------------------------------------- */
.sp-dash-section { padding: 56px 0 8px; }
.sp-dash-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; flex-wrap: wrap; margin-bottom: 24px; }
.sp-dash-head h2 { margin: 12px 0 6px; font-family: var(--sp-display); color: var(--sp-ink); font-size: clamp(1.8rem, 3vw, 2.5rem); letter-spacing: -.03em; line-height: 1.1; }
.sp-dash-head p { margin: 0; color: var(--sp-muted); max-width: 60ch; }
.sp-dash-btn { display: inline-flex; align-items: center; gap: 8px; padding: 12px 20px; border-radius: 999px; background: var(--sp-coral); color: #fff !important; font-weight: 800; text-decoration: none !important; white-space: nowrap; transition: background .2s, transform .2s; }
.sp-dash-btn:hover { background: var(--sp-coral-dark); transform: translateY(-1px); }
.sp-dash-btn.sp-small { padding: 8px 16px; font-size: .875rem; background: var(--sp-ink); }
.sp-dash-btn.sp-small:hover { background: var(--sp-ink-2); }
.sp-dash-stats { display: grid; grid-template-columns: 1.6fr repeat(3, 1fr); gap: 14px; margin-bottom: 22px; }
.sp-dash-stat { display: flex; flex-direction: column; justify-content: center; padding: 20px 22px; border-radius: var(--sp-r-lg); background: var(--sp-surface); border: 1px solid var(--sp-line); box-shadow: var(--sp-shadow-sm); }
.sp-dash-stat > strong { font-family: var(--sp-display); font-size: 2.2rem; line-height: 1; color: var(--sp-ink); letter-spacing: -.03em; }
.sp-dash-stat > span { margin-top: 6px; font-size: .875rem; color: var(--sp-muted); font-weight: 600; }
.sp-dash-stat:nth-child(3) { background: var(--sp-sun-soft); border-color: #F6D9A0; }
.sp-dash-stat:nth-child(4) { background: var(--sp-mint); border-color: #CFE3DE; }
.sp-dash-main { flex-direction: row; align-items: center; gap: 18px; background: var(--sp-ink); border-color: var(--sp-ink); color: #fff; }
.sp-dash-main strong { color: #fff; font-size: 1.15rem; font-family: var(--sp-display); }
.sp-dash-main p { margin: 4px 0 0; color: #BFD6D2; font-size: .9rem; }
.sp-dash-ring { --p: 0; flex: 0 0 88px; width: 88px; height: 88px; border-radius: 50%; display: grid; place-content: center; text-align: center;
  background: radial-gradient(closest-side, var(--sp-ink) 74%, transparent 75% 100%), conic-gradient(var(--sp-sun) calc(var(--p) * 1%), rgba(255,255,255,.15) 0); }
.sp-dash-ring strong { font-size: 1.7rem !important; line-height: 1; color: var(--sp-sun) !important; }
.sp-dash-ring small { font-size: .72rem; color: #BFD6D2; font-weight: 700; }
.sp-dash-cols { display: grid; grid-template-columns: 1.2fr .8fr; gap: 18px; }
.sp-dash-col { padding: 22px; border-radius: var(--sp-r-lg); background: var(--sp-surface); border: 1px solid var(--sp-line); box-shadow: var(--sp-shadow-sm); }
.sp-dash-col h3 { margin: 0 0 14px; font-family: var(--sp-display); font-size: 1.2rem; color: var(--sp-ink); }
.sp-dash-col h3 i { color: var(--sp-coral); margin-right: 6px; }
.sp-dash-course { padding: 14px 0; border-top: 1px solid var(--sp-line); }
.sp-dash-course:first-of-type { border-top: 0; padding-top: 0; }
.sp-dash-course-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 10px; }
.sp-dash-course-head strong, .sp-dash-done strong { display: block; color: var(--sp-ink); font-weight: 800; }
.sp-dash-course-head small, .sp-dash-done small { display: block; color: var(--sp-muted); font-size: .8rem; margin-top: 2px; }
.sp-dash-bar { height: 10px; border-radius: 999px; background: var(--sp-sand); overflow: hidden; }
.sp-dash-bar span { display: block; height: 100%; border-radius: 999px; background: linear-gradient(90deg, var(--sp-coral), var(--sp-sun)); }
.sp-dash-meta { margin-top: 6px; font-size: .8rem; color: var(--sp-muted); }
.sp-dash-done { display: flex; align-items: center; gap: 12px; padding: 12px 0; border-top: 1px solid var(--sp-line); }
.sp-dash-done:first-of-type { border-top: 0; padding-top: 0; }
.sp-dash-done > i { font-size: 1.3rem; color: var(--sp-ink-3); }
.sp-dash-done > div { flex: 1; min-width: 0; }
.sp-dash-done a { font-weight: 800; color: var(--sp-coral); text-decoration: none; font-size: .875rem; }
.sp-dash-note { color: var(--sp-muted); margin: 0; }
.sp-dash-note a { color: var(--sp-coral); font-weight: 700; }
.sp-dash-empty { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; padding: 24px; border-radius: var(--sp-r-lg); background: var(--sp-sun-soft); border: 1px solid #F6D9A0; }
.sp-dash-empty > i { font-size: 1.8rem; color: #9A6A00; }
.sp-dash-empty > div { flex: 1 1 260px; }
.sp-dash-empty p { margin: 4px 0 0; color: var(--sp-muted); }
@media (max-width: 980px) {
  .sp-dash-stats { grid-template-columns: 1fr 1fr; }
  .sp-dash-main { grid-column: 1 / -1; }
  .sp-dash-cols { grid-template-columns: 1fr; }
}
@media (max-width: 520px) {
  .sp-dash-stats { grid-template-columns: 1fr; }
  .sp-dash-course-head { flex-direction: column; align-items: flex-start; }
}
.academic-ui .modal-content > .modal-tab-nav { flex-shrink: 0 !important; }
.sup-card-panel { display: flex; align-items: center; gap: 20px; flex-wrap: wrap; padding: 24px 26px; border-radius: var(--sp-r-xl); background: var(--sp-sun-soft); border: 1px solid #F6D9A0; }
.sup-card-panel.is-live { background: var(--sp-mint); border-color: #CFE3DE; }
.sup-card-panel > i { font-size: 2rem; color: var(--sp-ink-3); }
.sup-card-panel > div:first-of-type { flex: 1 1 320px; }
.sup-card-panel h2 { margin: 10px 0 6px; font-family: var(--sp-display); color: var(--sp-ink); font-size: clamp(1.5rem, 2.4vw, 2rem); letter-spacing: -.03em; }
.sup-card-panel p { margin: 0; color: var(--sp-muted); }
.sup-card-actions { display: flex; gap: 10px; flex-wrap: wrap; }
