/* Programme pages and shared navigation. Existing article styling stays local. */
body > header .wrap { max-width: 1160px; flex-wrap: wrap; gap: .8rem 1.25rem; }
body > header nav { gap: .6rem 1.05rem; }
body > header nav a { margin: 0; }
.programme-primary, .programme-utility { display: flex; align-items: center; gap: .65rem 1.05rem; flex-wrap: wrap; }
.programme-utility { padding-left: 1rem; border-left: 1px solid var(--border, #d9d3c9); font-size: .78rem; }
.programme-primary a { font-weight: 650; }
.programme-primary a[aria-current="page"] { color: var(--accent, #a64916); text-decoration: underline; text-underline-offset: .3em; }
.programme-skip { position: absolute; top: -8rem; left: 1rem; z-index: 100; padding: .5rem 1rem; background: var(--bg,#fff); }
.programme-skip:focus { top: .5rem; }
.programme-page { --programme-measure: 46rem; }
.programme-page::before, .programme-page::after { display: none; }
.programme-shell { max-width: 1080px; margin: 0 auto; padding: 0 1.6rem; }
.programme-page article { max-width: var(--programme-measure); margin: 0 auto; padding: 3.3rem 0 2rem; }
.programme-page.programme-landing article, .programme-page.programme-library article { max-width: none; }
.programme-page h1 { font-family: var(--font-body,Georgia,serif); font-size: clamp(2.1rem,5vw,3.5rem); font-weight: 400; line-height: 1.17; letter-spacing: -.035em; margin: .25rem 0 1.15rem; color: var(--text-bright,#211e19); text-wrap: balance; }
.programme-page h2 { font-family: var(--font-sans,system-ui,sans-serif); font-size: 1.4rem; line-height: 1.35; margin: 2.8rem 0 1.1rem; padding: 0; letter-spacing: -.025em; color: var(--text-bright,#211e19); }
.programme-page h3 { font-family: var(--font-sans,system-ui,sans-serif); font-size: 1.08rem; line-height: 1.45; margin: 1.55rem 0 .6rem; }
.programme-page p { margin: 0 0 1.1rem; }
.programme-page a { text-underline-offset: .17em; }
.programme-page a:hover { text-decoration: underline; }
.programme-page article > p, .programme-page article > h2, .programme-page article > h3, .programme-page article > ul, .programme-page article > ol { max-width: var(--programme-measure); }
.programme-page p.epigraph { font-family: var(--font-sans,system-ui,sans-serif); color: var(--text-dim,#635b52); font-size: 1.15rem; font-style: normal; line-height: 1.5; margin: 0 0 1.7rem; }
.programme-page .programme-kicker { font-family: var(--font-sans,system-ui,sans-serif); font-size: .76rem; font-weight: 650; letter-spacing: .09em; text-transform: uppercase; color: var(--accent,#a64916); margin: 0 0 .7rem; }
.programme-page .programme-intro { font-size: 1.17rem; line-height: 1.7; max-width: 48rem; }
.programme-page .key-insight { background: var(--bg-raised,#f1eee8); border: 0; border-left: 3px solid var(--accent,#a64916); padding: 1.2rem 1.4rem; margin: 1.4rem 0 1.6rem; }
.programme-page .key-insight p:last-child { margin-bottom: 0; }
.programme-actions { display: flex; gap: .9rem 1.4rem; align-items: center; flex-wrap: wrap; margin: 1.6rem 0 2.8rem; font: 600 .91rem/1.5 var(--font-sans,system-ui,sans-serif); }
.programme-page .programme-button { display: inline-block; background: var(--accent,#a64916); color: var(--bg,#fff); padding: .75rem 1.05rem; border-radius: 3px; text-decoration: none; }
.programme-page .programme-button:hover { background: var(--accent-dim,#83400f); color: var(--bg,#fff); }
.programme-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1.1rem; margin: 1.4rem 0; }
.programme-grid-two { grid-template-columns: repeat(2,minmax(0,1fr)); }
.programme-page .programme-card { padding: 1.3rem; margin: 0; border: 1px solid var(--border,#d9d3c9); background: var(--bg-card,#f5f2ec); border-radius: 3px; }
.programme-page .programme-card h3 { margin: 0 0 .75rem; font-size: 1.2rem; }
.programme-page .programme-card p { font-size: .93rem; line-height: 1.7; }
.programme-card > a:last-child { font-family: var(--font-sans,system-ui,sans-serif); font-size: .9rem; font-weight: 600; }
.programme-work { margin: 1.5rem 0; border-top: 1px solid var(--border,#d9d3c9); }
.programme-page .programme-work section { padding: 1.25rem 0; margin: 0; border-bottom: 1px solid var(--border,#d9d3c9); }
.programme-page .programme-work h3 { margin: 0 0 .45rem; }
.programme-page .programme-work p { max-width: 46rem; margin-bottom: .3rem; }
.programme-toc, .programme-ref-nav { font: .85rem/1.6 var(--font-sans,system-ui,sans-serif); margin: 1.4rem 0 2rem; padding: .9rem 0; border-top: 1px solid var(--border,#d9d3c9); border-bottom: 1px solid var(--border,#d9d3c9); }
.programme-toc ul, .programme-ref-nav ul { display:flex; flex-wrap:wrap; gap:.4rem 1rem; padding:0; margin:0; list-style:none; }
.programme-toc a, .programme-ref-nav a { margin:0; font-size:inherit; }
.programme-page table { border-collapse: collapse; width: 100%; font: .92rem/1.6 var(--font-sans,system-ui,sans-serif); margin: 1.5rem 0; }
.programme-page th, .programme-page td { text-align: left; padding:.8rem; border-bottom:1px solid var(--border,#d9d3c9); vertical-align:top; }
.programme-page th { background:var(--bg-raised,#f1eee8); }
.programme-table-wrap { overflow-x:auto; }
.catalogue-controls { margin:1.2rem 0; font-family:var(--font-sans,system-ui,sans-serif); }
.catalogue-controls label { display:block; font-size:.9rem; margin-bottom:.4rem; }
.catalogue-controls input { width:100%; max-width:34rem; padding:.7rem; font:inherit; border:1px solid var(--border,#d9d3c9); border-radius:3px; color:var(--text,#211e19); background:var(--bg,#fff); }
#catalogue-count { font-size:.82rem; margin-top:.5rem; color:var(--text-dim,#635b52); }
.programme-page .catalogue-group { margin:1.8rem 0; padding:0; border:0; }
.programme-page .catalogue-list { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.15rem 1.8rem; }
.programme-page .catalogue-list li { margin:0; padding:.7rem 0; border-bottom:1px solid var(--border,#d9d3c9); }
.catalogue-list a { font:600 .94rem/1.5 var(--font-sans,system-ui,sans-serif); display:block; }
.catalogue-list small { display:block; font: .8rem/1.6 var(--font-sans,system-ui,sans-serif); color:var(--text-dim,#635b52); margin-top:.3rem; }
.programme-footer { max-width:1080px; margin:2rem auto 0; padding:1.7rem 1.6rem 2.5rem; text-align:left; font: .83rem/1.8 var(--font-sans,system-ui,sans-serif); }
.programme-footer p { margin:0 0 .6rem; }
.programme-footer a { white-space:normal; }
[hidden] { display:none !important; }
:where(a,button,input,summary):focus-visible { outline: 2px solid var(--accent,#a64916); outline-offset: 4px; }
:where(h2,h3,[id]) { scroll-margin-top:1.2rem; }
@media (max-width:760px) {
 body > header .wrap { padding:0 1.2rem; }
 body > header nav { order:3; flex-basis:100%; width:100%; gap:.65rem; }
 .programme-primary { gap:.55rem 1rem; }
 .programme-utility { margin-left:auto; }
 .programme-grid { grid-template-columns:1fr; }
 .programme-grid-two { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .programme-page article { padding-top:2.2rem; }
 .programme-shell { padding:0 1.2rem; }
 .programme-page h1 { font-size:2.35rem; }
 .programme-page .programme-intro { font-size:1.07rem; }
}
@media (max-width:520px) {
 .programme-utility { margin-left:0; padding:0; border:0; flex-basis:100%; }
 .programme-grid-two, .programme-page .catalogue-list { grid-template-columns:1fr; }
 .programme-page p, .programme-page li { overflow-wrap:break-word; }
 .programme-page h1 { font-size:2.12rem; }
 .programme-actions { align-items:flex-start; gap:.8rem 1.2rem; }
 .programme-page .key-insight { padding:1rem; }
}
@media print {
 body > header, .programme-footer, .programme-actions, .catalogue-controls, .programme-toc { display:none; }
 .programme-shell, .programme-page article { max-width:none; padding:0; }
 .programme-page { color:#111; background:#fff; font-size:11pt; }
 .programme-grid { display:block; }
 .programme-card { break-inside:avoid; }
 .programme-page h1 { font-size:25pt; }
 .programme-page h2 { break-after:avoid; }
}
