/* Listing shell, late rules — the design's school-color-css and
   listing-expand-all-css <body> styles, shared by 44 DL Programme Listing and
   45 Course Listing. They come after each page's <head> styles in the design
   and override some of them (the school colour beats the DL purple). It is
   named last in each listing block's block.json "style", but WordPress does
   not guarantee it prints last: it enqueues every registered block's styles
   in registration order, so it can land before the second listing block's
   own sheet. The block sheets therefore leave out the rules this one
   overrides — keep it that way. Scoped under .listing-shell. The default
   school colour reads the block's accent. */

/* ── school-color-css ── */
.listing-shell .programme-table-section { --school-color:var(--dl); --school-surface:var(--dl-surface); }
.listing-shell .programme-table-section--ass { --school-color:#D85C00; --school-surface:#FFF1E4; }
.listing-shell .programme-table-section--ba { --school-color:#6200B8; --school-surface:#F3EDFF; }
.listing-shell .programme-table-section--el { --school-color:#448D00; --school-surface:#EAF5DC; }
.listing-shell .programme-table-section--nhs { --school-color:#D02E6F; --school-surface:#FCEBF2; }
.listing-shell .programme-table-section--st { --school-color:#144F9D; --school-surface:#EBF2FA; }
.listing-shell .programme-table-section .prog-table--dl thead { background:var(--school-color); }
.listing-shell .programme-table-section__title::before { content:''; display:inline-block; width:20px; height:20px; margin-right:12px; vertical-align:-3px; background:var(--school-color); -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 10L12 5 2 10l10 5 10-5z'/%3E%3Cpath d='M6 12v5c0 1.7 2.7 3 6 3s6-1.3 6-3v-5'/%3E%3Cpath d='M22 10v6'/%3E%3C/svg%3E") center/contain no-repeat; mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 10L12 5 2 10l10 5 10-5z'/%3E%3Cpath d='M6 12v5c0 1.7 2.7 3 6 3s6-1.3 6-3v-5'/%3E%3Cpath d='M22 10v6'/%3E%3C/svg%3E") center/contain no-repeat; }
.listing-shell .programme-table-section__header:hover .programme-table-section__title { color:var(--school-color); }
.listing-shell .programme-table-section .programme-table-section__collapse-toggle { color:var(--school-color); border:none; background:none; box-shadow:none; }
.listing-shell .programme-table-section__header:hover .programme-table-section__collapse-toggle { background:none; border:none; color:var(--school-color); }
.listing-shell .programme-table-section .programme-table-section__info:hover { background:var(--school-color); }
.listing-shell .programme-table-section .prog-table--dl tbody tr:hover,
.listing-shell .programme-table-section .prog-table--dl tbody tr:nth-child(even):hover { background:var(--school-surface); }
.listing-shell .programme-table-section .prog-table tbody td a { color:#333333; }
.listing-shell .programme-table-section .course-cell__name:hover { color:var(--school-color)!important; text-decoration:underline; }
.listing-shell .programme-table-section .course-link { color:var(--school-color)!important; }
.listing-shell .programme-table-section__title { font-weight:var(--fw-bold,700); }
/* ── listing-expand-all-css ── */
.listing-shell .sbf-expand-row { display:flex; justify-content:flex-end; margin:0 0 14px; }
.listing-shell .sbf-expand { display:inline-flex; align-items:center; gap:6px; height:26px; padding:0; border:0; background:none; color:#626262; font-family:var(--font-body); font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; cursor:pointer; transition:color .2s ease; }
.listing-shell .sbf-expand:hover { color:#1A1A1A; }
.listing-shell .sbf-expand__ico { flex-shrink:0; }
.listing-shell .sbf-expand__bar { transition:opacity .2s ease,transform .2s ease; transform-origin:center; }
.listing-shell .sbf-expand.is-all-open .sbf-expand__bar { opacity:0; transform:scaleY(0); }
.listing-shell .listing-expand-all { display:inline-flex; align-items:center; gap:12px; height:36px; padding:0 16px; border-radius:var(--radius-pill,999px); border:1.5px solid rgba(0,0,0,.15); background:#F2F2F2; color:#4A4A4A; font-family:var(--font-body); font-size:14px; font-weight:var(--fw-bold,700); cursor:pointer; transition:background var(--ease-base,.2s ease),border-color var(--ease-base,.2s ease),color var(--ease-base,.2s ease); align-self:center; margin-left:16px; }
.listing-shell .listing-expand-all:hover { background:#5A5A5A; border-color:#5A5A5A; color:#fff; }
.listing-shell .listing-expand-all svg { width:14px; height:14px; }
.listing-shell .listing-expand-all .listing-expand-all__bar { transition:opacity var(--ease-base,.2s ease),transform var(--ease-base,.2s ease); transform-origin:center; }
.listing-shell .listing-expand-all.is-all-open .listing-expand-all__bar { opacity:0; transform:scaleY(0); }
