/* Catalogo formativo: mantiene il sistema visivo globale e rende leggibili pagine lunghe. */

.courses-page .page-head,
.courses-page .section,
.course-breadcrumb {
    width: min(1060px, calc(100% - 32px));
}

.course-breadcrumb {
    margin: 1.4rem auto 0;
    color: var(--muted);
    font-family: var(--mono);
    font-size: 0.78rem;
}

.course-breadcrumb ol {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    max-width: none;
    padding: 0;
    list-style: none;
}

.course-breadcrumb li { margin: 0; }

.course-breadcrumb li:not(:last-child)::after {
    content: "/";
    margin-left: 0.45rem;
    color: var(--border-strong);
}

.courses-page .page-head { padding: 3.4rem 0 3rem; }

.courses-page .page-head > p:not(.eyebrow) {
    max-width: 800px;
    font-size: clamp(1rem, 1.8vw, 1.16rem);
    line-height: 1.72;
}

.courses-page .section { padding: 3.2rem 0; }

.courses-page .course-section > p,
.courses-page .course-section > ul,
.courses-page .course-section > ol { max-width: 820px; }

.courses-page .course-section > ul,
.courses-page .course-section > ol { line-height: 1.65; }

.course-subsection {
    max-width: 850px;
    margin-top: 1rem;
    padding: 1.25rem 1.35rem;
    border: 1px solid var(--border);
    border-left: 3px solid var(--accent);
    border-radius: 14px;
    background: var(--panel);
}

.course-subsection:nth-of-type(3n + 1) { border-left-color: var(--violet); }
.course-subsection:nth-of-type(3n + 2) { border-left-color: var(--amber); }
.course-subsection > * { max-width: none; }
.course-subsection > * + * { margin-top: 0.8rem; }

.courses-hub .course-section:has(> .course-subsection),
.courses-area .course-section:has(> .course-subsection) {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.courses-hub .course-section:has(> .course-subsection) > h2,
.courses-area .course-section:has(> .course-subsection) > h2,
.courses-area .course-section:has(> .course-subsection) > p,
.courses-area .course-section:has(> .course-subsection) > ul,
.courses-area .course-section:has(> .course-subsection) > .actions { grid-column: 1 / -1; }

.courses-hub .course-section:has(> .course-subsection) .course-subsection,
.courses-area .course-section:has(> .course-subsection) .course-subsection {
    width: 100%;
    max-width: none;
    margin-top: 0;
}

.course-link a { font-weight: 650; }

.course-contact-note {
    max-width: 820px;
    margin-top: 1.25rem;
}

.course-faq .faq-list { max-width: 900px; }

.course-faq details {
    padding: 1rem 1.1rem;
    border: 1px solid var(--border);
    border-radius: 12px;
    background: var(--panel);
}

.course-faq details + details { margin-top: 0.75rem; }

.course-faq summary {
    cursor: pointer;
    color: var(--text);
    font-weight: 650;
}

.course-faq details p { margin-top: 0.8rem; }

.course-related ul {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
    max-width: none;
    padding: 0;
    list-style: none;
}

.course-related li { margin: 0; }

.course-related a {
    display: block;
    padding: 0.7rem 0.85rem;
    border: 1px solid var(--border);
    border-radius: 10px;
    background: var(--panel);
    text-decoration: none;
}

.course-related a:hover,
.course-related a:focus-visible { border-color: var(--accent); }

@media (max-width: 720px) {
    .courses-page .page-head { padding: 2.7rem 0 2.35rem; }
    .courses-page .section { padding: 2.6rem 0; }
    .courses-hub .course-section:has(> .course-subsection),
    .courses-area .course-section:has(> .course-subsection) { grid-template-columns: 1fr; }
    .course-subsection { padding: 1.1rem; }
}

@media (prefers-reduced-motion: reduce) {
    .courses-page * { scroll-behavior: auto !important; }
}
