/*
 * SocialPro — Catalogo corsi 2026
 * Livello grafico dedicato. Non modifica testi, video o funzionalità.
 */

:root {
    --course-navy: #102a43;
    --course-navy-2: #173e61;
    --course-terra: #c46f45;
    --course-terra-dark: #a95431;
    --course-gold: #e1bc72;
    --course-cream: #f8f5ef;
    --course-paper: #fffefb;
    --course-sand: #eee5d8;
    --course-ink: #243746;
    --course-muted: #66736f;
    --course-line: #e2d9cc;
    --course-green: #44745a;
    --course-shadow: 0 24px 64px -38px rgba(16, 42, 67, 0.52);
    --course-shadow-strong: 0 34px 86px -42px rgba(7, 25, 40, 0.68);
}

body:not(.dark-mode) {
    background:
        radial-gradient(circle at 92% 9%, rgba(225, 188, 114, 0.12), transparent 28rem),
        var(--course-cream) !important;
    color: var(--course-ink);
}

/* Hero: autorevole, leggibile, senza il vecchio testo fantasma. */
.corsi-hero {
    min-height: 440px;
    display: grid;
    place-items: center;
    padding: clamp(4.5rem, 8vw, 6.5rem) 0 !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.corsi-hero-bg {
    background:
        radial-gradient(700px 420px at 86% 0%, rgba(225, 188, 114, 0.24), transparent 67%),
        radial-gradient(660px 440px at 7% 105%, rgba(71, 126, 165, 0.32), transparent 70%),
        linear-gradient(125deg, #0b2338 0%, #102f4a 52%, #1d496c 100%) !important;
}

.corsi-hero-bg::after {
    background-image:
        linear-gradient(rgba(255,255,255,0.035) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,0.035) 1px, transparent 1px) !important;
    background-size: 64px 64px !important;
}

.corsi-hero-orb { opacity: 0.25 !important; }

.corsi-hero-badge {
    color: #f8e7bf !important;
    background: rgba(255, 255, 255, 0.08) !important;
    border: 1px solid rgba(225, 188, 114, 0.42);
    box-shadow: none !important;
    backdrop-filter: blur(12px);
    letter-spacing: 0.12em !important;
}

.corsi-hero-title {
    display: block !important;
    color: #ffffff !important;
    font-family: 'Newsreader', Georgia, serif !important;
    font-size: clamp(3rem, 6vw, 5.25rem) !important;
    font-weight: 500 !important;
    line-height: 0.98 !important;
    letter-spacing: -0.045em !important;
    text-shadow: none !important;
    margin-bottom: 1.35rem !important;
    -webkit-text-fill-color: #ffffff !important;
    background: none !important;
}

.corsi-hero-title em {
    color: #efc47b !important;
    -webkit-text-fill-color: #efc47b !important;
    background: none !important;
    font-weight: 500 !important;
}

.corsi-hero-title em::after { display: none !important; }

.corsi-hero-sub {
    max-width: 760px !important;
    color: #d9e3ea !important;
    font-size: 1.08rem !important;
    line-height: 1.7 !important;
    opacity: 1 !important;
}

.corsi-hero-meta { gap: 0.65rem !important; }

.corsi-hero-meta span {
    color: #edf3f6;
    background: rgba(255, 255, 255, 0.07) !important;
    border-color: rgba(255, 255, 255, 0.17) !important;
    padding: 0.55rem 1rem !important;
}

.corsi-hero-meta i { color: var(--course-gold) !important; }

/* Catalogo e filtri. */
.corsi-hero + .section-padding {
    padding-top: clamp(3.5rem, 6vw, 5.5rem) !important;
    padding-bottom: clamp(5rem, 8vw, 7rem) !important;
}

.corsi-hero + .section-padding > .container {
    max-width: 1240px;
}

.filters {
    width: fit-content;
    max-width: 100%;
    margin: 0 auto 3rem !important;
    padding: 0.45rem;
    gap: 0.35rem !important;
    background: rgba(255, 254, 251, 0.9);
    border: 1px solid var(--course-line);
    border-radius: 999px;
    box-shadow: 0 16px 42px -35px rgba(16, 42, 67, 0.7);
    backdrop-filter: blur(14px);
}

.filter-btn {
    min-height: 44px;
    margin: 0 !important;
    padding: 0.66rem 1.35rem !important;
    color: var(--course-navy) !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 999px !important;
    font-size: 0.88rem !important;
    box-shadow: none !important;
}

.filter-btn::before { display: none !important; }

.filter-btn:hover {
    color: var(--course-terra-dark) !important;
    background: var(--course-sand) !important;
    transform: none !important;
}

.filter-btn.active {
    color: #ffffff !important;
    background: var(--course-terra) !important;
    box-shadow: 0 9px 19px -12px rgba(196, 111, 69, 0.9) !important;
}

.area-buttons {
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
    align-items: center !important;
    max-width: 1140px;
    margin-left: auto !important;
    margin-right: auto !important;
    margin-bottom: 2rem !important;
    padding: 1.25rem !important;
    gap: 0.75rem !important;
    background: rgba(251, 246, 238, 0.95) !important;
    border: 1px solid rgba(216, 200, 174, 0.7) !important;
    border-radius: 24px !important;
    box-shadow: 0 12px 36px -18px rgba(16, 42, 67, 0.12) !important;
    backdrop-filter: blur(12px);
}

.area-buttons-header {
    width: 100%;
    font-size: 0.92rem;
    font-weight: 700;
    color: #16314F;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 0.5rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.area-buttons-header i {
    color: #C06A3C;
}

.area-btn {
    display: inline-flex !important;
    align-items: center !important;
    gap: 0.55rem !important;
    min-height: 44px !important;
    padding: 0.65rem 1.15rem !important;
    color: #16314F !important;
    background: #FFFFFF !important;
    border: 1.5px solid #E5D5C0 !important;
    border-radius: 999px !important;
    box-shadow: 0 3px 8px rgba(22, 49, 79, 0.05) !important;
    font-size: 0.88rem !important;
    font-weight: 600 !important;
    text-align: left;
    cursor: pointer !important;
    transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

.area-btn i {
    color: #C06A3C !important;
    font-size: 0.95rem !important;
    transition: color 0.25s ease !important;
}

.area-btn:hover {
    color: #FFFFFF !important;
    background: #C06A3C !important;
    border-color: #C06A3C !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 10px 22px -6px rgba(192, 106, 60, 0.45) !important;
}

.area-btn:hover i {
    color: #FFFFFF !important;
}

/* Le tre porte d'ingresso professionali. */
#course-grid.card-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 1.25rem !important;
    align-items: stretch;
}

.course-sector-card {
    min-height: 520px !important;
    padding: 2.25rem !important;
    border: 0 !important;
    border-radius: 28px !important;
    overflow: hidden;
    isolation: isolate;
    display: flex !important;
    flex-direction: column !important;
    justify-content: space-between !important;
    box-shadow: var(--course-shadow-strong) !important;
    transition: transform 0.35s ease, box-shadow 0.35s ease !important;
}

.course-sector-card::before {
    content: '' !important;
    position: absolute !important;
    inset: 0 !important;
    z-index: -1 !important;
    height: auto !important;
    opacity: 1 !important;
    background:
        linear-gradient(180deg, rgba(8, 26, 41, 0.35) 0%, rgba(8, 26, 41, 0.72) 45%, rgba(8, 26, 41, 0.96) 100%) !important;
    pointer-events: none;
}

.course-sector-card::after {
    content: '';
    position: absolute;
    inset: 14px;
    z-index: -1;
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: 199px;
    pointer-events: none;
}

.course-sector-card:hover {
    transform: translateY(-7px) !important;
    box-shadow: 0 38px 82px -38px rgba(7, 25, 40, 0.78) !important;
}

.sector-eyebrow {
    width: fit-content;
    margin: 0 0 0.4rem !important;
    padding: 0.4rem 0.78rem !important;
    color: #f4d99f !important;
    background: rgba(16, 42, 67, 0.75) !important;
    border: 1px solid rgba(225, 188, 114, 0.45) !important;
    border-radius: 999px !important;
    font-size: 0.72rem !important;
    font-weight: 600 !important;
    letter-spacing: 0.11em !important;
    backdrop-filter: blur(10px);
}

.sector-title {
    color: #ffffff !important;
    font-family: 'Newsreader', Georgia, serif !important;
    font-size: 1.85rem !important;
    font-weight: 500 !important;
    line-height: 1.1 !important;
    letter-spacing: -0.025em !important;
    margin: 0.55rem 0 0.65rem !important;
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.4);
}

