.igcse-practicals { padding-bottom: 24px; }
.igcse-practicals > .assessment-test-entry { display: none; }
.practical-intro { max-width: 80ch; margin: 0 0 24px; color: var(--muted); line-height: 1.65; }
.practical-group { margin-bottom: 30px; }
.practical-group h3 { margin: 0 0 12px; font-size: 1.15rem; }
.practical-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: 9px; }
.practical-entry { min-width: 0; border: 1px solid rgba(150,185,220,.22); border-radius: 12px; background: rgba(90,140,195,.055); overflow-wrap: anywhere; }
.practical-summary { display: flex; align-items: baseline; gap: 14px; min-height: 48px; padding: 14px 18px; cursor: pointer; list-style: none; }
.practical-summary::-webkit-details-marker { display: none; }
.practical-summary::after { content: '+'; flex: 0 0 auto; margin-left: auto; color: var(--cyan,#73e4ff); }
.practical-entry[open] > summary::after { content: '−'; }
.practical-number { flex: 0 0 48px; color: var(--cyan,#73e4ff); font-size: .85rem; font-weight: 700; white-space: nowrap; }
.practical-name { flex: 1; font-weight: 600; line-height: 1.5; min-width: 0; }
.practical-detail { padding: 0 18px 16px 80px; line-height: 1.65; }
.practical-detail p { margin-top: 0; }
.practical-task-label { color: var(--cyan,#73e4ff); font-weight: 700; margin-bottom: 6px; }
.practical-question { max-width: 80ch; }
.practical-answer { margin: 14px 0; max-width: 85ch; }
.practical-answer > summary { cursor: pointer; color: var(--cyan,#73e4ff); min-height: 44px; padding: 8px 0; }
.practical-answer > p { padding: 10px 0; line-height: 1.75; }
.practical-links { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 24px; }
.practical-link { display: inline-flex; align-items: center; min-height: 44px; color: var(--cyan,#73e4ff); font-size: .9rem; line-height: 1.5; }
.practical-summary:focus-visible,.practical-link:focus-visible { outline: 2px solid var(--cyan,#73e4ff); outline-offset: 3px; }
.practical-scope,.practical-sources { color: var(--muted); font-size: .9rem; line-height: 1.6; }
.practical-sources { margin-top: 30px; padding-top: 18px; border-top: 1px solid rgba(150,185,220,.22); }
@media(max-width:820px) {
  .practical-list { grid-template-columns: minmax(0, 1fr); }
}
@media(max-width:600px) {
  .practical-summary { gap: 9px; padding: 12px; }
  .practical-number { flex-basis: 42px; }
  .practical-name { font-size: .95rem; }
  .practical-detail { padding: 0 12px 14px; }
  .practical-links { gap: 6px 16px; }
}

.ig-practicals-link { color: var(--cyan,#73e4ff); font-weight:600; text-decoration:underline; text-underline-offset:3px; min-height:44px; display:inline-flex; align-items:center; padding:4px 8px; }
.ig-practicals-link:focus-visible { outline:2px solid var(--cyan,#73e4ff); outline-offset:2px; }
