.free-library [hidden] { display: none !important; }
.free-library h1, .free-library h2, .free-library h3 { letter-spacing: normal; }
.free-library .breadcrumbs { flex-wrap: wrap; font-size: .875rem; }
.free-index, .free-detail { padding-block: 2rem 5rem; }
.free-heading { display: flex; align-items: end; justify-content: space-between; gap: 2rem; margin: 2rem 0 3rem; padding-top: 1.25rem; border-top: 4px solid var(--ink); }
.free-heading h1 { margin: .25rem 0 .6rem; font-size: clamp(2rem, 4.3vw, 3.25rem); }
.free-heading p { max-width: 780px; margin: 0; color: var(--muted); }
.free-total { display: grid; padding-inline-start: 2rem; border-inline-start: 1px solid var(--line-strong); text-align: center; }
.free-total bdi { color: var(--accent); font-size: 1.9rem; font-weight: 780; line-height: 1.5; }
.free-total span { font-size: .875rem; white-space: nowrap; }
.free-category { margin-block: 1.5rem 3rem; }
.free-category-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; border-bottom: 1px solid var(--line-strong); }
.free-category-heading h2 { font-size: 1.2rem; }
.free-category-heading > span { color: var(--muted); font-size: .875rem; }
.free-collections { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin-top: 1rem; }
.free-collections:has(> :only-child) { grid-template-columns: 1fr; }
.free-collection-card { overflow: hidden; border: 1px solid var(--line-strong); border-top: 3px solid var(--brand); background: var(--surface); }
.free-collections:has(> :only-child) .free-collection-card { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.free-cover { display: block; align-self: stretch; background: var(--ink); }
.free-cover img { width: 100%; height: 100%; aspect-ratio: 16 / 9; object-fit: cover; filter: saturate(.9); }
.free-collection-copy { padding: clamp(1.3rem, 3vw, 2.5rem); }
.free-collection-copy h3 { margin: .4rem 0 .75rem; font-size: clamp(1.65rem, 3vw, 2.25rem); }
.free-collection-copy h3 a { text-decoration: none; }
.free-collection-copy > p { margin: 0 0 1rem; color: var(--muted); }
.free-card-meta { display: flex; flex-wrap: wrap; align-items: center; gap: .8rem; padding-block: .75rem; border-block: 1px solid var(--line); font-size: .875rem; }

.free-classroom { display: grid; grid-template-columns: minmax(0, 2.2fr) minmax(265px, .85fr); gap: 1rem; align-items: start; }
.free-player { min-width: 0; overflow: hidden; border: 1px solid var(--ink); border-top: 4px solid var(--accent); background: var(--surface); }
.free-player video { display: block; width: 100%; aspect-ratio: 16/9; background: #111; }
.free-player audio { display: block; width: calc(100% - 2rem); margin: 2rem 1rem; }
.free-playbar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.15rem 1.25rem .5rem; }
.free-playbar h2 { margin: .25rem 0; font-size: 1.3rem; }
.free-playbar .button { flex-shrink: 0; white-space: nowrap; }
.free-media-status { min-height: 1.8em; margin: .5rem 1.25rem; color: var(--muted); font-size: .875rem; }
.free-chapters { display: flex; flex-wrap: wrap; gap: .35rem; padding: 0 1.25rem .8rem; }
.free-chapters button { min-height: 2.75rem; padding: .4rem .65rem; border: 1px solid var(--line-strong); background: transparent; color: var(--muted); cursor: pointer; font-size: .875rem; }
.free-chapters button:hover { border-color: var(--ink); color: var(--ink); }
.free-unit-navigation { display: flex; justify-content: space-between; padding: 1rem 1.25rem; border-top: 1px solid var(--line); }
.free-library button:disabled { opacity: .45; cursor: default; transform: none; }
.free-syllabus { padding: 1rem; border: 1px solid var(--line-strong); border-top: 4px solid var(--ink); background: var(--surface); }
.free-syllabus h2 { margin: .2rem .3rem 1rem; font-size: 1.05rem; }
.free-unit { display: block; width: 100%; margin-bottom: .45rem; padding: .9rem .8rem; border: 1px solid transparent; background: transparent; color: var(--ink); cursor: pointer; text-align: start; }
.free-unit:hover { border-color: var(--line-strong); }
.free-unit.active { border-color: var(--brand); border-inline-start-width: 5px; background: #e2ece9; }
.free-unit-meta { display: flex; justify-content: space-between; gap: 1rem; color: var(--muted); font-size: .875rem; }
.free-unit.active .free-unit-meta { color: var(--brand); }
.free-unit strong { display: block; margin-top: .35rem; font-size: 1rem; line-height: 1.8; }
.free-back { display: inline-block; padding: .5rem 0; color: var(--muted); font-size: .875rem; }
.free-materials { padding-block: 2.5rem; border-bottom: 1px solid var(--line-strong); }
.free-materials h2, .free-practice h2, .free-examples h2, .free-next h2 { font-size: 1.5rem; }
.free-downloads { display: flex; flex-wrap: wrap; gap: .6rem; margin-block: 1rem; }
.free-materials details { margin-top: 1.4rem; }
.free-materials details p { max-width: 900px; }
.free-practice { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 2rem; padding-block: 2.5rem; border-bottom: 1px solid var(--line-strong); }
.free-practice p { color: var(--muted); }
.free-practice label { display: block; margin-bottom: .6rem; }
.free-practice textarea { width: 100%; min-height: 11rem; padding: 1rem; resize: vertical; border: 1px solid var(--line-strong); background: var(--surface); color: var(--ink); font-size: 1rem; line-height: 1.9; }
.free-example-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 260px)); gap: 1rem; }
.free-example-grid figure { margin: 0; }
.free-example-grid img { width: 100%; height: auto; aspect-ratio: 3/4; border: 1px solid var(--ink); background: var(--surface-soft); object-fit: contain; }
.free-example-grid figcaption { margin-top: .6rem; color: var(--muted); font-size: .875rem; }
.free-next { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; margin-top: 2.5rem; padding: 2rem; border-inline-start: 6px solid var(--accent); background: var(--ink); color: var(--paper); }
.free-next p { margin: .5rem 0; color: #bbb6ad; }
.free-next .button { flex-shrink: 0; border-color: var(--paper); color: var(--paper); }

@media (max-width: 1050px) {
  .free-library .main-nav a { padding-inline: .5rem; }
  .free-classroom { grid-template-columns: minmax(0, 1fr) 270px; }
}
@media (max-width: 760px) {
  .free-heading { align-items: start; gap: 1rem; margin-block: 1.1rem 1.8rem; }
  .free-total { padding-inline-start: 1rem; }
  .free-classroom, .free-practice, .free-collections, .free-collections:has(> :only-child) .free-collection-card { grid-template-columns: 1fr; }
  .free-playbar { align-items: start; flex-direction: column; }
  .free-playbar .button { width: 100%; }
  .free-next { align-items: start; flex-direction: column; padding: 1.4rem; }
  .free-syllabus { padding: .9rem; }
  .free-unit { padding: .75rem; }
}
@media (max-width: 420px) {
  .free-heading { display: block; }
  .free-total { display: flex; align-items: center; gap: .65rem; border: 0; padding: .75rem 0 0; text-align: start; }
  .free-unit-navigation { gap: .5rem; flex-wrap: wrap; }
  .free-unit-navigation .button { flex: 1; }
  .free-total bdi { font-size: 1.4rem; }
  .free-heading h1 { font-size: 2.15rem; }
  .free-total { padding-inline-start: .65rem; }
  .free-detail, .free-index { padding-top: 1rem; }
  .free-example-grid { grid-template-columns: 1fr 1fr; }
}