.sector-description {
    color: #e2e8f0 !important;
    font-size: 0.93rem !important;
    line-height: 1.58 !important;
    margin: 0 0 1rem !important;
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
}

.sector-cta {
    min-height: 44px;
    padding: 0.68rem 1.25rem !important;
    color: var(--course-navy) !important;
    background: #ffffff !important;
    border: 0 !important;
    border-radius: 999px !important;
    font-weight: 600 !important;
    font-size: 0.9rem !important;
    box-shadow: 0 12px 25px -16px rgba(0, 0, 0, 0.8) !important;
    cursor: pointer !important;
    transition: all 0.25s ease !important;
}

.sector-cta:hover {
    color: #ffffff !important;
    background: var(--course-terra) !important;
}

.sector-tags {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 0.5rem !important;
    margin-top: 1.25rem !important;
    padding: 0.25rem 0 !important;
    max-height: none !important;
    overflow: visible !important;
}

.sector-chip,
.sector-chip[style] {
    display: inline-flex !important;
    align-items: center !important;
    gap: 0.4rem !important;
    min-height: 34px !important;
    padding: 0.45rem 0.85rem !important;
    color: #ffffff !important;
    background: rgba(255, 255, 255, 0.16) !important;
    border: 1px solid rgba(255, 255, 255, 0.28) !important;
    border-radius: 999px !important;
    font-size: 0.78rem !important;
    font-weight: 500 !important;
    line-height: 1.3 !important;
    backdrop-filter: blur(10px) !important;
    -webkit-backdrop-filter: blur(10px) !important;
    cursor: pointer !important;
    transition: all 0.25s ease !important;
}

