@media (min-width: 40em) { main { margin: 2em 4em 0 4em; } details.program > summary > .name, details.program > summary ~ * { margin-left: 2em; } } details.program:first-child { border-top: 1px solid black; } details.program { position: relative; width: 100%; border-bottom: 1px solid black; } details.program > summary { display: grid; grid-template-columns: 4fr 5fr 4em; grid-gap: 0.8em; line-height: 2em; list-style: none; cursor: pointer; } details.program > summary::-webkit-details-marker { display: none; } /* Disable Chrome's outline; we already highlight this block prominently enough IMO. */ details.program > summary:focus { outline: none; } details.program > summary > .name, details.program[open] > summary > .name, details.program[open] > summary > .composers { color: #1f4e79; font-weight: bold; } details.program > summary > img.button { display: block; width: 2em; margin: auto 1em; } details.program > summary > img.button.close, details.program[open] > summary > img.button.open { display: none; } details.program[open] > summary > img.button.close { display: block; position: absolute; bottom: 0; right: 0; } details.program > *:nth-child(3) { color: var(--gold); font-weight: 600; } html[lang=fr] details.program blockquote { quotes: "« " " »"; /* No idea why browsers don't add spaces by default. */ } details.program blockquote p::before { content: open-quote; } details.program blockquote p::after { content: close-quote; } ol.pieces { list-style: none; padding-left: 0; } ol.pieces > li.intermission { margin-left: 4em; font-style: italic; }