/* Courses extends the shared field-guide system. */
.ta-courses .nav-link[aria-current="page"] { color: var(--home-ink); text-decoration: underline; text-decoration-color: var(--home-accent); text-underline-offset: .45em; }

.ta-courses .catalogue-intro { padding-block: 48px; background: var(--home-field); color: var(--home-field-ink); }
.ta-courses .catalogue-opening { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: 72px; align-items: center; }
.ta-courses .catalogue-intro h1 { font-size: clamp(2.8rem, 4.6vw, 4.5rem); font-weight: 600; letter-spacing: -.04em; line-height: 1.1; text-wrap: balance; }
.ta-courses .catalogue-intro h1 span { display: block; }
.ta-courses .catalogue-intro h1 span + span { color: var(--home-signal); margin-top: 6px; }
.ta-courses .catalogue-intro-copy > p { max-width: 43ch; margin-top: 23px; color: var(--home-field-muted); font-size: 20px; line-height: 1.5; }
.ta-courses .catalogue-intro .home-button { margin-top: 26px; }
.ta-courses .catalogue-intro :focus-visible { outline-color: var(--home-signal); }
.ta-courses .catalogue-photo { min-width: 0; margin: 0; }
.ta-courses .catalogue-photo-window { position: relative; height: 340px; overflow: hidden; background: var(--home-action-ink); }
.ta-courses .catalogue-photo-window img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; transform: scale(1.025); }

.ta-courses .catalogue-section { padding-block: 68px 84px; }
.ta-courses .catalogue-heading { display: flex; justify-content: space-between; align-items: end; gap: 40px; padding-bottom: 30px; }
.ta-courses .catalogue-heading h2 { font-size: clamp(1.8rem, 2.8vw, 2.5rem); }
.ta-courses .catalogue-heading > p { max-width: 38ch; color: var(--home-muted); font-size: 18px; }
.ta-courses .catalogue-list { position: relative; border-top: 1px solid var(--home-line); }
.ta-courses .catalogue-list::before { content: ''; position: absolute; top: -1px; inset-inline: 0; height: 1px; background: var(--home-accent); transform-origin: left; }
.ta-courses .catalogue-course { position: relative; display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr) auto; align-items: center; gap: 44px; padding: 38px 20px; border-bottom: 1px solid var(--home-line); transition: background-color 180ms ease; }
.ta-courses .catalogue-course:is(:hover, :focus-within) { background: var(--home-soft); }
.ta-courses .catalogue-course-title { display: flex; align-items: start; gap: 24px; min-width: 0; }
.ta-courses .catalogue-course-image { flex: 0 0 128px; width: 128px; height: 104px; object-fit: cover; }
.ta-courses .catalogue-course h3 { font-size: clamp(1.5rem, 2.5vw, 2.125rem); font-weight: 500; letter-spacing: -.025em; line-height: 1.22; overflow-wrap: anywhere; text-wrap: balance; }
.ta-courses .catalogue-course h3 a { color: var(--home-ink); text-decoration: none; }
.ta-courses .catalogue-course h3 a::after { content: ''; position: absolute; inset: 0; }
.ta-courses .catalogue-course h3 a:focus-visible { outline: none; }
.ta-courses .catalogue-course:has(a:focus-visible) { outline: 2px solid var(--home-accent); outline-offset: 5px; }
.ta-courses .catalogue-course-description p { color: var(--home-muted); font-size: 18px; line-height: 1.55; overflow-wrap: anywhere; max-width: 54ch; }
.ta-courses .catalogue-course-meta { display: flex; flex-wrap: wrap; gap: 6px 20px; list-style: none; margin: 16px 0 0; padding: 0; color: var(--home-ink); font-size: 16px; font-variant-numeric: tabular-nums; }
.ta-courses .catalogue-course-meta:first-child { margin-top: 0; }
.ta-courses .catalogue-course-meta li { white-space: nowrap; }
.ta-courses .catalogue-course-action { display: flex; align-items: center; justify-content: space-between; gap: 22px; min-height: 44px; color: var(--home-accent); font-size: 17px; font-weight: 600; }
.ta-courses .catalogue-course-action .home-arrow { width: 28px; height: 28px; flex-basis: 28px; }
.ta-courses .catalogue-course:is(:hover, :focus-within) .home-arrow { transform: translateX(4px); }
.ta-courses .catalogue-empty { padding: 54px 0 20px; max-width: 62ch; }
.ta-courses .catalogue-empty h3 { font-size: clamp(1.5rem, 2.5vw, 2rem); font-weight: 500; letter-spacing: -.025em; }
.ta-courses .catalogue-empty p { color: var(--home-muted); margin-block: 18px 20px; font-size: 19px; }
.ta-courses .catalogue-closing-copy { max-width: 780px; }
.ta-courses .catalogue-closing h2 { max-width: 24ch; }
.ta-courses .catalogue-closing-copy p { max-width: 62ch; margin-top: 20px; font-size: 19px; }