.sector-chip:hover,
.sector-chip[style]:hover {
    color: #ffffff !important;
    background: #C06A3C !important;
    border-color: rgba(255, 255, 255, 0.6) !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.3) !important;
}

/* Finestre corso: un solo sistema per tutte le 112 modali. */
.modal {
    padding: 2rem 1rem !important;
    background: rgba(7, 23, 36, 0.74) !important;
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    align-items: center;
    justify-content: center;
}

.modal.active { display: flex !important; }

.modal-content,
.modal-content[style] {
    width: min(1120px, 94vw) !important;
    max-width: 1120px !important;
    max-height: 91vh !important;
    margin: 0 auto !important;
    padding: 0 !important;
    overflow: hidden !important;
    background: var(--course-paper) !important;
    border: 1px solid rgba(255, 255, 255, 0.28) !important;
    border-radius: 26px !important;
    box-shadow: 0 34px 110px -34px rgba(0, 0, 0, 0.82) !important;
}

.modal-header,
.modal-header[style],
.modal-content > div:first-child[style*="background: linear-gradient"] {
    position: relative !important;
    min-height: 126px;
    padding: 2rem 4.8rem 1.75rem 2.25rem !important;
    color: #ffffff !important;
    background:
        radial-gradient(circle at 92% 15%, rgba(225, 188, 114, 0.22), transparent 14rem),
        linear-gradient(125deg, var(--course-navy), var(--course-navy-2)) !important;
    border: 0 !important;
    border-radius: 0 !important;
}

.modal-header::after {
    content: '';
    position: absolute;
    left: 2.25rem;
    bottom: 0;
    width: 56px;
    height: 3px;
    border-radius: 4px;
    background: var(--course-terra);
}

