/**
 * Habillage des gabarits Tutor LMS (dashboard, single cours, archive) avec les jetons
 * du thème. À enrichir écran par écran au fur et à mesure de l'activation des addons P0
 * (cf. docs/BRIEF.md §4/§6) : quiz, certificats, drip content, classes en direct, devoirs.
 */

.dsa-tutor-dashboard,
.dsa-tutor-course,
.dsa-tutor-archive {
	background: var(--dsa-bg);
	color: var(--dsa-text);
}

/* ---------- Catalogue de cours ---------- */

.dsa-archive-course {
	padding-block: clamp(40px, 6vw, 72px) 96px;
}

.dsa-archive-course__header {
	max-width: 60ch;
	margin-bottom: 40px;
}

.dsa-archive-course__title {
	font-size: clamp(28px, 4vw, 40px);
	margin: 14px 0 8px;
}

.dsa-archive-course__count {
	color: var(--dsa-text-muted);
	font-size: var(--dsa-step--1);
	margin: 0;
}

/* Les styles de la CARTE de formation vivent dans base.css : la carte est
   désormais un composant partagé (catalogue + page d'accueil), et tutor.css
   n'est pas chargée sur l'accueil. Ci-dessous, ce qui reste propre au catalogue. */

.dsa-archive-course__pagination {
	margin-top: 48px;
	display: flex;
	justify-content: center;
}

.dsa-archive-course__pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	gap: 6px;
}

.dsa-archive-course__pagination a,
.dsa-archive-course__pagination span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 36px;
	height: 36px;
	padding: 0 10px;
	border-radius: var(--dsa-radius-sm);
	color: var(--dsa-text-muted);
	text-decoration: none;
	font-size: var(--dsa-step--1);
}

.dsa-archive-course__pagination a:hover {
	color: var(--dsa-text);
	background: var(--dsa-surface);
}

.dsa-archive-course__pagination .current {
	background: var(--dsa-lime);
	color: var(--dsa-lime-ink);
	font-weight: 600;
}

.dsa-course-empty {
	padding: 64px 0;
	text-align: center;
	color: var(--dsa-text-muted);
}

.dsa-single-course__hero {
	background: var(--dsa-bg-texture);
	padding-block: clamp(40px, 6vw, 72px);
	border-bottom: 1px solid var(--dsa-border);
}

/*
 * 20ch forçait des retours à la ligne absurdes sur les titres longs — le cours
 * « Kchat : Boostez la productivité de votre PME… » se brisait en cinq lignes.
 * 24ch laisse respirer, et text-wrap: balance équilibre les lignes entre elles
 * au lieu de laisser un mot seul sur la dernière.
 */
.dsa-single-course__title {
	font-size: var(--dsa-step-4);
	max-width: 24ch;
	text-wrap: balance;
	margin: 16px 0 12px;
}

.dsa-single-course__excerpt {
	color: var(--dsa-text-muted);
	font-size: var(--dsa-step-0);
	max-width: 65ch;
}

.dsa-single-course__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 20px;
	font-size: var(--dsa-step--1);
	color: var(--dsa-text-muted);
	margin-top: 20px;
}

.dsa-single-course__meta span:first-child {
	color: var(--dsa-peach);
}

.dsa-single-course__body {
	display: grid;
	grid-template-columns: 1.7fr 1fr;
	gap: 48px;
	padding-block: 48px 96px;
	align-items: start;
}

.dsa-single-course__thumb {
	border-radius: var(--dsa-radius-lg);
	overflow: hidden;
	margin-bottom: 32px;
}

.dsa-single-course__section {
	margin-bottom: 40px;
}

.dsa-single-course__section h2 {
	font-size: var(--dsa-step-1);
	margin-bottom: 16px;
}

.dsa-single-course__content {
	color: var(--dsa-text-muted);
}

.dsa-single-course__curriculum-count {
	color: var(--dsa-text-faint);
	font-size: var(--dsa-step--1);
	margin: -8px 0 16px;
}

