/* 학생·강사·수업 공용 화면. SSOT 11절: 브랜드마다 같은 위젯, 제목만 절제된 움직임. */
.lesson-heading.sonub-page-header {
	display: grid;
	min-inline-size: 0;
	gap: var(--wa-space-m);
	margin: 0;
	padding: clamp(1.25rem, 3vw, 2rem);
	border: 1px solid var(--sonub-border);
	border-block-start: 3px solid var(--sonub-accent);
	border-radius: var(--sonub-radius-panel);
	background: var(--sonub-surface);
	box-shadow: var(--sonub-shadow-card);
}
.lesson-heading .sonub-eyebrow {
	gap: var(--wa-space-s);
	color: var(--sonub-muted);
	font-size: var(--wa-font-size-s);
	font-weight: var(--wa-font-weight-semibold);
}
.lesson-heading .sonub-eyebrow > .fa-solid {
	display: inline-grid;
	place-items: center;
	inline-size: 2.25rem;
	block-size: 2.25rem;
	border-radius: var(--wa-border-radius-m);
	background: var(--sonub-accent-soft);
	color: var(--sonub-accent-ink);
}
.lesson-heading .sonub-heading-row { align-items: start; gap: var(--wa-space-m); }
.lesson-heading h1 {
	margin: 0;
	font-size: clamp(calc(1.6rem * var(--wa-font-size-scale, 1)), 3vw, calc(2rem * var(--wa-font-size-scale, 1)));
	line-height: 1.3;
	text-wrap: balance;
	overflow-wrap: anywhere;
}
.lesson-heading .sonub-lead { min-inline-size: 0; max-inline-size: 65ch; margin: 0; color: var(--sonub-muted); line-height: 1.7; overflow-wrap: anywhere; }
.lesson-heading .teacher-guidance {
	margin: 0;
	padding: var(--wa-space-m) 0 0;
	border: 0;
	border-block-start: 1px solid var(--sonub-border);
	border-radius: 0;
	background: transparent;
}
.lesson-heading .sonub-actions { align-items: stretch; gap: var(--wa-space-xs); }
.lesson-heading .sonub-button { min-block-size: 2.75rem; }
.lesson-heading .page-guide-actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--wa-space-s); }
.lesson-heading .page-guide-link { display: inline-flex; align-items: center; gap: var(--wa-space-xs); min-block-size: 2.5rem; padding: var(--wa-space-xs) var(--wa-space-s); border-radius: var(--wa-border-radius-m); }
.lesson-heading .page-guide-link:hover { background: var(--sonub-accent-soft); }
.lesson-heading.lesson-heading--compact { padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.lesson-heading--compact :is(h1, h2) { margin: 0; font-size: var(--wa-font-size-l); }
.lesson-heading-title[data-webmovie] {
	display: block;
	--webmovie-y: 4px;
	--webmovie-s: 1;
	--webmovie-dur: 160ms;
	--webmovie-delay: 0ms;
}
.lesson-feedback { display: flex; align-items: baseline; gap: var(--wa-space-s); }
/* 프로필·시간표 편집과 학생 계정 안내도 같은 정적인 창으로 읽는다. */
.lesson-dialog { --show-duration: 0ms; --hide-duration: 0ms; }
.lesson-dialog::part(dialog) { animation: none !important; transition: none !important; border: 1px solid var(--sonub-border); border-radius: var(--sonub-radius-panel); background: var(--sonub-surface); color: var(--sonub-ink); }
.lesson-dialog::part(header) { border-block-end: 1px solid var(--sonub-border); }
.lesson-dialog::part(title) { overflow-wrap: anywhere; }
.lesson-dialog::part(footer) { border-block-start: 1px solid var(--sonub-border); background: var(--sonub-canvas); }
.lesson-dialog::part(close-button__base) { min-inline-size: 2.75rem; min-block-size: 2.75rem; }
.lesson-dialog::part(body) { overscroll-behavior: contain; }
@media (max-width: 40rem) {
	.lesson-heading .sonub-heading-row { flex-direction: column; align-items: stretch; }
	.lesson-heading .sonub-actions { inline-size: 100%; }
	.lesson-heading .sonub-actions > * { flex: 1 1 auto; }
}
@media (prefers-reduced-motion: reduce) {
	.lesson-heading-title[data-webmovie] { animation: none !important; transition: none !important; }
}