.modal-header h1,
.modal-header h2,
.modal-header h3,
.modal-header h1[style],
.modal-header h2[style],
.modal-header h3[style] {
    max-width: 850px;
    margin: 0 0 0.55rem !important;
    color: #ffffff !important;
    font-family: 'Newsreader', Georgia, serif !important;
    font-size: clamp(1.65rem, 3vw, 2.35rem) !important;
    font-weight: 500 !important;
    line-height: 1.08 !important;
    letter-spacing: -0.03em !important;
    text-shadow: none !important;
}

.modal-header p,
.modal-header p[style] {
    max-width: 780px !important;
    margin: 0 !important;
    color: #cddae2 !important;
    font-size: 0.98rem !important;
    line-height: 1.55 !important;
}

.modal-close,
.modal-close[style] {
    position: absolute !important;
    z-index: 5;
    top: 1.25rem !important;
    right: 1.25rem !important;
    display: grid !important;
    place-items: center;
    width: 43px !important;
    height: 43px !important;
    padding: 0 !important;
    color: #ffffff !important;
    background: rgba(255, 255, 255, 0.1) !important;
    border: 1px solid rgba(255, 255, 255, 0.22) !important;
    border-radius: 50% !important;
    font-size: 1.8rem !important;
    line-height: 1 !important;
    opacity: 1 !important;
    transition: transform 0.2s ease, background 0.2s ease !important;
}

.modal-close:hover {
    color: #ffffff !important;
    background: var(--course-terra) !important;
    transform: rotate(6deg) scale(1.04) !important;
}

.modal-body,
.modal-body[style] {
    max-height: calc(91vh - 126px) !important;
    padding: 0 !important;
    overflow-y: auto !important;
    color: var(--course-ink) !important;
    background: var(--course-paper) !important;
    scrollbar-color: #c8b8a4 #f1ece4;
}

.modal-body > :not(.modal-tab-nav):not(.modal-tab-content),
.course-modal-body-uniform {
    margin-left: auto;
    margin-right: auto;
}

/* Navigazione interna delle lezioni. */
.modal-tab-nav,
.modal-tab-nav[style] {
    position: sticky;
    top: 0;
    z-index: 10;
    display: flex !important;
    flex-wrap: nowrap !important;
    gap: 0.45rem !important;
    padding: 0.85rem 1.25rem !important;
    overflow-x: auto;
    background: rgba(255, 254, 251, 0.96) !important;
    border: 0 !important;
    border-bottom: 1px solid var(--course-line) !important;
    box-shadow: 0 10px 28px -28px rgba(16, 42, 67, 0.72);
    backdrop-filter: blur(14px);
    scrollbar-width: thin;
}

.modal-tab-btn,
.modal-tab-btn[style] {
    flex: 0 0 auto;
    min-height: 42px;
    padding: 0.65rem 1rem !important;
    color: var(--course-navy) !important;
    background: #f1ebe2 !important;
    border: 1px solid transparent !important;
    border-radius: 999px !important;
    box-shadow: none !important;
    font-family: 'Hanken Grotesk', system-ui, sans-serif !important;
    font-size: 0.82rem !important;
    font-weight: 650 !important;
}

.modal-tab-btn:hover,
.modal-tab-btn[style]:hover {
    color: var(--course-terra-dark) !important;
    background: #ffffff !important;
    border-color: rgba(196, 111, 69, 0.32) !important;
}

.modal-tab-btn.active,
.modal-tab-btn.active[style] {
    color: #ffffff !important;
    background: var(--course-terra) !important;
    border-color: var(--course-terra) !important;
    box-shadow: 0 10px 20px -15px rgba(196, 111, 69, 0.95) !important;
}

.modal-tab-btn .tab-count {
    color: inherit;
    background: rgba(255, 255, 255, 0.22) !important;
}

.modal-tab-content,
.modal-tab-content[style] {
    padding: clamp(1.25rem, 3vw, 2.4rem) !important;
    background: var(--course-paper) !important;
}

/* Video: ogni formato confluisce nello stesso stile. */
.video-grid,
.video-gallery {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 1.25rem !important;
}