.dsa-curriculum {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

/* Chaque module est un <details> : c'est lui qui porte la carte. */
.dsa-curriculum__topic {
	background: var(--dsa-surface);
	border: 1px solid var(--dsa-border);
	border-radius: var(--dsa-radius-md);
	box-shadow: var(--dsa-elev-1);
	overflow: hidden;
	transition: border-color var(--dsa-dur-instant) var(--dsa-ease-out);
}

.dsa-curriculum__topic:hover {
	border-color: var(--dsa-border-hover);
}

/* Le module ouvert se distingue : c'est celui qu'on lit. */
.dsa-curriculum__topic[open] {
	border-color: var(--dsa-lime-a25);
}

/*
 * <summary> est la zone cliquable du module. `list-style: none` + le pseudo
 * ::-webkit-details-marker retirent le triangle par défaut du navigateur, qu'on
 * remplace par notre propre chevron (voir plus bas).
 */
.dsa-curriculum__summary {
	display: flex;
	align-items: center;
	gap: var(--dsa-space-xs);
	/* Cible tactile confortable : le module entier se déplie au doigt. */
	min-height: var(--dsa-target-min);
	padding: var(--dsa-space-xs) var(--dsa-space-s);
	cursor: pointer;
	list-style: none;
	user-select: none;
	transition: background-color var(--dsa-dur-instant) var(--dsa-ease-out);
}

.dsa-curriculum__summary::-webkit-details-marker {
	display: none;
}

.dsa-curriculum__summary:hover {
	background: var(--dsa-surface-hover);
}

/*
 * L'anneau de focus se pose sur le <summary>, pas sur le <details> : c'est le
 * <summary> qui reçoit réellement le focus au clavier.
 */
.dsa-curriculum__summary:focus-visible {
	outline: none;
	box-shadow: var(--dsa-focus-ring);
	border-radius: var(--dsa-radius-sm);
}

.dsa-curriculum__topic-title {
	font-size: var(--dsa-step-0);
	margin: 0;
	/* Pousse le compteur et le chevron à droite. */
	flex: 1;
}

.dsa-curriculum__topic-count {
	flex: none;
	font-family: var(--dsa-font-mono);
	font-size: var(--dsa-step--2);
	color: var(--dsa-text-faint);
	white-space: nowrap;
}

/* Chevron dessiné en CSS : pas d'icône à charger, il pivote à l'ouverture. */
.dsa-curriculum__chevron {
	flex: none;
	width: 9px;
	height: 9px;
	border-right: 2px solid var(--dsa-text-muted);
	border-bottom: 2px solid var(--dsa-text-muted);
	rotate: 45deg;
	translate: 0 -2px;
	transition: rotate var(--dsa-dur-fast) var(--dsa-ease-out),
	            border-color var(--dsa-dur-instant) var(--dsa-ease-out);
}

.dsa-curriculum__topic[open] .dsa-curriculum__chevron {
	rotate: -135deg;
	translate: 0 2px;
	border-color: var(--dsa-lime);
}

.dsa-curriculum__items {
	list-style: none;
	margin: 0;
	padding: 0 var(--dsa-space-s) var(--dsa-space-xs);
	display: flex;
	flex-direction: column;
	gap: 2px;
	/* Sépare visuellement le contenu de son en-tête. */
	border-top: 1px solid var(--dsa-divider);
	padding-top: var(--dsa-space-2xs);
}

.dsa-curriculum__item {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: var(--dsa-step--1);
	color: var(--dsa-text-body);
	padding: 10px 0;
}

.dsa-curriculum__item-icon {
	flex: none;
	width: 1.25em;
	color: var(--dsa-lime);
	font-size: var(--dsa-step--2);
}

/*
 * Le contenu se déploie en douceur. `interpolate-size` autorise l'animation
 * vers `auto`, que l'on ne pouvait pas animer jusqu'ici ; les navigateurs qui
 * ne le supportent pas ouvrent instantanément, ce qui reste correct.
 */
@media (prefers-reduced-motion: no-preference) {
	@supports (interpolate-size: allow-keywords) {
		/* Déclaré sur le module lui-même (la propriété est héritée) plutôt que sur
		   :root, pour ne pas rendre animables tous les `auto` du site d'un coup. */
		.dsa-curriculum__topic {
			interpolate-size: allow-keywords;
		}

		.dsa-curriculum__topic::details-content {
			block-size: 0;
			overflow: hidden;
			transition: block-size var(--dsa-dur-base) var(--dsa-ease-out),
			            content-visibility var(--dsa-dur-base) allow-discrete;
		}

		.dsa-curriculum__topic[open]::details-content {
			block-size: auto;
		}
	}
}

.dsa-single-course__sidebar {
	position: sticky;
	top: 24px;
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.dsa-enroll-card,
.dsa-instructor-card {
	padding: 22px;
}

.dsa-enroll-card__price {
	display: flex;
	align-items: baseline;
	gap: 10px;
	margin-bottom: 18px;
}

.dsa-enroll-card__price-free {
	font-family: var(--dsa-font-display);
	font-weight: 700;
	font-size: var(--dsa-step-2);
	color: var(--dsa-lime);
}

.dsa-enroll-card__price-amount {
	font-family: var(--dsa-font-display);
	font-weight: 700;
	font-size: var(--dsa-step-2);
}

.dsa-enroll-card__price-regular {
	color: var(--dsa-text-faint);
	font-size: var(--dsa-step--1);
}

.dsa-btn--block {
	display: flex;
	width: 100%;
}

.dsa-enroll-card__form {
	margin: 0;
}

.dsa-enroll-card__meta {
	list-style: none;
	margin: 18px 0 0;
	padding: 16px 0 0;
	border-top: 1px solid var(--dsa-border);
	display: flex;
	flex-direction: column;
	gap: 8px;
	font-size: var(--dsa-step--1);
	color: var(--dsa-text-muted);
}

.dsa-instructor-card h3 {
	font-size: var(--dsa-step--1);
	margin: 0 0 14px;
}

.dsa-instructor-card__row {
	display: flex;
	align-items: center;
	gap: 12px;
}

.dsa-instructor-card__photo {
	width: 44px;
	height: 44px;
	border-radius: 50%;
	object-fit: cover;
}

.dsa-instructor-card__name {
	margin: 0;
	font-size: var(--dsa-step--1);
	font-weight: 600;
}

.dsa-instructor-card__title {
	margin: 2px 0 0;
	font-size: var(--dsa-step--2);
	color: var(--dsa-text-muted);
}

@media (max-width: 900px) {
	.dsa-single-course__body {
		grid-template-columns: 1fr;
	}

	.dsa-single-course__sidebar {
		position: static;
	}
}

/* ---------- Ce que vous saurez faire ---------- */

/*
 * Deux colonnes dès qu'il y a la place : une liste de 6 acquis sur une colonne
 * force à défiler avant d'arriver au programme, alors que c'est justement le
 * bloc qu'on veut faire lire en entier.
 */
.dsa-benefits__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: var(--dsa-space-xs) var(--dsa-space-m);
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
}

.dsa-benefits__item {
	display: flex;
	align-items: flex-start;
	gap: var(--dsa-space-2xs);
	color: var(--dsa-text-body);
	font-size: var(--dsa-step-0);
	line-height: 1.5;
	text-wrap: pretty;
}

/* Coche dessinée en CSS : ni requête réseau, ni police d'icônes. */
.dsa-benefits__mark {
	flex: none;
	width: 13px;
	height: 7px;
	margin-top: 0.45em;
	border-left: 2px solid var(--dsa-lime);
	border-bottom: 2px solid var(--dsa-lime);
	rotate: -45deg;
}

/* ---------- Public ciblé, prérequis, inclus ---------- */

.dsa-course-info {
	display: grid;
	gap: var(--dsa-space-m);
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	padding: var(--dsa-space-m);
	background: var(--dsa-surface);
	border: 1px solid var(--dsa-border);
	border-radius: var(--dsa-radius-lg);
	box-shadow: var(--dsa-elev-1);
}

.dsa-course-info__title {
	font-size: var(--dsa-step--1);
	font-family: var(--dsa-font-mono);
	font-weight: 500;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--dsa-lime);
	margin: 0 0 var(--dsa-space-2xs);
}

.dsa-course-info__list {
	margin: 0;
	padding-left: 1.1em;
	display: flex;
	flex-direction: column;
	gap: var(--dsa-space-3xs);
	color: var(--dsa-text-body);
	font-size: var(--dsa-step--1);
	line-height: 1.6;
}

.dsa-course-info__list li::marker {
	color: var(--dsa-text-faint);
}
