/* News uses the existing MPS typography, colours and layout shell. */
.news-header, .news-article-header { padding-top: 164px; padding-bottom: 54px; }
.news-header h1, .news-article-header h1 { max-width: 1060px; margin: 17px 0 24px; font: 600 clamp(2.5rem, 5.2vw, 4.6rem)/1.08 var(--font-display); letter-spacing: -.05em; text-wrap: balance; }
.news-header .overline, .news-home .overline { color: var(--accent); }
.news-intro { max-width: 760px; margin: 0; color: var(--muted); font-size: 19px; line-height: 1.7; }
.news-list { display: grid; gap: 34px; padding-bottom: 112px; }
.news-card { display: grid; grid-template-columns: 1.12fr 1fr; border: 1px solid var(--line); background: var(--white); }
.news-card-image { display: block; overflow: hidden; background: var(--paper-2); }
.news-card-image img { display: block; width: 100%; height: 100%; min-height: 330px; object-fit: cover; }
.news-card-body { align-self: center; padding: clamp(25px, 3.6vw, 52px); }
.news-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 11px; color: var(--muted); font-size: 12px; letter-spacing: .035em; }
.news-card h2 { margin: 22px 0 18px; font: 600 clamp(1.65rem, 2.5vw, 2.5rem)/1.16 var(--font-display); letter-spacing: -.035em; }
.news-card h2 a:hover { color: var(--accent); }
.news-card-body > p { color: var(--muted); line-height: 1.75; margin: 0 0 26px; }
.news-link, .news-back { display: inline-flex; gap: 12px; align-items: center; color: var(--accent); font-size: 14px; font-weight: 600; }
.news-link::after { content: "→"; }
.news-back::before { content: "←"; }
.news-link:hover, .news-back:hover { text-decoration: underline; text-underline-offset: 5px; }
.news-back { margin-bottom: 36px; }
.news-byline { margin: 0; color: var(--muted); font-size: 14px; }
.news-byline strong { color: var(--ink); font-weight: 500; }
.news-hero-image, .news-second-image { margin: 0 auto; }
.news-hero-image img, .news-second-image img { display: block; width: 100%; height: auto; }
.news-hero-image figcaption, .news-second-image figcaption { padding: 14px 0; color: var(--muted); font-size: 12px; }
.news-article-layout { display: grid; grid-template-columns: 270px minmax(0, 740px); justify-content: space-between; gap: 64px; padding-block: 64px 74px; }
.news-article-aside { border-top: 2px solid var(--accent); padding-top: 23px; font-size: 14px; }
.news-article-aside strong { display: block; font-size: 19px; line-height: 1.45; margin-top: 20px; }
.news-article-aside p { color: var(--muted); line-height: 1.6; }
.news-article-aside a { color: var(--accent); overflow-wrap: anywhere; }
.news-prose h2 { margin: 0 0 22px; font: 600 clamp(1.8rem, 3vw, 2.5rem)/1.18 var(--font-display); letter-spacing: -.035em; }
.news-prose > p { margin: 0 0 25px; font-size: 17px; color: var(--muted); line-height: 1.85; }
.news-prose blockquote { margin: 35px 0 45px; padding: 8px 0 8px 26px; border-left: 3px solid var(--accent); }
.news-prose blockquote p { margin: 0; color: var(--accent); font: 500 25px/1.5 var(--font-display); }
.news-offers { padding: 0; margin: 0 0 32px; list-style: none; }
.news-offers li { padding: 20px 0; border-bottom: 1px solid var(--line); }
.news-offers li:first-child { border-top: 1px solid var(--line); }
.news-offers h3 { margin: 0 0 7px; font-size: 17px; font-weight: 600; }
.news-offers p { margin: 0; line-height: 1.7; color: var(--muted); }
.news-prose .news-signature { margin-top: 34px; color: var(--ink); font-weight: 600; }
.news-signature span { display: block; color: var(--muted); font-size: 13px; font-weight: 400; }
.news-contact { display: flex; justify-content: space-between; align-items: center; gap: 50px; margin: 62px auto 90px; padding: 40px; background: var(--paper-2); }
.news-contact h2 { margin: 0 0 12px; font: 600 28px/1.2 var(--font-display); letter-spacing: -.03em; }
.news-contact p { max-width: 630px; margin: 0; color: var(--muted); line-height: 1.7; }
.news-contact .button { flex-shrink: 0; text-align: center; }
.news-home { padding: 104px 0; border-top: 1px solid var(--line); }
.news-home-heading { display: flex; align-items: end; justify-content: space-between; gap: 30px; margin-bottom: 36px; }
.news-home-heading h2 { margin: 15px 0 0; font: 600 clamp(2rem, 3.8vw, 3.7rem)/1.1 var(--font-display); letter-spacing: -.045em; }
.news-home-heading > a { flex-shrink: 0; margin-bottom: 5px; }
.news-event-card .news-card-image { display: flex; align-items: center; background: #ecf2f9; }
.news-event-card .news-card-image img { min-height: 0; height: auto; object-fit: contain; aspect-ratio: 1200/628; }
.news-event-facts { display: flex; align-items: center; justify-content: space-between; gap: 25px; background: var(--paper-2); border-top: 2px solid var(--accent); padding: 25px 30px; margin-bottom: 32px; }
.news-event-facts > div { display: flex; flex-direction: column; gap: 5px; }
.news-event-facts span { color: var(--muted); font-size: 14px; }
.news-event-facts .button span { color: inherit; }
.news-event-facts strong { font-size: 18px; }
.news-event-facts .news-ticket-code strong { color: var(--accent); font-size: 26px; letter-spacing: .1em; }
.news-related-links { display: flex; flex-wrap: wrap; gap: 14px 24px; margin-block: 30px; }
.news-contact .button { max-width: 410px; white-space: normal; }
@media (max-width: 900px) {
  .news-card { grid-template-columns: 1fr; }
  .news-card-image img { min-height: 0; height: auto; aspect-ratio: 4/3; }
  .news-article-layout { grid-template-columns: 1fr; gap: 40px; }
  .news-article-aside { order: 1; }
  .news-contact { align-items: flex-start; flex-direction: column; gap: 25px; padding: 28px; }
  .news-event-facts { flex-wrap: wrap; }
}
@media (max-width: 600px) {
  .news-header, .news-article-header { padding-top: 120px; padding-bottom: 32px; }
  .news-intro { font-size: 17px; }
  .news-header h1, .news-article-header h1 { font-size: 36px; }
  .news-card-body { padding: 26px 23px; }
  .news-home { padding: 70px 0; }
  .news-home-heading { align-items: flex-start; flex-direction: column; gap: 20px; }
  .news-article-layout { padding-block: 40px; }
  .news-prose > p { font-size: 16px; }
  .news-prose blockquote p { font-size: 22px; }
  .news-contact { margin-block: 38px 60px; padding: 24px; }
  .news-contact .button { width: 100%; white-space: normal; }
  .news-event-facts { align-items: flex-start; flex-direction: column; padding: 24px; gap: 20px; }
  .news-event-facts .button { width: 100%; }
}