.video-card,
.video-item {
    overflow: hidden;
    background: #ffffff !important;
    border: 1px solid var(--course-line) !important;
    border-radius: 18px !important;
    box-shadow: 0 16px 44px -34px rgba(16, 42, 67, 0.65) !important;
    transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease !important;
}

.video-card:hover,
.video-item:hover {
    transform: translateY(-4px) !important;
    border-color: rgba(196, 111, 69, 0.42) !important;
    box-shadow: var(--course-shadow) !important;
}

.video-card video,
.video-item video,
.video-container video,
.modal-body video {
    display: block;
    width: 100% !important;
    max-width: 100%;
    aspect-ratio: 16 / 9;
    object-fit: cover;
    background: #081724 !important;
    border: 0 !important;
    border-radius: 0 !important;
}

.video-container {
    overflow: hidden;
    background: #ffffff !important;
    border: 1px solid var(--course-line) !important;
    border-radius: 18px !important;
    box-shadow: 0 16px 44px -34px rgba(16, 42, 67, 0.65) !important;
}

.video-card-info,
.video-item p {
    padding: 1.15rem 1.2rem 1.25rem !important;
}

.video-card-info h3,
.video-card-info h4,
.video-item p,
.video-item p strong {
    color: var(--course-navy) !important;
    font-family: 'Newsreader', Georgia, serif !important;
    font-size: 1.14rem !important;
    font-weight: 600 !important;
    line-height: 1.25 !important;
}

.video-card-info p {
    color: var(--course-muted) !important;
    font-size: 0.88rem !important;
    line-height: 1.55 !important;
}

.video-card-info a,
.video-item a {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    margin-top: 0.45rem;
    color: var(--course-terra-dark) !important;
    font-size: 0.88rem;
    font-weight: 700;
}

.video-card-info a:hover,
.video-item a:hover { color: var(--course-navy) !important; }

/* Panoramiche, materiali e letture lunghe. */
.overview-section,
.content-section,
.section-block,
.document-item,
.materiali-card,
.quiz-shell {
    background: #ffffff !important;
    border: 1px solid var(--course-line) !important;
    border-radius: 18px !important;
    box-shadow: 0 14px 42px -36px rgba(16, 42, 67, 0.62) !important;
}

.overview-section,
.content-section,
.section-block,
.document-item,
.quiz-shell {
    padding: clamp(1.1rem, 2.4vw, 1.7rem) !important;
    margin-bottom: 1.25rem !important;
}

.content-section {
    margin-top: 1.25rem !important;
    border-top: 1px solid var(--course-line) !important;
}

.overview-section h3,
.content-section > .section-title,
.section-block > h3,
.section-block > h4,
.document-item h3,
.document-item h4,
.materiali-card > h3,
.modal-body .section-title {
    max-width: none !important;
    margin: 0 0 1rem !important;
    padding: 0 0 0.7rem !important;
    color: var(--course-navy) !important;
    font-family: 'Newsreader', Georgia, serif !important;
    font-size: clamp(1.2rem, 2vw, 1.52rem) !important;
    font-weight: 600 !important;
    line-height: 1.2 !important;
    letter-spacing: -0.02em !important;
    border: 0 !important;
    border-bottom: 1px solid var(--course-line) !important;
}

.overview-section h3 i,
.content-section > .section-title i,
.section-block > h3 i,
.section-block > h4 i,
.materiali-card > h3 i,
.modal-body .section-title i {
    color: var(--course-terra) !important;
}

.overview-list {
    grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)) !important;
    gap: 0.7rem !important;
}

.overview-list li,
.modal-body .overview-list li {
    min-height: 58px;
    padding: 0.82rem 0.9rem !important;
    color: var(--course-ink) !important;
    background: #f5f0e9 !important;
    border: 1px solid #ebe1d5;
    border-radius: 12px !important;
    line-height: 1.45 !important;
}

.overview-list li::before { display: none !important; }
.overview-list li i { color: var(--course-green) !important; }

.study-materials-grid {
    grid-template-columns: repeat(auto-fit, minmax(245px, 1fr)) !important;
    gap: 1rem !important;
}

