@import url("../../header.css");

:root { --ink:#171717; --muted:#686868; --line:#d9d5cd; --accent:#c9222a; --blue:#174b9c; --paper:#f5f0e7; }
*, *::before, *::after { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:#fff; font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif; }
img { display:block; width:100%; }
a { color:inherit; }
main { max-width:1500px; margin:0 auto; padding:145px 5vw 95px; }
.back-link { display:inline-block; margin-bottom:70px; color:#666; font-size:.8rem; text-decoration:none; }
.back-link:hover, dd a:hover { color:var(--accent); }
.eyebrow { margin:0; color:var(--accent); font-size:.74rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; }
.intro { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr); gap:clamp(45px,8vw,130px); align-items:end; margin-bottom:70px; }
.intro h2 { margin:15px 0 0; font:500 clamp(4rem,8vw,8.5rem)/.84 Georgia,"Times New Roman",serif; letter-spacing:-.065em; }
.intro-copy { padding-bottom:10px; }
.subtitle { margin:0 0 26px; color:var(--blue); font:italic clamp(1.2rem,2vw,1.65rem)/1.35 Georgia,"Times New Roman",serif; }
.intro-copy > p:last-child { margin:0; color:#4d4d4d; font-size:1.02rem; line-height:1.75; }
.hero-image { margin:0; overflow:hidden; background:var(--paper); }
.hero-image img { aspect-ratio:16/8.5; object-fit:cover; }
.overview { display:grid; grid-template-columns:minmax(300px,.8fr) minmax(420px,1.2fr); gap:clamp(50px,9vw,145px); padding:110px 0; border-bottom:1px solid var(--line); }
.overview-heading h2, .programme h2, .opening-note h2, .gallery-heading h2 { margin:14px 0 0; font:500 clamp(2.8rem,5vw,5.5rem)/.96 Georgia,"Times New Roman",serif; letter-spacing:-.05em; }
.overview-copy > p, .programme-copy > p:last-child, .opening-note p:last-child { color:#454545; line-height:1.75; }
dl { margin:0 0 34px; border-top:1px solid var(--line); }
dl div { display:grid; grid-template-columns:120px 1fr; gap:18px; padding:13px 0; border-bottom:1px solid var(--line); }
dt { color:var(--muted); font-size:.72rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
dd { margin:0; font-size:.92rem; }
.programme { display:grid; grid-template-columns:minmax(300px,.74fr) minmax(420px,1.26fr); gap:clamp(50px,8vw,125px); align-items:start; padding:110px 0; border-bottom:1px solid var(--line); }
.programme.reverse figure { order:2; }
.programme figure { margin:0; background:var(--paper); }
.programme figure img { height:auto; object-fit:contain; }
.programme-copy { position:sticky; top:110px; }
.programme .subtitle { margin:8px 0 36px; }
.opening-note { display:grid; grid-template-columns:minmax(240px,.58fr) minmax(420px,1.42fr); gap:clamp(45px,8vw,120px); align-items:center; padding:100px 0; border-bottom:1px solid var(--line); }
.opening-note figure { margin:0; }
.opening-note h2 { font-size:clamp(2.5rem,4vw,4.3rem); }
.gallery { padding:110px 0 10px; }
.gallery-heading { display:grid; grid-template-columns:.65fr 1.35fr; gap:7vw; align-items:start; margin-bottom:55px; }
.gallery-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); grid-auto-rows:clamp(260px,31vw,480px); gap:14px; }
.gallery-grid figure { margin:0; overflow:hidden; background:var(--paper); }
.gallery-grid .wide { grid-column:span 2; }
.gallery-grid img { height:100%; object-fit:cover; }
footer { display:flex; justify-content:space-between; gap:24px; padding:30px 5vw; border-top:1px solid var(--line); color:#777; font-size:.74rem; }
footer a { text-decoration:none; }

@media(max-width:900px){
  html, body { overflow-x:hidden; }
  main { padding:115px 24px 70px; }
  .intro, .overview, .programme, .opening-note, .gallery-heading { grid-template-columns:1fr; }
  .intro > *, .overview > *, .programme > *, .opening-note > *, .gallery-heading > * { min-width:0; }
  .intro { gap:35px; }
  .intro h2 { font-size:clamp(3.4rem,14vw,6rem); }
  .hero-image img { aspect-ratio:4/3; }
  .overview, .programme, .opening-note { gap:42px; padding:75px 0; }
  .programme.reverse figure { order:initial; }
  .programme-copy { position:static; }
}
@media(max-width:650px){
  main { padding-inline:20px; }
  .back-link { margin-bottom:50px; }
  .intro h2 { font-size:clamp(2.85rem,14.5vw,4.6rem); overflow-wrap:anywhere; word-break:break-word; }
  .overview-heading h2, .programme h2, .opening-note h2, .gallery-heading h2 { font-size:clamp(2.5rem,12vw,3.8rem); overflow-wrap:anywhere; }
  dl div { grid-template-columns:88px 1fr; gap:12px; }
  .gallery-grid { grid-template-columns:1fr; grid-auto-rows:270px; }
  .gallery-grid .wide { grid-column:auto; }
  footer { flex-direction:column; padding-inline:20px; }
}