.ta-courses :is(.home-button, .home-text-link):focus-visible .home-arrow:not(.home-arrow-down) { transform: translateX(4px); }
.ta-courses :is(.home-button, .home-text-link):is(:hover, :focus-visible) .home-arrow-down { transform: rotate(90deg) translateX(3px); }
.ta-courses .catalogue-intro.is-arriving .catalogue-photo-window { animation: catalogue-aperture 800ms var(--home-ease) both; }
.ta-courses .catalogue-intro.is-arriving img { animation: catalogue-settle 800ms var(--home-ease) both; }
.ta-courses .catalogue-list.is-drawn::before { animation: catalogue-rule 1400ms var(--home-ease) both; }
@keyframes catalogue-aperture { from { clip-path: inset(0 16% 0 0); } to { clip-path: inset(0); } }
@keyframes catalogue-aperture-rtl { from { clip-path: inset(0 0 0 16%); } to { clip-path: inset(0); } }
@keyframes catalogue-settle { from { transform: scale(1.1); } to { transform: scale(1.025); } }
@keyframes catalogue-rule { from { transform: scaleX(0); } to { transform: scaleX(1); } }

[dir="rtl"] .ta-courses :is(h1, h3) { letter-spacing: 0; }
[dir="rtl"] .ta-courses .catalogue-intro h1 { font-size: clamp(2.6rem, 4.4vw, 4.3rem); line-height: 1.4; }
[dir="rtl"] .ta-courses .catalogue-course h3 { line-height: 1.5; }
[dir="rtl"] .ta-courses .catalogue-list::before { transform-origin: right; }
[dir="rtl"] .ta-courses .catalogue-intro.is-arriving .catalogue-photo-window { animation-name: catalogue-aperture-rtl; }
[dir="rtl"] .ta-courses :is(.home-button, .home-text-link):focus-visible .home-arrow:not(.home-arrow-down),
[dir="rtl"] .ta-courses .catalogue-course:is(:hover, :focus-within) .home-arrow { transform: scaleX(-1) translateX(4px); }
[lang="fr"] .ta-courses .catalogue-intro h1 { font-size: clamp(2.5rem, 3.9vw, 3.75rem); }

@media (max-width: 1199.98px) {
	.ta-courses .catalogue-opening { gap: 40px; }
	.ta-courses .catalogue-photo-window { height: 340px; }
	.ta-courses .catalogue-course { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px 36px; padding: 30px 16px; }
	.ta-courses .catalogue-course-title { grid-row: span 2; }
	.ta-courses .catalogue-course-action { grid-column: 2; justify-content: start; }
	.ta-courses .catalogue-course-image { flex-basis: 88px; width: 88px; height: 96px; }
}

@media (max-width: 767.98px) {
	.ta-courses .catalogue-intro { padding-block: 34px; }
	.ta-courses .catalogue-opening { grid-template-columns: 1fr; gap: 30px; }
	.ta-courses .catalogue-intro h1 { font-size: clamp(2.3rem, 9.5vw, 3.75rem); line-height: 1.12; }
	.ta-courses .catalogue-intro-copy > p { font-size: 18px; margin-top: 20px; }
	.ta-courses .catalogue-intro .home-button { margin-top: 22px; }
	.ta-courses .catalogue-photo-window { height: 230px; }
	.ta-courses .home-photo-frame { inset: 16px; }
	.ta-courses .catalogue-section { padding-block: 48px 56px; }
	.ta-courses .catalogue-heading { display: block; padding-bottom: 26px; }
	.ta-courses .catalogue-heading > p { margin-top: 14px; }
	.ta-courses .catalogue-course { grid-template-columns: minmax(0, 1fr); gap: 16px; padding: 28px 0; }
	.ta-courses .catalogue-course-title { grid-row: auto; gap: 18px; }
	.ta-courses .catalogue-course h3 { font-size: 27px; }
	.ta-courses .catalogue-course-description p { font-size: 18px; }
	.ta-courses .catalogue-course-meta { margin-top: 14px; }
	.ta-courses .catalogue-course-action { grid-column: auto; justify-content: space-between; }
	.ta-courses .catalogue-course-image { flex-basis: 88px; height: 80px; }
	.ta-courses .catalogue-empty { padding-block: 32px 4px; }
	.ta-courses .catalogue-closing-copy p { font-size: 18px; }
	[lang="fr"] .ta-courses .catalogue-intro h1 { font-size: clamp(2.15rem, 8.7vw, 3.6rem); }
	[dir="rtl"] .ta-courses .catalogue-intro h1 { font-size: clamp(2.2rem, 9vw, 3.7rem); line-height: 1.5; }
}