.study-card,
.materiali-card {
    min-height: 100%;
    padding: 1.25rem !important;
    color: var(--course-ink) !important;
    background: #ffffff !important;
    border: 1px solid var(--course-line) !important;
    border-radius: 16px !important;
    box-shadow: 0 12px 34px -30px rgba(16, 42, 67, 0.62) !important;
}

.study-card:hover,
.materiali-card:hover {
    transform: translateY(-3px) !important;
    border-color: rgba(196, 111, 69, 0.4) !important;
    box-shadow: var(--course-shadow) !important;
}

.study-card-icon,
.study-card-icon[style] {
    display: grid !important;
    place-items: center;
    width: 46px !important;
    height: 46px !important;
    color: var(--course-terra) !important;
    background: #f2e9de !important;
    border: 1px solid #eadccc !important;
    border-radius: 14px !important;
}

.study-card-icon i { color: var(--course-terra) !important; }

.study-card h3,
.study-card h4,
.materiali-card h3,
.materiali-card h4 {
    color: var(--course-navy) !important;
    font-family: 'Newsreader', Georgia, serif !important;
    line-height: 1.25 !important;
}

.study-card p,
.materiali-card p { color: var(--course-muted) !important; }

.structured-reading,
.materiali-reading,
.course-modal-body-uniform {
    max-width: 880px !important;
    padding: clamp(1.35rem, 3.5vw, 2.6rem) !important;
    color: var(--course-ink) !important;
    background: #ffffff !important;
}

.structured-reading p,
.structured-reading li,
.materiali-reading p,
.materiali-reading li,
.course-modal-body-uniform p,
.course-modal-body-uniform li {
    color: #40515d !important;
    font-size: 0.99rem !important;
    line-height: 1.82 !important;
}

.structured-reading h2,
.structured-reading h3,
.structured-reading h4,
.structured-reading h5,
.materiali-reading h2,
.materiali-reading h3,
.materiali-reading h4,
.materiali-reading h5,
.course-modal-body-uniform h2,
.course-modal-body-uniform h3,
.course-modal-body-uniform h4,
.course-modal-body-uniform h5 {
    color: var(--course-navy) !important;
    font-family: 'Newsreader', Georgia, serif !important;
    letter-spacing: -0.015em;
}

.structured-reading h3,
.materiali-reading h3,
.course-modal-body-uniform h3 {
    margin-top: 2rem !important;
    padding-top: 1.25rem !important;
    border-top: 1px solid var(--course-line) !important;
}

.modal-body blockquote {
    margin: 1.5rem 0 !important;
    padding: 1.15rem 1.25rem !important;
    color: var(--course-navy) !important;
    background: #f5eee5 !important;
    border: 0 !important;
    border-left: 4px solid var(--course-terra) !important;
    border-radius: 0 13px 13px 0 !important;
}

/* Tabelle leggibili anche nei corsi più lunghi. */
.table-responsive {
    margin: 1.2rem 0;
    overflow-x: auto;
    border: 1px solid var(--course-line);
    border-radius: 14px;
}

.modal-body table {
    width: 100% !important;
    border-collapse: separate !important;
    border-spacing: 0 !important;
    color: var(--course-ink) !important;
    background: #ffffff !important;
}

.modal-body table th,
.modal-body table th[style] {
    padding: 0.85rem 0.9rem !important;
    color: #ffffff !important;
    background: var(--course-navy) !important;
    border-color: rgba(255, 255, 255, 0.13) !important;
    font-size: 0.84rem !important;
    line-height: 1.35 !important;
    text-align: left;
}

.modal-body table td,
.modal-body table td[style] {
    padding: 0.82rem 0.9rem !important;
    color: #40515d !important;
    background: #ffffff !important;
    border-color: var(--course-line) !important;
    font-size: 0.88rem !important;
    line-height: 1.55 !important;
    vertical-align: top;
}

.modal-body table tbody tr:nth-child(even) td {
    background: #f7f3ed !important;
}

/* Pulsanti, quiz ed esercitazioni. */
.modal-body .btn,
.modal-body .btn-accent,
.quiz-actions button {
    min-height: 42px;
    padding: 0.67rem 1.05rem !important;
    color: #ffffff !important;
    background: var(--course-terra) !important;
    border: 1px solid var(--course-terra) !important;
    border-radius: 999px !important;
    box-shadow: 0 11px 22px -17px rgba(196, 111, 69, 0.95) !important;
    font-weight: 700 !important;
}

.modal-body .btn:hover,
.modal-body .btn-accent:hover,
.quiz-actions button:hover {
    color: #ffffff !important;
    background: var(--course-terra-dark) !important;
    transform: translateY(-1px);
}

.modal-body .concorso-link-btn {
    min-height: 0;
    padding: 0.9rem 1rem !important;
    color: var(--course-navy) !important;
    background: #f7f3ed !important;
    border: 1px solid var(--course-line) !important;
    border-radius: 12px !important;
    box-shadow: none !important;
    font-weight: 650 !important;
    text-align: left !important;
}

.modal-body .concorso-link-btn:hover {
    color: var(--course-terra-dark) !important;
    background: #ffffff !important;
    border-color: rgba(196, 111, 69, 0.42) !important;
    transform: translateY(-1px);
}

.quiz-intro,
.quiz-summary-card,
.quiz-breakdown-item,
.quiz-card {
    color: var(--course-ink) !important;
    background: #ffffff !important;
    border: 1px solid var(--course-line) !important;
    border-radius: 16px !important;
}

.quiz-pill {
    color: var(--course-navy) !important;
    background: #f2ece3 !important;
    border-color: var(--course-line) !important;
}

.quiz-progress { background: #e8e1d7 !important; }
.quiz-progress-bar { background: linear-gradient(90deg, var(--course-terra), var(--course-gold)) !important; }
.quiz-area { color: var(--course-terra-dark) !important; }
.quiz-question { color: var(--course-navy) !important; }

.quiz-option {
    color: var(--course-ink) !important;
    background: #ffffff !important;
    border: 1px solid var(--course-line) !important;
    border-radius: 13px !important;
}

.quiz-option:hover:not(:disabled) {
    border-color: var(--course-terra) !important;
    box-shadow: 0 8px 22px -18px rgba(196, 111, 69, 0.85) !important;
}

.concorso-section {
    margin-bottom: 1.25rem !important;
    padding: clamp(1.2rem, 2.5vw, 1.75rem) !important;
    background: #ffffff !important;
    border: 1px solid var(--course-line) !important;
    border-radius: 18px !important;
    box-shadow: 0 14px 42px -36px rgba(16, 42, 67, 0.62) !important;
}

.concorso-section-title,
.concorso-subsection-title {
    color: var(--course-navy) !important;
    font-family: 'Newsreader', Georgia, serif !important;
    letter-spacing: -0.015em !important;
}

.concorso-section-title {
    margin: 0 0 1rem !important;
    padding-bottom: 0.75rem !important;
    border-bottom: 1px solid var(--course-line) !important;
    font-size: 1.45rem !important;
}

.concorso-section-title i,
.concorso-subsection-title i { color: var(--course-terra) !important; }

.concorso-subsection {
    margin-top: 1rem !important;
    padding: 1rem !important;
    background: #f7f3ed !important;
    border: 1px solid #ebe1d5 !important;
    border-radius: 14px !important;
}

.concorso-list li { color: #40515d !important; line-height: 1.7 !important; }

/* Stato scuro: mantiene la stessa gerarchia. */
body.dark-mode .modal-content,
body.dark-mode .modal-body,
body.dark-mode .modal-tab-content,
body.dark-mode .structured-reading,
body.dark-mode .materiali-reading,
body.dark-mode .course-modal-body-uniform {
    color: #dce6ee !important;
    background: #152535 !important;
    border-color: #32485b !important;
}

body.dark-mode .modal-tab-nav {
    background: rgba(21, 37, 53, 0.96) !important;
    border-color: #32485b !important;
}

body.dark-mode .modal-tab-btn { color: #dce6ee !important; background: #24394b !important; }
body.dark-mode .modal-tab-btn.active { color: #ffffff !important; background: var(--course-terra) !important; }

body.dark-mode .video-card,
body.dark-mode .video-item,
body.dark-mode .video-container,
body.dark-mode .overview-section,
body.dark-mode .content-section,
body.dark-mode .section-block,
body.dark-mode .document-item,
body.dark-mode .materiali-card,
body.dark-mode .study-card,
body.dark-mode .quiz-shell,
body.dark-mode .quiz-card,
body.dark-mode .quiz-summary-card,
body.dark-mode .quiz-breakdown-item {
    color: #dce6ee !important;
    background: #1b2d3e !important;
    border-color: #32485b !important;
}

body.dark-mode .overview-list li,
body.dark-mode .quiz-pill,
body.dark-mode .quiz-option {
    color: #dce6ee !important;
    background: #24394b !important;
    border-color: #3b5266 !important;
}

body.dark-mode .modal-body table td,
body.dark-mode .modal-body table tbody tr:nth-child(even) td {
    color: #dce6ee !important;
    background: #1b2d3e !important;
    border-color: #32485b !important;
}

/* Responsive: la fruizione rimane comoda su tablet e telefono. */
@media (max-width: 980px) {
    #course-grid.card-grid { grid-template-columns: 1fr !important; }
    .course-sector-card { min-height: 520px !important; }
    .video-grid,
    .video-gallery { grid-template-columns: 1fr !important; }
    .modal { padding: 0 !important; }
    .modal-content,
    .modal-content[style] {
        width: 100vw !important;
        max-width: 100vw !important;
        max-height: 100dvh !important;
        height: 100dvh;
        border: 0 !important;
        border-radius: 0 !important;
    }
    .modal-body,
    .modal-body[style] { max-height: calc(100dvh - 122px) !important; }
    .modal-header,
    .modal-header[style] { min-height: 122px; }
}

@media (max-width: 640px) {
    .corsi-hero { min-height: 410px; padding: 4rem 0 !important; }
    .corsi-hero-title { font-size: 3.25rem !important; }
    .corsi-hero-sub { font-size: 1rem !important; }
    .corsi-hero-meta { display: grid !important; }
    .filters {
        width: 100%;
        padding: 0.5rem !important;
        display: grid !important;
        grid-template-columns: 1fr 1fr;
        border-radius: 18px;
    }
    .filter-btn { width: 100%; padding-inline: 0.7rem !important; }
    .area-buttons { padding: 0.75rem !important; }
    .area-btn { width: 100% !important; }
    .course-sector-card { min-height: 560px !important; padding: 1.6rem !important; border-radius: 22px !important; }
    .sector-title { font-size: 1.65rem !important; }
    .modal-header,
    .modal-header[style] {
        min-height: 116px;
        padding: 1.45rem 4rem 1.35rem 1.2rem !important;
    }
    .modal-header::after { left: 1.2rem; }
    .modal-header h1,
    .modal-header h2,
    .modal-header h3,
    .modal-header h1[style],
    .modal-header h2[style],
    .modal-header h3[style] { font-size: 1.52rem !important; }
    .modal-header p,
    .modal-header p[style] { font-size: 0.85rem !important; }
    .modal-close,
    .modal-close[style] { top: 0.8rem !important; right: 0.8rem !important; }
    .modal-body,
    .modal-body[style] { max-height: calc(100dvh - 116px) !important; }
    .modal-tab-nav { padding: 0.65rem 0.75rem !important; }
    .modal-tab-btn,
    .modal-tab-btn[style] { min-height: 39px; padding: 0.55rem 0.78rem !important; }
    .modal-tab-content,
    .modal-tab-content[style] { padding: 1rem !important; }
    .structured-reading,
    .materiali-reading,
    .course-modal-body-uniform { padding: 1.15rem !important; }
    .overview-list,
    .study-materials-grid { grid-template-columns: 1fr !important; }
    .modal-body table { min-width: 620px; }
}

@media (prefers-reduced-motion: reduce) {
    .course-sector-card,
    .video-card,
    .video-item,
    .study-card,
    .materiali-card { transition: none !important; }
}
