:root {
  --ink: #17181a;
  --paper: #f7f7f2;
  --paper-deep: #ebede9;
  --news-grey: #dbe0df;
  --news-pink: #efbaca;
  --news-blue: #235dc5;
  --red-pencil: #a9342d;
  --rule: rgba(17, 17, 15, .72);
  --hairline: rgba(17, 17, 15, .28);
  --pad: clamp(20px, 4vw, 72px);
  --serif: Georgia, "Times New Roman", Times, serif;
  --sans: "Arial Narrow", Arial, Helvetica, sans-serif;
  --mono: "Courier New", Courier, monospace;
}

/* BACI Radio concept comparison — private review route */
.radio-concepts-page { min-height: 100svh; background: var(--paper-deep); }
.radio-concepts-intro { display: grid; grid-template-columns: 1.15fr .85fr; align-items: end; gap: 8vw; padding: 34px var(--pad) 29px; border-bottom: 1px solid var(--ink); background: var(--news-grey); }
.radio-concepts-intro h1 { margin: 7px 0 0; font: 400 clamp(59px, 8.6vw, 130px)/.69 var(--serif); letter-spacing: -.078em; }
.radio-concepts-intro h1 em { color: var(--news-blue); font-weight: 400; }
.radio-concepts-intro p { max-width: 540px; margin: 0; font-size: 17px; line-height: 1.25; }
.radio-concept-switcher { grid-template-columns: auto auto 1fr; }
.radio-concept-switcher > a { justify-self: end; align-self: stretch; display: flex; align-items: center; padding: 0 22px; border-left: 1px solid var(--ink); font: 700 9px/1 var(--sans); letter-spacing: .07em; }

.radio-desk { min-height: 665px; padding: 23px var(--pad) 0; border-bottom: 1px solid var(--ink); background: var(--paper); animation: radioConceptIn .55s cubic-bezier(.16,1,.3,1) both; }
@keyframes radioConceptIn { from { opacity: 0; transform: translateY(10px); } }
.radio-desk-top { display: grid; grid-template-columns: 1fr auto 1fr; padding-bottom: 8px; border-bottom: 3px double var(--ink); font: 700 8px/1 var(--sans); letter-spacing: .1em; }
.radio-desk-top span:nth-child(2) { justify-self: center; }
.radio-desk-top span:last-child { justify-self: end; }
.radio-desk-grid { display: grid; grid-template-columns: minmax(290px, .9fr) minmax(340px, 1.15fr) minmax(245px, .65fr); min-height: 535px; border-right: 1px solid var(--ink); border-left: 1px solid var(--ink); }
.radio-desk-art { position: relative; min-height: 535px; overflow: hidden; border-right: 1px solid var(--ink); background: var(--ink); }
.radio-desk-art::after { position: absolute; inset: 0; pointer-events: none; content: ""; background-image: radial-gradient(#fff 0 .55px, transparent .75px); background-size: 3px 3px; opacity: .17; }
.radio-desk-art img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1) contrast(1.25); animation: radioArtworkDrift 7s ease-in-out infinite alternate; }
@keyframes radioArtworkDrift { to { transform: scale(1.045); } }
.radio-desk-art > button { position: absolute; z-index: 3; left: 50%; top: 50%; width: 84px; height: 84px; border: 1px solid var(--paper); border-radius: 50%; background: rgba(17,17,15,.88); color: var(--paper); transform: translate(-50%,-50%); font: 700 17px/1 var(--sans); }
.radio-desk-art figcaption { position: absolute; z-index: 3; left: 12px; right: 12px; bottom: 12px; padding: 8px 9px; border: 1px solid var(--ink); background: var(--news-pink); font: 700 8px/1 var(--sans); letter-spacing: .08em; }
.radio-desk-now { display: flex; flex-direction: column; padding: 29px clamp(22px, 3vw, 46px); border-right: 1px solid var(--ink); background: var(--news-pink); }
.radio-live { display: flex; align-items: center; gap: 8px; font: 700 8px/1 var(--sans); letter-spacing: .1em; }
.radio-live i { width: 8px; height: 8px; border-radius: 50%; background: var(--news-blue); animation: signal 1.5s steps(2,end) infinite; }
.radio-desk-now h2 { max-width: 650px; margin: 34px 0 10px; font: 400 clamp(48px, 5.4vw, 82px)/.77 var(--serif); letter-spacing: -.065em; }
.radio-desk-now > p { margin: 0; font-size: 17px; }
.radio-desk-player { display: grid; grid-template-columns: 72px 1fr auto; gap: 12px; align-items: center; margin-top: 34px; padding: 13px 0; border-top: 1px solid var(--ink); border-bottom: 1px solid var(--ink); }
.radio-desk-player button { min-height: 35px; border: 1px solid var(--ink); background: var(--ink); color: var(--paper); font: 700 8px/1 var(--sans); letter-spacing: .08em; }
.radio-desk-player input, .frequency-controls input { width: 100%; accent-color: var(--news-blue); }
.radio-desk-player span { font: 700 8px/1 var(--sans); white-space: nowrap; }
.radio-desk-copy { margin-top: auto; display: grid; grid-template-columns: .7fr 1.3fr; gap: 22px; padding-top: 17px; border-top: 3px double var(--ink); }
.radio-desk-copy strong { font: 400 21px/1 var(--serif); }
.radio-desk-copy p { margin: 0; font-size: 13px; line-height: 1.25; }
.radio-archive-list { display: flex; flex-direction: column; background: var(--news-grey); }
.radio-archive-list > div { display: flex; justify-content: space-between; padding: 13px 12px 10px; border-bottom: 3px double var(--ink); font: 700 7px/1 var(--sans); letter-spacing: .08em; }
.radio-archive-list > button { display: grid; grid-template-columns: 25px 1fr auto; gap: 9px; min-height: 89px; align-items: start; padding: 13px 11px; border: 0; border-bottom: 1px solid var(--ink); background: transparent; text-align: left; }
.radio-archive-list > button:hover, .radio-archive-list > button.active { background: var(--news-blue); }
.radio-archive-list > button span, .radio-archive-list > button i { font: 700 8px/1 var(--sans); font-style: normal; }
.radio-archive-list > button strong { font: 400 17px/.96 var(--serif); }
.radio-archive-list > a { margin-top: auto; padding: 15px 12px; border-top: 1px solid var(--ink); font: 700 8px/1 var(--sans); letter-spacing: .08em; }
.radio-desk-footer { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--ink); }
.radio-desk-footer span { padding: 10px 8px; border-right: 1px solid var(--ink); font: 700 8px/1 var(--sans); letter-spacing: .08em; }
.radio-desk-footer span:last-child { border-right: 0; text-align: right; }

.frequency-wall { position: relative; min-height: 690px; overflow: hidden; padding: 23px var(--pad) 74px; border-bottom: 1px solid var(--ink); background: var(--news-blue); isolation: isolate; animation: radioConceptIn .55s cubic-bezier(.16,1,.3,1) both; }
.frequency-wall::before { position: absolute; z-index: -2; inset: 0; content: ""; background: repeating-linear-gradient(90deg, transparent 0 7.99%, rgba(17,17,15,.13) 8% calc(8% + 1px)); animation: kineticPaper 9s ease-in-out infinite alternate; }
.frequency-top { position: relative; z-index: 6; display: flex; justify-content: space-between; padding-bottom: 8px; border-bottom: 3px double var(--ink); font: 700 8px/1 var(--sans); letter-spacing: .1em; }
.frequency-word { position: absolute; z-index: -1; left: 1.4%; top: 5%; color: var(--paper); font: 700 clamp(180px, 31vw, 470px)/.75 var(--serif); letter-spacing: -.115em; opacity: .28; animation: frequencyWord 8s ease-in-out infinite alternate; }
@keyframes frequencyWord { to { transform: translateX(3%); letter-spacing: -.08em; } }
.frequency-art-stack { position: absolute; z-index: 1; top: 92px; right: 8%; width: min(35vw, 470px); height: 410px; border: 1px solid var(--ink); background: var(--ink); transform: rotate(1deg); }
.frequency-art-stack::after { position: absolute; inset: 0; content: ""; background-image: radial-gradient(#fff 0 .55px, transparent .75px); background-size: 3px 3px; opacity: .17; }
.frequency-art-stack img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; filter: grayscale(1) contrast(1.3); transform: scale(1.05); transition: opacity .5s, transform 1.1s cubic-bezier(.16,1,.3,1); }
.frequency-art-stack img.active { opacity: .8; transform: scale(1); }
.frequency-readout { position: relative; z-index: 5; width: min(57%, 720px); margin-top: 38px; padding: 21px 23px 24px; border: 1px solid var(--ink); background: rgba(241,240,234,.94); box-shadow: 9px 9px 0 var(--news-pink); }
.frequency-readout > span { display: block; font: 700 8px/1 var(--sans); letter-spacing: .1em; }
.frequency-readout > strong { display: inline-block; margin-top: 11px; font: 400 clamp(90px, 13vw, 190px)/.68 var(--serif); letter-spacing: -.085em; }
.frequency-readout > i { font: 700 11px/1 var(--sans); font-style: normal; }
.frequency-readout h2 { margin: 21px 0 3px; font: 400 clamp(32px, 3.7vw, 55px)/.84 var(--serif); letter-spacing: -.05em; }
.frequency-readout p { margin: 0; font-size: 14px; }
.frequency-controls { display: grid; grid-template-columns: 43px 1fr 32px; gap: 10px; align-items: center; margin-top: 19px; padding-top: 12px; border-top: 1px solid var(--ink); }
.frequency-controls button { width: 43px; height: 43px; border: 1px solid var(--ink); border-radius: 50%; background: var(--ink); color: var(--paper); }
.frequency-controls span { font: 700 8px/1 var(--sans); }
.frequency-scale { position: absolute; z-index: 7; left: var(--pad); right: var(--pad); bottom: 76px; display: grid; grid-template-columns: repeat(3, 1fr); border-top: 3px double var(--ink); }
.frequency-scale button { position: relative; min-height: 76px; display: grid; grid-template-columns: auto 1fr; gap: 2px 9px; align-content: center; padding: 10px; border: 0; border-right: 1px solid var(--ink); background: rgba(241,240,234,.32); text-align: left; }
.frequency-scale button:last-child { border-right: 0; }
.frequency-scale button:hover, .frequency-scale button.active { background: var(--news-pink); }
.frequency-scale button > i { position: absolute; top: -12px; left: 50%; width: 2px; height: 18px; background: var(--ink); }
.frequency-scale button strong { grid-row: 1 / span 2; font: 400 28px/.85 var(--serif); }
.frequency-scale button span { font: 700 7px/1 var(--sans); letter-spacing: .06em; }
.frequency-ticker { position: absolute; left: 0; right: 0; bottom: 0; padding: 11px var(--pad); overflow: hidden; border-top: 1px solid var(--ink); background: var(--ink); color: var(--paper); font: 700 8px/1 var(--sans); letter-spacing: .11em; white-space: nowrap; }

.radio-concept-notes { display: grid; grid-template-columns: 1fr 1fr; }
.radio-concept-notes article { min-height: 275px; padding: 30px var(--pad); border-right: 1px solid var(--ink); opacity: .45; transition: opacity .25s, background .25s; }
.radio-concept-notes article.active { opacity: 1; background: var(--news-pink); }
.radio-concept-notes article > span { font: 700 8px/1 var(--sans); letter-spacing: .08em; }
.radio-concept-notes h2 { margin: 20px 0 8px; font: 400 clamp(36px, 4.3vw, 62px)/.82 var(--serif); letter-spacing: -.055em; }
.radio-concept-notes p { max-width: 610px; font-size: 15px; line-height: 1.28; }
.radio-concept-notes article > strong { font: 700 9px/1 var(--sans); text-transform: uppercase; }

@media (max-width: 950px) {
  .radio-desk-grid { grid-template-columns: minmax(270px, .85fr) minmax(350px, 1.15fr); }
  .radio-archive-list { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--ink); }
  .radio-archive-list > div, .radio-archive-list > a { grid-column: 1 / -1; }
  .radio-archive-list > button { border-right: 1px solid var(--ink); }
  .frequency-readout { width: 62%; }
  .frequency-art-stack { right: 4%; width: 39vw; }
}

@media (max-width: 700px) {
  .radio-concepts-intro { grid-template-columns: 1fr; gap: 20px; }
  .concept-switcher.radio-concept-switcher { grid-template-columns: 1fr 1fr; }
  .radio-concept-switcher > a { grid-column: 1 / -1; min-height: 38px; justify-content: center; border-top: 1px solid var(--ink); border-left: 0; }
  .radio-desk { padding-left: 14px; padding-right: 14px; }
  .radio-desk-top { grid-template-columns: 1fr auto; }
  .radio-desk-top span:nth-child(2) { display: none; }
  .radio-desk-grid { grid-template-columns: 1fr; }
  .radio-desk-art { min-height: 390px; border-right: 0; border-bottom: 1px solid var(--ink); }
  .radio-desk-now { min-height: 430px; border-right: 0; }
  .radio-archive-list { grid-template-columns: 1fr; }
  .radio-archive-list > button { border-right: 0; }
  .radio-desk-footer { grid-template-columns: 1fr 1fr; }
  .radio-desk-footer span:nth-child(2) { border-right: 0; }
  .radio-desk-footer span:nth-child(-n + 2) { border-bottom: 1px solid var(--ink); }
  .frequency-wall { min-height: 860px; padding-left: 14px; padding-right: 14px; }
  .frequency-word { top: 8%; font-size: 47vw; }
  .frequency-art-stack { top: 110px; left: 14%; right: 7%; width: auto; height: 330px; }
  .frequency-readout { width: calc(100% - 28px); margin-top: 270px; padding: 18px; }
  .frequency-readout > strong { font-size: 105px; }
  .frequency-scale { left: 14px; right: 14px; bottom: 70px; }
  .frequency-scale button { min-height: 82px; grid-template-columns: 1fr; }
  .frequency-scale button strong { grid-row: auto; font-size: 22px; }
  .radio-concept-notes { grid-template-columns: 1fr; }
  .radio-concept-notes article { border-right: 0; border-bottom: 1px solid var(--ink); }
}

@media (max-width: 470px) {
  .radio-desk-art { min-height: 330px; }
  .radio-desk-now { min-height: 455px; padding: 24px 17px; }
  .radio-desk-now h2 { margin-top: 25px; font-size: 48px; }
  .radio-desk-player { grid-template-columns: 60px 1fr; }
  .radio-desk-player span { grid-column: 2; }
  .radio-desk-copy { grid-template-columns: 1fr; gap: 8px; }
  .frequency-wall { min-height: 900px; }
  .frequency-art-stack { height: 295px; }
  .frequency-readout { margin-top: 250px; }
  .frequency-readout > strong { font-size: 89px; }
  .frequency-scale button span { display: none; }
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--ink); }
body { margin: 0; overflow-x: hidden; background: var(--paper); color: var(--ink); font-family: var(--serif); text-rendering: optimizeLegibility; }
body::before { position: fixed; z-index: 300; inset: 0; pointer-events: none; content: ""; opacity: .17; background-image: radial-gradient(circle at 20% 18%, rgba(0,0,0,.34) 0 .55px, transparent .85px), radial-gradient(circle at 75% 62%, rgba(255,255,255,.8) 0 .65px, transparent .95px), repeating-linear-gradient(2deg, rgba(17,17,15,.045) 0 1px, transparent 1px 4px); background-size: 4px 4px, 5px 5px, auto; mix-blend-mode: multiply; }
body.modal-open { overflow: hidden; }
button, input, select, textarea { color: inherit; font: inherit; }
button { cursor: pointer; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
figure { margin: 0; }
::selection { background: var(--news-blue); color: var(--paper); }

.site-shell, .page-shell { position: relative; background: var(--paper); }
.micro-label { display: inline-block; font: 700 10px/1.2 var(--sans); letter-spacing: .095em; text-transform: uppercase; }
.solid-button, .line-button, .text-button, .arrow-link { border: 0; background: none; font: 700 11px/1 var(--sans); letter-spacing: .08em; text-transform: uppercase; }
.solid-button { display: inline-flex; align-items: center; justify-content: center; width: max-content; min-height: 43px; padding: 0 17px; border: 1px solid var(--ink); background: var(--ink); color: var(--paper); transition: background .2s, color .2s, transform .2s; }
.solid-button:hover { background: var(--news-blue); transform: translate(-2px, -2px); }
.line-button { min-height: 38px; padding: 10px 0 7px; border-bottom: 1px solid currentColor; }
.line-button:hover, .text-button:hover, .arrow-link:hover { color: var(--news-blue); }

/* Masthead */
.venue-strip { position: fixed; z-index: 92; top: 0; left: 0; right: 0; height: 24px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; padding: 0 var(--pad); background: var(--ink); color: var(--paper); font: 700 8px/1 var(--sans); letter-spacing: .12em; text-transform: uppercase; }
.venue-strip span:nth-child(2) { text-align: center; }
.venue-strip span:last-child { justify-self: end; display: flex; align-items: center; gap: 7px; }
.venue-strip i { width: 6px; height: 6px; border-radius: 50%; background: var(--news-blue); animation: signal 2.3s steps(2, end) infinite; }
@keyframes signal { 50% { opacity: .25; } }
.site-header { position: fixed; z-index: 90; top: 24px; left: 0; right: 0; min-height: 78px; display: grid; grid-template-columns: minmax(180px, 1fr) auto minmax(180px, 1fr); align-items: center; padding: 0 var(--pad); border-bottom: 1px solid var(--ink); background: rgba(241, 240, 234, .96); }
.header-spacer { height: 102px; background: var(--paper); }
.wordmark { justify-self: start; display: flex; align-items: center; min-height: 58px; }
.wordmark small { max-width: 72px; margin-left: 12px; padding-left: 10px; border-left: 1px solid var(--ink); font: 700 8px/1.15 var(--sans); letter-spacing: .08em; text-transform: uppercase; }
.brand-logo { display: block; background-position: center; background-repeat: no-repeat; background-size: contain; }
.brand-logo-black { aspect-ratio: 1023 / 317; background-image: url("../images/GIRI_BLACK.png"); }
.brand-logo-white { aspect-ratio: 1023 / 317; background-image: url("../images/GIRI_WHITE.png"); }
.brand-logo-stylised { aspect-ratio: 1040 / 360; background-image: url("../images/giri-logo-stylised-crop.png"); mix-blend-mode: multiply; }
.header-logo { width: 114px; flex: 0 0 auto; }
.site-header nav { display: flex; align-items: center; gap: clamp(7px, 1.15vw, 19px); }
.site-header nav a { position: relative; min-height: 52px; display: inline-flex; align-items: center; padding: 10px 4px; font: 700 clamp(13px, 1.1vw, 16px)/1 var(--sans); letter-spacing: .035em; text-transform: uppercase; }
.site-header nav a::after { position: absolute; left: 4px; right: 100%; bottom: 8px; height: 2px; content: ""; background: var(--news-blue); transition: right .28s cubic-bezier(.16, 1, .3, 1); }
.site-header nav a:hover::after, .site-header nav a.active::after { right: 4px; }
.header-tools { justify-self: end; display: flex; align-items: center; gap: 16px; }
.open-status { display: flex; align-items: center; gap: 7px; font: 700 8px/1 var(--sans); letter-spacing: .06em; text-transform: uppercase; }
.open-status i, .live-dot i { width: 7px; height: 7px; border-radius: 50%; background: var(--news-blue); }
.scroll-progress { position: absolute; left: 0; bottom: -1px; width: 100%; height: 3px; background: var(--news-blue); transform: scaleX(0); transform-origin: left center; will-change: transform; }
.menu-button { display: none; width: 44px; height: 44px; padding: 11px; border: 1px solid var(--ink); background: transparent; }
.menu-button i { display: block; height: 1px; margin: 5px 0; background: currentColor; transition: transform .25s; }
.menu-button.active i:first-child { transform: translateY(3px) rotate(45deg); }
.menu-button.active i:last-child { transform: translateY(-3px) rotate(-45deg); }

/* Front page */
.venue-hero { --mx: 0; --my: 0; position: relative; min-height: 690px; height: min(76svh, 780px); overflow: hidden; border-bottom: 1px solid var(--ink); background: linear-gradient(90deg, transparent 0 36.5%, var(--hairline) 36.5% calc(36.5% + 1px), transparent calc(36.5% + 1px)), var(--paper); }
.venue-hero::before { position: absolute; top: 22px; left: var(--pad); right: var(--pad); height: 5px; border-top: 2px solid var(--ink); border-bottom: 1px solid var(--ink); content: ""; }
.hero-grid-code { position: absolute; z-index: 6; top: 34px; right: var(--pad); font: 700 8px/1 var(--sans); letter-spacing: .12em; }
.hero-window { position: absolute; overflow: hidden; border: 1px solid var(--ink); background: var(--ink); animation: printFrame .9s cubic-bezier(.16, 1, .3, 1) both; }
.hero-window::after { position: absolute; inset: 0; pointer-events: none; content: ""; opacity: .2; background-image: radial-gradient(circle, #111 0 .7px, transparent .85px); background-size: 3px 3px; mix-blend-mode: multiply; }
.hero-window img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1) contrast(1.17) brightness(.94); }
.hero-window-main { top: 54px; right: var(--pad); bottom: 38px; width: 60.5%; }
.hero-window-main .hero-slide { position: absolute; inset: 0; opacity: 0; object-position: center 54%; transform: scale(1.025) translate(calc(var(--mx) * -7px), calc(var(--my) * -5px)); transition: opacity 1.05s ease; will-change: opacity, transform; }
.hero-window-main .hero-slide.is-active { z-index: 1; opacity: 1; animation: heroDrift 5.2s linear both; }
.hero-window-detail { z-index: 4; left: var(--pad); bottom: 38px; width: 30%; height: 188px; animation-delay: .12s; }
.hero-window-detail img { transform: scale(1.04) translate(calc(var(--mx) * 6px), calc(var(--my) * 4px)); }
@keyframes printFrame { from { opacity: 0; clip-path: inset(0 100% 0 0); transform: rotate(-.35deg); } to { opacity: 1; clip-path: inset(0); transform: rotate(0); } }
@keyframes heroDrift { from { scale: 1.025; } to { scale: 1.075; } }
.hero-address { position: absolute; z-index: 5; top: 52px; left: var(--pad); width: 30%; padding: 11px 0; border-top: 1px solid var(--ink); border-bottom: 1px solid var(--ink); }
.hero-address span, .hero-address i { display: block; font: 700 8px/1.3 var(--sans); letter-spacing: .1em; text-transform: uppercase; }
.hero-address strong { display: block; margin: 8px 0; font: 400 clamp(22px, 2.2vw, 34px)/.92 var(--serif); }
.hero-address i { font-style: normal; }
.hero-glass { position: absolute; z-index: 6; top: 169px; left: var(--pad); width: 30%; padding: 0 0 18px; animation: editorialIn .9s .18s cubic-bezier(.16, 1, .3, 1) both; }
@keyframes editorialIn { from { opacity: 0; transform: translateY(20px) rotate(-.5deg); } to { opacity: 1; transform: none; } }
.hero-glass-top { display: flex; justify-content: space-between; padding-bottom: 8px; border-bottom: 1px solid var(--ink); font: 700 8px/1 var(--sans); letter-spacing: .08em; }
.hero-brand { width: 100%; margin: 13px 0 5px; transform: rotate(-1.1deg); }
.hero-glass p { max-width: 360px; margin: 8px 0 15px; font-size: clamp(15px, 1.4vw, 20px); line-height: 1.12; }
.hero-glass p strong { font-weight: 400; font-size: 1.22em; }
.hero-glass a { display: flex; justify-content: space-between; padding: 10px 0; border-top: 1px solid var(--ink); border-bottom: 1px solid var(--ink); font: 700 10px/1 var(--sans); letter-spacing: .08em; text-transform: uppercase; }
.hero-glass a:hover { color: var(--news-blue); }
.hero-material { position: absolute; z-index: 7; right: calc(var(--pad) + 13px); bottom: 51px; display: grid; gap: 4px; padding: 11px 13px; border: 1px solid var(--paper); background: var(--ink); color: var(--paper); font: 700 8px/1.2 var(--sans); letter-spacing: .08em; text-transform: uppercase; }
.hero-cross { position: absolute; z-index: 8; right: calc(var(--pad) - 9px); top: 42px; width: 31px; height: 31px; border: 1px solid var(--ink); }
.hero-cross i { position: absolute; background: var(--ink); }
.hero-cross i:first-child { width: 1px; top: -7px; bottom: -7px; left: 50%; }
.hero-cross i:last-child { height: 1px; left: -7px; right: -7px; top: 50%; }
.ticker { overflow: hidden; border-bottom: 1px solid var(--ink); background: var(--ink); color: var(--paper); }
.ticker div { width: max-content; padding: 9px 0 8px; font: 700 10px/1 var(--sans); letter-spacing: .1em; white-space: nowrap; animation: tickerMove 36s linear infinite; }
@keyframes tickerMove { to { transform: translateX(-33.333%); } }

/* Shared editorial headings */
.section-intro { position: relative; padding: 30px var(--pad) 22px; border-bottom: 1px solid var(--ink); }
.split-intro { display: grid; grid-template-columns: minmax(300px, .9fr) minmax(300px, 1.1fr); gap: clamp(35px, 9vw, 150px); align-items: end; }
.section-intro h2, .crossword-heading h2 { margin: 5px 0 0; font-size: clamp(48px, 7.4vw, 112px); font-weight: 400; line-height: .72; letter-spacing: -.07em; }
.section-intro h2 em, .crossword-heading h2 em { color: var(--news-blue); font-weight: 400; }
.section-intro p { max-width: 530px; margin: 0; font-size: clamp(15px, 1.4vw, 20px); line-height: 1.25; }
.programme-note { display: grid; grid-template-columns: auto 1fr; gap: 24px; align-items: start; }
.live-dot { display: flex; align-items: center; gap: 7px; white-space: nowrap; font: 700 9px/1 var(--sans); letter-spacing: .08em; text-transform: uppercase; }

/* Programme */
.programme-section { background: var(--paper-deep); }
.programme-board { display: grid; grid-template-columns: minmax(0, 4fr) minmax(245px, 1fr); border-bottom: 1px solid var(--ink); }
.programme-calendar { min-width: 0; padding: 17px var(--pad) 30px; border-right: 1px solid var(--ink); }
.calendar-label, .panel-index, .crossword-edition { display: flex; justify-content: space-between; padding-bottom: 8px; border-bottom: 3px double var(--ink); font: 700 8px/1 var(--sans); letter-spacing: .1em; text-transform: uppercase; }
.calendar-toolbar { display: flex; justify-content: space-between; gap: 20px; align-items: center; padding: 12px 0; }
.month-nav { display: flex; align-items: center; gap: 11px; }
.month-nav button { width: 34px; height: 34px; padding: 0; border: 1px solid var(--ink); background: transparent; font: 16px/1 var(--sans); }
.month-nav button:hover { background: var(--ink); color: var(--paper); }
.month-nav h3 { min-width: 140px; margin: 0; text-align: center; font: 400 23px/1 var(--serif); }
.month-nav h3 span { font-size: .72em; }
.event-filters { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 3px; }
.event-filters button, .menu-tabs button { min-height: 31px; padding: 0 10px; border: 1px solid var(--ink); background: transparent; font: 700 8px/1 var(--sans); letter-spacing: .06em; text-transform: uppercase; }
.event-filters button.active, .event-filters button:hover, .menu-tabs button.active, .menu-tabs button:hover { background: var(--ink); color: var(--paper); }
.calendar-wrap { overflow-x: auto; scrollbar-color: var(--ink) transparent; }
.calendar { min-width: 690px; }
.weekday-row { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--ink); border-left: 1px solid var(--ink); }
.weekday-row > span { display: flex; justify-content: space-between; padding: 8px; border-right: 1px solid var(--ink); font: 700 9px/1 var(--sans); letter-spacing: .06em; }
.weekday-row small { font: 700 7px/1 var(--sans); opacity: .55; }
.calendar-grid { display: grid; grid-template-columns: repeat(4, 1fr); grid-template-rows: repeat(4, minmax(94px, 1fr)); border-left: 1px solid var(--ink); border-top: 1px solid var(--ink); }
.calendar-day { position: relative; min-height: 108px; padding: 8px; border-right: 1px solid var(--ink); border-bottom: 1px solid var(--ink); background: rgba(255,255,255,.12); }
.calendar-day:nth-child(8n + 4), .calendar-day:nth-child(8n + 5) { background: rgba(207,214,209,.45); }
.calendar-day.is-private-day { background: rgba(220,180,192,.34); }
.calendar-day.is-empty { background: repeating-linear-gradient(-45deg, transparent 0 6px, rgba(17,17,15,.06) 6px 7px); }
.calendar-number { font: 400 22px/1 var(--serif); }
.day-status { position: absolute; top: 10px; right: 8px; font: 700 7px/1 var(--sans); letter-spacing: .04em; text-transform: uppercase; opacity: .6; }
.day-events { display: grid; gap: 4px; margin-top: 10px; }
.calendar-event { width: 100%; padding: 5px 5px 5px 7px; border: 0; border-left: 3px solid var(--ink); background: rgba(241,240,234,.82); text-align: left; font: 700 8px/1.15 var(--sans); text-transform: uppercase; }
.calendar-event span { display: block; margin-bottom: 2px; font-size: 7px; opacity: .55; }
.calendar-event.music { border-color: var(--news-blue); }
.calendar-event.food { border-color: var(--red-pencil); }
.calendar-event.community { border-color: #50675c; }
.calendar-event.private { border-color: var(--news-pink); }
.calendar-event:hover { background: var(--ink); color: var(--paper); }
.programme-feature { display: flex; flex-direction: column; justify-content: space-between; min-width: 0; padding: 17px 17px 30px; background: var(--news-grey); }
.featured-event { border-top: 3px double var(--ink); }
.featured-image { position: relative; width: 100%; aspect-ratio: 4 / 3; margin: 9px 0 0; padding: 0; overflow: hidden; border: 1px solid var(--ink); background: var(--ink); }
.featured-image::after { position: absolute; inset: 0; content: ""; background-image: radial-gradient(#111 0 .55px, transparent .7px); background-size: 3px 3px; opacity: .24; }
.featured-image img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1) contrast(1.2); transition: transform .6s cubic-bezier(.16,1,.3,1); }
.featured-image:hover img { transform: scale(1.04); }
.image-index { position: absolute; z-index: 2; top: 7px; left: 7px; padding: 5px 6px; background: var(--paper); font: 700 7px/1 var(--sans); letter-spacing: .08em; }
.featured-copy { display: grid; grid-template-columns: auto 1fr; gap: 10px; padding: 12px 0; }
.featured-date { display: grid; align-content: start; text-align: center; }
.featured-date span { font: 700 7px/1.2 var(--sans); text-transform: uppercase; }
.featured-date strong { font: 400 34px/.9 var(--serif); }
.featured-copy h3 { margin: 4px 0 2px; font: 400 22px/.95 var(--serif); }
.featured-copy p { margin: 0; font-size: 12px; line-height: 1.2; }
.featured-link { grid-column: 1 / -1; display: flex; justify-content: space-between; width: 100%; padding: 8px 0; border: 0; border-top: 1px solid var(--ink); border-bottom: 1px solid var(--ink); background: none; font: 700 9px/1 var(--sans); text-transform: uppercase; }
.programme-key { display: grid; gap: 5px; margin-top: 28px; padding-top: 8px; border-top: 1px solid var(--ink); font: 700 8px/1 var(--sans); text-transform: uppercase; }
.programme-key span { display: flex; align-items: center; gap: 7px; }
.programme-key i { width: 10px; height: 3px; background: var(--ink); }
.programme-key i.music { background: var(--news-blue); }
.programme-key i.food { background: var(--red-pencil); }
.programme-key i.community { background: #50675c; }

/* Menu */
.bar-section { border-bottom: 1px solid var(--ink); background: var(--news-pink); }
.bar-layout { display: grid; grid-template-columns: minmax(340px, .85fr) minmax(420px, 1.15fr); }
.bar-image-stack { position: relative; min-height: 570px; padding: 24px var(--pad) 32px; border-right: 1px solid var(--ink); }
.bar-image-main { width: 82%; height: 86%; overflow: hidden; border: 1px solid var(--ink); }
.bar-image-main img, .bar-image-small img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1) contrast(1.16); }
.bar-image-main::after, .bar-image-small::after { position: absolute; inset: 0; pointer-events: none; content: ""; background-image: radial-gradient(#111 0 .55px, transparent .7px); background-size: 3px 3px; opacity: .18; }
.bar-image-main, .bar-image-small { position: relative; }
.bar-image-small { position: absolute; right: var(--pad); bottom: 28px; width: 40%; height: 42%; overflow: hidden; border: 8px solid var(--news-pink); outline: 1px solid var(--ink); transform: rotate(1.5deg); }
.vertical-note { position: absolute; top: 24px; right: 12px; writing-mode: vertical-rl; font: 700 8px/1 var(--sans); letter-spacing: .1em; }
.menu-panel { padding: 24px var(--pad) 32px; }
.menu-tabs { display: flex; flex-wrap: wrap; gap: 4px; padding: 14px 0; }
.menu-list { border-top: 1px solid var(--ink); animation: listIn .4s cubic-bezier(.16,1,.3,1); }
@keyframes listIn { from { opacity: 0; transform: translateY(7px); } }
.menu-item { display: grid; grid-template-columns: 30px 1fr auto; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--hairline); animation: menuLine .35s var(--item-delay) both; }
@keyframes menuLine { from { opacity: 0; transform: translateX(-7px); } }
.menu-item > span { font: 700 8px/1.2 var(--sans); }
.menu-item h3 { margin: 0 0 2px; font: 400 17px/1 var(--serif); }
.menu-item p { margin: 0; font: 10px/1.2 var(--sans); opacity: .66; }
.menu-item strong { font: 700 13px/1 var(--sans); }
.menu-footnote { margin: 12px 0 0; font-size: 10px; font-style: italic; }

/* About and radio */
.culture-section { background: var(--paper); }
.about-teaser { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(330px, .65fr); border-bottom: 1px solid var(--ink); }
.about-gallery { position: relative; min-height: 560px; overflow: hidden; border-right: 1px solid var(--ink); background: var(--ink); }
.about-shot { position: absolute; overflow: hidden; border: 1px solid var(--paper); }
.about-shot::after { position: absolute; inset: 0; content: ""; background-image: radial-gradient(#fff 0 .6px, transparent .8px); background-size: 3px 3px; opacity: .15; mix-blend-mode: screen; }
.about-shot img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1) contrast(1.35); }
.shot-one { inset: 28px 21% 28px var(--pad); }
.shot-two { z-index: 2; top: 57px; right: var(--pad); width: 29%; height: 42%; transform: rotate(1.5deg); }
.shot-three { z-index: 3; right: calc(var(--pad) + 5%); bottom: 47px; width: 31%; height: 37%; transform: rotate(-1deg); }
.about-teaser-copy { align-self: center; padding: 45px var(--pad); }
.about-teaser-copy h2 { margin: 8px 0 18px; font: 400 clamp(43px, 5.5vw, 82px)/.78 var(--serif); letter-spacing: -.06em; }
.about-teaser-copy h2 em { color: var(--news-blue); font-weight: 400; }
.about-teaser-copy p { max-width: 400px; margin: 0 0 23px; font-size: 17px; line-height: 1.25; }
.arrow-link { display: flex; justify-content: space-between; padding: 10px 0; border-top: 1px solid var(--ink); border-bottom: 1px solid var(--ink); }
.music-section { background: var(--paper-deep); }
.music-intro { grid-template-columns: 1fr 1fr; display: grid; align-items: end; gap: 8vw; }
.music-grid { display: grid; grid-template-columns: 1.4fr .72fr .88fr; border-bottom: 1px solid var(--ink); }
.music-grid > * { padding: 22px; border-right: 1px solid var(--ink); }
.music-grid > *:last-child { border-right: 0; }
.radio-card { display: grid; grid-template-columns: minmax(150px, .72fr) 1fr; gap: 21px; }
.radio-art { position: relative; overflow: hidden; border: 1px solid var(--ink); background: var(--ink); }
.radio-art img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1) contrast(1.15); }
.play-button { position: absolute; left: 50%; top: 50%; width: 52px; height: 52px; border: 1px solid var(--paper); border-radius: 50%; background: var(--ink); color: var(--paper); transform: translate(-50%, -50%); }
.radio-copy { align-self: center; }
.radio-copy h3, .release-card h3 { margin: 7px 0 4px; font: 400 clamp(24px, 2.5vw, 38px)/.94 var(--serif); }
.radio-copy p, .release-card p { margin: 0; font: 11px/1.25 var(--sans); }
.progress-track { height: 5px; margin: 22px 0 7px; border: 1px solid var(--ink); }
.progress-track i { display: block; height: 100%; background: var(--news-blue); }
.player-time { display: flex; justify-content: space-between; font: 700 8px/1 var(--sans); }
.release-card img { width: 100%; aspect-ratio: 1; margin: 13px 0; object-fit: cover; filter: grayscale(1) contrast(1.13); }
.release-card a { display: inline-block; margin-top: 16px; padding-bottom: 5px; border-bottom: 1px solid; font: 700 9px/1 var(--sans); text-transform: uppercase; }
.formats-card > span { margin-bottom: 10px; }
.formats-card > div { display: grid; grid-template-columns: 28px 1fr auto; padding: 9px 0; border-top: 1px solid var(--hairline); font: 11px/1 var(--sans); }
.formats-card > div strong { font: 400 15px/1 var(--serif); }
.formats-card figure { height: 150px; margin-top: 10px; overflow: hidden; border: 1px solid var(--ink); }
.formats-card img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1) contrast(1.25); }

/* Crossword */
.crossword-section { border-bottom: 1px solid var(--ink); background: var(--news-grey); }
.crossword-heading { display: grid; grid-template-columns: 1.35fr .65fr; gap: 8vw; align-items: end; padding: 34px var(--pad) 25px; border-bottom: 1px solid var(--ink); }
.crossword-heading p { max-width: 420px; margin: 0; font-size: 17px; line-height: 1.25; }
.crossword-layout { display: grid; grid-template-columns: minmax(520px, 1.2fr) minmax(360px, .8fr); }
.crossword-board-wrap { padding: 24px var(--pad) 30px; border-right: 1px solid var(--ink); }
.crossword-grid { display: grid; grid-template-columns: repeat(var(--crossword-size), minmax(0, 1fr)); width: min(100%, 610px); aspect-ratio: 1; margin: 18px auto 12px; border-top: 2px solid var(--ink); border-left: 2px solid var(--ink); background: var(--ink); box-shadow: 7px 7px 0 rgba(17,17,15,.16); }
.crossword-block { border-right: 1px solid var(--ink); border-bottom: 1px solid var(--ink); background: var(--ink); }
.crossword-cell { position: relative; min-width: 0; border-right: 1px solid var(--ink); border-bottom: 1px solid var(--ink); background: var(--paper); transition: background .15s; }
.crossword-cell > span { position: absolute; z-index: 2; top: 2px; left: 3px; font: 700 clamp(6px, .58vw, 9px)/1 var(--sans); pointer-events: none; }
.crossword-cell input { width: 100%; height: 100%; padding: 10% 0 0; border: 0; outline: 0; background: transparent; text-align: center; font: 700 clamp(15px, 2vw, 29px)/1 var(--sans); text-transform: uppercase; caret-color: var(--news-blue); }
.crossword-cell.is-active { background: #d8e5f7; }
.crossword-cell:focus-within { box-shadow: inset 0 0 0 3px var(--news-blue); }
.crossword-cell.is-correct { background: #dce7dc; }
.crossword-cell.is-wrong { background: #efb4ae; }
.crossword-status { display: flex; align-items: center; gap: 10px; min-height: 38px; border-top: 3px double var(--ink); border-bottom: 1px solid var(--ink); }
.crossword-status > span { font-size: 20px; }
.crossword-status p { margin: 0; font: 700 10px/1.2 var(--sans); letter-spacing: .04em; text-transform: uppercase; }
.crossword-clues { display: grid; grid-template-columns: 1fr 1fr; align-content: start; gap: 24px; padding: 24px var(--pad) 30px; }
.clue-column h3 { margin: 0 0 8px; padding-bottom: 7px; border-bottom: 3px double var(--ink); font: 400 30px/1 var(--serif); text-transform: capitalize; }
.clue-column button { display: grid; grid-template-columns: 25px 1fr; width: 100%; padding: 8px 4px; border: 0; border-bottom: 1px solid var(--hairline); background: transparent; text-align: left; font: 13px/1.15 var(--serif); }
.clue-column button strong { font: 700 9px/1.3 var(--sans); }
.clue-column button:hover, .clue-column button.active { background: var(--ink); color: var(--paper); }
.crossword-actions { grid-column: 1 / -1; display: flex; align-items: center; gap: 16px; padding-top: 4px; }

/* Private events teaser */
.private-teaser { display: grid; grid-template-columns: 1.22fr .78fr; min-height: 510px; border-bottom: 1px solid var(--ink); background: var(--paper); }
.private-teaser > figure { position: relative; min-height: 510px; overflow: hidden; border-right: 1px solid var(--ink); }
.private-teaser > figure::after { position: absolute; inset: 0; content: ""; background-image: radial-gradient(#111 0 .55px, transparent .75px); background-size: 3px 3px; opacity: .2; }
.private-teaser > figure img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1) contrast(1.16); }
.private-teaser-copy { align-self: center; padding: 38px var(--pad); }
.private-teaser-copy h2 { margin: 7px 0 16px; font: 400 clamp(47px, 6vw, 88px)/.78 var(--serif); letter-spacing: -.06em; }
.private-teaser-copy h2 em { color: var(--news-blue); font-weight: 400; }
.private-teaser-copy > p { max-width: 430px; margin: 0 0 20px; font-size: 16px; line-height: 1.25; }
.private-stats { display: grid; grid-template-columns: repeat(3, 1fr); margin: 20px 0; border-top: 1px solid var(--ink); border-bottom: 1px solid var(--ink); }
.private-stats div { padding: 10px 8px; border-right: 1px solid var(--ink); }
.private-stats div:last-child { border: 0; }
.private-stats strong { display: block; font: 400 25px/1 var(--serif); }
.private-stats span { font: 700 8px/1 var(--sans); text-transform: uppercase; }
.private-actions { display: flex; align-items: center; gap: 18px; }

/* Floating radio */
.floating-radio { position: fixed; z-index: 80; right: 16px; bottom: 16px; width: min(390px, calc(100vw - 32px)); border: 1px solid var(--ink); background: var(--paper); box-shadow: 7px 7px 0 rgba(17,17,15,.58); font-family: var(--sans); }
.floating-radio-bar { display: flex; align-items: center; justify-content: space-between; min-height: 31px; padding-left: 10px; border-bottom: 1px solid var(--ink); background: var(--news-blue); }
.floating-radio-bar span { display: flex; align-items: center; gap: 7px; font: 700 8px/1 var(--sans); letter-spacing: .09em; }
.floating-radio-bar span i { width: 6px; height: 6px; border-radius: 50%; background: var(--ink); animation: signal 1.8s steps(2,end) infinite; }
.floating-radio-bar button { align-self: stretch; width: 31px; border: 0; border-left: 1px solid var(--ink); background: transparent; font: 20px/1 var(--sans); }
.floating-radio-body { padding: 10px; }
.floating-radio-source { position: absolute; width: 1px; height: 1px; overflow: hidden; border: 0; opacity: 0; pointer-events: none; }
.floating-radio-now { display: grid; grid-template-columns: 58px 1fr; gap: 10px; align-items: center; }
.floating-radio-now img { width: 58px; height: 58px; object-fit: cover; filter: grayscale(1) contrast(1.2); }
.floating-radio-now strong { display: block; font: 700 11px/1.15 var(--sans); }
.floating-radio-now span { display: block; margin-top: 4px; font: 8px/1.2 var(--sans); opacity: .6; }
.floating-radio-controls { display: grid; grid-template-columns: 25px 31px 25px minmax(70px,1fr) auto; gap: 6px; align-items: center; margin-top: 9px; }
.floating-radio-play { width: 29px; height: 29px; border: 1px solid var(--ink); background: var(--ink); color: var(--paper); font-size: 10px; }
.floating-radio-skip { width: 25px; height: 25px; padding: 0; border: 1px solid var(--ink); background: var(--news-grey); font: 700 11px/1 var(--sans); }
.floating-radio-skip:hover { background: var(--news-pink); }
.floating-radio-controls input { width: 100%; accent-color: var(--news-blue); }
.floating-radio-controls span { font: 700 7px/1 var(--sans); white-space: nowrap; }
.floating-radio-error { margin: 7px 0 0; padding: 6px 7px; background: var(--news-pink); font: 700 7px/1.2 var(--sans); text-transform: uppercase; }
.floating-radio-links { display: grid; grid-template-columns: auto 1fr auto; gap: 10px; margin-top: 8px; padding-top: 7px; border-top: 1px solid var(--ink); font: 700 7px/1 var(--sans); text-transform: uppercase; }
.floating-radio-links > span { padding-right: 9px; border-right: 1px solid var(--ink); }
.floating-radio-links a:nth-child(2) { overflow: hidden; text-align: center; text-overflow: ellipsis; white-space: nowrap; }
.floating-radio-links a:hover { color: var(--news-blue); }
.floating-radio.is-collapsed { width: 202px; box-shadow: 4px 4px 0 rgba(17,17,15,.45); }
.floating-radio.is-collapsed .floating-radio-bar { border-bottom: 0; }

/* Footer */
footer { padding: 24px var(--pad) 15px; background: var(--ink); color: var(--paper); }
.footer-topline { display: flex; justify-content: space-between; padding-bottom: 8px; border-bottom: 3px double var(--paper); font: 700 8px/1 var(--sans); letter-spacing: .1em; }
.footer-wordmark { width: min(620px, 64vw); margin: 18px auto 10px; }
.footer-columns { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 18px; border-top: 1px solid rgba(241,240,234,.55); }
.footer-columns > div { min-height: 145px; padding: 15px 16px 15px 0; border-right: 1px solid rgba(241,240,234,.4); }
.footer-columns > div + div { padding-left: 16px; }
.footer-columns > div:last-child { border: 0; }
.footer-columns p { margin: 7px 0 11px; font-size: 15px; line-height: 1.22; }
.footer-columns a, .footer-columns button { font: 700 9px/1 var(--sans); text-transform: uppercase; }
.footer-bottom { display: grid; grid-template-columns: 1fr 1fr 1fr; padding-top: 10px; border-top: 1px solid var(--paper); font: 700 8px/1 var(--sans); letter-spacing: .05em; }
.footer-bottom span:nth-child(2) { text-align: center; }
.footer-bottom a { justify-self: end; }

/* Dialogs */
.modal-backdrop, .booking-backdrop { position: fixed; z-index: 210; inset: 0; display: grid; place-items: center; padding: 20px; background: rgba(17,17,15,.82); }
.event-modal { position: relative; display: grid; grid-template-columns: minmax(260px, .8fr) minmax(330px, 1.2fr); width: min(880px, 96vw); max-height: 90svh; overflow: auto; border: 1px solid var(--ink); background: var(--paper); box-shadow: 10px 10px 0 var(--news-blue); animation: modalIn .32s cubic-bezier(.16,1,.3,1); }
@keyframes modalIn { from { opacity: 0; transform: translateY(18px) rotate(-.5deg); } }
.event-modal > figure { min-height: 450px; }
.event-modal > figure img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1) contrast(1.15); }
.event-modal-copy { padding: 35px; }
.event-modal-copy h2 { margin: 9px 0 4px; font: 400 clamp(38px, 5vw, 68px)/.82 var(--serif); letter-spacing: -.05em; }
.event-subtitle { margin: 0 0 24px; font-size: 17px; }
.event-modal-copy dl { margin: 0 0 20px; border-top: 3px double var(--ink); }
.event-modal-copy dl div { display: grid; grid-template-columns: 90px 1fr; padding: 8px 0; border-bottom: 1px solid var(--hairline); }
.event-modal-copy dt { font: 700 9px/1 var(--sans); text-transform: uppercase; }
.event-modal-copy dd { margin: 0; font-size: 13px; }
.event-description { font-size: 15px; line-height: 1.35; }
.modal-close { position: absolute; z-index: 3; top: 10px; right: 10px; width: 38px; height: 38px; border: 1px solid var(--ink); background: var(--paper); font: 24px/1 var(--sans); }
.booking-backdrop { justify-items: end; padding: 0; }
.booking-panel { width: min(620px, 100vw); height: 100svh; overflow: auto; border-left: 1px solid var(--ink); background: var(--news-pink); animation: panelIn .42s cubic-bezier(.16,1,.3,1); }
@keyframes panelIn { from { transform: translateX(100%); } }
.booking-top { position: sticky; z-index: 2; top: 0; display: flex; justify-content: space-between; align-items: center; min-height: 42px; padding-left: 20px; border-bottom: 1px solid var(--ink); background: var(--news-pink); font: 700 9px/1 var(--sans); text-transform: uppercase; }
.booking-top button { align-self: stretch; width: 42px; border: 0; border-left: 1px solid var(--ink); background: transparent; font-size: 24px; }
.booking-panel form, .booking-success { padding: 38px clamp(20px, 6vw, 58px); }
.booking-panel h2 { margin: 9px 0 26px; font: 400 clamp(46px, 6vw, 78px)/.82 var(--serif); letter-spacing: -.05em; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.form-grid label { display: grid; gap: 5px; font: 700 9px/1 var(--sans); text-transform: uppercase; }
.form-grid label.full { grid-column: 1 / -1; }
.form-grid input, .form-grid select, .form-grid textarea { width: 100%; min-height: 44px; padding: 10px; border: 1px solid var(--ink); border-radius: 0; background: rgba(241,240,234,.55); font: 14px/1.2 var(--serif); text-transform: none; }
.form-grid textarea { resize: vertical; }
.form-submit { margin-top: 19px; }
.booking-success { display: grid; align-content: center; min-height: 80svh; }
.booking-success > span { font-size: 48px; }

/* Inner pages */
.page-hero { position: relative; min-height: 610px; display: grid; grid-template-columns: .72fr 1.28fr; border-bottom: 1px solid var(--ink); }
.page-hero > img { grid-column: 2; width: 100%; height: 100%; min-height: 610px; object-fit: cover; filter: grayscale(1) contrast(1.18); }
.page-hero::after { position: absolute; inset: 0 0 0 36%; pointer-events: none; content: ""; background-image: radial-gradient(#111 0 .55px, transparent .75px); background-size: 3px 3px; opacity: .2; }
.page-hero-copy { grid-column: 1; grid-row: 1; align-self: center; padding: 45px var(--pad); }
.page-hero-copy h1 { margin: 9px 0 19px; font: 400 clamp(55px, 8vw, 118px)/.72 var(--serif); letter-spacing: -.07em; }
.page-hero-copy h1 em { color: var(--news-blue); font-weight: 400; }
.page-hero-copy p { max-width: 430px; margin: 0 0 23px; font-size: 18px; line-height: 1.25; }
.story-section { position: relative; display: grid; grid-template-columns: .65fr 1.35fr; min-height: 650px; border-bottom: 1px solid var(--ink); background: var(--news-grey); }
.story-copy { padding: 50px var(--pad); border-right: 1px solid var(--ink); }
.story-copy h2, .facts-section h2, .included-section h2, .booking-content h2 { margin: 9px 0 20px; font: 400 clamp(45px, 6vw, 88px)/.79 var(--serif); letter-spacing: -.055em; }
.story-copy p { font-size: 16px; line-height: 1.3; }
.story-mosaic { position: relative; min-height: 650px; padding: 28px var(--pad); background: var(--ink); }
.story-mosaic figure { position: absolute; overflow: hidden; border: 1px solid var(--paper); }
.story-mosaic figure:nth-child(1) { inset: 28px 39% 30% var(--pad); }
.story-mosaic figure:nth-child(2) { top: 28px; right: var(--pad); width: 32%; height: 43%; }
.story-mosaic figure:nth-child(3) { left: 12%; bottom: 28px; width: 35%; height: 38%; }
.story-mosaic figure:nth-child(4) { right: var(--pad); bottom: 28px; width: 42%; height: 44%; }
.story-mosaic img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1) contrast(1.25); }
.story-coordinate { position: absolute; left: var(--pad); bottom: 12px; font: 700 8px/1 var(--sans); }
.facts-section, .included-section { display: grid; grid-template-columns: .58fr 1.42fr; border-bottom: 1px solid var(--ink); background: var(--paper-deep); }
.facts-section > .reveal:first-child, .included-section > .reveal:first-child { padding: 35px var(--pad); border-right: 1px solid var(--ink); }
.fact-grid, .included-grid { display: grid; grid-template-columns: repeat(3, 1fr); }
.fact-card, .included-card { min-height: 220px; padding: 22px; border-right: 1px solid var(--ink); border-bottom: 1px solid var(--ink); }
.fact-card:nth-child(3n), .included-card:last-child { border-right: 0; }
.fact-card > span, .included-card > span { font: 700 8px/1 var(--sans); letter-spacing: .07em; text-transform: uppercase; }
.fact-card h3, .included-card h3 { margin: 33px 0 8px; font: 400 25px/.95 var(--serif); }
.fact-card p, .included-card p { margin: 0; font-size: 13px; line-height: 1.28; }
.included-grid { grid-template-columns: repeat(3, 1fr); }
.included-section { background: var(--news-pink); }
.full-gallery { display: grid; grid-template-columns: repeat(4, 1fr); border-bottom: 1px solid var(--ink); background: var(--ink); }
.full-gallery figure { position: relative; aspect-ratio: 4 / 3; overflow: hidden; border-right: 1px solid var(--paper); border-bottom: 1px solid var(--paper); }
.full-gallery figure::after { position: absolute; inset: 0; content: ""; background-image: radial-gradient(#fff 0 .45px, transparent .7px); background-size: 3px 3px; opacity: .15; }
.full-gallery img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1) contrast(1.2); transition: transform .7s cubic-bezier(.16,1,.3,1); }
.full-gallery figure:hover img { transform: scale(1.045); }
.booking-cta { display: grid; grid-template-columns: 1fr 1fr; min-height: 500px; background: var(--news-pink); }
.booking-cta > figure { min-height: 500px; overflow: hidden; border-right: 1px solid var(--ink); }
.booking-cta > figure img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1) contrast(1.18); }
.booking-content { align-self: center; padding: 45px var(--pad); }
.booking-content p { max-width: 500px; font-size: 17px; line-height: 1.3; }

/* Reveal system */
.reveal { opacity: 0; clip-path: inset(0 0 12% 0); transform: translateY(18px) rotate(.12deg); transition: opacity .65s var(--reveal-delay) ease, transform .8s var(--reveal-delay) cubic-bezier(.16,1,.3,1), clip-path .8s var(--reveal-delay) cubic-bezier(.16,1,.3,1); }
.reveal.is-visible { opacity: 1; clip-path: inset(0); transform: none; }
.reveal-left { transform: translateX(20px); }
.media-reveal { clip-path: inset(0 0 100% 0); transform: none; }
.media-reveal.is-visible { clip-path: inset(0); }

@media (max-width: 1180px) {
  .site-header { grid-template-columns: auto 1fr auto; }
  .site-header nav { justify-self: center; }
  .open-status { display: none; }
  .wordmark small { display: none; }
  .programme-board { grid-template-columns: minmax(0, 3fr) minmax(220px, 1fr); }
  .music-grid { grid-template-columns: 1.3fr .7fr; }
  .formats-card { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(5, 1fr); }
  .formats-card > span, .formats-card figure { grid-column: 1 / -1; }
  .formats-card figure { height: 220px; }
  .crossword-layout { grid-template-columns: 1.05fr .95fr; }
}

@media (max-width: 920px) {
  .site-header { grid-template-columns: 1fr auto; }
  .site-header nav { position: absolute; top: 77px; left: 0; right: 0; display: none; padding: 12px var(--pad) 22px; border-bottom: 1px solid var(--ink); background: var(--paper); }
  .site-header nav.is-open { display: grid; }
  .site-header nav a { min-height: 48px; border-bottom: 1px solid var(--hairline); font-size: 18px; }
  .header-tools { grid-column: 2; }
  .menu-button { display: block; }
  .text-button { display: none; }
  .venue-hero { min-height: 760px; height: 82svh; background: var(--paper); }
  .hero-address { width: 42%; }
  .hero-glass { width: 42%; }
  .hero-window-main { width: 52%; }
  .hero-window-detail { width: 41%; }
  .split-intro, .crossword-heading { grid-template-columns: 1fr; gap: 20px; }
  .programme-board { grid-template-columns: 1fr; }
  .programme-calendar { border-right: 0; }
  .programme-feature { display: grid; grid-template-columns: 230px 1fr; gap: 18px; border-top: 1px solid var(--ink); }
  .programme-key { align-content: end; }
  .bar-layout, .about-teaser, .private-teaser, .crossword-layout { grid-template-columns: 1fr; }
  .bar-image-stack, .about-gallery, .private-teaser > figure, .crossword-board-wrap { border-right: 0; border-bottom: 1px solid var(--ink); }
  .crossword-board-wrap { display: grid; justify-items: center; }
  .crossword-edition, .crossword-status { width: min(100%, 610px); }
  .music-grid { grid-template-columns: 1fr 1fr; }
  .radio-card { grid-column: 1 / -1; }
  .formats-card { grid-column: auto; display: block; }
  .page-hero { grid-template-columns: 1fr; }
  .page-hero > img { grid-column: 1; grid-row: 2; min-height: 430px; }
  .page-hero-copy { grid-column: 1; grid-row: 1; }
  .page-hero::after { inset: 46% 0 0; }
  .story-section, .facts-section, .included-section { grid-template-columns: 1fr; }
  .story-copy, .facts-section > .reveal:first-child, .included-section > .reveal:first-child { border-right: 0; border-bottom: 1px solid var(--ink); }
  .fact-grid { grid-template-columns: repeat(2, 1fr); }
  .fact-card:nth-child(3n) { border-right: 1px solid var(--ink); }
  .fact-card:nth-child(2n) { border-right: 0; }
  .full-gallery { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 640px) {
  :root { --pad: 16px; }
  .venue-strip { grid-template-columns: 1fr 1fr; }
  .venue-strip span:nth-child(2) { display: none; }
  .site-header { min-height: 66px; }
  .header-spacer { height: 90px; }
  .site-header nav { top: 65px; }
  .header-logo { width: 104px; }
  .venue-hero { min-height: 765px; height: 765px; }
  .venue-hero::before { top: 14px; }
  .hero-grid-code { top: 26px; }
  .hero-address { top: 43px; width: calc(100% - 32px); }
  .hero-address strong { font-size: 21px; }
  .hero-glass { top: 152px; width: calc(100% - 32px); }
  .hero-brand { width: 88%; }
  .hero-glass p { max-width: 90%; font-size: 16px; }
  .hero-window-main { top: 416px; left: 16px; right: 16px; bottom: 28px; width: auto; }
  .hero-window-detail { display: none; }
  .hero-material { right: 27px; bottom: 40px; }
  .hero-cross { top: 32px; right: 8px; }
  .section-intro, .crossword-heading { padding-top: 26px; }
  .section-intro h2, .crossword-heading h2 { font-size: clamp(54px, 19vw, 82px); }
  .programme-note { grid-template-columns: 1fr; gap: 12px; }
  .calendar-toolbar { align-items: flex-start; flex-direction: column; }
  .event-filters { justify-content: flex-start; }
  .programme-feature { grid-template-columns: 1fr; }
  .featured-event { display: grid; grid-template-columns: 118px 1fr; gap: 12px; }
  .featured-image { aspect-ratio: 3 / 4; }
  .featured-copy { align-content: start; }
  .programme-key { grid-template-columns: repeat(3, 1fr); margin-top: 8px; }
  .bar-layout { display: block; }
  .bar-image-stack { min-height: 410px; }
  .bar-image-main { height: 85%; }
  .menu-panel { padding-top: 22px; }
  .about-gallery { min-height: 430px; }
  .shot-one { right: 17%; }
  .shot-two { width: 34%; }
  .shot-three { width: 38%; }
  .music-grid { grid-template-columns: 1fr; }
  .music-grid > * { border-right: 0; border-bottom: 1px solid var(--ink); }
  .radio-card { display: grid; grid-template-columns: 120px 1fr; }
  .formats-card { display: block; }
  .crossword-board-wrap { padding-left: 9px; padding-right: 9px; }
  .crossword-grid { box-shadow: 4px 4px 0 rgba(17,17,15,.15); }
  .crossword-cell input { padding-top: 16%; font-size: clamp(12px, 4.3vw, 21px); }
  .crossword-cell > span { top: 1px; left: 2px; font-size: 6px; }
  .crossword-clues { grid-template-columns: 1fr; }
  .crossword-actions { grid-column: 1; flex-wrap: wrap; }
  .private-teaser > figure { min-height: 330px; }
  .private-stats strong { font-size: 21px; }
  .private-actions { align-items: flex-start; flex-direction: column; }
  .floating-radio { right: 10px; bottom: 10px; width: min(315px, calc(100vw - 20px)); }
  .footer-topline span:last-child { display: none; }
  .footer-wordmark { width: 88vw; }
  .footer-columns { grid-template-columns: 1fr; }
  .footer-columns > div, .footer-columns > div + div { min-height: 0; padding: 14px 0; border-right: 0; border-bottom: 1px solid rgba(241,240,234,.4); }
  .footer-bottom { grid-template-columns: 1fr auto; }
  .footer-bottom span:nth-child(2) { display: none; }
  .event-modal { grid-template-columns: 1fr; }
  .event-modal > figure { min-height: 260px; max-height: 310px; }
  .event-modal-copy { padding: 25px 20px; }
  .form-grid { grid-template-columns: 1fr; }
  .form-grid label.full { grid-column: 1; }
  .page-hero > img { min-height: 340px; }
  .story-mosaic { min-height: 520px; }
  .fact-grid, .included-grid { grid-template-columns: 1fr; }
  .fact-card, .included-card, .fact-card:nth-child(3n) { min-height: 170px; border-right: 0; }
  .full-gallery { grid-template-columns: 1fr 1fr; }
  .booking-cta { grid-template-columns: 1fr; }
  .booking-cta > figure { min-height: 340px; border-right: 0; border-bottom: 1px solid var(--ink); }
}

/* Front-page and editorial hierarchy refinement */
.newspaper-hero {
  display: grid;
  grid-template-columns: minmax(330px, .72fr) minmax(560px, 1.28fr);
  min-height: 0;
  height: auto;
  overflow: visible;
  background: var(--paper);
}
.newspaper-hero::before { display: none; }
.frontpage-rule {
  grid-column: 1 / -1;
  display: flex;
  justify-content: space-between;
  margin: 19px var(--pad) 0;
  padding: 7px 0 6px;
  border-top: 3px double var(--ink);
  border-bottom: 1px solid var(--ink);
  font: 700 8px/1 var(--sans);
  letter-spacing: .11em;
  text-transform: uppercase;
}
.hero-editorial {
  display: grid;
  grid-template-rows: auto auto auto minmax(170px, 1fr) auto;
  gap: 12px;
  min-height: 625px;
  padding: 17px var(--pad) 26px;
  border-right: 1px solid var(--ink);
  background: linear-gradient(155deg, var(--paper) 0 72%, rgba(220,180,192,.34) 72% 100%);
}
.hero-editorial-top, .hero-event-header {
  display: flex;
  justify-content: space-between;
  padding-bottom: 7px;
  border-bottom: 1px solid var(--ink);
  font: 700 8px/1 var(--sans);
  letter-spacing: .08em;
  text-transform: uppercase;
}
.hero-editorial .hero-brand { width: 100%; max-width: 430px; margin: 0; transform: rotate(-.65deg); }
.hero-deck { max-width: 480px; margin: 0; font-size: clamp(16px, 1.42vw, 21px); line-height: 1.12; }
.hero-deck strong { display: block; font-size: 1.22em; font-weight: 400; }
.hero-editorial-image { position: relative; min-height: 170px; overflow: hidden; border: 1px solid var(--ink); background: var(--ink); }
.hero-editorial-image::after, .hero-event-art::after { position: absolute; inset: 0; pointer-events: none; content: ""; opacity: .19; background-image: radial-gradient(#111 0 .65px, transparent .8px); background-size: 3px 3px; mix-blend-mode: multiply; }
.hero-editorial-image img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1) contrast(1.2); }
.hero-opening { display: grid; grid-template-columns: 1fr auto; gap: 5px 14px; padding-top: 8px; border-top: 3px double var(--ink); font: 700 8px/1.15 var(--sans); letter-spacing: .07em; text-transform: uppercase; }
.hero-opening strong { grid-column: 2; grid-row: 1 / span 2; align-self: center; font: 400 21px/1 var(--serif); letter-spacing: 0; }
.hero-opening a { width: max-content; border-bottom: 1px solid var(--ink); }
.hero-event-highlight { min-width: 0; padding: 17px var(--pad) 26px; background: var(--news-grey); }
.hero-event-art { position: relative; width: 100%; height: clamp(300px, 38vw, 455px); margin: 13px 0 15px; padding: 0; overflow: hidden; border: 1px solid var(--ink); background: var(--ink); }
.hero-event-art img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1) contrast(1.18); transition: transform .75s cubic-bezier(.16,1,.3,1), filter .4s; }
.hero-event-art:hover img { transform: scale(1.035); filter: grayscale(.7) contrast(1.12); }
.hero-event-art > span { position: absolute; z-index: 3; top: 10px; right: 10px; padding: 6px 8px; border: 1px solid var(--ink); background: var(--news-pink); font: 700 8px/1 var(--sans); letter-spacing: .08em; text-transform: uppercase; }
.hero-event-body { display: grid; grid-template-columns: minmax(100px, .27fr) 1fr; gap: clamp(18px, 3vw, 42px); padding-top: 12px; border-top: 3px double var(--ink); }
.hero-event-date { display: grid; align-content: start; }
.hero-event-date strong { font: 400 clamp(58px, 7vw, 102px)/.7 var(--serif); letter-spacing: -.08em; }
.hero-event-date span { margin-top: 12px; font: 700 9px/1.2 var(--sans); text-transform: uppercase; }
.hero-event-copy h1 { margin: 6px 0 4px; font: 400 clamp(36px, 4.5vw, 67px)/.82 var(--serif); letter-spacing: -.055em; }
.hero-event-copy p { margin: 0 0 12px; font-size: 15px; }

/* Calendar now drives the adjacent story panel */
.programme-board { grid-template-columns: minmax(0, 3.35fr) minmax(285px, .95fr); }
.programme-feature { padding: 17px 18px 30px; background: var(--news-pink); }
.calendar-preview { min-width: 0; border-top: 3px double var(--ink); }
.calendar-preview-content { padding-top: 9px; animation: calendarStoryIn .34s cubic-bezier(.16,1,.3,1); }
@keyframes calendarStoryIn { from { opacity: 0; transform: translateY(8px); } }
.calendar-preview-top { display: flex; justify-content: space-between; padding-bottom: 7px; border-bottom: 1px solid var(--ink); font: 700 8px/1 var(--sans); letter-spacing: .07em; text-transform: uppercase; }
.calendar-preview-image { width: 100%; aspect-ratio: 4 / 3; margin: 10px 0; padding: 0; overflow: hidden; border: 1px solid var(--ink); background: var(--ink); }
.calendar-preview-image img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1) contrast(1.2); transition: transform .45s cubic-bezier(.16,1,.3,1); }
.calendar-preview-image:hover img { transform: scale(1.035); }
.calendar-preview-date { display: flex; align-items: flex-end; gap: 9px; border-bottom: 1px solid var(--ink); }
.calendar-preview-date strong { font: 400 43px/.82 var(--serif); letter-spacing: -.06em; }
.calendar-preview-date span { padding-bottom: 3px; font: 700 8px/1 var(--sans); text-transform: uppercase; }
.calendar-preview h3 { margin: 10px 0 4px; font: 400 27px/.9 var(--serif); letter-spacing: -.035em; }
.calendar-preview p { margin: 0 0 12px; font-size: 13px; line-height: 1.22; }
.calendar-preview dl { margin: 0; border-top: 1px solid var(--ink); }
.calendar-preview dl div { display: grid; grid-template-columns: 54px 1fr; padding: 6px 0; border-bottom: 1px solid var(--hairline); }
.calendar-preview dt { font: 700 8px/1 var(--sans); text-transform: uppercase; }
.calendar-preview dd { margin: 0; font-size: 11px; }
.calendar-preview.is-empty { min-height: 420px; display: grid; align-content: start; }
.calendar-preview-prompt { margin: 52px 0 18px; font: 400 clamp(70px, 8vw, 112px)/.65 var(--serif); color: var(--news-blue); animation: promptNudge 2.8s ease-in-out infinite; }
@keyframes promptNudge { 50% { transform: translateX(-7px); } }
.calendar-preview.is-empty h3 { margin: 0 0 12px; font-size: clamp(32px, 3vw, 47px); }
.calendar-preview.is-empty p { max-width: 260px; font-size: 14px; }
.calendar-day:has(.calendar-event):hover { background: #d8e5f7; }
.calendar-event:focus-visible { outline: 3px solid var(--news-blue); outline-offset: 2px; }

/* Formats live with the About story */
.about-teaser { grid-template-columns: minmax(0, 1.2fr) minmax(370px, .8fr); }
.about-teaser-copy { align-self: stretch; display: flex; flex-direction: column; justify-content: center; background: var(--news-pink); }
.about-formats { margin: 2px 0 20px; border-top: 3px double var(--ink); }
.about-formats > .micro-label { display: block; padding: 8px 0 6px; }
.about-formats > div { display: grid; grid-template-columns: 30px 1fr auto; padding: 7px 2px; border-top: 1px solid var(--hairline); }
.about-formats > div > span, .about-formats > div > i { font: 700 8px/1.2 var(--sans); font-style: normal; }
.about-formats > div strong { font: 400 15px/1 var(--serif); }
.formats-section { display: grid; grid-template-columns: .86fr .8fr .58fr; min-height: 560px; border-bottom: 1px solid var(--ink); background: var(--news-pink); }
.formats-intro { align-self: center; padding: 42px var(--pad); border-right: 1px solid var(--ink); }
.formats-intro h2 { margin: 8px 0 18px; font: 400 clamp(45px, 5.8vw, 84px)/.78 var(--serif); letter-spacing: -.06em; }
.formats-intro h2 em { color: var(--news-blue); font-weight: 400; }
.formats-intro p { max-width: 430px; margin: 0; font-size: 16px; line-height: 1.28; }
.formats-list { border-right: 1px solid var(--ink); }
.formats-list article { min-height: 112px; display: grid; grid-template-columns: 32px 1fr; align-content: center; gap: 4px 12px; padding: 14px 22px; border-bottom: 1px solid var(--ink); }
.formats-list article:last-child { border-bottom: 0; }
.formats-list article > span { grid-row: 1 / span 2; font: 700 8px/1.2 var(--sans); }
.formats-list h3 { margin: 0; font: 400 23px/.95 var(--serif); }
.formats-list p { margin: 0; font-size: 12px; line-height: 1.22; }
.formats-image { min-height: 560px; overflow: hidden; background: var(--ink); }
.formats-image img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1) contrast(1.24); }

/* BACI receives the full music spread */
.music-section { background: var(--paper-deep); }
.music-grid { grid-template-columns: minmax(0, 1.34fr) minmax(300px, .66fr); }
.music-grid > * { padding: clamp(24px, 3vw, 42px); }
.radio-card { background: var(--news-grey); }
.release-card { background: var(--news-pink); }
.release-card img { aspect-ratio: 4 / 3; }
.floating-radio-bar { background: var(--news-pink); }

/* Standalone menu */
.menu-page-hero { background: var(--news-pink); }
.menu-page-hero > img { object-position: center 58%; }
.menu-page-section .bar-layout { min-height: 590px; }
.menu-page-section .menu-panel { align-self: stretch; }

@media (max-width: 920px) {
  .newspaper-hero { grid-template-columns: minmax(280px, .8fr) minmax(430px, 1.2fr); }
  .hero-editorial { min-height: 610px; padding-left: 22px; padding-right: 22px; }
  .hero-event-highlight { padding-left: 22px; padding-right: 22px; }
  .hero-event-art { height: 355px; }
  .programme-feature { display: block; }
  .calendar-preview.is-empty { min-height: 300px; }
  .programme-key { grid-template-columns: repeat(3, 1fr); }
  .about-teaser { grid-template-columns: 1fr; }
  .formats-section { grid-template-columns: 1fr 1fr; }
  .formats-intro { border-bottom: 1px solid var(--ink); }
  .formats-image { grid-column: 1 / -1; min-height: 320px; }
  .music-grid { grid-template-columns: 1.2fr .8fr; }
}

@media (max-width: 760px) {
  .newspaper-hero { grid-template-columns: 1fr; }
  .frontpage-rule { grid-column: 1; }
  .hero-editorial { min-height: 610px; border-right: 0; border-bottom: 1px solid var(--ink); }
  .hero-event-highlight { padding-top: 22px; }
  .hero-event-art { height: min(88vw, 430px); }
  .hero-event-body { grid-template-columns: 92px 1fr; }
  .formats-section { grid-template-columns: 1fr; }
  .formats-intro, .formats-list { border-right: 0; border-bottom: 1px solid var(--ink); }
  .formats-image { grid-column: 1; }
}

@media (max-width: 640px) {
  .frontpage-rule { margin-top: 12px; }
  .hero-editorial { min-height: 570px; padding: 14px var(--pad) 20px; }
  .hero-editorial .hero-brand { width: 86%; }
  .hero-editorial-image { min-height: 155px; }
  .hero-opening { grid-template-columns: 1fr; }
  .hero-opening strong { grid-column: 1; grid-row: auto; }
  .hero-event-highlight { padding: 17px var(--pad) 24px; }
  .hero-event-art { height: 310px; }
  .hero-event-body { grid-template-columns: 74px 1fr; gap: 14px; }
  .hero-event-date strong { font-size: 60px; }
  .hero-event-copy h1 { font-size: 38px; }
  .calendar-preview.is-empty { min-height: 245px; }
  .calendar-preview-prompt { margin-top: 30px; }
  .about-teaser-copy { padding-top: 32px; padding-bottom: 32px; }
  .music-grid { grid-template-columns: 1fr; }
  .formats-image { min-height: 300px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .reveal { opacity: 1; clip-path: none; transform: none; }
}

/* Hero concept comparison — not linked from the public navigation */
.concepts-page { min-height: 100svh; background: var(--paper-deep); }
.concepts-header { min-height: 76px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; padding: 0 var(--pad); border-bottom: 1px solid var(--ink); background: var(--paper); }
.concepts-header > a:first-child { justify-self: start; }
.concepts-header > a:first-child span { width: 118px; }
.concepts-header > div { display: grid; text-align: center; }
.concepts-header > div span, .concepts-header > a:last-child { font: 700 8px/1.2 var(--sans); letter-spacing: .09em; text-transform: uppercase; }
.concepts-header > div strong { margin-top: 3px; font: 400 18px/1 var(--serif); }
.concepts-header > a:last-child { justify-self: end; padding-bottom: 4px; border-bottom: 1px solid; }
.concepts-intro { display: grid; grid-template-columns: 1.2fr .8fr; align-items: end; gap: 8vw; padding: 35px var(--pad) 28px; border-bottom: 1px solid var(--ink); background: var(--news-pink); }
.concepts-intro h1 { margin: 7px 0 0; font: 400 clamp(58px, 8.4vw, 126px)/.7 var(--serif); letter-spacing: -.075em; }
.concepts-intro h1 em { color: var(--news-blue); font-weight: 400; }
.concepts-intro p { max-width: 520px; margin: 0; font-size: 17px; line-height: 1.25; }
.concept-switcher { position: sticky; z-index: 20; top: 0; display: grid; grid-template-columns: auto auto 1fr; border-bottom: 1px solid var(--ink); background: rgba(241,240,234,.96); }
.concept-switcher > button { min-height: 56px; padding: 0 20px; border: 0; border-right: 1px solid var(--ink); background: transparent; font: 700 11px/1 var(--sans); letter-spacing: .05em; text-transform: uppercase; }
.concept-switcher > button span { display: inline-grid; place-items: center; width: 27px; height: 27px; margin-right: 9px; border: 1px solid var(--ink); }
.concept-switcher > button.active { background: var(--ink); color: var(--paper); }
.concept-switcher > .concept-replay { justify-self: end; border-right: 0; border-left: 1px solid var(--ink); }
.concept-stage { display: grid; grid-template-columns: minmax(310px, .7fr) minmax(600px, 1.3fr); min-height: 710px; border-bottom: 1px solid var(--ink); background: var(--paper); }
.concept-stage-masthead { display: block; min-height: 0; }
.concept-reference { display: grid; grid-template-rows: auto auto auto minmax(190px, 1fr) auto; gap: 15px; padding: 25px var(--pad); border-right: 1px solid var(--ink); background: linear-gradient(155deg, var(--paper) 0 73%, rgba(220,180,192,.36) 73% 100%); }
.concept-reference-meta { display: flex; justify-content: space-between; padding-bottom: 7px; border-bottom: 1px solid var(--ink); font: 700 8px/1 var(--sans); letter-spacing: .07em; }
.concept-reference-logo { width: 100%; max-width: 440px; }
.concept-reference > p { max-width: 460px; margin: 0; font-size: clamp(17px, 1.5vw, 22px); line-height: 1.12; }
.concept-reference > p strong { display: block; font-size: 1.2em; font-weight: 400; }
.concept-reference figure { min-height: 190px; overflow: hidden; border: 1px solid var(--ink); }
.concept-reference figure img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1) contrast(1.2); }
.concept-reference-hours { display: flex; align-items: end; justify-content: space-between; padding-top: 8px; border-top: 3px double var(--ink); font: 700 8px/1 var(--sans); letter-spacing: .06em; }
.concept-reference-hours strong { font: 400 21px/1 var(--serif); }

.kinetic-masthead { position: relative; min-width: 0; overflow: hidden; padding: 25px var(--pad); background: var(--news-blue); isolation: isolate; }
.kinetic-masthead::before { position: absolute; z-index: -2; inset: 0; content: ""; background: linear-gradient(128deg, transparent 0 52%, rgba(241,240,234,.34) 52% 71%, transparent 71%), repeating-linear-gradient(90deg, transparent 0 8.2%, rgba(17,17,15,.08) 8.2% calc(8.2% + 1px)); animation: kineticPaper 8s ease-in-out infinite alternate; }
@keyframes kineticPaper { to { transform: translateX(2.4%); } }
.kinetic-topline { position: relative; z-index: 5; display: flex; justify-content: space-between; padding-bottom: 8px; border-bottom: 3px double var(--ink); font: 700 8px/1 var(--sans); letter-spacing: .1em; }
.kinetic-registration { position: absolute; z-index: 4; top: 58px; right: var(--pad); display: flex; gap: 6px; }
.kinetic-registration i { width: 11px; height: 11px; border: 1px solid var(--ink); border-radius: 50%; }
.kinetic-registration i:nth-child(1) { background: var(--news-pink); }
.kinetic-registration i:nth-child(2) { background: var(--news-grey); }
.kinetic-registration i:nth-child(3) { background: var(--ink); }
.kinetic-logo-stack { position: absolute; left: 5%; right: 4%; top: 14%; height: 47%; }
.kinetic-logo { position: absolute; inset: 0; width: 100%; animation: kineticLogo 1.15s cubic-bezier(.16,1,.3,1) both; }
.kinetic-logo-blue { opacity: .5; transform: translate(-11px, 5px) rotate(-1.3deg); filter: hue-rotate(8deg) saturate(1.4); animation-delay: .05s; }
.kinetic-logo-pink { opacity: .46; transform: translate(12px, -5px) rotate(1deg); filter: sepia(1) saturate(2) hue-rotate(285deg); animation-delay: .13s; }
.kinetic-logo-ink { animation-delay: .24s; }
@keyframes kineticLogo { from { opacity: 0; clip-path: inset(0 100% 0 0); transform: translateX(-9%) rotate(-2deg); } }
.kinetic-headlines { position: absolute; z-index: 7; left: var(--pad); right: var(--pad); top: 53%; height: 175px; overflow: hidden; border-top: 1px solid var(--ink); border-bottom: 1px solid var(--ink); }
.kinetic-headlines span { position: absolute; inset: 0; display: flex; align-items: center; opacity: 0; font: 400 clamp(48px, 6.7vw, 104px)/.73 var(--serif); letter-spacing: -.07em; animation: headlineCycle 10.4s infinite; animation-delay: calc(var(--headline-index) * 2.6s); }
@keyframes headlineCycle { 0% { opacity: 0; transform: translateY(85%) rotate(1deg); } 5%, 20% { opacity: 1; transform: none; } 25%, 100% { opacity: 0; transform: translateY(-85%) rotate(-1deg); } }
.kinetic-columns { position: absolute; left: var(--pad); right: var(--pad); bottom: 77px; display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--ink); }
.kinetic-columns span { padding: 10px 8px 7px 0; border-right: 1px solid var(--ink); font: 700 9px/1.15 var(--sans); letter-spacing: .07em; }
.kinetic-columns span + span { padding-left: 10px; }
.kinetic-event-strip { position: absolute; left: 0; right: 0; bottom: 0; min-height: 53px; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 16px; padding: 0 var(--pad); border-top: 1px solid var(--ink); background: var(--news-pink); font: 700 9px/1 var(--sans); letter-spacing: .06em; }
.kinetic-event-strip span { padding: 6px 8px; background: var(--ink); color: var(--paper); }
.kinetic-event-strip i { font-style: normal; }

.kinetic-masthead-integrated { min-height: 780px; }
.home-kinetic-hero { min-height: clamp(720px, calc(100svh - 102px), 820px); border-bottom: 1px solid var(--ink); }
.home-kinetic-hero .kinetic-event-strip { width: 100%; border-right: 0; border-bottom: 0; border-left: 0; text-align: left; }
.home-kinetic-hero .kinetic-event-strip:hover { background: var(--paper); }
.home-kinetic-hero .kinetic-event-strip:focus-visible { outline: 3px solid var(--ink); outline-offset: -4px; }
.kinetic-masthead-integrated .kinetic-topline { display: grid; grid-template-columns: 1fr auto 1fr; }
.kinetic-masthead-integrated .kinetic-topline span:nth-child(2) { justify-self: center; }
.kinetic-masthead-integrated .kinetic-topline span:last-child { justify-self: end; }
.kinetic-masthead-integrated .kinetic-logo-stack { z-index: 6; left: 13%; right: 13%; top: 12%; height: 39%; }
.kinetic-intro-block { position: absolute; z-index: 8; top: 76px; left: var(--pad); width: clamp(230px, 23vw, 340px); padding: 14px 16px 16px; border: 1px solid var(--ink); background: rgba(241,240,234,.95); box-shadow: 7px 7px 0 var(--news-pink); animation: kineticCardIn .8s .18s cubic-bezier(.16,1,.3,1) both; }
.kinetic-intro-block > span { font: 700 8px/1 var(--sans); letter-spacing: .1em; }
.kinetic-intro-block p { margin: 17px 0 0; font: 400 clamp(18px, 1.65vw, 25px)/1.03 var(--serif); letter-spacing: -.025em; }
.kinetic-intro-block strong { display: block; font-weight: 400; }
.kinetic-venue-window { position: absolute; z-index: 1; top: 68px; left: 19%; right: 19%; height: 330px; margin: 0; overflow: hidden; border: 1px solid var(--ink); background: var(--paper); transform: rotate(-.65deg); animation: kineticPhotoIn 1s .08s cubic-bezier(.16,1,.3,1) both; }
.kinetic-venue-window::after { position: absolute; inset: 0; content: ""; background: linear-gradient(90deg, rgba(35,115,216,.38), transparent 35% 68%, rgba(220,180,192,.46)), radial-gradient(var(--ink) 0 .5px, transparent .75px); background-size: auto, 3px 3px; mix-blend-mode: multiply; opacity: .72; }
.kinetic-venue-window img { width: 100%; height: 100%; object-fit: cover; object-position: center 58%; filter: grayscale(1) contrast(1.18) brightness(1.12); opacity: .78; }
.kinetic-hours-rail { position: absolute; z-index: 8; top: 77px; right: var(--pad); width: clamp(150px, 15vw, 210px); display: grid; padding: 12px 14px 14px; border: 1px solid var(--ink); background: var(--news-pink); box-shadow: -7px 7px 0 rgba(241,240,234,.74); animation: kineticCardIn .8s .3s cubic-bezier(.16,1,.3,1) both; }
.kinetic-hours-rail span { font: 700 8px/1 var(--sans); letter-spacing: .1em; }
.kinetic-hours-rail strong { margin-top: 16px; font: 700 12px/1 var(--sans); }
.kinetic-hours-rail b { margin-top: 6px; font: 400 clamp(27px, 3vw, 45px)/.78 var(--serif); letter-spacing: -.05em; }
.kinetic-about-button { position: absolute; z-index: 12; top: 36%; right: calc(var(--pad) + 1%); width: clamp(145px, 15vw, 198px); min-height: 91px; display: grid; grid-template-columns: 1fr auto; gap: 7px 10px; align-content: center; padding: 12px 13px; border: 1px solid var(--ink); background: rgba(241,240,234,.97); box-shadow: -7px 7px 0 var(--ink); transform: rotate(1.2deg); animation: kineticCardIn .8s .42s cubic-bezier(.16,1,.3,1) both; transition: background .25s, color .25s, transform .35s cubic-bezier(.16,1,.3,1); }
.kinetic-about-button:hover { background: var(--news-pink); transform: translate(-4px,-4px) rotate(0); }
.kinetic-about-button > span { grid-column: 1 / -1; font: 700 8px/1 var(--sans); letter-spacing: .1em; }
.kinetic-about-button strong { font: 400 clamp(16px,1.55vw,22px)/.9 var(--serif); }
.kinetic-about-button i { align-self: end; font: 700 7px/1 var(--sans); font-style: normal; letter-spacing: .08em; }
.kinetic-masthead-integrated .kinetic-headlines { z-index: 10; top: 52%; height: 166px; background: rgba(35,115,216,.9); }
.kinetic-masthead-integrated .kinetic-columns { z-index: 9; }
@keyframes kineticCardIn { from { opacity: 0; clip-path: inset(0 100% 0 0); transform: translateY(13px) rotate(-1deg); } }
@keyframes kineticPhotoIn { from { opacity: 0; clip-path: inset(100% 0 0); transform: translateY(24px) rotate(1.3deg) scale(.96); } }

.weekly-concept { position: relative; min-width: 0; overflow: hidden; padding: 25px var(--pad) 74px; background: var(--ink); }
.weekly-cover { position: relative; min-height: 610px; display: grid; grid-template-columns: 112px minmax(210px, .9fr) minmax(260px, 1.1fr); grid-template-rows: auto 1fr auto; overflow: hidden; border: 1px solid var(--ink); background: var(--paper); box-shadow: 9px 9px 0 var(--news-blue); animation: coverPrint .65s cubic-bezier(.16,1,.3,1) both; }
@keyframes coverPrint { from { opacity: 0; clip-path: inset(0 0 100% 0); transform: rotate(-.7deg) translateY(12px); } }
.weekly-masthead { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr auto 1fr; align-items: end; padding: 13px 15px 9px; border-bottom: 3px double var(--ink); }
.weekly-masthead span:first-child { font: 400 clamp(28px, 3.7vw, 54px)/.75 var(--serif); letter-spacing: -.055em; }
.weekly-masthead span:nth-child(2), .weekly-masthead span:last-child { font: 700 8px/1 var(--sans); letter-spacing: .08em; }
.weekly-masthead span:last-child { justify-self: end; }
.weekly-date-rail { grid-row: 2; display: grid; align-content: start; padding: 20px 12px; border-right: 1px solid var(--ink); background: var(--news-pink); }
.weekly-date-rail strong { font: 400 clamp(60px, 7vw, 100px)/.68 var(--serif); letter-spacing: -.08em; }
.weekly-date-rail span { margin-top: 14px; font: 700 9px/1 var(--sans); text-transform: uppercase; writing-mode: vertical-rl; }
.weekly-lead { grid-column: 2; padding: 22px; border-right: 1px solid var(--ink); }
.weekly-lead h2 { margin: 9px 0 12px; font: 400 clamp(42px, 5.5vw, 82px)/.75 var(--serif); letter-spacing: -.065em; }
.weekly-lead p { margin: 0; font-size: clamp(12px, 1.2vw, 16px); line-height: 1.25; }
.weekly-image { position: relative; min-height: 390px; overflow: hidden; background: var(--ink); }
.weekly-image::after { position: absolute; inset: 0; content: ""; background-image: radial-gradient(#fff 0 .55px, transparent .75px); background-size: 3px 3px; opacity: .16; }
.weekly-image img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1) contrast(1.25); animation: weeklyImage 4.2s linear both; }
@keyframes weeklyImage { from { transform: scale(1.035); } to { transform: scale(1.085); } }
.weekly-facts { grid-column: 1 / 3; display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--ink); }
.weekly-facts div { padding: 9px 12px; border-right: 1px solid var(--ink); }
.weekly-facts span { display: block; font: 700 7px/1 var(--sans); text-transform: uppercase; }
.weekly-facts strong { display: block; margin-top: 4px; font: 400 13px/1 var(--serif); }
.weekly-side-copy { grid-column: 3; padding: 10px 13px; overflow: hidden; border-top: 1px solid var(--ink); font: 700 8px/1 var(--sans); word-spacing: 10px; }
.weekly-footer { position: absolute; left: 0; right: 0; bottom: 0; display: flex; justify-content: space-between; padding: 6px 10px; border-top: 1px solid var(--ink); font: 700 7px/1 var(--sans); }
.weekly-controls { position: absolute; left: var(--pad); right: var(--pad); bottom: 18px; display: grid; grid-template-columns: 38px 1fr 38px; gap: 8px; }
.weekly-controls > button, .weekly-controls > div button { height: 34px; border: 1px solid var(--paper); background: transparent; color: var(--paper); }
.weekly-controls > div { display: grid; grid-template-columns: repeat(3, 1fr); gap: 5px; }
.weekly-controls > div button.active { background: var(--news-pink); color: var(--ink); }
.weekly-controls > div button span { font: 700 8px/1 var(--sans); }

.concept-notes { display: grid; grid-template-columns: 1fr 1fr; background: var(--paper-deep); }
.concept-notes article { min-height: 280px; padding: 30px var(--pad); border-right: 1px solid var(--ink); opacity: .48; transition: opacity .25s, background .25s; }
.concept-notes article.active { opacity: 1; background: var(--news-pink); }
.concept-notes article > span { font: 700 8px/1 var(--sans); letter-spacing: .08em; }
.concept-notes h2 { margin: 20px 0 8px; font: 400 clamp(34px, 4vw, 58px)/.85 var(--serif); letter-spacing: -.05em; }
.concept-notes p { max-width: 590px; font-size: 15px; line-height: 1.28; }
.concept-notes article > strong { font: 700 9px/1 var(--sans); text-transform: uppercase; }

@media (max-width: 1000px) {
  .concept-stage { grid-template-columns: minmax(280px, .62fr) minmax(500px, 1.38fr); }
  .concept-stage-masthead { display: block; }
  .concept-reference { padding-left: 24px; padding-right: 24px; }
  .kinetic-masthead-integrated .kinetic-logo-stack { left: 9%; right: 9%; }
  .kinetic-venue-window { left: 16%; right: 16%; }
  .weekly-cover { grid-template-columns: 88px minmax(185px, .9fr) minmax(220px, 1.1fr); }
}

@media (max-width: 780px) {
  .concepts-header { grid-template-columns: 1fr auto; }
  .concepts-header > div { display: none; }
  .concepts-intro { grid-template-columns: 1fr; gap: 18px; }
  .concept-switcher { grid-template-columns: 1fr 1fr; }
  .concept-switcher > button { padding: 0 10px; font-size: 9px; }
  .concept-switcher > .concept-replay { grid-column: 1 / -1; min-height: 38px; justify-self: stretch; border-top: 1px solid var(--ink); border-left: 0; }
  .concept-stage { grid-template-columns: 1fr; }
  .concept-stage-masthead { display: block; }
  .concept-reference { min-height: 590px; border-right: 0; border-bottom: 1px solid var(--ink); }
  .kinetic-masthead, .weekly-concept { min-height: 690px; }
  .concept-stage-masthead .kinetic-masthead { min-height: 770px; }
  .kinetic-masthead-integrated .kinetic-logo-stack { left: 6%; right: 6%; top: 18%; height: 32%; }
  .kinetic-intro-block { top: 68px; width: min(42vw, 300px); }
  .kinetic-venue-window { top: 74px; left: 21%; right: 18%; height: 305px; }
  .kinetic-hours-rail { top: 240px; width: 150px; }
  .kinetic-about-button { top: 306px; left: 24px; right: auto; width: 158px; min-height: 74px; padding: 10px 11px; }
  .kinetic-masthead-integrated .kinetic-headlines { top: 51%; }
  .concept-notes { grid-template-columns: 1fr; }
  .concept-notes article { border-right: 0; border-bottom: 1px solid var(--ink); }
}

@media (max-width: 560px) {
  .concepts-header > a:first-child span { width: 94px; }
  .concepts-header > a:last-child { font-size: 7px; }
  .concept-switcher > button span { display: none; }
  .kinetic-headlines { top: 48%; height: 205px; }
  .kinetic-headlines span { font-size: 54px; }
  .home-kinetic-hero { min-height: 850px; }
  .concept-stage-masthead .kinetic-masthead { min-height: 850px; }
  .kinetic-masthead-integrated .kinetic-topline { grid-template-columns: 1fr auto; }
  .kinetic-masthead-integrated .kinetic-topline span:nth-child(2) { display: none; }
  .kinetic-intro-block { top: 66px; left: 14px; width: calc(100% - 28px); padding: 11px 13px 13px; box-shadow: 5px 5px 0 var(--news-pink); }
  .kinetic-intro-block p { margin-top: 10px; font-size: 19px; }
  .kinetic-venue-window { top: 194px; left: 14px; right: 14px; height: 220px; }
  .kinetic-masthead-integrated .kinetic-logo-stack { left: 5%; right: 5%; top: 25%; height: 23%; }
  .kinetic-hours-rail { top: 358px; right: 22px; width: 144px; padding: 10px 12px 12px; box-shadow: -5px 5px 0 rgba(241,240,234,.74); }
  .kinetic-hours-rail strong { margin-top: 9px; }
  .kinetic-hours-rail b { font-size: 27px; }
  .kinetic-about-button { top: 337px; left: 22px; width: 147px; min-height: 67px; box-shadow: -5px 5px 0 var(--ink); }
  .kinetic-about-button strong { font-size: 16px; }
  .kinetic-masthead-integrated .kinetic-headlines { top: 54%; height: 196px; }
  .kinetic-masthead-integrated .kinetic-headlines span { font-size: 51px; }
  .kinetic-columns { bottom: 90px; }
  .kinetic-event-strip { grid-template-columns: auto 1fr; gap: 9px; }
  .kinetic-event-strip i { grid-column: 2; }
  .weekly-concept { padding-left: 9px; padding-right: 14px; }
  .weekly-cover { min-height: 640px; grid-template-columns: 66px 1fr; grid-template-rows: auto auto 230px auto; }
  .weekly-masthead { grid-column: 1 / -1; }
  .weekly-masthead span:first-child { font-size: 28px; }
  .weekly-date-rail { grid-column: 1; grid-row: 2 / 4; }
  .weekly-lead { grid-column: 2; grid-row: 2; border-right: 0; }
  .weekly-lead h2 { font-size: 45px; }
  .weekly-image { grid-column: 2; grid-row: 3; min-height: 230px; }
  .weekly-facts { grid-column: 1 / -1; grid-row: 4; }
  .weekly-side-copy { display: none; }
}

/* BACI label concepts — three directions */
.label-concepts-page { position: relative; padding-bottom: 86px; }
.label-concepts-intro { background: linear-gradient(104deg, var(--news-grey) 0 67%, var(--news-pink) 67%); }
.label-concepts-intro h1 { font-size: clamp(55px, 8vw, 118px); }
.label-concepts-intro p { padding: 16px 18px; border: 1px solid var(--ink); background: rgba(241,240,234,.7); box-shadow: 7px 7px 0 var(--news-blue); }
.concept-switcher.label-concept-switcher { grid-template-columns: auto auto auto 1fr; }
.label-concept-stage { animation: labelConceptIn .58s cubic-bezier(.16,1,.3,1) both; }
@keyframes labelConceptIn { from { opacity: 0; transform: translateY(12px); } }

/* A — A/B catalogue */
.label-ab { min-height: 710px; padding: 20px var(--pad) 0; border-bottom: 1px solid var(--ink); background: var(--paper); }
.label-ab-header { display: grid; grid-template-columns: 1fr auto 1fr; padding: 0 0 9px; border-bottom: 3px double var(--ink); font: 700 8px/1 var(--sans); letter-spacing: .1em; }
.label-ab-header strong { justify-self: center; }
.label-ab-header span:last-child { justify-self: end; }
.label-ab-intro { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(30px,7vw,110px); align-items: end; padding: 24px 0 20px; }
.label-ab-intro h2 { margin: 7px 0 0; font: 400 clamp(45px,6vw,84px)/.76 var(--serif); letter-spacing: -.065em; }
.label-ab-intro h2 em { color: var(--news-blue); font-weight: 400; }
.label-ab-intro p { max-width: 540px; margin: 0; font-size: 16px; line-height: 1.24; }
.label-ab-grid { display: grid; grid-template-columns: 1fr 1fr; border: 1px solid var(--ink); }
.label-side { display: grid; grid-template-columns: minmax(180px,.76fr) minmax(190px,1.24fr); grid-template-rows: auto 1fr; min-height: 390px; }
.label-side:first-child { border-right: 1px solid var(--ink); background: rgba(220,180,192,.55); }
.label-side:last-child { background: rgba(207,214,209,.58); }
.label-side-title { grid-column: 1 / -1; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 13px; padding: 9px 11px; border-bottom: 1px solid var(--ink); font: 700 8px/1 var(--sans); letter-spacing: .09em; }
.label-side-title strong { justify-self: center; font: 400 19px/1 var(--serif); letter-spacing: 0; }
.label-side-title i { font-style: normal; }
.label-side-art { position: relative; overflow: hidden; padding: 0; border: 0; border-right: 1px solid var(--ink); background: var(--ink); text-align: left; }
.label-side-art::after { position: absolute; inset: 0; pointer-events: none; content: ""; background-image: radial-gradient(#fff 0 .55px,transparent .75px); background-size: 3px 3px; opacity: .16; }
.label-side-art img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1) contrast(1.25); transition: filter .45s, transform .8s cubic-bezier(.16,1,.3,1); }
.label-side-art:hover img { filter: grayscale(.3) contrast(1.13); transform: scale(1.045); }
.label-side-art span { position: absolute; z-index: 2; left: 9px; bottom: 9px; padding: 6px 7px; border: 1px solid var(--ink); background: var(--paper); font: 700 7px/1.15 var(--sans); letter-spacing: .08em; }
.label-side-copy { display: flex; flex-direction: column; justify-content: center; padding: 20px clamp(16px,2vw,30px); }
.label-side-copy > span { font: 700 8px/1 var(--sans); letter-spacing: .1em; }
.label-side-copy h3 { margin: 16px 0 8px; font: 400 clamp(27px,3vw,44px)/.85 var(--serif); letter-spacing: -.04em; }
.label-side-copy p { margin: 0; font-size: 13px; line-height: 1.25; }
.label-side-copy button { display: flex; justify-content: space-between; margin-top: auto; padding: 10px 0 6px; border: 0; border-top: 1px solid var(--ink); border-bottom: 1px solid var(--ink); background: transparent; font: 700 8px/1 var(--sans); letter-spacing: .07em; }
.label-side-copy button:hover { color: var(--news-blue); }
.label-ab-footer { display: grid; grid-template-columns: repeat(3,1fr); border: 1px solid var(--ink); border-top: 0; }
.label-ab-footer span { padding: 9px 8px; border-right: 1px solid var(--ink); font: 700 7px/1 var(--sans); letter-spacing: .1em; }
.label-ab-footer span:last-child { border-right: 0; text-align: right; }

/* B — record shop counter */
.record-counter { min-height: 735px; overflow: hidden; padding: 20px var(--pad) 0; border-bottom: 1px solid var(--ink); background: var(--news-pink); }
.record-counter-header { display: grid; grid-template-columns: 1fr auto 1fr; padding-bottom: 9px; border-bottom: 3px double var(--ink); font: 700 8px/1 var(--sans); letter-spacing: .1em; }
.record-counter-header span:nth-child(2) { justify-self: center; }
.record-counter-header span:last-child { justify-self: end; }
.record-counter-statement { display: grid; grid-template-columns: 1.25fr .75fr; column-gap: 8vw; align-items: end; padding: 22px 0 13px; }
.record-counter-statement > span { grid-column: 1 / -1; }
.record-counter-statement h2 { margin: 6px 0 0; font: 400 clamp(50px,7.4vw,105px)/.73 var(--serif); letter-spacing: -.073em; }
.record-counter-statement h2 em { color: var(--news-blue); font-weight: 400; }
.record-counter-statement p { max-width: 460px; margin: 0 0 4px; font-size: 16px; line-height: 1.24; }
.record-counter-floor { position: relative; min-height: 440px; margin-top: 4px; border: 1px solid var(--ink); background: linear-gradient(180deg,rgba(241,240,234,.35),rgba(207,214,209,.72)); isolation: isolate; }
.record-counter-floor::before { position: absolute; z-index: -1; inset: 0; content: ""; background: repeating-linear-gradient(90deg,transparent 0 calc(12.5% - 1px),rgba(17,17,15,.13) calc(12.5% - 1px) 12.5%); }
.record-object { position: absolute; padding: 7px 7px 25px; border: 1px solid var(--ink); background: var(--paper); box-shadow: 7px 7px 0 rgba(17,17,15,.18); transition: z-index 0s, transform .65s cubic-bezier(.16,1,.3,1); }
.record-object:hover { z-index: 8; transform: translateY(-13px) rotate(0); }
.record-object button { width: 100%; height: calc(100% - 18px); overflow: hidden; padding: 0; border: 1px solid var(--ink); background: var(--ink); }
.record-object img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1) contrast(1.22); transition: filter .35s, transform .65s; }
.record-object:hover img { filter: grayscale(.18) contrast(1.1); transform: scale(1.04); }
.record-object > span,.record-object > strong { position: absolute; bottom: 8px; font: 700 7px/1 var(--sans); letter-spacing: .07em; }
.record-object > span { left: 8px; }
.record-object > strong { right: 8px; }
.record-object-release { z-index: 3; left: 5%; top: 28px; width: 29%; height: 360px; transform: rotate(-2.2deg); }
.record-object-set { z-index: 2; left: 34%; top: 60px; width: 27%; height: 325px; transform: rotate(2.4deg); }
.record-object-archive { z-index: 1; right: 11%; top: 19px; width: 26%; height: 350px; transform: rotate(-1deg); }
.record-counter-ticket { position: absolute; z-index: 10; right: 2.5%; bottom: 18px; width: 220px; padding: 12px 14px 14px; border: 1px solid var(--ink); background: var(--news-blue); color: var(--paper); box-shadow: 5px 5px 0 var(--ink); transform: rotate(2deg); }
.record-counter-ticket > span,.record-counter-ticket > i { font: 700 8px/1 var(--sans); letter-spacing: .1em; font-style: normal; }
.record-counter-ticket > strong { display: block; margin: 4px 0 10px; font: 400 28px/.9 var(--serif); }
.record-counter-ticket > i { position: absolute; top: 13px; right: 14px; }
.record-counter-ticket p { margin: 0; padding-top: 8px; border-top: 1px solid var(--paper); font-size: 11px; line-height: 1.2; }
.record-counter-footer { display: grid; grid-template-columns: repeat(3,1fr); border: 1px solid var(--ink); border-top: 0; background: var(--paper); }
.record-counter-footer span { padding: 9px; border-right: 1px solid var(--ink); font: 700 7px/1 var(--sans); letter-spacing: .1em; }
.record-counter-footer span:nth-child(2) { text-align: center; }
.record-counter-footer span:last-child { border-right: 0; text-align: right; }

/* C — catalogue index */
.label-index { min-height: 690px; padding: 24px var(--pad) 0; border-bottom: 1px solid var(--ink); background: var(--news-grey); }
.label-index-header { display: grid; grid-template-columns: 1.18fr .82fr; gap: 8vw; align-items: end; padding-bottom: 22px; border-bottom: 3px double var(--ink); }
.label-index-header h2 { margin: 6px 0 0; font: 400 clamp(52px,7vw,100px)/.73 var(--serif); letter-spacing: -.073em; }
.label-index-header h2 em { color: var(--news-blue); font-weight: 400; }
.label-index-header > div:last-child { max-width: 520px; }
.label-index-header > div:last-child strong { font: 700 9px/1 var(--sans); letter-spacing: .08em; }
.label-index-header p { margin: 13px 0 0; font-size: 16px; line-height: 1.24; }
.label-platform-buttons { display: grid; grid-template-columns: 1fr 1fr; margin-top: 18px; border: 1px solid var(--ink); }
.label-platform-buttons a { display: grid; grid-template-columns: 34px 1fr auto; gap: 9px; align-items: center; min-height: 52px; padding: 7px 9px; background: var(--paper); }
.label-platform-buttons a + a { border-left: 1px solid var(--ink); }
.label-platform-buttons a:hover { background: var(--news-pink); }
.label-platform-buttons img { width: 30px; height: 24px; object-fit: contain; }
.label-platform-buttons span { display: grid; gap: 3px; font: 700 10px/1 var(--sans); text-transform: uppercase; }
.label-platform-buttons small { font: 700 6px/1 var(--sans); letter-spacing: .06em; opacity: .6; }
.label-platform-buttons i { font-style: normal; }
.label-index-grid { display: grid; grid-template-columns: minmax(500px,1.35fr) minmax(300px,.65fr); height: 590px; min-height: 430px; border-right: 1px solid var(--ink); border-left: 1px solid var(--ink); }
.label-index-list { display: grid; grid-template-rows: auto auto minmax(0,1fr) auto; min-height: 0; border-right: 1px solid var(--ink); }
.label-index-filters { display: grid; grid-template-columns: repeat(3,1fr); min-height: 38px; border-bottom: 1px solid var(--ink); }
.label-index-filters button { border: 0; border-right: 1px solid var(--ink); background: var(--news-pink); font: 700 8px/1 var(--sans); letter-spacing: .07em; }
.label-index-filters button:last-child { border-right: 0; }
.label-index-filters button:hover,.label-index-filters button.active { background: var(--news-blue); color: var(--paper); }
.label-index-columns,.label-index-entries > a { display: grid; grid-template-columns: .72fr .65fr 1.65fr .8fr 20px; align-items: center; gap: 10px; }
.label-index-columns { min-height: 34px; padding: 0 12px; border-bottom: 1px solid var(--ink); font: 700 7px/1 var(--sans); letter-spacing: .09em; }
.label-index-entries { min-height: 0; overflow-y: auto; overscroll-behavior: contain; scrollbar-color: var(--news-blue) var(--paper-deep); scrollbar-width: thin; }
.label-index-entries > a { min-height: 60px; padding: 8px 12px; border-bottom: 1px solid var(--ink); background: transparent; text-align: left; }
.label-index-entries > a:hover,.label-index-entries > a.active { background: var(--news-pink); }
.label-index-entries > a > span { font: 700 8px/1 var(--sans); letter-spacing: .05em; }
.label-index-entries > a > strong { font: 400 clamp(15px,1.35vw,21px)/.94 var(--serif); }
.label-index-entries > a > i { justify-self: end; font-style: normal; }
.label-index-about { display: grid; grid-template-columns: .58fr 1.42fr; gap: 20px; padding: 15px 12px; }
.label-index-about span { font: 700 7px/1 var(--sans); letter-spacing: .08em; }
.label-index-about p { margin: 0; font-size: 12px; line-height: 1.23; }
.label-index-preview { display: grid; grid-template-rows: 1fr auto; background: var(--paper); }
.label-index-image { position: relative; min-height: 280px; overflow: hidden; background: var(--ink); }
.label-index-image::after { position: absolute; inset: 0; content: ""; background-image: radial-gradient(#fff 0 .55px,transparent .75px); background-size: 3px 3px; opacity: .15; }
.label-index-image img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1) contrast(1.23); animation: indexImageIn .65s cubic-bezier(.16,1,.3,1) both; }
@keyframes indexImageIn { from { opacity: 0; transform: scale(1.055); } }
.label-index-image span { position: absolute; z-index: 2; top: 8px; right: 8px; padding: 5px 7px; border: 1px solid var(--ink); background: var(--news-pink); font: 700 7px/1 var(--sans); }
.label-index-meta { padding: 15px 16px 17px; border-top: 1px solid var(--ink); }
.label-index-meta > span { font: 700 7px/1 var(--sans); letter-spacing: .08em; }
.label-index-meta h3 { margin: 9px 0 4px; font: 400 27px/.9 var(--serif); letter-spacing: -.035em; }
.label-index-meta p { margin: 0; font-size: 11px; }
.label-index-actions { display: grid; margin-top: 14px; border-top: 1px solid var(--ink); }
.label-index-actions > * { display: flex; justify-content: space-between; width: 100%; padding: 8px 0 6px; border: 0; border-bottom: 1px solid var(--ink); background: transparent; font: 700 8px/1 var(--sans); text-align: left; }
.label-index-actions > *:hover { padding-left: 7px; padding-right: 7px; background: var(--news-pink); }
.label-index-actions b { font-weight: 700; }
.label-index-footer { display: grid; grid-template-columns: repeat(3,1fr); border: 1px solid var(--ink); }
.label-index-footer > * { padding: 9px; border-right: 1px solid var(--ink); font: 700 7px/1 var(--sans); letter-spacing: .09em; }
.label-index-footer > *:nth-child(2) { text-align: center; }
.label-index-footer > *:last-child { border-right: 0; text-align: right; }
.label-index-footer a:hover { background: var(--news-pink); }
.home-label-index { min-height: 0; padding-bottom: 0; }
.home-label-index .label-index-header { min-height: 260px; }
.home-label-index .label-index-grid { min-height: 455px; }
.home-label-index .label-index-footer { border-top: 0; }

/* Shared BACI receiver: listening utility, not the label identity */
.label-receiver { position: fixed; z-index: 120; right: 18px; bottom: 17px; width: min(345px,calc(100vw - 36px)); filter: drop-shadow(7px 7px 0 rgba(17,17,15,.24)); transition: width .35s cubic-bezier(.16,1,.3,1); }
.label-receiver-fold { position: absolute; right: 0; bottom: 100%; display: flex; align-items: center; gap: 10px; min-height: 27px; padding: 0 9px; border: 1px solid var(--ink); border-bottom: 0; background: var(--news-pink); font: 700 7px/1 var(--sans); letter-spacing: .08em; }
.label-receiver-fold i { font: 400 15px/1 var(--serif); font-style: normal; }
.label-receiver-face { overflow: hidden; max-height: 290px; border: 1px solid var(--ink); background: var(--paper); transition: max-height .45s cubic-bezier(.16,1,.3,1),opacity .25s; }
.label-receiver.is-collapsed { width: 118px; }
.label-receiver.is-collapsed .label-receiver-face { max-height: 0; opacity: 0; }
.label-receiver-heading { display: flex; justify-content: space-between; padding: 8px 10px 7px; border-bottom: 3px double var(--ink); background: var(--news-grey); font: 700 7px/1 var(--sans); letter-spacing: .08em; }
.label-receiver-display { display: flex; justify-content: space-between; align-items: center; margin: 10px 10px 0; padding: 9px 10px; border: 1px solid var(--ink); background: var(--ink); color: var(--paper); }
.label-receiver-display div { display: grid; gap: 4px; }
.label-receiver-display span { font: 700 7px/1 var(--sans); letter-spacing: .08em; }
.label-receiver-display strong { font: 400 22px/.9 var(--serif); }
.label-receiver-display > i { width: 12px; height: 12px; border: 1px solid var(--paper); border-radius: 50%; background: var(--news-pink); }
.label-receiver-display > i.is-playing { animation: receiverPulse 1.25s steps(2,end) infinite; }
@keyframes receiverPulse { 50% { background: var(--news-blue); transform: scale(.72); } }
.label-receiver-track { display: grid; gap: 3px; padding: 10px 11px 8px; }
.label-receiver-track strong { overflow: hidden; font: 400 18px/.95 var(--serif); text-overflow: ellipsis; white-space: nowrap; }
.label-receiver-track span { font: 700 7px/1 var(--sans); letter-spacing: .06em; text-transform: uppercase; }
.label-receiver-controls { display: grid; grid-template-columns: 39px 1fr; gap: 10px; align-items: center; padding: 0 10px 10px; }
.label-receiver-controls > button { width: 39px; height: 39px; padding: 0; border: 1px solid var(--ink); border-radius: 50%; background: var(--news-blue); color: var(--paper); font: 700 11px/1 var(--sans); }
.label-receiver-controls > div { display: grid; grid-template-columns: 1fr auto; gap: 2px 9px; align-items: center; }
.label-receiver-controls input { grid-column: 1 / -1; width: 100%; accent-color: var(--news-blue); }
.label-receiver-controls span { grid-column: 2; font: 700 7px/1 var(--sans); }
.label-concept-notes { grid-template-columns: repeat(3,1fr); }
.label-concept-notes article { min-height: 260px; padding-left: clamp(18px,2.4vw,38px); padding-right: clamp(18px,2.4vw,38px); }
.label-concept-notes h2 { font-size: clamp(32px,3.5vw,53px); }

@media (max-width: 950px) {
  .label-side { grid-template-columns: 1fr; grid-template-rows: auto 240px auto; }
  .label-side-art { border-right: 0; border-bottom: 1px solid var(--ink); }
  .label-side-copy { min-height: 250px; }
  .record-counter-statement { grid-template-columns: 1fr 1fr; }
  .record-object-release { left: 3%; width: 34%; }
  .record-object-set { left: 32%; width: 34%; }
  .record-object-archive { right: 3%; width: 32%; }
  .label-index-grid { grid-template-columns: minmax(460px,1.2fr) minmax(270px,.8fr); }
  .label-index-columns,.label-index-entries > a { grid-template-columns: .7fr .6fr 1.5fr .75fr 18px; gap: 7px; }
}

@media (max-width: 720px) {
  .label-concepts-intro { background: var(--news-grey); }
  .label-concepts-intro p { box-shadow: 5px 5px 0 var(--news-pink); }
  .concept-switcher.label-concept-switcher { grid-template-columns: repeat(3,1fr); }
  .label-concept-switcher > button { min-width: 0; padding: 0 6px; font-size: 8px; }
  .label-concept-switcher > button span { display: none; }
  .label-concept-switcher > a { grid-column: 1 / -1; min-height: 38px; justify-content: center; border-top: 1px solid var(--ink); border-left: 0; }
  .label-ab,.record-counter,.label-index { padding-left: 14px; padding-right: 14px; }
  .label-ab-header,.record-counter-header { grid-template-columns: 1fr auto; }
  .label-ab-header strong,.record-counter-header span:nth-child(2) { display: none; }
  .label-ab-intro,.label-index-header { grid-template-columns: 1fr; gap: 18px; }
  .label-ab-grid { grid-template-columns: 1fr; }
  .label-side:first-child { border-right: 0; border-bottom: 1px solid var(--ink); }
  .label-side { grid-template-columns: minmax(145px,.72fr) minmax(170px,1.28fr); grid-template-rows: auto 310px; }
  .label-side-art { border-right: 1px solid var(--ink); border-bottom: 0; }
  .label-side-copy { min-height: 310px; }
  .record-counter-statement { grid-template-columns: 1fr; gap: 15px; }
  .record-counter-floor { min-height: 675px; }
  .record-object-release { left: 5%; top: 25px; width: 55%; height: 330px; }
  .record-object-set { left: auto; right: 4%; top: 130px; width: 52%; height: 320px; }
  .record-object-archive { left: 11%; right: auto; top: 335px; width: 52%; height: 300px; }
  .record-counter-ticket { right: 4%; bottom: 27px; width: 190px; }
  .label-index-grid { grid-template-columns: 1fr; }
  .label-index-grid { height: auto; }
  .label-index-list { min-height: 520px; border-right: 0; border-bottom: 1px solid var(--ink); }
  .label-index-entries { max-height: 390px; }
  .label-index-preview { grid-template-columns: 1fr 1fr; grid-template-rows: 1fr; }
  .label-index-image { min-height: 270px; }
  .label-index-meta { align-self: end; border-top: 0; border-left: 1px solid var(--ink); }
  .label-concept-notes { grid-template-columns: 1fr; }
  .label-concept-notes article { border-right: 0; border-bottom: 1px solid var(--ink); }
}

@media (max-width: 500px) {
  .label-concepts-page { padding-bottom: 72px; }
  .label-ab-intro h2,.record-counter-statement h2,.label-index-header h2 { font-size: 48px; }
  .label-ab-grid { border-bottom: 0; }
  .label-side { grid-template-columns: 1fr; grid-template-rows: auto 260px auto; }
  .label-side-art { border-right: 0; border-bottom: 1px solid var(--ink); }
  .label-side-copy { min-height: 235px; }
  .label-ab-footer,.record-counter-footer,.label-index-footer { grid-template-columns: 1fr; }
  .label-ab-footer span,.record-counter-footer span,.label-index-footer > * { border-right: 0; border-bottom: 1px solid var(--ink); text-align: left !important; }
  .label-ab-footer span:last-child,.record-counter-footer span:last-child,.label-index-footer > *:last-child { border-bottom: 0; }
  .record-counter-floor { min-height: 720px; }
  .record-object-release { width: 69%; height: 315px; }
  .record-object-set { top: 165px; width: 63%; height: 295px; }
  .record-object-archive { top: 375px; left: 5%; width: 63%; height: 285px; }
  .record-counter-ticket { bottom: 20px; width: 172px; }
  .label-index-columns { display: none; }
  .label-platform-buttons { grid-template-columns: 1fr; }
  .label-platform-buttons a + a { border-top: 1px solid var(--ink); border-left: 0; }
  .label-index-filters button { font-size: 6px; }
  .label-index-entries > a { grid-template-columns: .75fr 1.65fr 18px; min-height: 66px; }
  .label-index-entries > a > span:nth-of-type(2),.label-index-entries > a > span:nth-of-type(3) { display: none; }
  .label-index-preview { grid-template-columns: 1fr; }
  .label-index-meta { border-left: 0; border-top: 1px solid var(--ink); }
  .label-index-about { grid-template-columns: 1fr; gap: 7px; }
  .label-receiver { right: 10px; bottom: 10px; width: calc(100vw - 20px); }
  .label-receiver.is-collapsed { width: 112px; }
}

@media (prefers-reduced-motion: reduce) {
  .label-concept-stage,.label-index-image img,.label-receiver-display > i.is-playing { animation: none; }
  .record-object,.label-side-art img { transition: none; }
}

/* Find us — interactive Hermannplatz walking guide */
.route-guide { scroll-margin-top: 102px; border-bottom: 1px solid var(--ink); background: var(--paper); }
.route-guide-heading { display: grid; grid-template-columns: 1.2fr .8fr; gap: clamp(36px,8vw,130px); align-items: end; padding: 34px var(--pad) 28px; border-bottom: 3px double var(--ink); background: linear-gradient(108deg,var(--paper) 0 72%,rgba(220,180,192,.52) 72%); }
.route-guide-heading h2 { margin: 8px 0 0; font: 400 clamp(58px,8vw,118px)/.7 var(--serif); letter-spacing: -.075em; }
.route-guide-heading h2 em { color: var(--news-blue); font-weight: 400; }
.route-guide-summary { align-self: stretch; display: grid; grid-template-columns: 1fr auto; align-content: end; padding: 17px 18px 18px; border: 1px solid var(--ink); background: rgba(241,240,234,.88); box-shadow: 8px 8px 0 var(--news-blue); }
.route-guide-summary > strong { font: 400 clamp(34px,4vw,57px)/.8 var(--serif); letter-spacing: -.045em; }
.route-guide-summary > span { align-self: end; font: 700 8px/1 var(--sans); letter-spacing: .09em; text-transform: uppercase; }
.route-guide-summary p { grid-column: 1 / -1; margin: 14px 0 0; padding-top: 10px; border-top: 1px solid var(--ink); font-size: 13px; line-height: 1.25; }
.route-guide-spread { display: grid; grid-template-columns: minmax(0,1.48fr) minmax(290px,.52fr); min-height: 630px; }
.route-map-wrap { min-width: 0; padding: clamp(15px,2.8vw,42px); border-right: 1px solid var(--ink); background: var(--news-pink); }
.route-map { position: relative; width: 100%; overflow: hidden; border: 1px solid var(--ink); background: var(--paper); box-shadow: 10px 10px 0 rgba(17,17,15,.19); isolation: isolate; }
.route-map::after { position: absolute; z-index: 8; inset: 0; pointer-events: none; content: ""; background-image: radial-gradient(rgba(17,17,15,.55) 0 .5px,transparent .72px),repeating-linear-gradient(2deg,transparent 0 4px,rgba(17,17,15,.04) 4px 5px); background-size: 4px 4px,auto; mix-blend-mode: multiply; opacity: .2; }
.route-map svg { display: block; width: 100%; height: auto; }
.route-map-paper { fill: var(--paper); }
.route-map-blocks path { fill: var(--news-grey); stroke: var(--ink); stroke-width: 1.1; }
.route-map-blocks path:nth-child(2),.route-map-blocks path:nth-child(5),.route-map-blocks path:nth-child(8) { fill: rgba(220,180,192,.6); }
.route-map-blocks path:nth-child(3),.route-map-blocks path:nth-child(6) { fill: var(--paper-deep); }
.route-map-streets path { fill: none; stroke: var(--ink); stroke-width: 2; stroke-dasharray: 5 6; opacity: .47; }
.route-map-labels text { fill: var(--ink); font: 700 12px/1 var(--sans); letter-spacing: 1.4px; }
.route-map-place path { fill: var(--ink); stroke: var(--ink); stroke-width: 1; }
.route-map-place text { fill: var(--paper); font: 700 16px/1 var(--sans); letter-spacing: 1px; }
.route-map-place text:first-of-type { fill: var(--news-pink); font-size: 24px; }
.route-map-place text:last-of-type { font-size: 10px; letter-spacing: 1.5px; }
.route-map-route-underlay,.route-map-route { fill: none; stroke-linecap: round; stroke-linejoin: round; }
.route-map-route-underlay { stroke: var(--paper); stroke-width: 23px; opacity: .92; }
.route-map-route { stroke: var(--news-blue); stroke-width: 11px; stroke-dasharray: 620; stroke-dashoffset: 620; animation: routeDraw 2.1s .35s cubic-bezier(.16,1,.3,1) forwards; }
@keyframes routeDraw { to { stroke-dashoffset: 0; } }
.route-map-direction { fill: none; stroke: var(--news-blue); stroke-width: 8px; stroke-linecap: square; opacity: 0; animation: routeArrowIn .35s 1.55s ease forwards; }
.route-map-direction-two { animation-delay: 1.9s; }
@keyframes routeArrowIn { to { opacity: 1; } }
.route-map-destination path { fill: var(--news-pink); stroke: var(--ink); stroke-width: 1.5; }
.route-map-destination path:last-child { fill: var(--news-blue); }
.route-map-destination text { fill: var(--ink); font: 700 25px/1 var(--sans); letter-spacing: 2px; }
.route-map-destination text:nth-of-type(2) { font-size: 12px; letter-spacing: 1.2px; }
.route-map-compass text { fill: var(--ink); font: 700 17px/1 var(--sans); }
.route-map-compass path { fill: none; stroke: var(--ink); stroke-width: 2; }
.route-map-marker { position: absolute; z-index: 10; display: grid; place-items: center; width: clamp(36px,4.2vw,54px); aspect-ratio: 1; padding: 0; border: 1px solid var(--ink); border-radius: 50%; background: var(--paper); transform: translate(-50%,-50%); transition: color .2s,background .2s,box-shadow .2s,transform .25s cubic-bezier(.16,1,.3,1); }
.route-map-marker span { font: 700 clamp(8px,.8vw,11px)/1 var(--sans); letter-spacing: .05em; }
.route-map-marker:hover,.route-map-marker:focus-visible,.route-map-marker.active { z-index: 12; outline: 0; background: var(--news-blue); color: var(--paper); box-shadow: 5px 5px 0 var(--ink); transform: translate(-50%,-50%) scale(1.1); }
.route-map-marker-1 { left: 52.6%; top: 17.9%; }
.route-map-marker-2 { left: 52%; top: 50%; }
.route-map-marker-3 { left: 52.2%; top: 86%; }
.route-map-caption { position: absolute; z-index: 9; left: 8px; bottom: 8px; padding: 6px 7px; border: 1px solid var(--ink); background: var(--paper); font: 700 7px/1 var(--sans); letter-spacing: .09em; }
.route-itinerary { display: flex; min-width: 0; flex-direction: column; background: var(--news-grey); }
.route-itinerary-top { display: flex; justify-content: space-between; padding: 11px 13px 9px; border-bottom: 3px double var(--ink); font: 700 8px/1 var(--sans); letter-spacing: .09em; text-transform: uppercase; }
.route-active-card { min-height: 258px; display: flex; flex-direction: column; justify-content: center; padding: 28px clamp(19px,3vw,38px); border-bottom: 1px solid var(--ink); background: var(--news-pink); animation: routeCardIn .42s cubic-bezier(.16,1,.3,1) both; }
@keyframes routeCardIn { from { opacity: .35; transform: translateX(9px); } }
.route-active-card > span,.route-active-card > small { font: 700 8px/1.15 var(--sans); letter-spacing: .09em; text-transform: uppercase; }
.route-active-card > strong { display: block; margin: 18px 0 10px; font: 400 clamp(31px,3vw,46px)/.82 var(--serif); letter-spacing: -.05em; }
.route-active-card p { max-width: 360px; margin: 0; font-size: 14px; line-height: 1.28; }
.route-active-card small { margin-top: 24px; padding-top: 9px; border-top: 1px solid var(--ink); }
.route-step-list { border-bottom: 1px solid var(--ink); }
.route-step-list button { display: grid; grid-template-columns: 33px 1fr auto; align-items: center; gap: 9px; width: 100%; min-height: 57px; padding: 0 13px; border: 0; border-bottom: 1px solid rgba(17,17,15,.28); background: transparent; text-align: left; }
.route-step-list button:last-child { border-bottom: 0; }
.route-step-list button:hover,.route-step-list button:focus-visible,.route-step-list button.active { outline: 0; background: var(--paper); }
.route-step-list span,.route-step-list i { font: 700 8px/1 var(--sans); letter-spacing: .06em; font-style: normal; }
.route-step-list strong { font: 400 15px/1 var(--serif); }
.route-maps-link { display: grid; gap: 9px; margin-top: auto; padding: 18px 17px 20px; border-top: 1px solid var(--ink); background: var(--news-blue); color: var(--paper); transition: color .2s,background .2s; }
.route-maps-link:hover,.route-maps-link:focus-visible { outline: 0; background: var(--ink); color: var(--news-pink); }
.route-maps-link span { font: 700 8px/1 var(--sans); letter-spacing: .09em; text-transform: uppercase; }
.route-maps-link strong { font: 400 clamp(23px,2.2vw,34px)/.86 var(--serif); }
.route-source-note { margin: 0; padding: 10px 13px 12px; font: 700 7px/1.3 var(--sans); letter-spacing: .055em; text-transform: uppercase; }

@media (max-width: 920px) {
  .route-guide-heading { grid-template-columns: 1fr .72fr; gap: 35px; }
  .route-guide-spread { grid-template-columns: 1fr; }
  .route-map-wrap { border-right: 0; border-bottom: 1px solid var(--ink); }
  .route-itinerary { display: grid; grid-template-columns: 1fr 1fr; }
  .route-itinerary-top { grid-column: 1 / -1; }
  .route-active-card { grid-column: 1; grid-row: 2 / 4; border-right: 1px solid var(--ink); }
  .route-step-list { grid-column: 2; border-bottom: 0; }
  .route-maps-link { grid-column: 2; margin-top: 0; }
  .route-source-note { grid-column: 1 / -1; border-top: 1px solid var(--ink); }
}

@media (max-width: 640px) {
  .route-guide { scroll-margin-top: 90px; }
  .route-guide-heading { grid-template-columns: 1fr; gap: 22px; background: var(--paper); }
  .route-guide-heading h2 { font-size: clamp(56px,19vw,82px); }
  .route-guide-summary { box-shadow: 6px 6px 0 var(--news-blue); }
  .route-map-wrap { padding: 14px 13px 20px; }
  .route-map { box-shadow: 6px 6px 0 rgba(17,17,15,.19); }
  .route-map-labels text { font-size: 14px; }
  .route-map-marker { width: 37px; }
  .route-itinerary { display: flex; }
  .route-active-card { min-height: 230px; border-right: 0; }
  .route-step-list { order: 3; border-bottom: 1px solid var(--ink); }
  .route-maps-link { order: 4; }
  .route-source-note { order: 5; }
}

@media (prefers-reduced-motion: reduce) {
  .route-map-route { stroke-dashoffset: 0; animation: none; }
  .route-map-direction,.route-active-card { opacity: 1; animation: none; }
  .route-map-marker { transition: none; }
}

/* GIRI — a sharper edition of the existing newspaper identity. */
html { scroll-padding-top: 8rem; }
body { font-size: 1rem; line-height: 1.5; }
body::before { opacity: .045; }
button, a, input, select, textarea { -webkit-tap-highlight-color: transparent; }
button:disabled { cursor: wait; opacity: .5; }
:focus-visible { outline: 3px solid var(--news-blue); outline-offset: 4px; }
section[id], footer[id] { scroll-margin-top: 7rem; }
.site-shell, .page-shell { max-width: 1800px; margin-inline: auto; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.skip-link { position: fixed; z-index: 400; top: 8px; left: 16px; padding: 12px 18px; background: var(--ink); color: white; transform: translateY(-160%); font: 700 1rem/1.3 var(--sans); }
.skip-link:focus { transform: none; }
.page-content-anchor { display: block; scroll-margin-top: 7rem; }
.micro-label { font-size: .75rem; line-height: 1.4; letter-spacing: .09em; }
.solid-button, .line-button, .text-button, .arrow-link { font-size: .875rem; line-height: 1.4; letter-spacing: .045em; }
.solid-button { max-width: 100%; min-height: 48px; padding: 12px 20px; gap: 20px; }
.solid-button:hover { transform: none; }
.line-button { min-height: 44px; }
.venue-strip { font-size: .75rem; height: 28px; letter-spacing: .055em; }
.site-header { top: 28px; grid-template-columns: auto 1fr auto; gap: 28px; background: var(--paper); }
.site-header nav { justify-self: center; gap: clamp(6px, 1.3vw, 24px); }
.site-header nav a { font-size: .875rem; }
.wordmark small { font-size: .75rem; line-height: 1.3; max-width: 94px; }
.open-status { font-size: .75rem; line-height: 1.35; max-width: 155px; text-align: right; }
.header-spacer { height: 106px; }

/* The front page: one strong image, one clear invitation. */
.frontpage { border-bottom: 1px solid var(--ink); background: var(--paper); }
.frontpage-edition { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 14px var(--pad); border-bottom: 1px solid var(--ink); font: 700 .75rem/1.4 var(--sans); letter-spacing: .065em; }
.frontpage-edition span:first-child { color: var(--news-blue); }
.frontpage-spread { display: grid; grid-template-columns: 1.04fr 1fr; min-height: 535px; }
.frontpage-story { padding: 35px var(--pad) 38px; background: var(--news-pink); border-right: 1px solid var(--ink); }
.frontpage-story h1 { margin: 0; }
.frontpage-logo { width: clamp(185px, 21vw, 325px); margin-bottom: 20px; }
.frontpage-headline { display: block; font: 400 clamp(64px, 7.2vw, 116px)/.96 var(--serif); letter-spacing: -.065em; }
.frontpage-headline em { color: var(--news-blue); font-weight: 400; }
.frontpage-story > p { margin: 24px 0; max-width: 440px; font: 400 clamp(1rem, 1.35vw, 1.25rem)/1.5 var(--serif); }
.frontpage-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 12px 24px; }
.frontpage-visit { display: flex; align-items: center; gap: 14px; min-height: 44px; border-bottom: 1px solid var(--ink); font: 700 .875rem/1.4 var(--sans); }
.frontpage-visit:hover { color: var(--news-blue); }
.frontpage-visual { position: relative; display: flex; min-width: 0; padding: 28px 28px 95px; background: var(--news-blue); }
.frontpage-visual figure { position: relative; width: 100%; min-height: 350px; background: var(--ink); border: 1px solid var(--ink); overflow: hidden; }
.frontpage-visual img { width: 100%; height: 100%; position: absolute; inset: 0; object-fit: cover; filter: saturate(.78) contrast(1.04); }
.frontpage-visual figcaption { position: absolute; bottom: 0; inset-inline: 0; padding: 12px 16px; color: var(--paper); background: linear-gradient(transparent, rgba(0,0,0,.72)); font: 700 .75rem/1.4 var(--sans); letter-spacing: .05em; }
.frontpage-about { position: absolute; right: 32px; bottom: 26px; width: clamp(225px, 24vw, 310px); padding: 18px 22px; border: 1px solid var(--ink); background: var(--paper); box-shadow: 6px 6px 0 var(--ink); transform: rotate(-2deg); transition: transform .25s, background .25s; }
.frontpage-about:hover { transform: rotate(0deg) translateY(-3px); background: var(--news-pink); }
.frontpage-about > span { display: flex; align-items: center; justify-content: space-between; font: 700 .75rem/1.4 var(--sans); letter-spacing: .06em; }
.frontpage-about strong { display: block; padding-block: 10px 14px; font: 400 clamp(24px, 2.6vw, 36px)/1.05 var(--serif); letter-spacing: -.035em; }
.frontpage-about > span:last-child { border-top: 1px solid var(--hairline); padding-top: 8px; }
.frontpage-about i { font-style: normal; font-size: 20px; }
.frontpage-week { display: grid; grid-template-columns: 1.15fr .8fr 1.1fr 1fr; border-top: 1px solid var(--ink); }
.frontpage-week > * { display: flex; align-items: center; justify-content: center; gap: 14px; padding: 16px 20px; border-right: 1px solid var(--ink); font: .875rem/1.4 var(--sans); }
.frontpage-week > :last-child { border-right: 0; }
.frontpage-week b { font-size: .75rem; }
.frontpage-hours { background: var(--ink); color: var(--paper); }
.frontpage-week a:hover { background: var(--news-pink); }
.frontpage-next { display: flex; align-items: center; gap: 24px; width: 100%; min-height: 72px; padding: 18px var(--pad); border: 0; border-top: 1px solid var(--ink); background: var(--paper); text-align: left; }
.frontpage-next > span:first-child { padding: 7px 9px; background: var(--news-blue); color: white; font: 700 .75rem/1.3 var(--sans); letter-spacing: .06em; flex-shrink: 0; }
.frontpage-next time { font: 700 .875rem/1.3 var(--sans); text-transform: uppercase; white-space: nowrap; }
.frontpage-next strong { font: 400 clamp(1.25rem, 2vw, 1.75rem)/1.15 var(--serif); }
.frontpage-next-detail { margin-left: auto; display: flex; align-items: center; gap: 22px; font: .875rem/1.3 var(--sans); }
.frontpage-next i { font-size: 26px; font-style: normal; }
.frontpage-next:hover { background: var(--news-pink); }

/* Readable editorial rhythm, shared by every page. */
.section-intro, .crossword-heading { padding-block: 48px 32px; }
.section-intro h2, .crossword-heading h2, .label-index-header h2 { line-height: .98; letter-spacing: -.055em; font-size: clamp(48px, 6.5vw, 96px); }
.section-intro p, .crossword-heading p, .label-index-header p { font-size: 1.0625rem; line-height: 1.5; }
.programme-note { grid-template-columns: 1fr; gap: 12px; }
.live-dot { font-size: .75rem; }
.programme-board { grid-template-columns: minmax(0, 2.9fr) minmax(290px, 1fr); }
.programme-calendar { padding-block: 24px 36px; padding-right: 28px; }
.calendar-label, .panel-index, .crossword-edition { font-size: .75rem; line-height: 1.4; gap: 12px; padding-bottom: 12px; }
.calendar-wrap { overflow: visible; }
.calendar { min-width: 0; }
.calendar-loading { min-height: 450px; padding: 30px 0; }
.calendar-toolbar { flex-wrap: wrap; gap: 14px; padding-block: 22px 14px; }
.month-nav { gap: 12px; }
.month-nav button { width: 44px; height: 44px; }
.month-nav h3 { font-size: 1.875rem; min-width: 175px; }
.event-filters { justify-content: flex-start; gap: 5px; }
.event-filters button, .menu-tabs button { min-height: 42px; padding: 9px 12px; font-size: .875rem; line-height: 1.3; }
.calendar-context { display: flex; justify-content: space-between; align-items: center; padding-bottom: 14px; font: .75rem/1.4 var(--sans); }
.calendar-today { border: 0; padding: 8px 0 8px 12px; background: transparent; font: 700 .875rem/1.3 var(--sans); text-decoration: underline; text-underline-offset: 4px; }
.weekday-row > span { font-size: .75rem; line-height: 1.4; padding: 12px 8px; background: var(--ink); color: var(--paper); }
.calendar-grid { grid-template-rows: none; grid-auto-rows: minmax(138px, auto); }
.calendar-day { padding: 12px 8px; min-width: 0; }
.calendar-date-line { display: flex; align-items: center; gap: 8px; }
.calendar-number { font-size: 1.75rem; }
.calendar-mobile-day { display: none; }
.calendar-today-label { font: 700 .75rem/1.2 var(--sans); color: var(--news-blue); }
.calendar-day.is-today { box-shadow: inset 0 0 0 2px var(--news-blue); background: #e2eafa; }
.calendar-day.is-past .calendar-number { color: #5e6464; }
.day-status { position: static; display: block; margin-top: 6px; font: .75rem/1.3 var(--sans); opacity: 1; color: #555b5a; text-transform: none; }
.day-status:empty { display: none; }
.calendar-event { position: relative; padding: 9px 8px 10px; min-height: 58px; font-size: .875rem; line-height: 1.4; text-transform: none; overflow-wrap: anywhere; }
.calendar-event > span { font-size: .75rem; line-height: 1.3; opacity: .8; padding-right: 12px; margin-bottom: 6px; }
.calendar-event i { position: absolute; right: 6px; top: 7px; font-size: 14px; font-style: normal; }
.calendar-empty { padding: 18px; margin: 16px 0 0; border: 1px solid var(--hairline); font-size: 1rem; }
.calendar-empty a { display: block; color: var(--news-blue); text-decoration: underline; margin-top: 8px; }
.programme-feature { display: flex; padding: 24px 24px 36px; }
.calendar-preview-top { font-size: .75rem; line-height: 1.4; gap: 12px; }
.calendar-preview h3 { font-size: 2rem; line-height: 1.05; margin: 16px 0 10px; }
.calendar-preview p, .calendar-preview.is-empty p { font-size: 1rem; line-height: 1.5; max-width: none; }
.calendar-preview-date { align-items: center; padding-block: 12px; }
.calendar-preview-date strong { line-height: 1; }
.calendar-preview-date span, .calendar-preview dt { font-size: .75rem; line-height: 1.4; }
.calendar-preview dd { font-size: .875rem; line-height: 1.4; }
.calendar-preview dl div { grid-template-columns: 60px 1fr; padding: 10px 0; }
.calendar-empty-photo { width: 100%; aspect-ratio: 4/3; object-fit: cover; margin: 20px 0; }
.featured-link { font-size: .875rem; min-height: 46px; }
.programme-key { grid-template-columns: repeat(3, auto); font-size: .75rem; line-height: 1.4; gap: 12px; padding-top: 14px; }

/* The BACI index keeps its compact record-store character. */
.home-label-index { padding-top: 44px; background: var(--news-grey); }
.home-label-index .label-index-header { min-height: 0; padding-bottom: 32px; }
.label-index-header { gap: 48px; grid-template-columns: 1fr 1fr; }
.label-index-header > div:last-child strong { font-size: .75rem; line-height: 1.4; }
.label-platform-buttons { margin-top: 22px; }
.label-platform-buttons a { grid-template-columns: 28px 1fr auto; min-height: 72px; gap: 12px; padding: 12px; }
.label-platform-buttons span { font-size: .875rem; line-height: 1.3; }
.label-platform-buttons small { font-size: .75rem; line-height: 1.3; opacity: .8; font-weight: 400; text-transform: none; }
.label-index-grid { grid-template-columns: minmax(0, 1.65fr) minmax(0, 1fr); height: 660px; }
.label-index-filters { min-height: 48px; }
.label-index-filters button { font-size: .75rem; line-height: 1.4; padding: 10px 7px; }
.label-index-columns, .label-index-entries > a { grid-template-columns: 66px minmax(0, 1fr) 20px; gap: 12px; }
.label-index-columns > :nth-child(2), .label-index-columns > :nth-child(4), .label-index-entries > a > :nth-child(2), .label-index-entries > a > :nth-child(4) { display: none; }
.label-index-columns { font-size: .75rem; line-height: 1.4; padding-block: 10px; }
.label-index-entries > a { min-height: 72px; padding: 14px 16px; }
.label-index-entries > a > span { font-size: .75rem; line-height: 1.4; }
.label-index-entries > a > strong { font-size: 1.125rem; line-height: 1.3; overflow-wrap: anywhere; }
.label-index-about { grid-template-columns: auto 1fr; align-items: start; gap: 18px; padding: 18px 16px; border-top: 1px solid var(--ink); }
.label-index-about span { font-size: .75rem; line-height: 1.5; }
.label-index-about p { font-size: .875rem; line-height: 1.5; }
.label-index-preview { min-width: 0; grid-template-rows: minmax(220px, 1fr) auto; }
.label-index-image { min-height: 0; }
.label-index-image img { object-fit: contain; filter: none; }
.label-index-image::after { display: none; }
.label-index-image span { font-size: .75rem; line-height: 1.4; }
.label-index-meta { padding: 22px; }
.label-index-meta > span { font-size: .75rem; line-height: 1.4; }
.label-index-meta h3 { font-size: 1.875rem; line-height: 1.1; margin-block: 12px; }
.label-index-meta p { font-size: 1rem; line-height: 1.4; }
.label-index-actions > * { font-size: .875rem; line-height: 1.4; padding-block: 12px; min-height: 44px; gap: 10px; }
.label-index-footer { padding: 0; }
.label-index-footer > * { font-size: .75rem; line-height: 1.4; padding: 18px 14px; }
.label-index-footer a:hover { color: var(--ink); }

/* A quiet receiver that doesn't cover the page until it is opened. */
.floating-radio, .floating-radio.is-collapsed { width: min(410px, calc(100vw - 32px)); right: 20px; bottom: max(16px, env(safe-area-inset-bottom)); box-shadow: 4px 4px 0 var(--ink); }
.floating-radio.is-collapsed { width: min(278px, calc(100vw - 32px)); }
.floating-radio-bar { padding: 0; min-height: 58px; }
.floating-radio-bar .receiver-toggle { width: 100%; min-height: 58px; padding: 10px 14px; border: 0; display: flex; align-items: center; gap: 12px; text-align: left; }
.floating-radio-bar .receiver-toggle > span { font-size: .875rem; line-height: 1.3; display: block; letter-spacing: .035em; }
.receiver-toggle > span:nth-child(2) { min-width: 0; flex: 1; }
.receiver-toggle small { display: block; margin-top: 3px; font-size: .75rem; font-weight: 400; letter-spacing: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; max-width: 290px; }
.floating-radio-bar .receiver-toggle .receiver-signal { display: grid; place-items: center; width: 32px; height: 32px; background: var(--ink); color: var(--news-pink); flex-shrink: 0; font-size: 20px; }
.receiver-signal.is-playing { color: white; }
.receiver-toggle > b { margin-left: auto; font: 400 24px/1 var(--sans); }
.floating-radio-body { padding: 16px; }
.floating-radio-now strong { font-size: 1rem; line-height: 1.3; }
.floating-radio-now span { font-size: .75rem; line-height: 1.4; opacity: .85; }
.floating-radio-now img { filter: none; }
.floating-radio-controls { grid-template-columns: 44px 44px 44px 1fr; gap: 8px; }
.floating-radio-play, .floating-radio-skip { width: 44px; height: 44px; font-size: 1rem; }
.floating-radio-controls > span { grid-column: 4; text-align: right; font-size: .75rem; line-height: 1.3; }
.floating-radio-links { grid-template-columns: auto 1fr; font-size: .75rem; line-height: 1.4; gap: 10px; }
.floating-radio-links a:last-child { grid-column: 1 / -1; min-height: 30px; text-align: right; }
.floating-radio-error, .receiver-privacy { font: .75rem/1.5 var(--sans); text-transform: none; }

/* The back page, inner stories and practical details. */
.crossword-section { background: var(--paper); }
.crossword-layout { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.crossword-board-wrap, .crossword-clues { padding-top: 32px; padding-bottom: 40px; }
.crossword-grid { margin-top: 22px; }
.crossword-cell > span { font-size: .75rem; top: 2px; left: 3px; }
.crossword-cell input { font-size: clamp(16px, 2vw, 28px); padding-top: 18%; }
.crossword-status p { font-size: .875rem; line-height: 1.4; text-transform: none; letter-spacing: 0; }
.crossword-status { min-height: 55px; }
.clue-column h3 { font-size: 1.75rem; line-height: 1.2; }
.clue-column button { font-size: 1rem; line-height: 1.5; min-height: 48px; padding-block: 12px; }
.clue-column button strong { font-size: .875rem; line-height: 1.5; }
.crossword-actions { flex-wrap: wrap; gap: 10px 20px; }
.page-hero { min-height: 510px; grid-template-columns: 1fr 1.15fr; }
.page-hero > img { min-height: 510px; filter: saturate(.7) contrast(1.05); }
.page-hero::after { display: none; }
.page-hero-copy h1 { font-size: clamp(52px, 6.5vw, 104px); line-height: 1; letter-spacing: -.055em; }
.page-hero-copy p { line-height: 1.5; }
.story-copy h2, .facts-section h2, .included-section h2, .booking-content h2, .formats-intro h2, .route-guide-heading h2 { line-height: 1.02; letter-spacing: -.045em; font-size: clamp(40px, 4.8vw, 72px); }
.story-copy p, .booking-content p, .formats-intro p, .route-active-card p { line-height: 1.5; font-size: 1rem; }
.fact-card p, .included-card p, .formats-list p { font-size: 1rem; line-height: 1.5; }
.fact-card h3, .included-card h3 { line-height: 1.15; }
.fact-card > span, .included-card > span { font-size: .75rem; line-height: 1.4; }
.route-active-card > span, .route-active-card > small, .route-itinerary-top, .route-source-note, .route-maps-link span { font-size: .75rem; line-height: 1.5; }
.route-step-list strong { font-size: 1rem; line-height: 1.4; }
.route-active-card > strong, .route-maps-link strong { line-height: 1.08; }
.route-step-list span, .route-map-marker span, .route-map-caption { font-size: .75rem; }
.menu-tabs { flex-wrap: wrap; gap: 6px; }
.menu-item h3 { font-size: 1.375rem; line-height: 1.25; }
.menu-item p, .menu-footnote { font-size: .875rem; line-height: 1.5; }
.menu-item > strong { font-size: 1rem; line-height: 1.4; white-space: nowrap; }
#contact { padding-top: 40px; padding-bottom: 120px; }
.footer-topline, .footer-bottom { font-size: .75rem; line-height: 1.5; gap: 20px; }
.footer-columns p { font-size: 1.25rem; line-height: 1.5; }
.footer-columns a { display: inline-block; min-height: 40px; text-underline-offset: 5px; }
.footer-columns a:hover { text-decoration: underline; color: var(--news-pink); }
.footer-bottom a { min-height: 44px; }
.footer-wordmark { max-width: 1100px; }

/* Native dialogs supply focus containment, Escape and modal semantics. */
.event-dialog { padding: 0; border: 0; background: transparent; color: var(--ink); max-width: calc(100vw - 32px); max-height: calc(100svh - 32px); overflow: auto; }
.event-dialog::backdrop, .booking-dialog::backdrop { background: rgba(15, 20, 28, .78); backdrop-filter: blur(4px); }
.event-modal { width: min(940px, calc(100vw - 32px)); max-height: none; box-shadow: none; }
.event-modal-copy h2, .booking-panel h2 { line-height: 1.05; }
.event-modal-copy dt { font-size: .75rem; line-height: 1.5; }
.event-modal-copy dd, .event-description { font-size: 1rem; line-height: 1.5; }
.modal-close { width: 44px; height: 44px; }
.event-modal-copy { padding-top: 60px; }
.booking-dialog { padding: 0; border: 0; color: var(--ink); background: transparent; margin: 0 0 0 auto; max-width: 100vw; max-height: 100svh; width: min(620px, 100vw); height: 100svh; }
.booking-panel { max-width: 100%; height: 100%; }
.booking-top { font-size: .75rem; line-height: 1.4; min-height: 52px; }
.booking-top button { width: 52px; }
.form-grid label { font-size: .875rem; line-height: 1.4; gap: 8px; }
.form-grid input, .form-grid select, .form-grid textarea { font-size: 1rem; line-height: 1.4; background: var(--paper); min-height: 48px; }
.booking-explanation { font-size: .875rem; line-height: 1.5; }
.form-optional { font-size: .75rem; font-weight: 400; text-transform: none; }
.form-grid label:has(.form-optional) { grid-template-columns: 1fr auto; align-content: start; }
.form-grid label:has(.form-optional) input { grid-column: 1 / -1; }
.booking-summary { white-space: pre-wrap; font: 1rem/1.6 var(--serif); margin-block: 0 24px; padding: 20px; border: 1px solid var(--ink); background: var(--paper); overflow-wrap: anywhere; }
.booking-success { min-height: 0; }
.booking-success .line-button { justify-self: start; margin-top: 18px; }
.reveal, .media-reveal { opacity: 1; transform: none; clip-path: none; }
.reveal-ready:not(.is-visible) { opacity: 0; transform: translateY(12px); }
.reveal.is-visible { clip-path: none; }

@media (min-width: 1450px) {
  .frontpage-spread { min-height: 610px; }
  .frontpage-story { padding-top: 45px; }
}
@media (max-width: 1250px) {
  .open-status, .wordmark small { display: none; }
  .programme-board { grid-template-columns: minmax(0, 2.3fr) minmax(260px, 1fr); }
  .programme-calendar { padding-left: 24px; padding-right: 24px; }
  .programme-feature { padding-inline: 20px; }
  .frontpage-week > * { flex-wrap: wrap; gap: 4px 10px; padding: 14px; }
  .frontpage-headline { font-size: clamp(64px, 8vw, 104px); }
  .crossword-clues { gap: 22px; padding-inline: 24px; }
  .facts-section, .included-section { grid-template-columns: 1fr; }
  .facts-section > .reveal:first-child, .included-section > .reveal:first-child { border-right: 0; border-bottom: 1px solid var(--ink); }
}
@media (max-width: 920px) {
  .site-header { grid-template-columns: 1fr auto; }
  .site-header nav { justify-self: stretch; max-height: calc(100svh - 105px); overflow-y: auto; }
  .site-header nav a { font-size: 1.125rem; min-height: 50px; }
  .frontpage-spread { grid-template-columns: 1fr 1fr; }
  .frontpage-story { padding: 30px 24px; }
  .frontpage-logo { width: 190px; }
  .frontpage-headline { font-size: clamp(56px, 8vw, 76px); }
  .frontpage-actions { gap: 8px; }
  .frontpage-visual { padding: 18px 18px 100px; }
  .frontpage-about { right: 24px; width: calc(100% - 54px); padding: 16px; }
  .frontpage-edition span:last-child { display: none; }
  .programme-board { grid-template-columns: 1fr; }
  .programme-feature { display: block; border-top: 1px solid var(--ink); padding: 28px var(--pad); }
  .calendar-preview-content { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr); column-gap: 28px; }
  .calendar-preview-top { grid-column: 1 / -1; }
  .calendar-preview-image { grid-column: 1; grid-row: 2 / 7; align-self: start; margin-top: 18px; }
  .calendar-preview-date, .calendar-preview h3, .calendar-preview p, .calendar-preview dl, .calendar-preview .featured-link { grid-column: 2; }
  .programme-key { width: max-content; }
  .crossword-layout { grid-template-columns: 1fr; }
  .crossword-clues { grid-template-columns: 1fr 1fr; padding-inline: var(--pad); }
  .page-hero { grid-template-columns: 1fr; }
  .page-hero > img { grid-column: 1; min-height: 360px; max-height: 480px; }
  .label-index-header { gap: 24px; }
  .label-platform-buttons { grid-template-columns: 1fr; }
  .label-platform-buttons a + a { border-left: 0; border-top: 1px solid var(--ink); }
  .label-index-grid { grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); }
}
@media (max-width: 640px) {
  :root { --pad: 20px; }
  html { scroll-padding-top: 6.5rem; }
  .venue-strip { font-size: .75rem; height: 26px; }
  .venue-strip span:last-child { letter-spacing: 0; }
  .site-header { top: 26px; min-height: 66px; }
  .header-spacer { height: 92px; }
  .frontpage-edition { padding-block: 11px; gap: 10px; }
  .frontpage-edition span:nth-child(2) { font-size: .75rem; max-width: 180px; text-align: right; }
  .frontpage-spread { grid-template-columns: 1fr; }
  .frontpage-story { padding: 28px var(--pad); border-right: 0; }
  .frontpage-story h1 { display: grid; grid-template-columns: 1fr; }
  .frontpage-logo { width: 190px; margin-bottom: 14px; }
  .frontpage-headline { font-size: clamp(64px, 17vw, 96px); }
  .frontpage-story > p { margin-block: 20px; font-size: 1.0625rem; }
  .frontpage-actions { gap: 10px 22px; }
  .frontpage-visual { min-height: 365px; padding: 18px var(--pad) 82px; border-top: 1px solid var(--ink); }
  .frontpage-visual figure { min-height: 260px; }
  .frontpage-about { width: 220px; right: 26px; bottom: 24px; padding: 14px 18px; }
  .frontpage-about strong { font-size: 26px; }
  .frontpage-week { grid-template-columns: 1fr 1fr; }
  .frontpage-week > * { min-height: 62px; border-bottom: 1px solid var(--ink); }
  .frontpage-week > :nth-child(2n) { border-right: 0; }
  .frontpage-week > :nth-last-child(-n+2) { border-bottom: 0; }
  .frontpage-next { flex-wrap: wrap; gap: 10px 16px; padding-block: 18px; }
  .frontpage-next strong { flex: 1 1 60%; }
  .frontpage-next-detail { flex-basis: 100%; justify-content: space-between; }
  .section-intro, .crossword-heading { padding-block: 34px 24px; }
  .section-intro h2, .crossword-heading h2, .label-index-header h2 { font-size: clamp(48px, 13vw, 74px); }
  .calendar-label > span:last-child { display: none; }
  .programme-calendar { padding-inline: var(--pad); }
  .calendar-toolbar { flex-direction: row; }
  .event-filters { width: 100%; }
  .event-filters button { flex: 1 1 auto; padding-inline: 8px; }
  .month-nav { width: 100%; justify-content: space-between; }
  .calendar-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: minmax(140px, auto); }
  .weekday-row { display: none; }
  .calendar-mobile-day { display: block; font: 700 .75rem/1.3 var(--sans); }
  .calendar-today-label { margin-left: auto; }
  .calendar-day { padding: 12px 10px; }
  .calendar-day.is-empty { display: none; }
  .calendar-preview-content { display: block; }
  .calendar-preview-image { aspect-ratio: 16/10; max-height: 240px; }
  .calendar-preview.is-empty { min-height: 0; }
  .calendar-empty-photo { max-height: 230px; }
  .home-label-index { padding-top: 34px; }
  .label-index-header { grid-template-columns: 1fr; gap: 24px; }
  .label-platform-buttons { grid-template-columns: 1fr 1fr; }
  .label-platform-buttons a { gap: 8px; padding: 12px 8px; grid-template-columns: 22px 1fr; }
  .label-platform-buttons a + a { border-top: 0; border-left: 1px solid var(--ink); }
  .label-platform-buttons a > i { display: none; }
  .label-platform-buttons small { font-size: .75rem; }
  .home-label-index .label-index-grid { height: auto; grid-template-columns: 1fr; }
  .label-index-list { border-right: 0; }
  .label-index-entries { max-height: 420px; }
  .label-index-preview { border-top: 1px solid var(--ink); grid-template-columns: 1fr; grid-template-rows: 280px auto; }
  .label-index-meta { padding: 20px; }
  .label-index-footer { grid-template-columns: 1fr; }
  .label-index-footer > * { border-right: 0; border-bottom: 1px solid rgba(255,255,255,.25); text-align: left !important; font-size: .875rem; }
  .crossword-clues { grid-template-columns: 1fr; }
  .crossword-cell > span { font-size: .75rem; line-height: 1; top: 1px; left: 1px; }
  .crossword-cell input { font-size: 16px; padding-top: 28%; }
  .crossword-grid { max-width: 460px; }
  .floating-radio, .floating-radio.is-collapsed { right: 12px; bottom: max(12px, env(safe-area-inset-bottom)); }
  .floating-radio.is-collapsed { width: 252px; }
  .page-hero-copy { padding-block: 34px; }
  .page-hero-copy h1 { font-size: clamp(52px, 13vw, 76px); }
  .fact-grid, .included-grid { grid-template-columns: 1fr; }
  .event-modal { grid-template-columns: 1fr; }
  .event-modal > figure { min-height: 0; height: 220px; }
  .event-modal-copy { padding: 26px 20px; }
  .footer-bottom { grid-template-columns: 1fr auto; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
  .reveal, .reveal-ready:not(.is-visible), .media-reveal { opacity: 1; transform: none; clip-path: none; }
}

/* GIRI: a clear programme, with the character of a printed edition. */
:root { --reading-width: 62ch; }
button:disabled { cursor: default; }
button, a, summary, input, select, textarea { touch-action: manipulation; }
.micro-label { letter-spacing: .065em; }
.frontpage-edition { padding-block: 11px; }
.edition-label { font: 500 .8125rem/1.5 var(--sans); letter-spacing: .035em; }
.edition-label > span { margin-inline: 7px; opacity: .6; }
.frontpage-story { padding-block: 28px; }
.frontpage-logo { width: clamp(140px, 13vw, 205px); margin-bottom: 16px; }
.frontpage-headline { font-size: clamp(58px, 5.8vw, 92px); line-height: 1; letter-spacing: -.045em; }
.frontpage-story > p { margin-block: 18px; max-width: 40ch; font-size: 1.0625rem; }
.frontpage-actions { gap: 10px 20px; }
.frontpage-next-feature { min-height: 140px; border-top: 1px solid var(--ink); margin-top: 26px; padding-top: 16px; }
.next-feature-kicker { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 8px 16px; font: 500 .875rem/1.4 var(--sans); }
.next-feature-kicker > span { font-weight: 700; }
.next-feature-title { display: flex; align-items: center; justify-content: space-between; gap: 16px; width: 100%; min-height: 52px; padding: 10px 0; border: 0; background: none; color: var(--ink); text-align: left; }
.next-feature-title strong { font: 400 clamp(24px, 2.6vw, 36px)/1.16 var(--serif); letter-spacing: -.025em; overflow-wrap: anywhere; }
.next-feature-title > span[aria-hidden] { font: 400 26px/1 var(--sans); }
.next-feature-title:hover { color: var(--news-blue); }
.next-feature-note { font: .875rem/1.5 var(--sans); margin: 12px 0 0; }
.frontpage-visual { padding: 24px 24px 84px; }
.frontpage-visual img { filter: none; }
.frontpage-about { width: clamp(220px, 22vw, 290px); right: 28px; bottom: 24px; transform: rotate(-1deg); }
.frontpage-about strong { font-size: clamp(24px, 2.25vw, 32px); }
.frontpage-colophon { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px 24px; padding: 10px var(--pad); border-top: 1px solid var(--ink); font: .875rem/1.5 var(--sans); }
.frontpage-colophon a { display: inline-flex; align-items: center; min-height: 44px; text-decoration: underline; text-underline-offset: 4px; }
.section-intro, .crossword-heading { padding-block: 40px 28px; }
.programme-note { max-width: 39ch; }
.programme-note .text-button { display: inline-flex; align-items: center; min-height: 44px; padding-inline: 0; text-decoration: underline; text-underline-offset: 4px; }
.upcoming-event-main { min-width: 0; }
.upcoming-event-main > span { font: 500 .875rem/1.5 var(--sans); }
.upcoming-event-main h3 button { display: block; padding: 4px 0; min-height: 44px; border: 0; background: transparent; color: inherit; font: inherit; letter-spacing: inherit; text-align: left; overflow-wrap: anywhere; }
.upcoming-event-main h3 button:hover { color: var(--news-blue); }
.upcoming-event time span { font-family: var(--sans); font-size: .875rem; }
.upcoming-image { width: 100%; max-width: 112px; height: auto; aspect-ratio: 1; }
.weekly-rsvp { display: inline-flex; align-items: center; min-height: 44px; margin-top: 6px; font: 600 .875rem/1.4 var(--sans); text-decoration: underline; text-underline-offset: 4px; }
.event-facts, .event-modal-copy .event-facts, .programme-detail-copy .event-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 24px; margin: 20px 0; padding: 20px 0; border-block: 1px solid var(--hairline); }
.event-facts > div, .programme-detail-copy .event-facts > div { display: block; min-width: 0; margin: 0; padding: 0; border: 0; }
.event-facts dt { margin: 0 0 5px; font: 500 .8125rem/1.4 var(--sans); letter-spacing: .025em; text-transform: none; color: var(--ink); }
.event-facts dd { margin: 0; font: 400 1rem/1.45 var(--sans); overflow-wrap: anywhere; color: var(--ink); }
.event-facts.is-compact { gap: 10px 24px; margin: 4px 0 0; padding: 0; border: 0; }
.event-facts.is-compact dt { font-size: .8125rem; }
.event-facts.is-compact dd { font-size: .9375rem; }
.event-location { display: inline-flex; align-items: center; min-height: 44px; font: .9375rem/1.5 var(--sans); text-decoration: underline; text-underline-offset: 4px; }
.event-modal-copy .event-description, .programme-detail-description { max-width: var(--reading-width); font: 400 1.0625rem/1.65 var(--serif); }
.event-actions { margin: 24px 0 0; }
.event-secondary-announcement { display: inline-flex; align-items: center; min-height: 44px; font: .875rem/1.5 var(--sans); text-decoration: underline; text-underline-offset: 4px; }
.programme-directory-heading h1 { font-size: clamp(52px, 6.5vw, 94px); letter-spacing: -.045em; }
.programme-directory-controls { align-items: start; }
.programme-directory-count { font-size: .875rem; }
.programme-detail h2 { max-width: 25ch; overflow-wrap: anywhere; }
.programme-detail-image { align-self: start; }
.programme-detail.is-past { opacity: 1; }
.programme-detail.is-past .programme-detail-date { color: #555753; }
.calendar-event { min-height: 48px; font-size: 1rem; line-height: 1.35; }
.calendar-event > span { font-size: .8125rem; }
.calendar-extra { margin-top: 24px; padding-top: 24px; border-top: 2px solid var(--ink); }
.calendar-extra h3 { margin: 0 0 8px; font: 400 1.75rem/1.2 var(--serif); }
.calendar-extra p { margin: 0 0 18px; font: .9375rem/1.5 var(--sans); }
.calendar-extra button { display: grid; grid-template-columns: 130px minmax(0, 1fr) auto 20px; gap: 20px; align-items: center; width: 100%; min-height: 72px; padding: 16px 12px; border: 0; border-top: 1px solid var(--ink); background: transparent; color: var(--ink); text-align: left; }
.calendar-extra button:hover { background: var(--news-pink); }
.calendar-extra strong { font: 400 1.4rem/1.3 var(--serif); }
.calendar-extra time, .calendar-extra button > span { font: .875rem/1.4 var(--sans); }
.hire-at-a-glance { display: grid; gap: 14px; margin: 24px 0; padding: 20px 0; border-block: 1px solid currentColor; }
.hire-at-a-glance > div { display: grid; grid-template-columns: 100px minmax(0, 1fr); gap: 16px; }
.hire-at-a-glance dt { font: 500 .8125rem/1.5 var(--sans); }
.hire-at-a-glance dd { margin: 0; font: 400 1rem/1.5 var(--sans); }
.hire-questions-link { display: inline-flex; align-items: center; min-height: 44px; margin: 8px 0 0 20px; font: .875rem/1.5 var(--sans); text-decoration: underline; text-underline-offset: 4px; }
.hire-questions { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr); gap: 60px; padding: 64px var(--pad); background: var(--paper); border-block: 1px solid var(--ink); }
.hire-questions h2 { margin: 18px 0; font: 400 clamp(40px, 4vw, 64px)/1.05 var(--serif); letter-spacing: -.04em; }
.hire-questions > div > p { max-width: 32ch; font: 1.0625rem/1.6 var(--serif); }
.hire-questions details { border-top: 1px solid var(--ink); }
.hire-questions details:last-child { border-bottom: 1px solid var(--ink); }
.hire-questions summary { padding: 22px 24px 22px 0; font: 400 1.4rem/1.35 var(--serif); cursor: pointer; }
.hire-questions summary::marker { color: var(--news-blue); }
.hire-questions details p { max-width: var(--reading-width); padding: 0 24px 24px; margin: 0; font: 1rem/1.65 var(--sans); }
.visit-practical > p { max-width: 58ch; font: 1rem/1.65 var(--sans); margin: 24px 0 12px; }
.visit-practical > a { display: inline-flex; align-items: center; }
.floating-radio-bar { display: flex; }
.floating-radio-bar .receiver-toggle { width: auto; flex: 1; min-width: 0; }
.floating-radio-bar .receiver-quick-play { flex: 0 0 48px; width: 48px; min-height: 58px; color: var(--ink); font-size: 21px; border-left: 1px solid var(--ink); }
.receiver-toggle small { font-size: .8125rem; }
.floating-radio-controls input[type="range"] { min-height: 28px; }
.floating-radio-links a { display: inline-flex; align-items: center; min-height: 44px; }
.site-shell > footer, .page-shell > footer { padding-bottom: 100px; }
.event-host-note { padding: 22px; margin-top: 24px; background: var(--paper-deep); border-left: 3px solid var(--news-blue); }
.event-host-note blockquote { margin: 12px 0 0; }
.event-host-note blockquote p { margin: 0 0 12px; font: 400 1.125rem/1.6 var(--serif); }
.event-host-note cite { font: 500 .875rem/1.5 var(--sans); }
.event-recording { display: grid; grid-template-columns: 72px minmax(0, 1fr); gap: 16px; margin-top: 24px; padding-top: 24px; border-top: 1px solid var(--ink); }
.event-recording img { width: 72px; height: 72px; object-fit: contain; }
.event-recording h3 { margin: 6px 0 10px; font: 400 1.25rem/1.3 var(--serif); }
.event-recording button, .event-recording a { min-height: 44px; }
.event-recording a { display: inline-flex; align-items: center; margin-left: 16px; font: .875rem/1.5 var(--sans); text-decoration: underline; }
@media (max-width: 1000px) {
  .frontpage-story { padding-inline: 24px; }
  .frontpage-headline { font-size: 66px; }
  .frontpage-visual { padding: 20px 20px 84px; }
  .hire-questions { gap: 32px; }
}
@media (max-width: 700px) {
  .frontpage-edition { flex-wrap: wrap; gap: 4px 14px; }
  .frontpage-edition > span:last-child { display: none; }
  .frontpage-spread { grid-template-columns: minmax(0, 1fr); }
  .frontpage-story { padding: 26px 20px 24px; border-right: 0; }
  .frontpage-logo { width: 136px; margin-bottom: 14px; }
  .frontpage-headline { font-size: clamp(54px, 14vw, 74px); }
  html:lang(de) .frontpage-headline { font-size: clamp(42px, 11vw, 60px); }
  .frontpage-story > p { margin-block: 16px; }
  .frontpage-next-feature { margin-top: 20px; min-height: 144px; }
  .frontpage-visual { padding: 18px 18px 68px; }
  .frontpage-visual figure { min-height: 260px; }
  .frontpage-about { width: 230px; right: 24px; bottom: 16px; padding: 14px 18px; }
  .frontpage-about strong { font-size: 26px; padding-block: 8px; }
  .frontpage-colophon { padding-block: 12px; gap: 0; }
  .programme-note .text-button { letter-spacing: 0; }
  .upcoming-event .event-facts.is-compact { gap: 10px; }
  .event-facts dd { font-size: .9375rem; }
  .event-facts.is-compact dd { font-size: .875rem; }
  .programme-detail-copy .event-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .calendar-extra button { grid-template-columns: 90px minmax(0, 1fr) 20px; gap: 12px; }
  .calendar-extra button > span:not([aria-hidden]) { grid-column: 2; grid-row: 2; }
  .calendar-extra button > span[aria-hidden] { grid-column: 3; grid-row: 1 / 3; }
  .hire-questions { grid-template-columns: minmax(0, 1fr); gap: 24px; padding-block: 40px; }
  .hire-at-a-glance > div { grid-template-columns: 85px minmax(0, 1fr); gap: 12px; }
  .hire-questions-link { margin-left: 0; }
  .visit-essentials { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .floating-radio, .floating-radio.is-collapsed { right: 12px; max-width: calc(100vw - 24px); }
  .floating-radio.is-collapsed { width: 280px; }
  .event-recording { grid-template-columns: 56px minmax(0, 1fr); }
  .event-recording img { width: 56px; height: 56px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

/* GIRI's newspaper identity, with a fast programme and quieter utilities. */
.language-switch { display:flex; border:1px solid var(--ink); flex-shrink:0; }
.language-switch button { min-width:42px; min-height:40px; padding:8px; font:600 14px/1 var(--font-mono, monospace); background:transparent; border:0; color:var(--ink); }
.language-switch button[aria-pressed=true] { background:var(--ink); color:var(--paper); }
.header-tools { gap:14px; }
.upcoming-programme { margin:0 0 44px; border-top:2px solid var(--ink); }
.programme-view-controls { display:flex; justify-content:space-between; align-items:center; padding:16px 0; gap:20px; }
.programme-view-controls>div { display:flex; gap:6px; }
.programme-view-controls button, .admin-tabs button { border:1px solid var(--ink); background:transparent; padding:12px 20px; min-height:44px; font-size:14px; color:var(--ink); }
.programme-view-controls button[aria-pressed=true], .admin-tabs button[aria-pressed=true] { background:var(--ink); color:var(--paper); }
.programme-view-controls a { font-size:14px; text-underline-offset:5px; }
.upcoming-event { display:grid; grid-template-columns:100px 1fr 132px 56px; min-height:150px; border-top:1px solid var(--ink); align-items:center; gap:24px; padding:18px 0; }
.upcoming-event time { display:flex; flex-direction:column; gap:7px; }
.upcoming-event time strong { font-size:64px; line-height:1; font-weight:500; letter-spacing:-.05em; }
.upcoming-event time span { font:14px/1.3 monospace; text-transform:uppercase; }
.upcoming-event-main { background:none; border:0; text-align:left; color:var(--ink); padding:10px 0; }
.upcoming-event-main>span { font:12px/1.4 monospace; text-transform:uppercase; }
.upcoming-event h3 { margin:8px 0; font-size:clamp(24px,2.5vw,38px); line-height:1.1; letter-spacing:-.025em; }
.upcoming-event p { font-size:15px; line-height:1.5; margin:0; }
.upcoming-image { border:0; padding:0; background:var(--grey); width:132px; height:120px; }
.upcoming-image img { width:100%; height:100%; object-fit:cover; }
.event-row-arrow { background:none; border:1px solid var(--ink); width:48px; height:48px; font-size:24px; }
.upcoming-event:hover h3 { color:var(--blue); }
.programme-status, .programme-empty { padding:24px; background:var(--grey); font-size:16px; line-height:1.6; }
.programme-empty .line-button { margin-top:14px; }
.programme-board, #monthly-programme { scroll-margin-top:120px; }
.event-actions { margin:24px 0; border-top:1px solid var(--ink); padding-top:18px; }
.event-actions>div { display:flex; flex-wrap:wrap; gap:10px; align-items:center; }
.event-actions small { display:block; margin:12px 0; font-size:14px; line-height:1.5; }
.event-actions .text-button { min-height:44px; }
.event-actions input { width:100%; font-size:14px; padding:12px; }
.receiver-track-label { display:grid; gap:7px; font:14px/1.4 monospace; margin-bottom:16px; }
.receiver-track-label select { width:100%; min-width:0; padding:10px; background:var(--paper); border:1px solid var(--ink); font-family:inherit; font-size:14px; line-height:1.4; color:var(--ink); }
.floating-radio:not(.is-collapsed) { width:min(480px,calc(100vw - 32px)); }
.floating-radio-body { max-height:calc(85dvh - 80px); overflow-y:auto; }
.receiver-consent { border-top:1px solid var(--ink); padding-top:14px; margin-top:16px; }
.receiver-consent p { font-size:14px; line-height:1.55; margin:0 0 10px; }
.receiver-consent>.line-button, .receiver-consent>.text-button { display:block; min-height:44px; width:100%; margin-top:8px; }
.receiver-consent>.text-button { border:1px solid var(--ink); }
.receiver-consent .text-button { font-size:14px; }
.receiver-privacy.text-button { color:var(--ink); text-decoration:underline; min-height:44px; }
.privacy-dialog { width:min(670px,calc(100vw - 32px)); max-height:90dvh; background:var(--paper); padding:0; border:2px solid var(--ink); color:var(--ink); }
.privacy-dialog::backdrop { background:rgb(0 0 0 / .55); }
.privacy-dialog-inner { position:relative; padding:40px; }
.privacy-dialog h2 { font-size:clamp(34px,6vw,54px); line-height:1.06; letter-spacing:-.035em; margin:20px 0; }
.privacy-dialog p { font-size:16px; line-height:1.6; margin:16px 0; }
.privacy-dialog a { text-decoration:underline; text-underline-offset:3px; }
.consent-actions { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.consent-actions .line-button { background:var(--paper); border:1px solid var(--ink); color:var(--ink); min-height:52px; padding:12px; }
.fine-print, .privacy-dialog .fine-print { font-size:14px; line-height:1.6; }
.footer-legal { display:flex; flex-wrap:wrap; gap:12px 28px; padding:24px 0; border-top:1px solid #ffffff60; }
.footer-legal a, .footer-legal button { background:none; border:0; padding:10px 0; min-height:44px; font-size:14px; color:inherit; text-decoration:underline; text-underline-offset:4px; }
.legal-content { padding:80px var(--pad) 100px; max-width:1040px; margin:auto; }
.legal-content h1 { font-size:clamp(44px,7vw,84px); letter-spacing:-.04em; line-height:1.05; margin:18px 0 42px; overflow-wrap:anywhere; }
.legal-content h2 { font-size:25px; line-height:1.3; margin:36px 0 16px; }
.legal-content p, .legal-content dd { font-size:17px; line-height:1.75; margin:12px 0; }
.legal-meta { color:#59605e; font-size:14px !important; letter-spacing:.02em; }
.legal-content a { text-decoration:underline; text-underline-offset:4px; overflow-wrap:anywhere; }
.legal-draft { background:var(--pink); padding:24px; border:1px solid var(--ink); margin:24px 0 40px; }
.legal-draft p { font-size:16px; }
.legal-details>div { display:grid; grid-template-columns:1fr 2fr; gap:24px; border-top:1px solid var(--grey); padding:20px 0; }
.legal-details dt { font-size:15px; line-height:1.6; }
.legal-details dd { margin:0; white-space:pre-line; }
.preserve-lines { white-space:pre-line; overflow-wrap:anywhere; }
.visit-essentials { padding:64px var(--pad); background:var(--blue); color:white; display:grid; grid-template-columns:1fr 2fr; gap:30px 60px; }
.visit-essentials h2 { font-size:clamp(36px,4.4vw,60px); letter-spacing:-.04em; margin-top:14px; }
.visit-essentials dl>div { padding:20px 0; border-top:1px solid #ffffff80; }
.visit-essentials dt { font-size:18px; font-weight:600; margin-bottom:12px; }
.visit-essentials dd { font-size:16px; line-height:1.6; margin:0; }
.visit-essentials a { min-height:44px; text-decoration:underline; }
fieldset { margin:0; padding:0; border:0; min-width:0; }
.honeypot { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }
.inquiry-reference { display:block; word-break:break-all; padding:20px; margin:24px 0; font-size:16px; background:var(--grey); }
.form-error { border-left:4px solid #a32132; background:#f7dce1; color:#631522; padding:16px; font-size:16px; line-height:1.6; }
.booking-success p { font-size:17px; line-height:1.6; }
.admin-content { padding:64px var(--pad) 100px; }
.admin-heading { display:flex; align-items:end; justify-content:space-between; gap:24px; margin-bottom:36px; }
.admin-heading h1 { font-size:clamp(36px,5vw,66px); letter-spacing:-.04em; line-height:1.1; margin:14px 0 0; }
.admin-tabs { display:flex; flex-wrap:wrap; gap:8px; padding:24px 0; border-top:2px solid var(--ink); }
.admin-notice { padding:16px; border:1px solid var(--ink); background:var(--pink); font-size:16px; }
.editor-layout { display:grid; grid-template-columns:300px minmax(0,1fr); gap:32px; }
.editor-events { display:grid; gap:20px; align-content:start; }
.editor-event-list { max-height:800px; overflow:auto; border-top:1px solid var(--ink); }
.editor-event-list button { display:flex; flex-direction:column; gap:10px; background:transparent; text-align:left; width:100%; padding:18px; border:0; border-bottom:1px solid var(--ink); color:var(--ink); }
.editor-event-list button[aria-pressed=true] { background:var(--pink); }
.editor-event-list time, .editor-event-list small { font-size:14px; }
.editor-event-list strong { font-size:18px; }
.editor-form { padding:28px; border:1px solid var(--ink); }
.editor-form h2,.editor-empty h2,.inquiry-inbox h2 { font-size:32px; line-height:1.15; letter-spacing:-.03em; margin:0 0 16px; }
.editor-form p,.editor-empty p,.inquiry-inbox>p { font-size:16px; line-height:1.65; margin:0 0 24px; }
.editor-form label,.editor-events label,.inquiry-actions label { display:grid; gap:10px; font-size:14px; line-height:1.5; }
.editor-form input,.editor-form select,.editor-form textarea,.editor-events input,.inquiry-actions select { width:100%; min-width:0; border:1px solid var(--ink); padding:12px; background:var(--paper); color:var(--ink); font-family:inherit; font-size:16px; line-height:1.4; }
html:lang(de) .frontpage-headline { font-size:clamp(48px,5.2vw,84px); }
.editor-form textarea { resize:vertical; }
.editor-form small { font-size:13px; }
.editor-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:24px; }
.editor-empty { padding:32px; background:var(--grey); align-self:start; }
.venue-editor { max-width:1000px; }
.editor-form .editor-checkbox { display:flex; gap:16px; align-items:start; margin:30px 0; font-size:16px; }
.editor-checkbox input { width:22px; height:22px; padding:0; flex-shrink:0; }
.inquiry-card { display:grid; grid-template-columns:1fr 180px; gap:30px; padding:30px 0; border-top:1px solid var(--ink); }
.inquiry-card time,.inquiry-card small { font-size:14px; overflow-wrap:anywhere; }
.inquiry-card h3 { font-size:26px; margin:14px 0; }
.inquiry-card p { font-size:16px; line-height:1.6; margin:12px 0; }
.inquiry-card a { text-decoration:underline; overflow-wrap:anywhere; }
.inquiry-actions { display:grid; gap:20px; align-content:start; }
.admin-signin { padding:32px; background:var(--grey); }
.admin-signin .line-button { margin:16px 12px 0 0; }
.route-loading { padding:100px var(--pad); min-height:60vh; }
button:disabled { opacity:.6; cursor:wait; }
@media (max-width:1100px) { .header-tools .open-status { display:none; } .site-header nav { gap:18px; } }
@media (max-width:760px) {
  .header-tools { gap:12px; } .header-tools>.text-button { display:none; }
  .upcoming-event { grid-template-columns:60px minmax(0,1fr) 76px; gap:14px; min-height:130px; padding:16px 0; }
  .upcoming-event time strong { font-size:44px; } .upcoming-event time span { font-size:12px; }
  .upcoming-event h3 { font-size:23px; } .upcoming-event p { font-size:14px; }
  .upcoming-image { width:76px; height:88px; } .event-row-arrow { display:none; }
  .programme-view-controls button { padding:12px 14px; }
  .programme-section .programme-feature { display:none; }
  .programme-board { display:block; }
  .visit-essentials { grid-template-columns:1fr; padding:44px var(--pad); gap:24px; }
  .privacy-dialog-inner { padding:30px 22px; } .consent-actions { grid-template-columns:1fr; }
  .legal-content { padding-top:44px; } .legal-details>div { grid-template-columns:1fr; gap:8px; }
  .editor-layout { grid-template-columns:1fr; } .editor-event-list { max-height:280px; }
  .editor-form { padding:20px; } .editor-form .form-grid { grid-template-columns:1fr; }
  .admin-heading { display:block; } .admin-heading>a { display:inline-block; margin-top:20px; }
  .inquiry-card { grid-template-columns:1fr; } .inquiry-actions { grid-template-columns:1fr 1fr; }
  .floating-radio { bottom:12px; right:12px; } .floating-radio:not(.is-collapsed) { width:calc(100vw - 24px); }
}
@media (max-width:380px) { .upcoming-event { grid-template-columns:48px minmax(0,1fr); } .upcoming-image { display:none; } .language-switch button { min-width:36px; } }

/* Extend the v34 newspaper layout with a weekly front page and a full events desk. */
.home-programme-view { scroll-margin-top: 126px; }
.home-programme-view:focus-visible { outline: 3px solid var(--news-blue); outline-offset: 6px; }
.upcoming-programme { margin: 0; border-top: 0; }
.programme-week-feature { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(270px, 320px); min-height: 148px; align-items: stretch; border-top: 7px solid var(--ink); border-bottom: 1px solid var(--ink); background: var(--paper); }
.programme-week-feature-title { align-self: center; min-width: 0; padding: 20px var(--pad); }
.programme-week-feature-title > span { font: 700 .75rem/1 var(--sans); letter-spacing: .1em; text-transform: uppercase; }
.programme-week-feature-title h2 { margin: 7px 0 0; font: 400 clamp(3.25rem, 5.7vw, 6.5rem)/.78 var(--serif); letter-spacing: -.06em; text-wrap: balance; }
.programme-week-feature > p { align-self: center; margin: 0; padding: 24px; font: 600 .8125rem/1.3 var(--sans); white-space: nowrap; }
.programme-week-feature > a { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 22px; padding: 24px; border-left: 1px solid var(--ink); background: var(--news-pink); transition: background .2s, color .2s; }
.programme-week-feature > a span { font: 700 1rem/1.15 var(--sans); text-transform: uppercase; }
.programme-week-feature > a b { align-self: end; font: 400 2.35rem/1 var(--serif); transition: transform .2s; }
.programme-week-feature > a:hover { background: var(--ink); color: var(--paper); }
.programme-week-feature > a:hover b { transform: translate(3px, -3px); }
.programme-week-feature > a:focus-visible { position: relative; z-index: 1; outline: 4px solid var(--news-blue); outline-offset: -4px; }
.upcoming-list { border-bottom: 1px solid var(--ink); }
.upcoming-list .upcoming-event:first-child { border-top: 0; }
.programme-week-feature + .programme-empty, .programme-week-feature + .programme-status { margin: 0; border-bottom: 1px solid var(--ink); }
.upcoming-event.is-past .upcoming-event-main > span { text-decoration: none; }
.programme-directory { padding: 52px var(--pad) 76px; }
.programme-directory-heading { display: grid; grid-template-columns: 1.1fr .9fr; align-items: end; gap: 40px; padding-bottom: 40px; }
.programme-directory-heading h1 { margin: 18px 0 0; font: 400 clamp(54px, 7.5vw, 110px)/1.02 var(--serif); letter-spacing: -.05em; }
.programme-directory-heading > div:last-child { max-width: 440px; justify-self: end; }
.programme-directory-heading p { margin: 0 0 18px; font: 400 24px/1.35 var(--serif); }
.programme-directory-heading a { font: 400 .875rem/1.5 var(--sans); text-decoration: underline; text-underline-offset: 4px; }
.programme-directory-controls { display: flex; justify-content: space-between; flex-wrap: wrap; align-items: center; gap: 20px 28px; border-top: 3px double var(--ink); border-bottom: 1px solid var(--ink); padding: 20px 0; }
.programme-directory-month { display: flex; align-items: center; gap: 10px; min-width: 0; max-width: 100%; }
.programme-directory-month > button { flex-shrink: 0; width: 44px; height: 44px; padding: 0; border: 1px solid var(--ink); background: var(--paper); font-size: 24px; }
.programme-directory-month label { min-width: 0; }
.programme-directory-month select { max-width: 100%; width: 23ch; min-height: 44px; padding: 8px 30px 8px 10px; border: 0; background: var(--paper); color: var(--ink); font: 400 clamp(20px, 2vw, 28px)/1.2 var(--serif); }
.programme-directory-filters { display: flex; flex-wrap: wrap; gap: 6px; }
.programme-directory-filters button { min-height: 44px; padding: 10px 14px; border: 1px solid var(--ink); background: transparent; font: 700 .875rem/1.4 var(--sans); }
.programme-directory-filters button[aria-pressed="true"] { background: var(--ink); color: var(--paper); }
.programme-directory-filters button:hover { background: var(--news-pink); color: var(--ink); }
.programme-directory-count { margin: 0; padding: 16px 0; font: 400 .875rem/1.5 var(--sans); }
.programme-view-switch { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 22px; }
.programme-view-switch button { min-height: 48px; padding: 13px 22px; border: 1px solid var(--ink); background: var(--paper); color: var(--ink); font: 700 .875rem/1.4 var(--sans); }
.programme-view-switch button[aria-pressed="true"] { background: var(--news-blue); color: var(--paper); }
.programme-view-switch button:hover:not([aria-pressed="true"]) { background: var(--news-pink); }
.programme-directory-summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.programme-directory-summary .calendar-today { flex-shrink: 0; min-height: 44px; font-size: .875rem; }
.programme-monthly-calendar .calendar-loading { min-height: 160px; display: grid; place-items: center; }
.programme-monthly-calendar .calendar-grid { border-bottom: 1px solid var(--ink); }
.programme-monthly-calendar .calendar-event { font-size: .875rem; line-height: 1.35; }
.programme-monthly-calendar .calendar-day { min-height: 165px; }
.programme-detail { display: grid; grid-template-columns: 90px minmax(160px, 250px) minmax(0, 1fr); gap: 32px; padding: 36px 0; border-top: 1px solid var(--ink); scroll-margin-top: 126px; }
.programme-detail:last-child { border-bottom: 1px solid var(--ink); }
.programme-detail:focus { outline: 3px solid var(--news-blue); outline-offset: 8px; }
.programme-detail-date { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; }
.programme-detail-date strong { font: 400 64px/.95 var(--serif); letter-spacing: -.04em; }
.programme-detail-date > span { font: 400 .875rem/1.4 var(--sans); text-transform: uppercase; }
.programme-detail-date > small { padding: 5px 8px; border: 1px solid var(--ink); font: 700 .75rem/1.3 var(--sans); }
.programme-detail-image { margin: 0; align-self: start; aspect-ratio: 1; background: var(--news-grey); }
.programme-detail-image img { width: 100%; height: 100%; object-fit: cover; }
.programme-detail-copy { min-width: 0; }
.programme-detail-copy > .micro-label { font-size: .75rem; }
.programme-detail-copy h2 { margin: 12px 0; font: 400 clamp(32px, 3.4vw, 52px)/1.08 var(--serif); letter-spacing: -.035em; overflow-wrap: anywhere; }
.programme-detail-subtitle { margin: 12px 0 20px; font: italic 400 20px/1.4 var(--serif); }
.programme-detail-copy dl { display: flex; flex-wrap: wrap; gap: 16px 36px; padding: 18px 0; margin: 0 0 20px; border-block: 1px solid var(--ink); }
.programme-detail-copy dl > div { display: grid; gap: 7px; }
.programme-detail-copy dt { font: 700 .75rem/1.4 var(--sans); text-transform: uppercase; }
.programme-detail-copy dd { margin: 0; font: 400 1rem/1.4 var(--sans); }
.programme-detail-description { max-width: 66ch; margin: 0 0 22px; font: 400 1.0625rem/1.6 var(--sans); white-space: pre-line; overflow-wrap: anywhere; }
.programme-announcement { display: inline-flex; align-items: center; gap: 12px; min-height: 44px; padding-block: 10px; font: 700 .875rem/1.4 var(--sans); border-bottom: 1px solid currentColor; }
.programme-detail .event-actions { margin-bottom: 0; }
.programme-detail .event-actions button, .programme-detail .event-actions a { font-size: .875rem; line-height: 1.4; padding-block: 12px; }
.footer-map { display: grid; grid-template-columns: minmax(220px, .7fr) minmax(0, 1.3fr); gap: 44px; padding: 38px 0; border-block: 1px solid rgba(247,247,242,.4); }
.footer-topline + .footer-map { border-top: 0; }
.footer-map + .footer-columns { margin-top: 0; border-top: 0; }
.footer-map-copy { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; }
.footer-map-copy h2 { margin: 20px 0; font: 400 clamp(48px, 5.8vw, 82px)/1 var(--serif); letter-spacing: -.045em; }
.footer-map-copy p { margin: 0 0 26px; font: 400 22px/1.5 var(--serif); }
.footer-map a { font: 700 .875rem/1.5 var(--sans); }
.footer-map-directions { display: inline-flex; align-items: center; gap: 20px; padding: 13px 20px; min-height: 48px; background: var(--news-pink); color: var(--ink); border: 1px solid var(--news-pink); }
.footer-map-directions:hover { background: var(--paper); }
.footer-map-walk { display: inline-block; padding-block: 14px; margin-top: 8px; min-height: 44px; text-decoration: underline; text-underline-offset: 5px; }
.footer-map-panel { min-width: 0; border: 1px solid rgba(247,247,242,.5); }
.footer-map-panel iframe { display: block; width: 100%; height: 380px; border: 0; background: var(--news-grey); }
.footer-map-consent { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; min-height: 380px; padding: 34px; background: #242626; }
.footer-map-consent h3 { margin: 16px 0; font: 400 36px/1.1 var(--serif); letter-spacing: -.03em; }
.footer-map-consent p { max-width: 52ch; margin: 0 0 24px; font: 400 1rem/1.55 var(--sans); }
.footer-map-consent .solid-button { gap: 28px; min-height: 48px; padding: 13px 18px; background: var(--news-pink); color: var(--ink); border: 1px solid var(--news-pink); font: 700 .875rem/1.4 var(--sans); }
.footer-map-consent .solid-button:hover { background: var(--paper); transform: none; }
.footer-map-consent > a { padding-block: 12px; margin-top: 4px; min-height: 44px; text-decoration: underline; text-underline-offset: 4px; }
.footer-map-bar { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; padding: 10px 18px; border-top: 1px solid rgba(247,247,242,.4); }
.footer-map-bar > a, .footer-map-bar button { display: inline-flex; align-items: center; min-height: 44px; padding: 8px 0; }
.footer-map-bar > span { font: 400 .75rem/1.5 var(--sans); }
.footer-map-bar button { border: 0; background: none; color: var(--paper); font: 700 .875rem/1.5 var(--sans); text-decoration: underline; text-underline-offset: 4px; }
.footer-map :focus-visible { outline: 3px solid var(--news-pink); outline-offset: 4px; }
.footer-map .solid-button:focus-visible, .footer-map-directions:focus-visible { outline-color: var(--paper); }
.privacy-service + .privacy-service { border-top: 1px solid var(--ink); margin-top: 30px; padding-top: 14px; }
.privacy-service h3 { font-size: 24px; margin: 20px 0 14px; }
@media (max-width: 1000px) {
  .programme-week-feature { grid-template-columns: minmax(0, 1fr) auto; }
  .programme-week-feature > a { grid-column: 1 / -1; min-height: 78px; border-top: 1px solid var(--ink); border-left: 0; }
  .programme-detail { grid-template-columns: 64px minmax(130px, 190px) minmax(0, 1fr); gap: 24px; }
  .programme-detail-date strong { font-size: 52px; }
  .footer-map { grid-template-columns: minmax(190px, .7fr) minmax(0, 1.3fr); gap: 24px; }
}
@media (max-width: 760px) {
  .programme-week-feature { grid-template-columns: minmax(0, 1fr); }
  .programme-week-feature-title { padding-block: 22px 12px; }
  .programme-week-feature-title h2 { font-size: clamp(3.1rem, 13vw, 5.2rem); }
  .programme-week-feature > p { padding: 0 var(--pad) 22px; }
  .programme-week-feature > a { min-height: 82px; padding-inline: var(--pad); }
  .programme-directory { padding-block: 34px 48px; }
  .programme-directory-heading { grid-template-columns: 1fr; gap: 24px; padding-bottom: 28px; }
  .programme-directory-heading > div:last-child { justify-self: start; }
  .programme-directory-heading p { font-size: 22px; }
  .programme-detail { grid-template-columns: 60px minmax(0, 1fr); gap: 24px 20px; padding-block: 28px; }
  .programme-detail-image { grid-column: 2; max-width: 220px; width: 100%; }
  .programme-detail-copy { grid-column: 1 / -1; }
  .programme-detail-copy h2 { font-size: clamp(30px, 6.5vw, 44px); }
  .footer-map { grid-template-columns: minmax(0, 1fr); gap: 28px; padding-block: 30px; }
  .footer-map-copy p { margin-bottom: 18px; }
}
@media (max-width: 480px) {
  .programme-directory-heading h1 { font-size: 48px; }
  .programme-directory-month { width: 100%; gap: 6px; }
  .programme-directory-month label { flex: 1; }
  .programme-directory-month select { width: 100%; padding-inline: 6px; font-size: 20px; }
  .programme-directory-filters { gap: 6px; }
  .programme-directory-filters button { padding-inline: 10px; }
  .footer-map-consent { padding: 24px; }
  .footer-map-consent h3 { font-size: 32px; }
  .footer-map-panel iframe { height: 350px; }
}

.section-divider { position: relative; z-index: 3; display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(270px, .65fr); min-height: 64px; align-items: center; border-top: 7px double var(--ink); border-bottom: 1px solid var(--ink); background: var(--paper-deep); color: var(--ink); }
.section-divider > span { display: flex; align-items: center; padding: 11px var(--pad); font: 700 .75rem/1.25 var(--sans); letter-spacing: .075em; text-transform: uppercase; }
.section-divider-from { opacity: .75; }
.section-divider-marker { justify-content: center; opacity: .5; }
.section-divider-next { align-self: stretch; gap: 12px; margin-left: 22px; border-left: 1px solid var(--ink); background: var(--news-pink); color: var(--ink); }
.section-divider-next b { font: 400 1.875rem/1 var(--serif); letter-spacing: -.04em; }
.section-divider-next i { margin-left: auto; font: 400 1.1rem/1 var(--sans); font-style: normal; }
.section-divider.is-blue .section-divider-next { background: var(--news-blue); color: var(--paper); }

@media (max-width: 900px) {
  .section-divider { grid-template-columns: minmax(0, 1fr) minmax(250px, .75fr); }
  .section-divider-marker { display: none !important; }
}

@media (max-width: 560px) {
  .section-divider { grid-template-columns: minmax(0, 1fr); min-height: 0; }
  .section-divider-from { display: none !important; }
  .section-divider-next { min-height: 62px; margin-left: 0; padding-inline: 18px !important; border-left: 0; }
}

/* Graphic language adapted from GIRI's 2026 printed menu and window poster. */
:root {
  --designer-pink: #efc1ce;
  --designer-paper-image: url('../images/designer/pink-paper.webp');
}

.brand-logo-stylised {
  aspect-ratio: 1398 / 600;
  background-image: url('../images/designer/orbit-logo-black.png');
}

.venue-strip,
.section-divider:not(.is-blue) .section-divider-next,
.frontpage-about,
.booking-cta,
.included-section {
  background-color: var(--designer-pink);
  background-image: linear-gradient(rgb(239 193 206 / .12), rgb(239 193 206 / .12)), var(--designer-paper-image);
  background-size: auto, 520px 520px;
}

.solid-button,
.line-button {
  box-shadow: 4px 4px 0 var(--news-pink);
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease, color .2s ease;
}

.solid-button:hover,
.line-button:hover {
  transform: translate(-2px, -2px) rotate(-.35deg);
  box-shadow: 7px 7px 0 var(--news-pink);
}

.section-intro h2 em,
.crossword-heading h2 em,
.story-copy h2 em,
.hire-questions h2 em {
  position: relative;
  display: inline-block;
  color: var(--ink);
  font-style: italic;
  isolation: isolate;
}

.section-intro h2 em::after,
.crossword-heading h2 em::after,
.story-copy h2 em::after,
.hire-questions h2 em::after {
  position: absolute;
  z-index: -1;
  content: "";
  inset: 58% -.08em -.03em;
  background: rgb(239 186 202 / .82);
  transform: rotate(-1.5deg);
}

.designer-poster-stamp {
  position: absolute;
  z-index: 3;
  top: clamp(36px, 5vw, 82px);
  left: clamp(18px, 3vw, 54px);
  width: min(43%, 350px);
  padding: 15px 16px 12px;
  border: 1px solid var(--ink);
  background: var(--designer-paper-image) center / cover;
  box-shadow: 8px 8px 0 rgb(23 24 26 / .85);
  transform: rotate(-1.6deg);
}

.designer-poster-stamp img { display: block; width: 100%; mix-blend-mode: multiply; }
.designer-poster-stamp span { display: block; margin-top: 9px; padding-top: 8px; border-top: 1px solid var(--ink); font: 700 .68rem/1.1 var(--sans); letter-spacing: .08em; text-align: center; }

.designer-menu-cover,
.designer-menu-section {
  background-color: var(--designer-pink);
  background-image: var(--designer-paper-image);
  background-size: 720px 720px;
  color: var(--ink);
}

.designer-menu-cover {
  position: relative;
  display: grid;
  grid-template-columns: minmax(300px, .82fr) minmax(430px, 1.18fr);
  min-height: min(760px, calc(100svh - 122px));
  overflow: hidden;
  border-bottom: 1px solid var(--ink);
}

.designer-menu-cover::after {
  position: absolute;
  inset: 0;
  pointer-events: none;
  content: "";
  background: linear-gradient(90deg, transparent 49.94%, rgb(23 24 26 / .11) 50%, transparent 50.08%);
  mix-blend-mode: multiply;
}

.designer-menu-cover-copy { align-self: end; padding: clamp(44px, 7vw, 110px) 5vw 7vh var(--pad); }
.designer-menu-cover-word { display: block; margin-left: 17%; font: 400 clamp(54px, 7.4vw, 112px)/.82 var(--serif); letter-spacing: -.07em; }
.designer-menu-cover-copy figure { width: min(74%, 390px); margin: 18px 0 10px 7%; border: 1px solid rgb(23 24 26 / .35); }
.designer-menu-cover-copy figure img { display: block; width: 100%; mix-blend-mode: multiply; }
.designer-menu-cover-copy > p { margin: 0; font: 400 clamp(17px, 1.45vw, 23px)/1.1 var(--serif); }
.designer-menu-cover-label { display: block; margin: 30px 0 0 22%; font: 400 1.1rem/1 var(--serif); }
.designer-menu-cover-mark { align-self: center; padding: 4vw var(--pad) 10vw 2vw; }
.designer-menu-cover-mark img { display: block; width: 100%; mix-blend-mode: multiply; transform: rotate(.4deg); }
.designer-menu-cover-motto { position: absolute; right: 8vw; bottom: 7vh; margin: 0; font: 400 clamp(18px, 1.65vw, 25px)/1.1 var(--serif); }
.designer-signal { display: grid; grid-template-columns: repeat(6, 13px); gap: 7px 9px; width: max-content; margin: 12px 0 0 7%; transform: skew(-7deg); }
.designer-signal i { width: 13px; height: 3px; background: var(--ink); }
.designer-signal i:nth-child(3n) { width: 5px; }
.designer-signal i:nth-child(4n) { transform: translateY(6px); }

.designer-menu-section { padding: clamp(28px, 4vw, 64px) var(--pad) 72px; border-bottom: 1px solid var(--ink); }
.designer-menu-masthead { display: grid; grid-template-columns: minmax(310px, .82fr) minmax(220px, .55fr) minmax(260px, .75fr); gap: clamp(28px, 5vw, 82px); align-items: end; padding-bottom: 34px; border-bottom: 1px solid var(--ink); }
.designer-menu-title > span { font: 400 .9rem/1 var(--serif); }
.designer-menu-title h1 { position: relative; width: max-content; margin: 5px 0 0; font: 400 clamp(72px, 10vw, 154px)/.7 var(--serif); letter-spacing: -.095em; }
.designer-menu-title h1 i { position: absolute; left: -.08em; top: -.13em; color: transparent; font-size: 1.2em; font-style: normal; -webkit-text-stroke: 1px rgb(23 24 26 / .7); transform: scaleX(.78); transform-origin: left center; }
.designer-menu-masthead blockquote { max-width: 20ch; margin: 0; padding: 10px 12px; background: rgb(216 151 170 / .22); font: 400 1rem/.95 var(--serif); }
.designer-menu-intro { align-self: stretch; display: flex; flex-direction: column; justify-content: space-between; border-left: 1px solid var(--ink); padding-left: 22px; }
.designer-menu-intro span { font: 700 .72rem/1 var(--sans); letter-spacing: .09em; }
.designer-menu-intro p { max-width: 34ch; margin: 26px 0 0; font: 400 1.1rem/1.28 var(--serif); }

.designer-menu-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: clamp(34px, 7vw, 112px); }
.designer-menu-group { padding: 38px 0 8px; }
.designer-menu-group-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 20px; margin-bottom: 13px; }
.designer-menu-group-heading span { order: 2; font: 700 .7rem/1 var(--sans); letter-spacing: .08em; }
.designer-menu-group h2 { margin: 0; font: 400 clamp(34px, 3.25vw, 52px)/.88 var(--serif); letter-spacing: -.055em; }
.designer-menu-list { border-top: 1px solid rgb(23 24 26 / .25); }
.designer-menu-item { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 18px; align-items: start; min-height: 68px; padding: 10px 0 11px; border-bottom: 1px solid rgb(23 24 26 / .22); }
.designer-menu-item h3 { margin: 0; font: 400 clamp(18px, 1.55vw, 24px)/1.05 var(--serif); letter-spacing: -.025em; }
.designer-menu-item p { max-width: 50ch; margin: 4px 0 0; font: 400 .88rem/1.25 var(--serif); opacity: .76; }
.designer-menu-item strong { font: 700 .9rem/1.15 var(--sans); }
.designer-menu-group-fridge,
.designer-menu-group-coffee { align-self: start; }
.designer-menu-footnote { margin: 38px 0 0; padding-top: 13px; border-top: 1px solid var(--ink); font: 400 .88rem/1.4 var(--serif); }

@media (max-width: 900px) {
  .designer-menu-cover { grid-template-columns: .9fr 1.1fr; min-height: 620px; }
  .designer-menu-cover-copy { padding-left: 22px; }
  .designer-menu-masthead { grid-template-columns: 1fr 1fr; }
  .designer-menu-intro { grid-column: 1 / -1; min-height: 120px; border-left: 0; border-top: 1px solid var(--ink); padding: 18px 0 0; }
}

@media (max-width: 700px) {
  .designer-poster-stamp { top: 24px; left: 18px; width: 46%; padding: 9px; box-shadow: 5px 5px 0 rgb(23 24 26 / .82); }
  .designer-poster-stamp span { font-size: .55rem; }
  .designer-menu-cover { display: block; min-height: 680px; }
  .designer-menu-cover::after { display: none; }
  .designer-menu-cover-copy { position: absolute; z-index: 2; left: 0; right: 0; bottom: 0; padding: 0 20px 32px; }
  .designer-menu-cover-word { margin-left: 4%; font-size: 64px; }
  .designer-menu-cover-copy figure { width: 54%; margin-left: 0; }
  .designer-menu-cover-label { margin: 18px 0 0 10%; }
  .designer-menu-cover-mark { padding: 58px 20px 0; }
  .designer-menu-cover-motto { display: none; }
  .designer-menu-masthead { display: block; }
  .designer-menu-masthead blockquote { margin-top: 26px; }
  .designer-menu-intro { margin-top: 24px; }
  .designer-menu-grid { grid-template-columns: 1fr; }
  .designer-menu-group { padding-top: 34px; }
  .designer-menu-item { min-height: 64px; }
}

@media (prefers-reduced-motion: reduce) {
  .solid-button:hover,
  .line-button:hover { transform: none; }
}

:root {
  --giri-admin-bar: 0px;
  --blue: var(--news-blue);
  --grey: var(--news-grey);
  --pink: var(--news-pink);
  --font-mono: var(--mono);
}

html { scroll-padding-top: calc(88px + var(--giri-admin-bar)); }
body.admin-bar { --giri-admin-bar: 32px; }
body { margin: 0; }
body > .site-shell, body > .page-shell { overflow: clip; }
.venue-strip { top: var(--giri-admin-bar); }
.site-header { top: calc(24px + var(--giri-admin-bar)); }
.skip-link { position: fixed; top: 8px; left: 8px; z-index: 100000; padding: 12px 16px; background: #171819; color: #fff; transform: translateY(-160%); }
.skip-link:focus { transform: none; }
.screen-reader-text, .sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.page-content-anchor { scroll-margin-top: 120px; }

.giri-brand-image { display: block; width: 100%; height: 100%; object-fit: contain; }
.brand-logo { background-image: none !important; }
.brand-logo::before { content: ""; display: block; width: 100%; height: 100%; background: url('../images/giri-logo-stylised-crop.png') center/contain no-repeat; }
.frontpage-visual figure img, .page-hero > img, .story-mosaic img, .full-gallery img, .booking-cta img { object-fit: cover; }

.giri-event-image { background: var(--news-grey); }
.giri-event-image img { display: block; width: 100%; height: 100%; object-fit: cover; }
.giri-empty-events { padding: 38px var(--pad); border-bottom: 1px solid var(--ink); font: 400 1.1rem/1.55 var(--sans); }
.event-row-link { color: inherit; text-decoration: none; }
.event-row-link:focus-visible { outline: 4px solid var(--news-blue); outline-offset: -4px; }

.giri-programme-calendar { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); border-top: 1px solid var(--ink); border-left: 1px solid var(--ink); }
.giri-calendar-weekday { min-height: 42px; padding: 11px; border-right: 1px solid var(--ink); border-bottom: 1px solid var(--ink); font: 700 .72rem/1 var(--sans); text-transform: uppercase; }
.giri-calendar-day { min-height: 150px; padding: 10px; border-right: 1px solid var(--ink); border-bottom: 1px solid var(--ink); background: var(--paper); }
.giri-calendar-day.is-outside { color: #777; background: var(--news-grey); }
.giri-calendar-day > time { display: block; margin-bottom: 18px; font: 400 1.55rem/1 var(--serif); }
.giri-calendar-event { display: block; margin: 0 0 7px; padding: 7px 8px; border-left: 4px solid var(--ink); background: #fff; color: inherit; font: 700 .76rem/1.25 var(--sans); text-decoration: none; }
.giri-calendar-event[data-category="music"] { border-color: var(--news-blue); }
.giri-calendar-event[data-category="food"] { border-color: var(--red-pencil); }
.giri-calendar-event[data-category="community"] { border-color: #50675c; }
.giri-programme-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; padding: 18px 0; border-top: 3px double var(--ink); border-bottom: 1px solid var(--ink); }
.giri-month-nav, .giri-view-switch, .giri-filters { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.giri-month-nav a, .giri-view-switch button, .giri-filters button { min-height: 44px; padding: 10px 14px; border: 1px solid var(--ink); background: var(--paper); color: var(--ink); font: 700 .82rem/1.2 var(--sans); text-decoration: none; }
.giri-view-switch button[aria-pressed="true"], .giri-filters button[aria-pressed="true"] { background: var(--news-blue); color: #fff; }
.giri-programme-list[hidden], .giri-programme-calendar[hidden] { display: none; }

.baci-wp { padding: 54px var(--pad) 72px; background: var(--news-grey); }
.baci-wp-intro { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: end; margin-bottom: 44px; }
.baci-wp-intro h2 { margin: 0; font: 400 clamp(54px, 8vw, 116px)/.82 var(--serif); letter-spacing: -.055em; }
.baci-wp-intro h2 em { color: var(--news-blue); }
.baci-wp-intro p { max-width: 46ch; font: 400 clamp(20px, 2.2vw, 31px)/1.25 var(--serif); }
.baci-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 24px 0 36px; }
.baci-actions a { display: grid; grid-template-columns: 40px 1fr auto; gap: 14px; align-items: center; min-height: 84px; padding: 18px; border: 1px solid var(--ink); color: inherit; background: var(--news-pink); text-decoration: none; }
.baci-actions a:nth-child(2) { background: var(--news-blue); color: #fff; }
.baci-actions img { width: 36px; max-height: 30px; }
.baci-actions strong, .baci-actions small { display: block; font-family: var(--sans); }
.baci-list { border-top: 1px solid var(--ink); }
.baci-record { display: grid; grid-template-columns: 95px minmax(0, 1fr) auto; gap: 20px; align-items: center; min-height: 76px; padding: 12px 16px; border-bottom: 1px solid var(--ink); color: inherit; }
.baci-record:hover { background: var(--news-pink); }
.baci-record span:first-child, .baci-record small { font: 700 .7rem/1.25 var(--sans); text-transform: uppercase; }
.baci-record strong { font: 400 clamp(18px, 1.7vw, 27px)/1.15 var(--serif); }
.baci-record-actions { display: flex; gap: 6px; }
.baci-record-actions button, .baci-record-actions a { display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 1px solid var(--ink); background: var(--paper); color: var(--ink); font: 700 1rem/1 var(--sans); text-decoration: none; }
.baci-record-actions button:hover, .baci-record-actions a:hover { background: var(--news-blue); color: #fff; }
.baci-filters { margin-bottom: 16px; }
.baci-record[hidden] { display: none; }

.consent-placeholder { min-height: 320px; display: grid; place-items: center; padding: 40px; text-align: center; background: #232425; color: #fff; }
.consent-placeholder > div { max-width: 560px; }
.consent-placeholder h3 { margin: 0 0 12px; font: 400 clamp(30px, 4vw, 54px)/1.05 var(--serif); }
.consent-placeholder p { font: 400 1rem/1.6 var(--sans); }
.giri-map-frame { width: 100%; min-height: 410px; border: 0; display: block; }
.footer-map { display: block; }
.footer-map .consent-placeholder { width: 100%; }

.giri-dialog { width: min(700px, calc(100vw - 28px)); max-height: 90vh; padding: 0; border: 2px solid var(--ink); background: var(--paper); color: var(--ink); }
.giri-dialog::backdrop { background: rgb(0 0 0 / .62); }
.giri-dialog-inner { position: relative; padding: 38px; }
.giri-dialog-close { position: absolute; top: 12px; right: 12px; width: 44px; height: 44px; border: 1px solid var(--ink); background: var(--paper); color: var(--ink); font-size: 24px; }
.giri-dialog h2 { margin: 14px 0 24px; font: 400 clamp(38px, 6vw, 66px)/1 var(--serif); }
.giri-dialog fieldset { padding: 0; border: 0; }
.giri-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.giri-form-grid label { display: grid; gap: 7px; font: 700 .78rem/1.3 var(--sans); text-transform: uppercase; }
.giri-form-grid .full { grid-column: 1 / -1; }
.giri-form-grid input, .giri-form-grid select, .giri-form-grid textarea { width: 100%; min-height: 46px; padding: 10px; border: 1px solid var(--ink); border-radius: 0; background: #fff; color: var(--ink); font: 400 1rem/1.35 var(--sans); text-transform: none; }
.giri-form-grid textarea { min-height: 130px; resize: vertical; }
.giri-honeypot { position: absolute !important; left: -9999px !important; }
.giri-form-note { font: 400 .84rem/1.55 var(--sans); }
.giri-alert { margin: 18px 0; padding: 15px; border: 2px solid var(--ink); background: #fff; font: 700 .9rem/1.45 var(--sans); }
.giri-alert.success { background: #d9f2df; }

.giri-privacy-services { display: grid; gap: 16px; margin: 22px 0; }
.giri-privacy-service { padding: 18px 0; border-top: 1px solid var(--ink); }
.giri-privacy-service h3 { margin: 0 0 8px; font: 400 28px/1.2 var(--serif); }
.giri-consent-actions { display: flex; flex-wrap: wrap; gap: 8px; }

.legal-content .preserve-lines { white-space: pre-line; }
.entry-content { max-width: 760px; margin: 0 auto; padding: 60px var(--pad); }
.entry-content img { max-width: 100%; height: auto; }
.event-page { display: grid; grid-template-columns: minmax(300px, .9fr) minmax(0, 1.1fr); min-height: 620px; border-bottom: 1px solid var(--ink); }
.event-page-image { min-height: 620px; background: var(--news-grey); border-right: 1px solid var(--ink); }
.event-page-image img { width: 100%; height: 100%; object-fit: cover; }
.event-page-copy { padding: clamp(38px, 6vw, 92px) var(--pad); }
.event-page-copy h1 { max-width: 18ch; margin: 18px 0; font: 400 clamp(48px, 7vw, 104px)/.93 var(--serif); letter-spacing: -.055em; overflow-wrap: anywhere; }
.event-page-date, .event-page-copy .event-subtitle { font: 400 1.2rem/1.5 var(--serif); }
.event-page-copy .event-description { max-width: 65ch; font: 400 1.05rem/1.65 var(--sans); }
.giri-word-grid { display: grid; gap: 12px; width: min(100%, 620px); margin: 28px auto 0; }
.giri-word-grid label { display: grid; grid-template-columns: 28px minmax(180px, 1fr) minmax(120px, .65fr); gap: 12px; align-items: center; padding-bottom: 10px; border-bottom: 1px solid var(--ink); font: 700 .84rem/1.4 var(--sans); }
.giri-word-grid input { min-height: 48px; padding: 8px 12px; border: 1px solid var(--ink); background: var(--paper); font: 700 1.2rem/1 var(--sans); letter-spacing: .12em; text-transform: uppercase; }
.giri-puzzle-status { min-height: 24px; margin: 0; font: 700 .84rem/1.4 var(--sans); }
.giri-route-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.giri-route-steps article { min-height: 260px; padding: clamp(28px, 4vw, 58px) var(--pad); border-right: 1px solid var(--ink); }
.giri-route-steps article:last-child { border-right: 0; }
.giri-route-steps span { font: 700 .72rem/1.3 var(--sans); letter-spacing: .08em; }
.giri-route-steps h3 { margin: 40px 0 14px; font: 400 clamp(26px, 3vw, 44px)/1 var(--serif); }
.giri-route-steps p { max-width: 34ch; font: 400 1rem/1.55 var(--sans); }
.giri-route-actions { display: flex; flex-wrap: wrap; gap: 12px; padding: 24px var(--pad); border-top: 1px solid var(--ink); }
.giri-booking-form { min-height: 720px; }
.giri-booking-form .booking-content { padding-block: 48px; }
.giri-booking-form .booking-content h2 { margin-bottom: 18px; }
.giri-booking-form form { margin-top: 26px; }

@media (max-width: 782px) {
  body.admin-bar { --giri-admin-bar: 46px; }
  .giri-programme-calendar { grid-template-columns: 1fr; }
  .giri-calendar-weekday { display: none; }
  .giri-calendar-day { min-height: auto; }
  .giri-calendar-day:empty, .giri-calendar-day.is-outside { display: none; }
  .baci-wp-intro { grid-template-columns: 1fr; }
  .baci-actions { grid-template-columns: 1fr; }
  .baci-record { grid-template-columns: 68px minmax(0, 1fr) 28px; gap: 12px; }
  .baci-record small { display: none; }
  .baci-record-actions { grid-column: 1 / -1; justify-content: end; }
  .giri-form-grid { grid-template-columns: 1fr; }
  .event-page { grid-template-columns: 1fr; }
  .event-page-image { min-height: 360px; max-height: 520px; border-right: 0; border-bottom: 1px solid var(--ink); }
  .giri-word-grid label { grid-template-columns: 28px 1fr; }
  .giri-word-grid input { grid-column: 1 / -1; }
  .giri-route-steps { grid-template-columns: 1fr; }
  .giri-route-steps article { min-height: 0; border-right: 0; border-bottom: 1px solid var(--ink); }
}

@media (max-width: 480px) {
  .giri-dialog-inner { padding: 28px 18px 22px; }
  .baci-wp { padding-inline: var(--pad); }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

/* GIRI / Final designer edition — 3.1.0. All fonts and art are served locally. */
@font-face{font-family:'Hedvig Letters';src:url('../fonts/hedvig-letters.woff') format('woff');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:'Overused Grotesk';src:url('../fonts/overused-grotesk.woff2') format('woff2');font-style:normal;font-weight:300 900;font-display:swap}
@font-face{font-family:'Workbench';src:url('../fonts/workbench.woff') format('woff');font-style:normal;font-weight:400;font-display:swap}
:root{--serif:'Hedvig Letters',Georgia,serif;--sans:'Overused Grotesk',Arial,sans-serif;--mono:'Workbench',monospace;--ink:#22221f;--paper:#f5f3ec;--paper-deep:#edeae2;--news-grey:#e9e8df;--news-pink:#e7b5c7;--designer-pink:#e7b5c7;--news-blue:#254a99;--pad:clamp(22px,5vw,80px);--designer-paper-image:url('../images/final/PinkBackground.webp');--hairline:rgba(34,34,31,.23)}
html{scroll-padding-top:100px}body{font-family:var(--sans);background:var(--paper);-webkit-font-smoothing:antialiased}body::before{display:none}*{box-sizing:border-box}[hidden]{display:none!important}img{max-width:100%}a,button,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--news-blue);outline-offset:5px}button,a,summary{touch-action:manipulation}button{font-family:var(--sans)}
h1,h2,h3{font-family:var(--serif);font-weight:400}h1 em,h2 em{font-style:normal}figure{margin:0}a{text-decoration:none}::selection{background:#dfadc0;color:var(--ink)}
.edition-eyebrow,.micro-label{display:block;font:600 11px/1.5 var(--sans);letter-spacing:.13em;text-transform:uppercase}.edition-eyebrow{margin:0 0 22px}.site-shell,.page-shell{max-width:1680px;margin-inline:auto}.solid-button,.line-button{display:inline-flex;justify-content:space-between;align-items:center;gap:24px;min-height:50px;padding:14px 21px;border:1px solid var(--ink);font:600 14px/1.25 var(--sans);text-transform:none;letter-spacing:0;box-shadow:none;border-radius:0;transition:background .18s,color .18s,transform .18s}.solid-button{background:var(--ink);color:var(--paper)}.line-button{background:transparent;color:inherit}.solid-button:hover,.line-button:hover{transform:translateY(-2px);box-shadow:none;background:var(--news-blue);color:white}.solid-button span,.line-button span{font-size:22px}.quiet-link{display:inline-flex;align-items:center;gap:24px;min-height:48px;border-bottom:1px solid var(--ink);font:500 14px var(--sans)}
/* One legible navigation, without a second information strip. */
.site-header{top:var(--giri-admin-bar);min-height:84px;padding-inline:var(--pad);grid-template-columns:auto 1fr auto;gap:32px;background:var(--paper);border-bottom:1px solid var(--hairline)}.header-spacer{height:84px}.wordmark{gap:18px}.final-header-logo{display:block;width:106px;height:auto}.wordmark small{display:none}.site-header nav{gap:clamp(12px,1.75vw,28px)}.site-header nav a{font:500 13px/1.2 var(--sans);letter-spacing:0;text-transform:none}.site-header nav a::after{height:1px;bottom:15px}.open-status{font:400 11px/1.3 var(--sans);letter-spacing:.01em;text-transform:none}.scroll-progress{height:1px;background:var(--ink)}.header-tools .text-button{display:none}.header-logo{width:106px}
.section-divider{display:block;min-height:0;height:0;z-index:auto;border:0;border-top:1px solid var(--ink);background:transparent}.section-divider>*{display:none}.section-intro h2 em::after,.crossword-heading h2 em::after,.story-copy h2 em::after,.hire-questions h2 em::after{display:none}
/* The opening: a single editorial spread and an uninterrupted photograph. */
.giri-opening{display:grid;grid-template-columns:1fr 1.08fr;min-height:700px}.giri-opening-copy{display:flex;flex-direction:column;align-items:flex-start;padding:40px var(--pad) 32px}.giri-opening-copy>.edition-eyebrow{font-size:10px;margin:0 0 40px}.giri-opening-logo{width:clamp(180px,20vw,285px);height:auto;margin:0 0 28px}.giri-opening h1{font:400 clamp(65px,6.8vw,109px)/.99 var(--serif);letter-spacing:-.055em;margin:0 0 25px}.giri-opening-description{font:400 16px/1.6 var(--sans);max-width:37ch;margin:0 0 27px}.giri-opening-actions{display:flex;align-items:center;flex-wrap:wrap;gap:16px 26px}.giri-opening-footnote{margin-top:auto;padding-top:45px;font:400 12px/1.5 var(--serif)}.giri-opening-photo{position:relative;min-width:0;overflow:hidden;background:#2c2119}.giri-opening-photo>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:49% center}.giri-opening-photo figcaption{position:absolute;inset:auto 0 0;display:flex;justify-content:space-between;align-items:end;gap:25px;padding:60px 32px 28px;color:white;background:linear-gradient(transparent,rgba(0,0,0,.65));font:500 10px/1.5 var(--sans);letter-spacing:.11em}.giri-opening-photo figcaption a{color:inherit;font-size:13px;letter-spacing:0;white-space:nowrap}.giri-opening-colophon{display:flex;justify-content:space-between;gap:15px;align-items:center;min-height:55px;padding:12px var(--pad);border-top:1px solid var(--ink);font:400 11px/1.4 var(--mono)}.giri-opening-colophon a{font:400 12px var(--sans)}.giri-opening-colophon a span{margin-left:28px}
/* Week at a glance. */
.programme-section{background:var(--paper);padding:66px var(--pad) 74px}.upcoming-programme{padding:0}.weekly-heading{display:flex;justify-content:space-between;align-items:end;gap:30px;margin:0 0 36px}.weekly-heading .edition-eyebrow{margin-bottom:18px}.weekly-heading h2{margin:0;font:400 clamp(36px,4vw,62px)/1.12 var(--serif);letter-spacing:-.045em}.weekly-heading-actions{flex-shrink:0;display:flex;flex-direction:column;align-items:flex-end;gap:14px}.weekly-heading-actions p{margin:0;font:400 12px var(--mono)}.weekly-heading-actions .solid-button{background:var(--news-pink);color:var(--ink)}.weekly-heading-actions .solid-button:hover{background:var(--ink);color:var(--paper)}.upcoming-event{grid-template-columns:80px minmax(0,1fr) 96px 44px;gap:26px;min-height:147px;padding:22px 0;border-top:1px solid var(--hairline)}.upcoming-event:last-child{border-bottom:1px solid var(--hairline)}.upcoming-event time{gap:8px}.upcoming-event time strong{font:400 44px/1 var(--mono);letter-spacing:-.06em}.upcoming-event time span{font:500 10px/1.5 var(--sans);letter-spacing:.07em}.upcoming-event-main{padding:0}.upcoming-event-main>span{font:500 10px/1.5 var(--sans);letter-spacing:.11em}.upcoming-event-main h3{margin:8px 0 10px;font:400 clamp(23px,2.4vw,36px)/1.15 var(--serif);letter-spacing:-.025em}.weekly-event-meta{font:400 13px/1.5 var(--sans)!important;color:#5c5c54}.weekly-event-meta span{padding:0 5px}.upcoming-image{width:96px;max-width:none;height:96px}.event-row-arrow{display:grid;place-items:center;width:44px;height:44px;border:0;background:transparent;font:400 28px var(--sans)}.event-row-arrow:hover{background:var(--news-pink)}.giri-event-poster{width:100%;height:100%;min-height:96px;display:flex;flex-direction:column;justify-content:space-between;gap:10px;padding:12px;background:var(--news-pink);overflow:hidden}.giri-event-poster.is-food{background:#e5e5bf}.giri-event-poster.is-community{background:#cdd6dd}.giri-event-poster>span{font:400 9px/1.1 var(--mono);text-transform:uppercase}.giri-event-poster img{position:static!important;width:100%!important;height:auto!important;object-fit:contain!important;mix-blend-mode:multiply}.giri-event-poster>span:last-child{align-self:flex-end}
/* The listening shelf. Square artwork never overlaps its section. */
.baci-wp{padding:72px var(--pad) 46px;background:var(--paper-deep)}.baci-edition-heading{display:grid;grid-template-columns:1.25fr .75fr;gap:60px;align-items:end;margin-bottom:44px}.baci-edition-heading h2{font:400 clamp(36px,4.2vw,66px)/1.08 var(--serif);letter-spacing:-.04em;margin:0}.baci-edition-heading h2 span{color:#60665a}.baci-edition-description>p{font:400 15px/1.6 var(--sans);margin:0 0 24px}.baci-platforms{display:flex;gap:10px;flex-wrap:wrap}.baci-platforms a{display:inline-flex;align-items:center;justify-content:space-between;gap:22px;background:var(--news-pink);padding:13px 18px;min-height:48px;border:1px solid var(--ink);font:600 13px var(--sans)}.baci-platforms a:last-child{background:var(--ink);color:white}.baci-platforms a:hover{background:var(--news-blue);color:white}.baci-sleeves{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}.baci-sleeve{display:flex;flex-direction:column;min-width:0}.baci-sleeve-cover{position:relative;display:block;aspect-ratio:1;overflow:hidden;background:#d6d2c8}.baci-sleeve-cover img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .35s}.baci-sleeve-cover:hover img{transform:scale(1.035)}.baci-sleeve-cover>span{position:absolute;bottom:12px;right:12px;display:grid;place-items:center;width:38px;height:38px;background:var(--paper);color:var(--ink);font-size:22px}.baci-sleeve-meta{display:flex;justify-content:space-between;gap:10px;padding-top:18px;font:400 9px/1.4 var(--mono)}.baci-sleeve h3{font:400 clamp(22px,2vw,29px)/1.18 var(--serif);letter-spacing:-.025em;margin:13px 0 10px}.baci-sleeve>p{font:400 12px/1.6 var(--sans);margin:0 0 18px;color:#595b52}.baci-listen{margin-top:auto;display:flex;align-items:center;justify-content:space-between;width:100%;min-height:45px;border:0;border-top:1px solid var(--hairline);border-bottom:0;padding:12px 0;background:none;color:var(--ink);font:600 13px var(--sans);text-align:left}.baci-listen:hover{color:var(--news-blue)}.baci-full-archive{margin-top:44px;border-top:1px solid var(--ink)}.baci-full-archive>summary{display:flex;justify-content:space-between;align-items:center;gap:22px;min-height:76px;list-style:none;cursor:pointer;font:500 13px var(--sans)}.baci-full-archive>summary>span:first-child{font:400 23px var(--serif)}.details-plus{display:inline-block;margin-left:24px;font:400 24px var(--sans);transition:transform .2s}details[open]>summary .details-plus{transform:rotate(45deg)}summary::-webkit-details-marker{display:none}.baci-full-archive .baci-list{margin-bottom:16px}.baci-record{grid-template-columns:65px minmax(0,1fr) auto;padding:17px 0}.baci-record strong{font-size:20px}.baci-record small{display:block;margin-top:6px;font:400 11px var(--sans);text-transform:none}.baci-record-actions a,.baci-record-actions button{border-color:var(--hairline);background:transparent}
/* Occasional illustration, generous space. */
.giri-invitation{display:grid;grid-template-columns:.7fr 1.35fr .4fr;align-items:center;gap:60px;min-height:430px;padding:55px var(--pad);border-top:1px solid var(--ink);background:var(--designer-pink) var(--designer-paper-image) center/cover}.giri-invitation>img{justify-self:center;height:270px;width:auto;mix-blend-mode:multiply}.giri-invitation h2{font:400 clamp(40px,4.5vw,70px)/1.05 var(--serif);letter-spacing:-.045em;margin:0 0 22px}.giri-invitation p{font:400 15px/1.6 var(--sans);margin:0 0 25px}.invitation-signoff{align-self:end;justify-self:end;font:400 27px/1.1 var(--serif);transform:rotate(-7deg);padding-bottom:15px}.back-page-wrap{padding:0 var(--pad);background:var(--paper);border-top:1px solid var(--ink)}.giri-back-page>summary{display:grid;grid-template-columns:1fr 1.5fr auto;align-items:center;gap:20px;min-height:76px;list-style:none;cursor:pointer;font:400 13px var(--sans)}.giri-back-page .edition-eyebrow{margin:0}.back-page-content{display:grid;grid-template-columns:.6fr 1.4fr;align-items:center;gap:70px;padding:20px 0 55px}.back-page-content>img{width:240px;justify-self:center;mix-blend-mode:multiply}.back-page-content h2{font:400 34px var(--serif)}.giri-word-grid{width:100%;margin-inline:0}.giri-word-grid label{font-family:var(--sans)}
/* An actual menu, with the designer's exact masthead. */
.menu-page{background:var(--news-pink) var(--designer-paper-image) center/1000px}.final-menu-cover{display:grid;grid-template-columns:1.35fr .65fr;gap:70px;align-items:center;padding:60px var(--pad) 48px;min-height:405px}.final-menu-cover h1{margin:32px 0 28px}.final-menu-cover h1 img{display:block;width:min(100%,510px);height:auto}.final-menu-cover p{font:400 25px/1.25 var(--serif);letter-spacing:-.02em;margin:0 0 25px}.menu-edition-note{font:400 11px/1.5 var(--sans)}.menu-cover-illustration{height:280px;width:auto;max-width:100%;justify-self:center;mix-blend-mode:multiply}.menu-category-nav{display:flex;flex-wrap:wrap;gap:8px 35px;align-items:center;padding:12px var(--pad);border-block:1px solid var(--ink);background:rgba(245,243,236,.15)}.menu-category-nav a{display:flex;align-items:center;min-height:42px;font:500 13px var(--sans)}.menu-category-nav a:hover{text-decoration:underline;text-underline-offset:5px}.designer-menu-section{padding:20px var(--pad) 55px;background:transparent}.designer-menu-grid{column-gap:90px;row-gap:10px}.designer-menu-group{padding-top:36px}.designer-menu-group h2{font-size:38px;line-height:1.1;letter-spacing:-.035em;scroll-margin-top:120px}.designer-menu-group-heading{align-items:center;margin-bottom:20px}.designer-menu-group-heading>span{font:400 13px var(--mono)}.designer-menu-item{min-height:66px;padding:14px 0;gap:20px}.designer-menu-item h3{font:500 17px/1.25 var(--sans);letter-spacing:0}.designer-menu-item p{font:400 12px/1.5 var(--sans);opacity:1;color:#51444a;margin-top:5px}.designer-menu-item strong{font:500 15px/1.4 var(--sans);font-variant-numeric:tabular-nums}.menu-signoff{display:flex;justify-content:center;align-items:center;gap:50px;padding-top:55px}.menu-signoff img{width:220px;height:auto;mix-blend-mode:multiply}.menu-signoff p{font:400 26px/1.2 var(--serif)}.menu-signoff p span{font:400 13px/2 var(--sans)}.designer-menu-footnote{font:400 12px/1.6 var(--sans)}
/* Secondary pages share the same typographic rhythm. */
.page-hero-copy h1,.programme-directory-heading h1{font-weight:400;letter-spacing:-.045em;line-height:1.05}.page-hero-copy em{color:inherit}.page-hero-copy>p,.story-copy>p,.included-card p,.fact-card p,.formats-intro>p,.formats-list article p{font-family:var(--sans);font-size:16px;line-height:1.6}.page-hero>img{filter:none}.story-copy h2,.facts-section h2,.included-section h2,.formats-intro h2,.booking-content h2,.hire-questions h2{font-weight:400;line-height:1.08;letter-spacing:-.035em}.booking-illustration{float:right;width:75px!important;height:auto!important;mix-blend-mode:multiply;margin:0 0 15px 20px}.programme-directory{padding:55px var(--pad)}.programme-directory-heading{padding-block:0 40px}.programme-directory-heading h1{margin-top:20px}.giri-month-nav strong{font:400 22px var(--serif);padding:0 15px}.giri-month-nav a,.giri-view-switch button,.giri-filters button{font-family:var(--sans);font-size:12px}.giri-calendar-weekday{font-family:var(--sans);font-weight:500}.giri-calendar-event{font:500 12px/1.4 var(--sans);background:var(--paper-deep)}.giri-calendar-event[data-event-category="music"]{border-color:var(--news-blue)}.giri-calendar-event[data-event-category="food"]{border-color:#99835d}.programme-detail-image .giri-event-poster{min-height:260px;padding:25px}.programme-detail-image .giri-event-poster span{font-size:17px}
/* Exterior print gives the consent-off state its own composition. */
footer{max-width:1680px;margin-inline:auto;background:#242521;color:#f5f3ec;padding:38px var(--pad) 28px}footer a,footer button{color:inherit}.footer-topline{font:500 10px/1.5 var(--sans);letter-spacing:.11em;border-bottom:1px solid #77786f;padding-bottom:18px}.footer-map{margin-top:0;padding:0;border:0}.consent-placeholder{display:grid;grid-template-columns:.95fr 1.05fr;gap:65px;align-items:center;min-height:0;padding:50px 0;background:transparent;text-align:left}.consent-placeholder>div{max-width:470px}.giri-address-print{max-width:500px}.giri-address-print img{display:block;width:100%;height:auto}.giri-address-print figcaption{font:400 10px/1.5 var(--mono);margin-top:14px;color:#d5d5ca}.consent-placeholder h3{font:400 clamp(35px,3.8vw,58px)/1.1 var(--serif);letter-spacing:-.035em;margin-bottom:22px}.consent-placeholder p{font:400 15px/1.6 var(--sans);color:#e0e0d8}.consent-placeholder .map-privacy-note{font-size:11px;color:#b9b9b0;max-width:51ch;margin:18px 0 24px}.consent-actions{display:flex;gap:10px;flex-wrap:wrap}.consent-actions .line-button{border-color:#aaa99e;font-size:12px;min-height:46px;padding:12px 17px}.consent-actions .line-button:first-child{background:var(--news-pink);border-color:var(--news-pink);color:var(--ink)}.footer-columns{border-block:1px solid #77786f;grid-template-columns:1fr 1fr 1fr}.footer-columns>div{padding:25px 28px;min-height:0;border-color:#77786f}.footer-columns>div:first-child{padding-left:0}.footer-columns>div p{font:400 20px/1.5 var(--serif)}.footer-columns>div a{font:400 12px/1.6 var(--sans);display:inline-flex;align-items:center;min-height:35px}.footer-legal{display:flex;gap:22px;flex-wrap:wrap;padding:20px 0}.footer-legal a,.footer-legal button{font:400 12px/1.5 var(--sans);padding-block:10px}.footer-bottom{font:400 10px/1.5 var(--sans);padding-top:18px;border-color:#77786f}.giri-map-frame{margin-block:30px}.floating-radio{font-family:var(--sans);box-shadow:0 8px 32px #0002}.floating-radio-bar button{font-family:var(--sans)}
@media(min-width:1680px){.site-header{padding-inline:max(var(--pad),calc((100vw - 1520px)/2))}}
@media(max-width:1100px){.site-header{gap:20px}.open-status{display:none}.giri-opening{min-height:650px}.giri-opening-copy{padding-inline:36px}.giri-opening-copy>.edition-eyebrow{font-size:9px}.giri-opening h1{font-size:78px}.giri-opening-actions{gap:12px 20px}.giri-opening-actions .solid-button{font-size:12px;padding:14px 16px}.weekly-heading{align-items:start}.weekly-heading h2{max-width:11ch}.baci-edition-heading{gap:35px}.baci-sleeves{gap:22px}.giri-invitation{gap:35px}.invitation-signoff{font-size:23px}.designer-menu-grid{column-gap:48px}.consent-placeholder{gap:40px}}
@media(max-width:800px){.site-header{min-height:74px;grid-template-columns:1fr auto;padding-inline:22px}.header-spacer{height:74px}.final-header-logo{width:94px}.header-tools{display:flex}.menu-button{display:block;border:0}.site-header nav{display:none;position:absolute;top:100%;left:0;right:0;padding:15px 22px 25px;background:var(--paper);border-bottom:1px solid var(--ink);grid-template-columns:1fr 1fr;gap:0 20px}.site-header nav.is-open{display:grid}.site-header nav a{min-height:48px;font-size:16px}.giri-opening{grid-template-columns:1fr 1fr;min-height:625px}.giri-opening-copy{padding-inline:25px}.giri-opening h1{font-size:65px}.giri-opening-logo{width:200px}.giri-opening-description{font-size:14px}.giri-opening-footnote{font-size:10px}.giri-opening-photo figcaption{padding:40px 18px 20px;flex-direction:column;align-items:start;gap:10px}.weekly-heading h2{font-size:44px}.programme-section{padding-block:48px}.upcoming-event{grid-template-columns:55px minmax(0,1fr) 76px 28px;gap:17px}.upcoming-image{width:76px;height:88px}.giri-event-poster{min-height:88px;padding:9px}.upcoming-event-main h3{font-size:27px}.baci-edition-heading{grid-template-columns:1fr;gap:25px;margin-bottom:32px}.baci-edition-description{display:flex;justify-content:space-between;align-items:center;gap:22px}.baci-edition-description>p{margin:0;font-size:13px}.baci-sleeve h3{font-size:23px}.baci-sleeve-meta{font-size:8px;flex-wrap:wrap}.giri-invitation{grid-template-columns:.6fr 1.4fr;gap:28px}.giri-invitation>img{height:230px}.invitation-signoff{display:none}.consent-placeholder{grid-template-columns:1fr 1fr;gap:30px}.footer-columns>div{padding:20px 16px}.footer-columns>div p{font-size:18px}.final-menu-cover{gap:35px;min-height:370px}.menu-cover-illustration{height:235px}.final-menu-cover h1 img{width:100%}.designer-menu-group h2{font-size:31px}.baci-record-actions{grid-column:auto}.baci-record{grid-template-columns:50px minmax(0,1fr) auto}}
@media(max-width:600px){:root{--pad:22px}.giri-opening{display:flex;flex-direction:column;min-height:0}.giri-opening-copy{padding:28px 22px 30px}.giri-opening-copy>.edition-eyebrow{margin-bottom:26px;font-size:9px}.giri-opening-logo{width:180px;margin-bottom:24px}.giri-opening h1{font-size:68px;line-height:.98;margin-bottom:20px}.giri-opening-description{font-size:15px;margin-bottom:23px}.giri-opening-actions{gap:20px}.giri-opening-actions .solid-button{font-size:13px}.giri-opening-footnote{display:none}.giri-opening-photo{height:360px}.giri-opening-photo>img{object-position:center 40%}.giri-opening-photo figcaption{flex-direction:row;align-items:end;gap:15px;padding:50px 22px 20px}.giri-opening-photo figcaption>span{max-width:20ch;font-size:9px}.giri-opening-colophon{min-height:52px;font-size:9px;gap:10px}.giri-opening-colophon a{font-size:10px}.giri-opening-colophon a span{margin-left:8px}.weekly-heading{display:block;margin-bottom:28px}.weekly-heading .edition-eyebrow{margin-bottom:15px}.weekly-heading h2{font-size:40px;max-width:none;letter-spacing:-.04em}.weekly-heading-actions{align-items:stretch;gap:18px;margin-top:20px}.weekly-heading-actions p{font-size:11px}.weekly-heading-actions .solid-button{min-height:50px;width:100%}.upcoming-event{grid-template-columns:42px minmax(0,1fr) 60px;gap:15px;padding:24px 0;min-height:125px}.upcoming-event time strong{font-size:33px}.upcoming-event time span{font-size:9px}.upcoming-event-main>span{font-size:9px}.upcoming-event-main h3{font-size:23px;line-height:1.15;margin:7px 0 9px;overflow-wrap:anywhere}.weekly-event-meta{font-size:11px!important}.upcoming-image{width:60px;height:74px;max-width:60px}.event-row-arrow{display:none}.giri-event-poster{min-height:74px;padding:8px;gap:4px}.giri-event-poster>span{font-size:7px}.baci-wp{padding-block:50px 20px}.baci-edition-heading h2{font-size:39px;line-height:1.1}.baci-edition-description{display:block}.baci-edition-description>p{margin-bottom:22px;font-size:14px}.baci-platforms{display:grid;grid-template-columns:1fr 1fr}.baci-platforms a{padding:12px 14px;font-size:12px;gap:8px}.baci-sleeves{grid-template-columns:1fr;gap:38px}.baci-sleeve-meta{font-size:9px;flex-wrap:nowrap}.baci-sleeve h3{font-size:29px}.baci-sleeve>p{font-size:13px}.baci-full-archive{margin-top:32px}.baci-full-archive>summary{align-items:start;flex-direction:column;justify-content:center;gap:9px;padding-block:22px;font-size:12px}.baci-full-archive>summary>span:last-child{display:flex;justify-content:space-between;align-items:center;width:100%}.baci-record{grid-template-columns:40px minmax(0,1fr);gap:10px}.baci-record-actions{grid-column:2;justify-content:start}.baci-record strong{font-size:19px}.baci-record small{display:block;line-height:1.5}.giri-invitation{position:relative;display:block;padding:45px 22px}.giri-invitation>img{position:absolute;right:20px;top:60px;height:140px;width:auto;opacity:.65}.giri-invitation>div{position:relative;z-index:1}.giri-invitation h2{font-size:45px;max-width:8ch}.giri-invitation p{font-size:14px;margin-top:28px}.giri-invitation .edition-eyebrow{max-width:21ch;font-size:9px}.giri-back-page>summary{grid-template-columns:1fr auto;padding-block:18px;gap:8px;font-size:12px}.giri-back-page>summary>.edition-eyebrow{grid-column:1;font-size:9px}.giri-back-page>summary>span:nth-child(2){grid-column:1}.giri-back-page>summary>.details-plus{grid-column:2;grid-row:1/3;margin:0}.back-page-content{display:block;padding-bottom:25px}.back-page-content>img{display:none}.back-page-content h2{font-size:29px}.final-menu-cover{grid-template-columns:1fr 110px;gap:18px;padding:34px 22px;min-height:0}.final-menu-cover .edition-eyebrow{font-size:9px;margin-bottom:18px}.final-menu-cover h1{margin:0 0 20px}.final-menu-cover p{font-size:19px;line-height:1.25;margin-bottom:16px}.menu-edition-note{font-size:10px;display:block;max-width:24ch}.menu-cover-illustration{width:110px;height:auto}.menu-category-nav{gap:0 20px;padding-block:10px}.menu-category-nav a{font-size:12px}.designer-menu-grid{grid-template-columns:1fr}.designer-menu-group h2{font-size:34px}.designer-menu-section{padding-top:0}.designer-menu-item{min-height:66px}.designer-menu-item h3{font-size:16px}.designer-menu-item p{font-size:12px;line-height:1.5}.menu-signoff{gap:22px;padding-top:35px}.menu-signoff img{width:140px}.menu-signoff p{font-size:23px}.consent-placeholder{display:flex;flex-direction:column;align-items:stretch;gap:30px;padding-block:32px}.giri-address-print{max-width:100%}.giri-address-print img{max-height:230px;object-fit:cover}.giri-address-print figcaption{font-size:9px}.consent-placeholder h3{font-size:39px}.consent-placeholder p{font-size:14px}.consent-placeholder .map-privacy-note{font-size:11px}.consent-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.consent-actions .line-button{padding:12px 10px;font-size:11px}.footer-topline{font-size:8px;gap:20px}.footer-columns{display:grid;grid-template-columns:1fr 1fr}.footer-columns>div{padding:22px 0;border-right:0}.footer-columns>div:nth-child(2){padding-left:15px}.footer-columns>div:last-child{grid-column:1/-1;border-top:1px solid #77786f}.footer-columns>div p{font-size:18px}.footer-columns .micro-label{font-size:9px}.footer-legal{gap:0 18px;padding:15px 0}.footer-legal a,.footer-legal button{font-size:11px}.footer-bottom{display:flex;justify-content:space-between;gap:15px;flex-wrap:wrap;font-size:9px}.footer-bottom>span:nth-child(2){display:none}.programme-directory{padding-top:35px}.programme-directory-heading h1{font-size:60px}.giri-month-nav strong{font-size:20px}.giri-calendar-day>time{font-size:24px}.page-hero-copy h1{font-size:53px}.booking-illustration{width:56px!important}.floating-radio{max-width:calc(100vw - 24px);right:12px;bottom:12px}.giri-word-grid label{grid-template-columns:24px 1fr}.giri-word-grid input{grid-column:1/-1}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}.solid-button:hover,.line-button:hover,.baci-sleeve-cover:hover img{transform:none}}

.giri-community-print{display:block;width:200px;height:auto;margin-top:35px;mix-blend-mode:multiply}.menu-signoff .menu-signoff-logo{display:block;width:100px;height:auto;margin-top:5px}
/* Keep practical information crisp; the display face is an occasional accent. */
:root{--mono:'Overused Grotesk',Arial,sans-serif;--display-tech:'Workbench',monospace}
.upcoming-event time strong{font-family:var(--serif);font-size:48px;letter-spacing:-.05em}
.designer-menu-group-heading>span{font-family:var(--display-tech);font-size:25px;font-variation-settings:'SCAN' -30,'BLED' 0}
.baci-sleeve-meta,.giri-address-print figcaption,.giri-opening-colophon{letter-spacing:.075em}
.giri-opening-description{max-width:43ch}
.menu-page{background-image:none}
.final-menu-cover,.designer-menu-section{background:var(--designer-pink) var(--designer-paper-image) center/cover no-repeat}
.menu-category-nav{background:var(--designer-pink)}
@media(max-width:600px){.upcoming-event time strong{font-size:38px}.designer-menu-group-heading>span{font-size:23px}}

/* BACI / a listening destination in the GIRI designer edition. */
.baci-page-link{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-top:36px;padding-top:24px;border-top:1px solid var(--hairline)}
.baci-page-link p{margin:0;font:400 15px/1.5 var(--sans)}
.baci-page-link+.baci-full-archive{margin-top:24px}
.baci-cover{display:grid;grid-template-columns:1.08fr 1fr;background:var(--paper-deep);border-bottom:1px solid var(--ink)}
.baci-cover-copy{display:flex;flex-direction:column;align-items:flex-start;padding:48px var(--pad) 32px;background:var(--news-pink) var(--designer-paper-image) center/cover no-repeat}
.baci-cover-copy>.edition-eyebrow{margin-bottom:32px;font-size:10px}
.baci-cover h1{font:400 clamp(108px,13vw,205px)/.88 var(--serif);letter-spacing:-.075em;margin:0 0 34px}
.baci-cover h1 span{color:var(--news-blue)}
.baci-cover-line{font:400 clamp(28px,3.2vw,47px)/1.13 var(--serif);letter-spacing:-.035em;margin:0 0 23px}
.baci-cover-note{font:400 15px/1.65 var(--sans);margin:0 0 25px}
.baci-cover .baci-platforms a:first-child{background:var(--paper)}
.baci-cover .baci-platforms a:hover{background:var(--news-blue);color:white}
.baci-cover-scroll{display:flex;justify-content:space-between;gap:24px;width:100%;min-height:48px;margin-top:auto;padding-top:32px;font:500 12px/1.4 var(--sans)}
.baci-cover-scroll span{font-size:20px}
.baci-cover-record{min-width:0;padding:38px clamp(26px,3.3vw,55px) 28px;border-left:1px solid var(--ink)}
.baci-cover-record figcaption{display:flex;justify-content:space-between;align-items:center;gap:18px;padding-top:23px}
.baci-cover-record .edition-eyebrow{font-size:9px;margin:0 0 8px}
.baci-cover-record h2{font:400 clamp(21px,2vw,31px)/1.2 var(--serif);letter-spacing:-.035em;margin:0 0 8px}
.baci-cover-record p{font:400 11px/1.5 var(--sans);margin:0}
.baci-feature-play{display:flex;align-items:center;gap:10px;min-height:48px;padding:12px 18px;border:1px solid var(--ink);background:var(--ink);color:var(--paper);font:500 13px var(--sans);cursor:pointer}
.baci-feature-play:hover{background:var(--news-blue)}
.baci-page-nav{display:flex;align-items:center;gap:35px;padding:5px var(--pad);border-bottom:1px solid var(--ink)}
.baci-page-nav a{display:flex;align-items:center;min-height:48px;font:500 13px var(--sans)}
.baci-page-nav a:hover{text-decoration:underline;text-underline-offset:5px}
.baci-page-nav>span{margin-left:auto;font:500 9px var(--sans);letter-spacing:.14em}
.baci-story{display:grid;grid-template-columns:1fr 1fr;gap:75px;padding:78px var(--pad) 82px}
.baci-story h2,.baci-outro h2{margin:0;font:400 clamp(45px,5.4vw,80px)/1.03 var(--serif);letter-spacing:-.05em}
.baci-story h2 span{color:#60665a}
.baci-story-copy>p{max-width:54ch;font:400 16px/1.7 var(--sans);margin:0 0 20px}
.baci-story-copy>.baci-story-lead{font:400 clamp(25px,2.5vw,36px)/1.2 var(--serif);letter-spacing:-.025em;margin-bottom:25px}
.baci-story-copy .quiet-link{margin-top:8px}
.baci-releases,.baci-archive{padding:66px var(--pad) 72px;border-top:1px solid var(--ink)}
.baci-releases{background:var(--paper-deep)}
.baci-section-heading{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:38px}
.baci-section-heading .edition-eyebrow{margin-bottom:14px}
.baci-section-heading h2{font:400 clamp(38px,4.6vw,65px)/1.1 var(--serif);letter-spacing:-.045em;margin:0}
.baci-section-heading>p{font:400 15px/1.65 var(--sans);margin:0;max-width:36ch}
.baci-archive-tools{display:flex;align-items:end;justify-content:space-between;gap:28px;padding:8px 0 24px}
.baci-archive-tools .baci-filters{margin:0;flex-wrap:wrap;gap:8px}
.baci-archive-tools .baci-filters button{min-height:44px;padding:10px 16px;font:500 13px var(--sans)}
.baci-search{min-width:260px;max-width:100%}
.baci-search label{display:block;margin-bottom:8px;font:500 11px var(--sans)}
.baci-search>div{position:relative}
.baci-search input{appearance:none;-webkit-appearance:none;width:100%;min-height:46px;border:1px solid var(--ink);border-radius:0;background:transparent;color:var(--ink);padding:11px 46px 11px 14px;font:400 16px var(--sans)}
.baci-search input::-webkit-search-cancel-button{-webkit-appearance:none}
.baci-search input:focus-visible{outline:3px solid var(--news-blue);outline-offset:3px}
.baci-search button{position:absolute;inset:1px 1px 1px auto;width:42px;border:0;background:transparent;color:var(--ink);font-size:24px;cursor:pointer}
.baci-archive-count{font:400 12px var(--sans);margin:0 0 16px;color:#595b52}
.baci-archive .baci-archive-record{grid-template-columns:72px minmax(0,1fr) auto;gap:24px;padding:20px 0;border-bottom-color:var(--hairline)}
.baci-archive-art{display:block;width:72px;height:72px;object-fit:cover}
.baci-archive .baci-archive-code{display:block;font:500 9px/1.4 var(--sans)!important;letter-spacing:.08em}
.baci-archive-record h3{font:400 clamp(19px,1.9vw,28px)/1.22 var(--serif);letter-spacing:-.025em;margin:7px 0}
.baci-archive-record-copy>p{font:400 12px/1.5 var(--sans);color:#595b52;margin:0}
.baci-archive-actions{display:flex;align-items:center;gap:8px}
.baci-archive-actions a,.baci-archive-actions button{display:flex;align-items:center;justify-content:center;gap:12px;min-height:44px;padding:10px 14px;border:1px solid var(--hairline);background:transparent;color:var(--ink);font:500 12px/1.3 var(--sans);cursor:pointer}
.baci-archive-actions button{background:var(--ink);color:var(--paper)}
.baci-archive-actions a:hover,.baci-archive-actions button:hover{background:var(--news-blue);color:white}
.baci-listening-note{font:400 12px/1.6 var(--sans);color:#595b52;max-width:76ch;margin:24px 0 0}
.baci-archive-empty{padding:35px 0;font:400 22px var(--serif)}
.baci-outro{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:75px;padding:68px var(--pad);border-top:1px solid var(--ink);background:var(--news-pink) var(--designer-paper-image) center/cover no-repeat}
.baci-outro h2 span{color:var(--news-blue)}
.baci-outro p{font:400 24px/1.35 var(--serif);margin:0 0 25px}
@media(min-width:1680px){.baci-cover h1{font-size:205px}}
@media(max-width:1000px){.baci-cover-copy{padding-inline:32px}.baci-cover h1{font-size:14vw}.baci-cover-record{padding:32px 24px 25px}.baci-cover-record figcaption{align-items:start;flex-direction:column}.baci-cover-note{font-size:14px}.baci-story,.baci-outro{gap:40px}.baci-archive-actions{flex-direction:column;align-items:stretch}.baci-search{min-width:220px}.baci-archive-tools{align-items:start}}
@media(max-width:700px){.baci-cover{grid-template-columns:1fr}.baci-cover-copy{padding:35px var(--pad) 25px}.baci-cover-copy>.edition-eyebrow{margin-bottom:30px}.baci-cover h1{font-size:clamp(120px,30vw,188px);margin-bottom:25px}.baci-cover-line{font-size:36px}.baci-cover-scroll{margin-top:12px;padding-top:16px}.baci-cover-record{border-left:0;border-top:1px solid var(--ink);padding:28px var(--pad)}.baci-cover-record figcaption{flex-direction:row;align-items:center}.baci-cover-record h2{font-size:24px}.baci-page-nav{gap:26px}.baci-page-nav>span{display:none}.baci-page-nav a{font-size:12px}.baci-story,.baci-outro{grid-template-columns:1fr;gap:32px;padding:50px var(--pad)}.baci-story h2 br{display:none}.baci-story h2{font-size:45px}.baci-story h2 span::before{content:' '}.baci-story-copy>p{font-size:15px}.baci-story-copy>.baci-story-lead{font-size:28px}.baci-section-heading{display:block}.baci-section-heading>p{margin-top:18px;font-size:14px}.baci-releases,.baci-archive{padding:48px var(--pad)}.baci-releases .baci-sleeves{grid-template-columns:1fr;gap:36px}.baci-releases .baci-sleeve h3{font-size:29px}.baci-archive-tools{flex-direction:column;align-items:stretch;gap:24px}.baci-search{width:100%}.baci-archive .baci-archive-record{grid-template-columns:56px minmax(0,1fr);gap:12px 16px;padding:20px 0}.baci-archive-art{width:56px;height:56px;align-self:start}.baci-archive-record h3{font-size:21px}.baci-archive-record-copy>p{font-size:11px}.baci-archive-actions{grid-column:2;flex-direction:row;flex-wrap:wrap;justify-content:flex-start}.baci-archive-actions a,.baci-archive-actions button{padding:10px 12px;font-size:11px}.baci-page-link{align-items:start;flex-direction:column;gap:8px}.baci-page-link p{font-size:14px}.baci-feature-play{padding:12px;font-size:12px}.baci-outro h2{font-size:57px}.baci-outro p{font-size:23px}}
@media(max-width:360px){.baci-cover-line{font-size:30px}.baci-cover-record h2{font-size:21px}.baci-page-nav{gap:18px}.baci-desktop-break{display:none}.baci-archive-tools .baci-filters button{padding-inline:10px;font-size:12px}}

/* GIRI 3.3.0: approved design refinements over the complete 3.2.0 content. */
/* A matched-height opening: the photo follows the address-to-button column. */
.giri-opening{grid-template-columns:42% 58%;align-items:stretch;min-height:0;padding-block:28px}
.giri-opening-copy{padding:0 var(--pad);align-self:stretch}
.giri-opening-copy>.edition-eyebrow{margin-bottom:18px}
.giri-opening-logo{width:clamp(140px,16vw,210px);margin-bottom:18px}
.giri-opening h1{font-size:clamp(56px,5.4vw,84px);line-height:1.03;margin-bottom:20px}
.giri-opening-description{font-size:15px;line-height:1.6;margin-bottom:24px}
.giri-opening-actions{margin-top:auto;gap:14px 20px}
.giri-opening-photo{align-self:stretch;min-height:0;height:auto;aspect-ratio:auto}
.giri-opening-photo>img{object-position:center 48%}
.giri-opening-colophon{flex-wrap:wrap}
.giri-opening-colophon .giri-opening-footnote{margin:0;padding:0;font:400 12px/1.5 var(--serif);letter-spacing:0}

/* Explicit foregrounds remove inherited white text on cream programme pages. */
.programme-section,.programme-directory{background:var(--paper);color:var(--ink)}
.upcoming-programme{margin-bottom:0;border-top:0}
.weekly-heading,.weekly-heading h2,.weekly-heading p,.weekly-heading .edition-eyebrow,
.upcoming-event,.upcoming-event time,.upcoming-event-main,.upcoming-event-main h3,
.programme-directory-heading,.programme-directory-heading h1,.programme-directory-heading p,
.programme-directory-heading a,.programme-directory-summary,.programme-detail,
.programme-detail-copy,.programme-detail-copy h2,.programme-detail-date,.event-facts,
.giri-calendar-day,.giri-calendar-weekday,.giri-calendar-event{color:var(--ink)}
.upcoming-event-main>span,.programme-detail-copy>.micro-label{color:var(--news-blue)}
.weekly-event-meta,.programme-detail-subtitle,.programme-detail-description{color:#4e5047}
.upcoming-event.is-past{opacity:1}
.giri-calendar-day.is-outside{color:#626459}
.giri-calendar-event{overflow-wrap:anywhere}
.giri-calendar-event:hover,.giri-calendar-event:focus-visible{background:var(--news-pink);color:var(--ink)}
.giri-programme-toolbar .giri-filters button,.giri-view-switch button{background:var(--paper);color:var(--ink)}
.giri-programme-toolbar .giri-filters button[aria-pressed="true"],.giri-view-switch button[aria-pressed="true"]{background:var(--ink);color:var(--paper)}
.programme-announcement{display:inline-flex;align-items:center;min-height:44px;color:var(--news-blue);border-bottom:1px solid currentColor}

/* Secondary introductions share the quieter split layout. */
.page-hero{grid-template-columns:1fr 1fr;min-height:0;background:var(--paper);color:var(--ink)}
.page-hero::after{display:none}
.page-hero>img{grid-row:1;grid-column:2;min-height:0;height:100%;max-height:620px;filter:none}
.page-hero-copy{padding:42px var(--pad)}
.page-hero-copy h1{font-size:clamp(48px,5.4vw,80px);line-height:1.06}
.page-hero-copy h1 em{color:var(--news-blue)}
.page-hero-copy>p{font-size:16px;line-height:1.6}
.giri-format-mark{display:block;width:180px;height:auto;margin:0 0 16px;mix-blend-mode:multiply}
.formats-list article:has(.giri-format-mark){background:var(--paper)}
.formats-list article>.giri-format-mark,.formats-list article>h3,.formats-list article>p{grid-column:2}
.story-mosaic img,.formats-image img,.full-gallery img{filter:none}
.full-gallery{grid-template-columns:repeat(3,minmax(0,1fr))}
.giri-detail-gallery{display:grid;grid-template-columns:1fr 1.5fr;gap:24px;padding:0 var(--pad) 56px}
.giri-detail-gallery figure{min-width:0}
.giri-detail-gallery img{display:block;width:100%;height:320px;object-fit:cover}
.giri-detail-gallery figcaption{font:400 13px/1.5 var(--sans);padding-top:12px;color:var(--ink)}

/* Full menu retained, with a smaller cover and consistent prices. */
.final-menu-cover{min-height:0;padding-block:32px;grid-template-columns:1fr 180px;gap:36px}
.final-menu-cover h1{margin:20px 0}
.final-menu-cover h1 img{width:min(100%,350px)}
.menu-cover-illustration{height:180px}
.menu-category-nav{position:sticky;top:calc(84px + var(--giri-admin-bar,0px));z-index:20}
.designer-menu-item p{font-size:14px;line-height:1.5}
.designer-menu-item strong{white-space:nowrap}

/* BACI identity in the cover; the original featured recording remains below. */
.baci-cover h1{font-size:clamp(76px,9vw,138px)}
.baci-cover-copy{padding-block:38px}
.baci-brand-image{padding:28px 8%;display:flex;align-items:center;justify-content:center;background:var(--news-pink)}
.baci-brand-image a{display:block;max-width:390px;width:100%}
.baci-brand-image img{display:block;width:100%;height:auto}
.baci-featured{padding:36px var(--pad);border-bottom:1px solid var(--ink);background:var(--paper-deep)}
.baci-featured .baci-cover-record{display:grid;grid-template-columns:minmax(140px,220px) 1fr;gap:32px;align-items:center;border:0;padding:0}
.baci-featured .baci-cover-record figcaption{padding:0;gap:24px;flex-wrap:wrap}
.baci-featured .baci-cover-record h2{font-size:32px}

/* Inquiry layout keeps all private-event details and the real submit handler. */
.giri-booking-form{grid-template-columns:.85fr 1.15fr;min-height:0;align-items:start;padding:42px var(--pad);gap:50px}
.giri-booking-intro h2{font:400 clamp(36px,4vw,58px)/1.08 var(--serif);letter-spacing:-.035em;margin:18px 0}
.giri-booking-intro p{font:400 16px/1.6 var(--sans);max-width:38ch}
.giri-booking-intro>img{width:100%;height:220px;object-fit:cover;margin-top:28px;filter:none}
.giri-booking-form .booking-content{padding:0;align-self:start;min-width:0}
.giri-booking-form .giri-form-note{font-size:12px;line-height:1.6}
.giri-form-grid input,.giri-form-grid select,.giri-form-grid textarea{background:var(--paper)}
.giri-address-print img{aspect-ratio:3/2;object-fit:cover}
.footer-map{display:block}

@media(max-width:1000px){
 .giri-opening-copy{padding-inline:30px}.giri-opening-actions{gap:12px}
 .page-hero-copy{padding:32px}.giri-booking-form{gap:30px}
}
@media(max-width:800px){
 .menu-category-nav{top:calc(74px + var(--giri-admin-bar,0px))}
 .page-hero{grid-template-columns:1fr}.page-hero>img{grid-row:2;grid-column:1;height:340px;min-height:0}
 .page-hero-copy{grid-row:1;grid-column:1;padding:30px var(--pad)}
 .giri-booking-form{grid-template-columns:1fr}.giri-booking-intro>img{display:none}
 .giri-detail-gallery img{height:260px}
}
@media(max-width:700px){
 .giri-opening{display:grid;grid-template-columns:1fr;padding:0;min-height:0}
 .giri-opening-copy{padding:28px var(--pad)}
 .giri-opening-photo{width:100%;height:auto;aspect-ratio:16/9;min-height:0}
 .giri-opening h1{font-size:60px}.giri-opening-colophon .giri-opening-footnote{display:block;width:100%}
 .giri-opening-colophon a{font-size:11px}
 .giri-detail-gallery{grid-template-columns:1fr}.giri-detail-gallery img{height:auto;aspect-ratio:4/3}
 .full-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}
 .giri-format-mark{width:150px}
 .final-menu-cover{grid-template-columns:1fr 90px;gap:18px;padding:28px var(--pad)}
 .menu-cover-illustration{height:auto;width:90px}.menu-category-nav{gap:0 20px}
 .baci-brand-image{padding:24px var(--pad)}.baci-brand-image a{max-width:330px}
 .baci-featured .baci-cover-record{grid-template-columns:110px minmax(0,1fr);gap:20px}
 .baci-featured .baci-cover-record figcaption{align-items:start;flex-direction:column;gap:16px}
 .baci-featured .baci-cover-record h2{font-size:24px}
 .giri-booking-form{padding:32px var(--pad)}
}
@media(max-width:380px){.giri-opening h1{font-size:52px}.baci-featured .baci-cover-record{grid-template-columns:1fr}.baci-featured .baci-sleeve-cover{max-width:180px}}

#programme{scroll-margin-top:145px}.programme-section .weekly-heading{display:flex!important;align-items:end!important;justify-content:space-between!important;padding-bottom:28px!important;margin-bottom:0!important;border-bottom:1px solid #aaa99e!important}.week-body{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);align-items:start;gap:36px;padding-top:28px}.week-body>.upcoming-list{min-width:0;margin:0;border-top:0}.week-body .upcoming-event{grid-template-columns:64px minmax(0,1fr) 64px 20px;gap:16px;padding:26px 0}.week-body .upcoming-event:first-child{padding-top:0}.week-body .upcoming-event-main h3{font:400 clamp(25px,2.6vw,38px)/1.15 var(--serif);letter-spacing:-.035em}.week-body .weekly-event-meta{font-size:12px}.week-body .upcoming-image{width:64px;height:75px}.week-highlight{min-width:0;display:flex;flex-direction:column;padding-left:28px;border-left:1px solid #aaa99e;color:#24251f}.highlight-topline{display:flex;justify-content:space-between;gap:12px;font:700 10px/1.5 var(--sans);letter-spacing:.12em;padding-bottom:15px}.highlight-topline span:last-child{color:#66685c}.highlight-art{position:relative;aspect-ratio:16/8;margin:0;overflow:hidden;background:#d4d6ce}.highlight-art img{width:100%;height:100%;object-fit:cover;display:block}.highlight-art figcaption{position:absolute;bottom:12px;left:12px;background:#f5f3eb;color:#24251f;padding:6px 9px;font:600 10px/1.4 var(--sans)}.highlight-content{padding-top:20px}.highlight-date{display:flex;gap:7px 15px;justify-content:space-between;flex-wrap:wrap;font:400 12px/1.5 var(--sans)}.highlight-content h3{font:400 clamp(33px,3.2vw,49px)/1.06 var(--serif);letter-spacing:-.045em;margin:13px 0}.highlight-content p{font:400 15px/1.6 var(--sans);margin:0 0 20px;max-width:42ch}.highlight-content .highlight-action{display:flex;width:100%;align-items:center;justify-content:space-between;min-height:46px;padding:12px 0;border:0;border-bottom:1px solid currentColor;background:transparent;color:inherit;font:600 13px/1.5 var(--sans);cursor:pointer}.highlight-content .highlight-action:hover{color:#245bc4}.highlight-content .highlight-action:focus-visible{outline:2px solid #245bc4;outline-offset:4px}

/* Align the last event rule and feature action with equal flexible rows. */
.week-body{display:block}.week-body.has-highlight{display:grid;align-items:stretch}
.week-body.has-highlight>.upcoming-list{display:grid;grid-auto-rows:1fr;align-self:stretch;border-bottom:1px solid var(--ink);padding-bottom:0}
.week-body.has-highlight .upcoming-event,.week-body.has-highlight .upcoming-event:first-child{padding-block:26px;align-content:center}
.week-body.has-highlight .upcoming-event:last-child{border-bottom:0}
.week-highlight{align-self:stretch;padding-bottom:0}.highlight-topline{text-transform:uppercase}.highlight-topline,.highlight-art{flex-shrink:0}
.highlight-content{display:flex;flex:1;flex-direction:column}.highlight-content .highlight-action{margin-top:auto;flex-shrink:0;text-decoration:none}
.highlight-art>img{object-fit:contain}.highlight-art>.giri-event-poster{min-height:0;height:100%;width:100%}
.week-body .upcoming-image .giri-event-poster{min-height:0;height:100%}
.giri-next-feature{display:grid;grid-template-columns:40% minmax(0,60%);padding:20px;margin:28px var(--pad) 0;min-height:350px;border:1px solid var(--hairline);color:var(--ink)}
.giri-next-art{margin:0;min-height:320px;position:relative;background:#e6e3d9;overflow:hidden}
.giri-next-art>img{position:absolute;width:100%;height:100%;inset:0;object-fit:contain}
.giri-next-art>.giri-event-poster{height:100%;min-height:320px}
.giri-next-copy{margin-left:22px;padding:0 18px 5px 26px;border-left:1px solid var(--hairline);display:flex;flex-direction:column;justify-content:center;min-width:0}
.giri-next-eyebrow{font:500 11px/1.4 var(--sans);text-transform:uppercase;letter-spacing:.15em;border-bottom:1px solid var(--hairline);padding-bottom:12px;margin:0}
.giri-next-copy h2{font:400 clamp(36px,4.8vw,76px)/1.04 var(--serif);letter-spacing:-.06em;margin:19px 0;overflow-wrap:anywhere}
.giri-next-facts{display:flex;gap:12px 22px;flex-wrap:wrap;font:400 13px/1.5 var(--sans)}
.giri-next-description{font:400 19px/1.45 var(--serif);max-width:600px;margin:20px 0 24px}
.giri-next-actions{display:flex;align-items:center;flex-wrap:wrap;gap:15px}.giri-next-actions .solid-button{background:#245bc4;color:white}
.giri-calendar-panel[hidden]{display:none}.giri-calendar-scroll{overflow-x:auto;overscroll-behavior-inline:contain}
.giri-calendar-scroll .giri-programme-calendar{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));min-width:720px}
.giri-programme-calendar .giri-calendar-weekday{display:block;font:600 13px/1.5 var(--sans);text-transform:uppercase;text-align:center}
.giri-programme-calendar .giri-calendar-day{display:flex;flex-direction:column;min-width:0;min-height:215px;padding:13px 12px 12px}
.giri-calendar-day>time{font:400 25px/1.2 var(--serif);margin-bottom:12px}
.giri-calendar-day .giri-calendar-event{flex:1;display:flex;flex-direction:column;align-items:flex-start;width:100%;min-height:144px;min-width:0;margin:0;padding:14px 12px;background:#eae8e0;border-left:3px solid #245bc4;color:#22221e;text-decoration:none}
.giri-calendar-day .giri-calendar-event[hidden]{display:none}
.giri-calendar-event+.giri-calendar-event{margin-top:10px}
.giri-calendar-event strong{display:block;width:100%;font:600 clamp(21px,2vw,28px)/1.2 var(--sans);letter-spacing:-.025em;white-space:normal;overflow-wrap:anywhere}
.giri-calendar-event>span{display:block;width:100%;font:500 14px/1.4 var(--sans);margin-top:12px}
.giri-calendar-event:hover{background:#e0dcd0}.giri-calendar-event:focus-visible{outline:3px solid #245bc4;outline-offset:-3px}
.giri-calendar-mobile-hint{display:none;font:400 12px/1.5 var(--sans);margin:0 0 13px;color:#52554b}
.giri-form-grid small{display:block;font:400 12px/1.5 var(--sans);margin-top:7px}
@media(max-width:1000px){.week-body.has-highlight{gap:25px;grid-template-columns:1.25fr 1fr}.week-highlight{padding-left:20px}.week-body .upcoming-event{grid-template-columns:48px minmax(0,1fr) 18px;gap:12px}.week-body .upcoming-image{display:none}.highlight-date{flex-direction:column;gap:4px}.programme-section .weekly-heading{gap:20px}}
@media(max-width:800px){.giri-calendar-mobile-hint{display:block}.giri-programme-calendar .giri-calendar-day{min-height:225px;padding:12px 10px}.giri-calendar-event strong{font-size:22px}.giri-calendar-day .giri-calendar-event{padding:12px 10px;min-height:155px}.giri-calendar-event>span{font-size:13px}.giri-next-copy{padding-left:18px;margin-left:14px;padding-right:4px}.giri-next-description{font-size:17px}}
@media(max-width:700px){#programme{scroll-margin-top:100px}.programme-section .weekly-heading{align-items:start!important;flex-direction:column!important}.week-body.has-highlight{grid-template-columns:1fr;gap:30px}.week-body.has-highlight>.upcoming-list{display:block}.week-body.has-highlight .upcoming-event:first-child{padding-top:0}.week-highlight{border-left:0;border-top:1px solid var(--hairline);padding:25px 0 0}.highlight-content{display:block}.highlight-content h3{font-size:40px}.highlight-date{flex-direction:row}.highlight-art{aspect-ratio:16/7}.week-body .upcoming-event-main h3{font-size:28px}.giri-next-feature{display:block;padding:12px}.giri-next-art{min-height:0;aspect-ratio:16/9}.giri-next-art>.giri-event-poster{min-height:0}.giri-next-copy{margin:0;border:0;padding:20px 4px 10px}.giri-next-copy h2{font-size:44px}}

/* The Programme title leads, followed by its horizontal next-event feature. */
.programme-directory > .giri-next-feature{margin:0 0 32px}

/* GIRI 3.5: a calendar and editorial column below the page title. */
.giri-programme-layout{margin:0 0 32px;min-width:0}
.giri-programme-layout.has-feature{display:grid;grid-template-columns:minmax(0,1fr) 320px;grid-template-areas:"board feature";gap:28px;align-items:start}
.giri-programme-board{grid-area:board;min-width:0}
.giri-programme-feature-column{grid-area:feature;min-width:0;border-left:1px solid var(--hairline);padding-left:24px}
.giri-programme-feature-column .giri-next-feature{display:flex;flex-direction:column;margin:0;padding:0;min-height:0;border:0}
.giri-programme-feature-column .giri-next-art{width:100%;aspect-ratio:4/3;min-height:0}
.giri-programme-feature-column .giri-next-art>.giri-event-poster{min-height:0;height:100%}
.giri-programme-feature-column .giri-next-copy{margin:0;padding:22px 0 0;border:0;justify-content:start}
.giri-programme-feature-column .giri-next-copy h2{font-size:38px;line-height:1.05;margin:18px 0}
.giri-programme-feature-column .giri-next-facts{flex-direction:column;gap:5px;font-size:13px}
.giri-next-admission{font:500 13px/1.55 var(--sans);padding:15px 0;border-block:1px solid var(--hairline);margin:18px 0 0}
.giri-next-admission>span{display:block;font-weight:400;margin-top:3px}
.giri-programme-feature-column .giri-next-description{font:400 16px/1.65 var(--sans);margin:17px 0 20px}
.giri-programme-feature-column .giri-next-actions{align-items:stretch;flex-direction:column;gap:12px}
.giri-programme-feature-column .giri-next-actions .solid-button{display:flex;justify-content:space-between;min-height:48px;padding:13px 18px}
.giri-programme-feature-column .quiet-link{min-height:44px;display:flex;align-items:center;border-bottom:1px solid var(--ink);padding-bottom:8px;font-size:13px}
.giri-programme-board .giri-programme-toolbar{flex-direction:column;align-items:stretch;gap:18px}
.giri-month-nav{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.giri-month-nav>a,.giri-month-nav>button{display:inline-flex;justify-content:center;align-items:center;width:44px;min-height:44px;background:transparent;border:1px solid var(--hairline);color:var(--ink);font:400 20px/1 var(--sans)}
.giri-month-nav>button:disabled{color:#8b8b81;cursor:default;background:#edeae2;border-color:#d6d3c8}
.giri-month-nav .giri-this-month{width:auto;font-size:12px;padding-inline:12px;text-decoration:none}
.giri-month-nav>strong{font:500 22px/1.3 var(--serif);margin-right:auto}
.giri-programme-board .giri-filters{gap:8px;flex-wrap:wrap}
.giri-programme-board .giri-filters>button{min-height:44px;padding:10px 13px}
.giri-programme-board .programme-directory-summary{gap:12px;flex-wrap:wrap}
.giri-programme-board .giri-view-switch>button{min-height:44px}
.giri-programme-calendar .giri-calendar-day{min-height:210px;padding:12px 10px}
.giri-programme-calendar .giri-calendar-day.is-past-date{background:#eeece5}
.giri-calendar-day.is-past-date>time{color:#77796e}
.giri-calendar-day .giri-calendar-event{padding:12px 10px;min-height:140px}
.giri-calendar-event strong{font-size:23px;line-height:1.24;hyphens:auto;overflow-wrap:break-word}
.giri-calendar-event>span{font-size:13px;line-height:1.45;margin-top:auto;padding-top:14px}
.giri-programme-empty{padding:20px;border:1px solid var(--hairline);margin:12px 0 22px;font:400 15px/1.5 var(--sans)}
.giri-programme-empty[hidden]{display:none}
.giri-programme-empty p{margin:0 0 10px}
.giri-event-description{font:400 16px/1.7 var(--sans);color:var(--ink);overflow-wrap:anywhere}
.giri-event-description h3{font:600 14px/1.5 var(--sans);text-transform:uppercase;letter-spacing:.08em;margin:28px 0 12px;padding-top:14px;border-top:1px solid var(--hairline)}
.giri-event-description p{margin:0 0 17px;max-width:68ch}
.giri-event-description a{color:#245bc4;text-decoration:underline;text-underline-offset:3px}
.giri-event-lines{padding-left:20px;margin:0 0 18px;list-style:disc}
.giri-event-lines>li{padding-left:3px;margin-bottom:8px}
.event-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 20px;margin:22px 0;white-space:normal}
.event-facts>div{min-width:0}.event-facts dd{font:500 14px/1.55 var(--sans);margin-top:6px;overflow-wrap:anywhere}
.programme-detail-image>img,.event-page-image>img{object-fit:contain}
.programme-detail-image{align-self:start;background:#eae7df}
@media(max-width:1200px){
 .giri-programme-layout.has-feature{grid-template-columns:1fr;grid-template-areas:"feature" "board";gap:30px}
 .giri-programme-feature-column{border-left:0;border-bottom:1px solid var(--hairline);padding:0 0 26px}
 .giri-programme-feature-column .giri-next-feature{display:grid;grid-template-columns:minmax(200px,.75fr) minmax(0,1.25fr);gap:28px}
 .giri-programme-feature-column .giri-next-art{aspect-ratio:auto;min-height:300px;align-self:stretch}
 .giri-programme-feature-column .giri-next-copy{padding:0}
 .giri-programme-feature-column .giri-next-copy h2{font-size:42px}
 .giri-programme-feature-column .giri-next-facts{flex-direction:row;gap:8px 20px}
 .giri-programme-feature-column .giri-next-description{margin-block:14px}
 .giri-programme-feature-column .giri-next-actions{flex-direction:row;align-items:center;flex-wrap:wrap}
 .giri-programme-board .giri-programme-toolbar{flex-direction:row;align-items:center;flex-wrap:wrap}
}
@media(max-width:700px){
 .giri-programme-feature-column .giri-next-feature{display:grid;grid-template-columns:110px minmax(0,1fr);gap:18px;align-items:start}
 .giri-programme-feature-column .giri-next-art{aspect-ratio:3/4;min-height:0;align-self:start}
 .giri-programme-feature-column .giri-next-copy{display:contents}
 .giri-programme-feature-column .giri-next-eyebrow{grid-column:2;grid-row:1;margin:0;padding-bottom:8px}
 .giri-programme-feature-column .giri-next-copy h2{grid-column:2;grid-row:1;margin:32px 0 0;font-size:31px;letter-spacing:-.035em}
 .giri-programme-feature-column .giri-next-facts{grid-column:1/-1;flex-direction:row}
 .giri-programme-feature-column .giri-next-admission,.giri-programme-feature-column .giri-next-description,.giri-programme-feature-column .giri-next-actions{grid-column:1/-1;margin:0}
 .giri-programme-feature-column .giri-next-actions{display:flex;align-items:stretch;flex-direction:column}
 .giri-programme-feature-column .giri-next-description{font-size:15px}
 .giri-month-nav{gap:8px;width:100%}.giri-month-nav>strong{font-size:21px}
 .giri-programme-board .giri-programme-toolbar{gap:15px}
 .giri-programme-board .giri-filters{gap:5px}.giri-programme-board .giri-filters>button{padding-inline:10px;font-size:12px}
 .giri-calendar-event strong{font-size:23px}
 .event-facts{grid-template-columns:1fr 1fr}.event-facts>div:last-child{grid-column:1/-1}
 .giri-event-description{font-size:15px}
}

.highlight-content .giri-next-admission{font:500 13px/1.55 var(--sans);margin:0 0 18px;padding:10px 0;border-block:1px solid var(--hairline)}

/* Invitation — Made for You, scoped to Private Events. */





.giri-private{width:100%;position:relative}
.giri-private{--gv-paper:#f5f3ec;--gv-ink:#24251f;--gv-blue:var(--news-blue);--gv-pink:#e7b5c7;--gv-rule:#b7b6aa;--gv-muted:#55574e;--gv-soft:#ece8dd;--gv-serif:var(--serif);--gv-sans:var(--sans);color-scheme:light;background:var(--gv-paper);color:var(--gv-ink);font:400 16px/1.6 var(--gv-sans);display:flex;flex-direction:column;min-height:0;overflow-wrap:break-word}
.giri-private *{box-sizing:border-box}
.giri-private h1,.giri-private h2,.giri-private h3,.giri-private h4,.giri-private p,.giri-private figure{margin:0}
.giri-private [hidden]{display:none!important}
.giri-private img{display:block;max-width:100%;height:auto}
.giri-private a{color:inherit;text-decoration:none}
.giri-private button,.giri-private input,.giri-private select,.giri-private textarea{font-family:var(--gv-sans)}
.giri-private .gv-eyebrow{font:500 11px/1.5 var(--gv-sans);letter-spacing:.12em;text-transform:uppercase}
.giri-private .gv-header{display:flex;gap:22px;align-items:center;padding:18px 34px;border-bottom:1px solid var(--gv-rule);min-height:80px}
.giri-private .gv-logo{width:105px;flex-shrink:0}
.giri-private .gv-nav{display:flex;margin-left:auto;align-items:center;gap:22px;font-size:13px}
.giri-private .gv-nav a{min-height:44px;display:flex;align-items:center;white-space:nowrap}
.giri-private .gv-nav a[aria-current]{border-bottom:1px solid var(--gv-blue)}
.giri-private .gv-hours{font-size:11px;color:var(--gv-muted);white-space:nowrap}
.giri-private .gv-menu{display:none;color:inherit;background:transparent;border:1px solid var(--gv-rule);min-height:44px;padding:8px 12px}
.giri-private .gv-button{display:inline-flex;align-items:center;justify-content:space-between;gap:22px;min-height:48px;padding:12px 18px;background:var(--gv-ink);border:1px solid var(--gv-ink);color:var(--gv-paper);font-size:13px}
.giri-private .gv-link{display:inline-flex;align-items:center;gap:20px;min-height:44px;padding:8px 0;border-bottom:1px solid currentColor;font-size:13px}
.giri-private .gv-actions{display:flex;align-items:center;gap:24px;flex-wrap:wrap;margin-top:24px}
.giri-private h1{font:400 clamp(52px,6.5vw,78px)/1.03 var(--gv-serif);letter-spacing:-.055em}
.giri-private h2{font:400 clamp(38px,4.7vw,55px)/1.07 var(--gv-serif);letter-spacing:-.045em}
.giri-private h3{font:400 25px/1.2 var(--gv-serif);letter-spacing:-.025em}
.giri-private em{font-style:normal;color:var(--gv-blue)}
.giri-private .gv-intro{padding:39px 34px}
.giri-private .gv-intro h1{margin:19px 0 22px}
.giri-private .gv-intro p{font-size:15px;max-width:46ch}
.giri-private .gv-hero{display:grid;grid-template-columns:46% 54%;border-bottom:1px solid var(--gv-rule)}
.giri-private .gv-hero .gv-intro{display:flex;align-items:flex-start;flex-direction:column;justify-content:center;padding-block:40px}
.giri-private .gv-hero-photo{position:relative;min-height:430px;min-width:0}
.giri-private .gv-hero-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:51% center}
.giri-private .gv-hero-photo figcaption{position:absolute;bottom:0;left:0;right:0;color:var(--gv-paper);font-size:11px;letter-spacing:.08em;padding:35px 23px 18px;background:linear-gradient(transparent,rgba(0,0,0,.65))}
.giri-private .gv-section{padding:43px 34px;border-bottom:1px solid var(--gv-rule)}
.giri-private .gv-split{display:grid;grid-template-columns:1.15fr 1fr;gap:36px;align-items:center}
.giri-private .gv-split h2{margin:16px 0 22px}
.giri-private .gv-split p{font-size:15px;max-width:43ch}
.giri-private .gv-split .gv-photo img{width:100%;aspect-ratio:4/3;object-fit:cover}
.giri-private .gv-caption{font-size:11px;color:var(--gv-muted);margin-top:9px!important}
.giri-private .gv-benefits{display:flex;flex-wrap:wrap;gap:8px 20px;margin-top:22px;border-block:1px solid var(--gv-rule);padding:13px 0;font-size:12px}
.giri-private .gv-food{background:var(--gv-soft)}
.giri-private .gv-food-head{display:grid;grid-template-columns:1fr 1fr;gap:34px;align-items:center;margin-bottom:25px}
.giri-private .gv-food-head h2{margin:15px 0 20px}
.giri-private .gv-food-head p{font-size:15px;max-width:43ch}
.giri-private .gv-food-head img{width:100%;aspect-ratio:16/10;object-fit:cover}
.giri-private .gv-food-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:25px}
.giri-private .gv-food-options article{border-top:1px solid var(--gv-rule);padding-top:17px}
.giri-private .gv-food-options h3{margin:9px 0 10px;font-size:24px}
.giri-private .gv-food-options p{font-size:13px;line-height:1.65}
.giri-private .gv-food-foot{display:flex;align-items:center;justify-content:space-between;gap:25px;flex-wrap:wrap;margin-top:21px}
.giri-private .gv-food-foot>p{font-size:12px;color:var(--gv-muted);max-width:48ch}
.giri-private .gv-essentials{padding:32px 34px;border-bottom:1px solid var(--gv-rule)}
.giri-private .gv-essentials-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:23px;margin-top:20px}
.giri-private .gv-essentials-grid h3{font-size:23px;margin-bottom:9px}
.giri-private .gv-essentials-grid p{font-size:13px}
.giri-private .gv-space-photos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:26px}
.giri-private .gv-space-photos img{width:100%;aspect-ratio:3/2;object-fit:cover}
.giri-private .gv-faq{display:grid;grid-template-columns:.8fr 1.3fr;gap:35px;padding:32px 34px;border-bottom:1px solid var(--gv-rule)}
.giri-private .gv-faq h2{font-size:39px;margin-top:13px}
.giri-private .gv-faq details{border-top:1px solid var(--gv-rule)}
.giri-private .gv-faq details:last-child{border-bottom:1px solid var(--gv-rule)}
.giri-private .gv-faq summary{padding:17px 0;font:400 20px/1.4 var(--gv-serif)}
.giri-private .gv-faq details p{font-size:13px;padding-bottom:19px}
.giri-private .gv-booking{display:grid;grid-template-columns:.85fr 1.15fr;gap:40px;padding:40px 34px;background:var(--gv-pink);border-bottom:1px solid var(--gv-rule)}
.giri-private .gv-booking-intro h2{margin:17px 0 20px}
.giri-private .gv-booking-intro>p{font-size:14px;max-width:38ch}
.giri-private .gv-booking-intro .gv-reassure{font-size:12px;border-top:1px solid var(--gv-ink);padding-top:17px;margin-top:26px;max-width:35ch}
.giri-private .gv-form-wrap{background:var(--gv-paper);padding:25px;min-width:0}
.giri-private .gv-step-nav{display:flex;gap:9px;justify-content:space-between;list-style:none;margin:0 0 23px;padding:0;border-bottom:1px solid var(--gv-rule)}
.giri-private .gv-step-nav li{flex:1;min-width:0}
.giri-private .gv-step-nav button{display:flex;align-items:center;gap:7px;text-align:left;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--gv-muted);padding:9px 0 13px;min-height:44px;font-size:12px;width:100%}
.giri-private .gv-step-nav button[aria-current]{border-bottom-color:var(--gv-blue);color:var(--gv-blue)}
.giri-private .gv-panel-title{font:400 29px/1.2 var(--gv-serif);margin-bottom:8px!important}
.giri-private .gv-panel-note{font-size:12px;color:var(--gv-muted);margin-bottom:19px!important}
.giri-private .gv-field-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.giri-private .gv-field{display:grid;gap:7px;font:500 13px/1.45 var(--gv-sans);min-width:0}
.giri-private .gv-wide{grid-column:1/-1}
.giri-private .gv-field small{font:400 11px/1.5 var(--gv-sans);color:var(--gv-muted)}
.giri-private .gv-field input,.giri-private .gv-field select,.giri-private .gv-field textarea{width:100%;min-width:0;min-height:46px;padding:10px;border:1px solid var(--gv-rule);background:var(--gv-paper);color:var(--gv-ink);font:400 16px/1.4 var(--gv-sans);border-radius:0}
.giri-private .gv-field textarea{resize:vertical;min-height:90px}
.giri-private .gv-optional{border-top:1px solid var(--gv-rule);margin-top:20px}
.giri-private .gv-optional summary{font-size:12px;min-height:44px;padding:13px 0;color:var(--gv-blue)}
.giri-private .gv-optional .gv-field-grid{padding:5px 0 12px}
.giri-private .gv-form-bottom{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-top:24px}
.giri-private .gv-back{border:0;background:transparent;color:var(--gv-ink);min-height:44px;padding:8px 0;font-size:13px}
.giri-private .gv-counter{font-size:11px;color:var(--gv-muted)}
.giri-private .gv-form-bottom .gv-button{margin-left:auto}
.giri-private .gv-privacy-note{font-size:11px;color:var(--gv-muted);margin-top:18px!important;line-height:1.6}
.giri-private .gv-privacy-note a{text-decoration:underline}
.giri-private .gv-review{border-block:1px solid var(--gv-rule);padding:11px 0;margin-bottom:18px;font-size:12px;color:var(--gv-muted)}
.giri-private .gv-form-status{border-left:3px solid var(--gv-blue);padding:10px 14px;background:var(--gv-soft);font-size:13px;margin-top:19px!important}
.giri-private .gv-form-subhead{font:500 11px/1.5 var(--gv-sans);text-transform:uppercase;letter-spacing:.08em;margin:20px 0 15px!important;padding-top:17px;border-top:1px solid var(--gv-rule)}
.giri-private .gv-footer{margin-top:auto;background:var(--gv-ink);color:var(--gv-paper);padding:24px 34px 15px}
.giri-private .gv-footer-top{display:flex;justify-content:space-between;gap:20px;font-size:11px;letter-spacing:.08em;padding-bottom:20px;border-bottom:1px solid #77786f}
.giri-private .gv-footer-map{display:grid;grid-template-columns:.8fr 1.2fr;gap:36px;align-items:center;padding:25px 0;border-bottom:1px solid #77786f}
.giri-private .gv-footer-map img{width:100%;aspect-ratio:16/10;object-fit:cover}
.giri-private .gv-footer-map h3{font-size:36px;margin-bottom:14px}
.giri-private .gv-footer-map p{font-size:13px;margin-bottom:9px}
.giri-private .gv-footer-map .gv-map-note{font-size:11px}
.giri-private .gv-footer .gv-button{background:transparent;color:inherit;border-color:#77786f}
.giri-private .gv-footer-cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:25px;padding:22px 0;border-bottom:1px solid #77786f}
.giri-private .gv-footer-cols p{font:400 20px/1.5 var(--gv-serif);margin:10px 0}
.giri-private .gv-footer-cols a{font-size:13px;display:inline-flex;align-items:center;min-height:44px}
.giri-private .gv-legal{display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding-top:12px;font-size:11px}
.giri-private .gv-legal a,.giri-private .gv-legal summary{min-height:44px;display:inline-flex;align-items:center}
.giri-private .gv-legal>span{margin-left:auto}
.giri-private .gv-legal details p{font-size:12px;max-width:40ch;padding-bottom:10px}
@media(max-width:850px){.giri-private .gv-hours{display:none}.giri-private .gv-nav{gap:17px}.giri-private .gv-hero{grid-template-columns:48% 52%}.giri-private .gv-split{gap:25px}.giri-private .gv-booking{gap:25px}.giri-private .gv-form-wrap{padding:21px}.giri-private .gv-essentials-grid{grid-template-columns:1fr 1fr}.giri-private .gv-offer{padding-inline:22px}.giri-private .gv-chapter-food{gap:24px}.giri-private .gv-compact .gv-intro{align-items:start;flex-direction:column;gap:20px}}
@media(max-width:650px){.giri-private .gv-header{padding:16px 22px;gap:14px;flex-wrap:wrap}.giri-private .gv-menu{display:block;margin-left:auto}.giri-private .gv-nav{display:none;width:100%;margin-left:0;flex-wrap:wrap;gap:5px 20px}.giri-private .gv-nav.is-open{display:flex}.giri-private .gv-intro,.giri-private .gv-section,.giri-private .gv-essentials,.giri-private .gv-faq,.giri-private .gv-booking{padding:31px 22px}.giri-private .gv-hero{grid-template-columns:1fr}.giri-private .gv-hero .gv-intro{padding:31px 22px}.giri-private h1{font-size:57px}.giri-private .gv-hero-photo{height:290px;min-height:0}.giri-private .gv-split,.giri-private .gv-food-head,.giri-private .gv-faq,.giri-private .gv-booking{grid-template-columns:1fr;gap:25px}.giri-private .gv-food-options{grid-template-columns:1fr;gap:20px}.giri-private .gv-food-options article{display:grid;grid-template-columns:24px 1fr;column-gap:13px}.giri-private .gv-food-options h3{margin-top:0}.giri-private .gv-food-options p{grid-column:2}.giri-private .gv-food-options .gv-eyebrow{grid-row:1/3;padding-top:4px}.giri-private .gv-food-foot{gap:13px}.giri-private .gv-space-photos{grid-template-columns:1fr 1fr}.giri-private .gv-space-photos figure:last-child{grid-column:1/-1}.giri-private .gv-space-photos figure:last-child img{aspect-ratio:16/7}.giri-private .gv-booking-intro .gv-reassure{max-width:none;margin-top:18px}.giri-private .gv-form-wrap{padding:20px 18px}.giri-private .gv-field-grid{grid-template-columns:1fr}.giri-private .gv-wide{grid-column:auto}.giri-private .gv-step-nav button{font-size:11px;gap:5px}.giri-private .gv-chapters .gv-intro{grid-template-columns:1fr;gap:22px;padding:31px 22px}.giri-private .gv-chapters .gv-intro h1{font-size:57px}.giri-private .gv-chapter-party{grid-template-columns:1fr}.giri-private .gv-chapter-party .gv-chapter-copy{padding:31px 22px}.giri-private .gv-chapter-party img{height:300px}.giri-private .gv-chapter-food{grid-template-columns:1fr;gap:26px}.giri-private .gv-offers{grid-template-columns:1fr}.giri-private .gv-offer{padding:28px 22px}.giri-private .gv-compact .gv-intro{padding:31px 22px}.giri-private .gv-compact .gv-intro h1{font-size:52px}.giri-private .gv-compact .gv-booking{grid-template-columns:1fr}.giri-private .gv-mini-menu{display:grid;gap:15px;grid-template-columns:1fr}.giri-private .gv-footer{padding-inline:22px}.giri-private .gv-footer-map{grid-template-columns:1fr;gap:24px}.giri-private .gv-footer-cols{grid-template-columns:1fr 1fr;gap:20px}.giri-private .gv-footer-cols>div:last-child{grid-column:1/-1;border-top:1px solid #77786f;padding-top:18px}.giri-private .gv-legal>span{margin-left:0}.giri-private .gv-footer-top{font-size:11px}}
@media(max-width:380px){.giri-private h1,.giri-private .gv-chapters .gv-intro h1{font-size:49px}.giri-private .gv-compact .gv-intro h1{font-size:45px}.giri-private .gv-essentials-grid{grid-template-columns:1fr}.giri-private .gv-space-photos{grid-template-columns:1fr}.giri-private .gv-space-photos figure:last-child{grid-column:auto}.giri-private .gv-space-photos figure:last-child img{aspect-ratio:3/2}.giri-private .gv-actions{gap:17px}.giri-private .gv-footer-cols p{font-size:18px}}
/* Dinner photographs are part of each offer, with no separate gallery added. */
.giri-private .gv-dining-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px;min-width:0}
.giri-private .gv-food-head .gv-dining-pair img{width:100%;aspect-ratio:3/4;height:auto;object-fit:cover}
.giri-private .gv-chapter-food .gv-food-aside .gv-dinner-wide{aspect-ratio:16/10;object-position:50% 65%}
.giri-private .gv-table-details{display:grid;grid-template-columns:1fr 1fr;gap:11px;max-width:250px;margin-top:22px}
.giri-private .gv-table-details img{width:100%;aspect-ratio:3/4;object-fit:cover}
.giri-private .gv-dining-collage{display:grid;grid-template-columns:1.5fr 1fr;grid-template-rows:minmax(0,1fr) minmax(0,1fr);gap:8px;height:260px;margin-bottom:23px}
.giri-private .gv-dining-collage figure{min-width:0;min-height:0}
.giri-private .gv-dining-collage .gv-collage-lead{grid-row:1/3}
.giri-private .gv-dining-collage img{width:100%;height:100%;object-fit:cover}
.giri-private .gv-dining-collage img[data-photo="dinner-soup"]{object-position:50% 40%}
.giri-private .gv-dining-collage img[data-photo="dinner-menu-one"]{object-position:50% 55%}
@media(max-width:650px){.giri-private .gv-dining-pair{gap:10px}.giri-private .gv-table-details{max-width:280px}.giri-private .gv-dining-collage{height:280px}}
.giri-private .gv-gallery-heading{display:grid;grid-template-columns:1fr 1fr;gap:30px;align-items:end;margin-bottom:27px}
.giri-private .gv-gallery-heading h2{margin-top:14px}
.giri-private .gv-gallery-heading>div:last-child{justify-self:end;max-width:36ch;font-size:14px}
.giri-private .gv-gallery-heading .gv-caption{margin-top:12px!important}
.giri-private .gv-gallery-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px 14px}
.giri-private .gv-gallery-card{display:block;min-width:0;padding:0;border:0;background:transparent;color:var(--gv-ink);text-align:left;font-family:var(--gv-sans)}
.giri-private .gv-gallery-card img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}
.giri-private .gv-gallery-card[aria-expanded="true"] .gv-gallery-caption{color:var(--gv-blue);border-bottom:1px solid currentColor}
.giri-private .gv-gallery-caption{display:flex;justify-content:space-between;gap:8px;align-items:start;font-size:12px;padding:10px 0 4px;min-height:42px}
.giri-private .gv-gallery-card img[data-photo="dinner-guests"]{object-position:50% 66%}
.giri-private .gv-gallery-card img[data-photo="dinner-menu-one"],.giri-private .gv-gallery-card img[data-photo="dinner-menu-two"]{object-position:50% 65%}
.giri-private .gv-gallery-viewer{grid-column:1/-1;background:var(--gv-soft);padding:18px;min-width:0}
.giri-private .gv-gallery-viewer .gv-gallery-large{width:100%;height:460px;object-fit:contain}
.giri-private .gv-gallery-viewer figcaption{display:flex;justify-content:space-between;gap:22px;align-items:start;padding:14px 0;font-size:13px}
.giri-private .gv-gallery-count{font-size:11px;color:var(--gv-muted);white-space:nowrap;padding-top:2px}
.giri-private .gv-gallery-controls{display:flex;justify-content:space-between;align-items:center;gap:15px;border-top:1px solid var(--gv-rule);padding-top:8px}
.giri-private .gv-gallery-controls button{border:0;background:transparent;color:var(--gv-ink);font-size:13px;min-height:44px;padding:8px 0}
@media(max-width:850px){.giri-private .gv-gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:650px){.giri-private .gv-gallery-heading{grid-template-columns:1fr;gap:20px}.giri-private .gv-gallery-heading>div:last-child{justify-self:start}.giri-private .gv-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 12px}.giri-private .gv-gallery-viewer{padding:12px}.giri-private .gv-gallery-viewer .gv-gallery-large{height:360px}.giri-private .gv-gallery-viewer figcaption{gap:15px;font-size:12px}.giri-private .gv-gallery-controls button{font-size:12px}}
@media(max-width:380px){.giri-private .gv-gallery-viewer .gv-gallery-large{height:300px}.giri-private .gv-gallery-viewer figcaption{flex-direction:column;gap:5px}.giri-private .gv-gallery-controls{gap:10px}}

.giri-private{--gd-space:clamp(22px,4.3vw,48px)}
.giri-private .gd-section{padding:56px var(--gd-space);border-bottom:1px solid var(--gv-rule)}
.giri-private .gd-section h2{margin:14px 0 22px}
.giri-private .gd-section p{max-width:48ch;font-size:15px}
.giri-private .gd-caption{display:flex;justify-content:space-between;gap:18px;font-size:11px;padding-top:12px;color:var(--gv-muted)}
.giri-private .gd-image img{width:100%;height:100%;object-fit:cover}
.giri-private .gd-hero{padding:45px var(--gd-space) 38px}
.giri-private .gd-hero h1{font-size:clamp(54px,8.5vw,98px);line-height:1.02;letter-spacing:-.055em}
.giri-private .gd-hero p{font-size:15px;max-width:43ch}
.giri-private .gd-facts{display:flex;justify-content:space-between;gap:18px;padding:20px var(--gd-space);border-block:1px solid var(--gv-rule);font-size:12px;flex-wrap:wrap}
.giri-private .gd-split{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
.giri-private .gd-split>*{min-width:0}
.giri-private .gd-photo-pair{display:grid;grid-template-columns:1.4fr 1fr;gap:12px;align-items:end}
.giri-private .gd-photo-pair figure:first-child{height:340px}
.giri-private .gd-photo-pair figure:last-child{height:260px}
.giri-private .gd-copy h3{margin-top:22px;margin-bottom:12px}
.giri-private .gd-services{margin-top:24px}
.giri-private .gd-services details{border-top:1px solid var(--gv-rule)}
.giri-private .gd-services summary{min-height:56px;padding:14px 0;font:400 23px/1.3 var(--gv-serif)}
.giri-private .gd-services details p{font-size:13px;padding:0 0 18px}
.giri-private .gd-inline-list{display:flex;gap:12px 24px;flex-wrap:wrap;padding:17px 0;margin-top:22px;border-top:1px solid var(--gv-rule);font-size:12px}
.giri-private .gd-food-note{font-size:12px!important;color:var(--gv-muted);margin-top:20px!important}
.giri-private .gd-gallery-head{display:flex;justify-content:space-between;align-items:end;gap:36px;margin-bottom:26px}
.giri-private .gd-gallery-head h2{margin-bottom:0}
.giri-private .gd-gallery-head p{font-size:13px;max-width:30ch}
.giri-private .gd-album{min-width:0}
.giri-private .gd-album-stage{display:grid;grid-template-columns:1.7fr 1fr;gap:28px;align-items:center}
.giri-private .gd-album-photo{width:100%;height:390px!important;object-fit:contain!important;background:var(--gv-soft)}
.giri-private .gd-album-copy h3{font-size:32px;margin:16px 0 20px}
.giri-private .gd-album-copy p{font-size:13px!important;max-width:30ch}
.giri-private .gd-album-controls{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:22px;border-top:1px solid var(--gv-rule);padding-top:8px}
.giri-private .gd-album-controls button,.giri-private .gd-text-button{border:0;background:transparent;color:inherit;font:400 13px/1.4 var(--gv-sans);padding:10px 0;min-height:44px}
.giri-private .gd-photo-count{font-size:11px;color:var(--gv-muted)}
.giri-private .gd-contact-sheet{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}
.giri-private .gd-thumb{background:transparent;border:0;padding:0;color:inherit;text-align:left;min-width:0;font:400 12px/1.45 var(--gv-sans)}
.giri-private .gd-thumb img{width:100%;height:230px;object-fit:cover;margin-bottom:10px}
.giri-private .gd-thumb span{display:block;padding:4px 0 10px}
.giri-private .gd-gallery-view{margin-top:24px;padding:22px;background:var(--gv-soft)}
.giri-private .gd-gallery-view .gd-album-photo{height:390px!important;background:var(--gv-soft)}
.giri-private .gd-gallery-view .gd-caption{color:var(--gv-ink)}
.giri-private .gd-gallery-view .gd-album-controls{margin-top:12px}
.giri-private .gd-filter{display:flex;gap:20px;flex-wrap:wrap;margin:0 0 23px}
.giri-private .gd-filter button{min-height:44px;border:0;border-bottom:1px solid transparent;background:transparent;padding:9px 0;font:400 14px/1.4 var(--gv-sans);color:var(--gv-muted)}
.giri-private .gd-filter button[aria-pressed=true]{border-color:var(--gv-blue);color:var(--gv-blue)}
.giri-private .gd-gallery-three{grid-template-columns:repeat(3,minmax(0,1fr))}
.giri-private .gd-gallery-three .gd-thumb img{height:240px}
.giri-private .gd-next-step{background:var(--gv-pink)}
.giri-private .gv-booking{padding:46px var(--gd-space);background:var(--gv-pink);gap:40px}
.giri-private .gv-booking-intro h2{font-size:clamp(42px,5.2vw,60px)}
.giri-private .gv-booking-intro .gd-process{margin-top:26px;padding-left:18px;font-size:13px;max-width:34ch}
.giri-private .gd-process li{margin:12px 0;padding-left:3px}
.giri-private .gv-form-wrap{padding:25px;min-height:425px}
.giri-private .gv-essentials{padding:32px var(--gd-space);border-bottom:1px solid var(--gv-rule)}
.giri-private .gv-essentials-grid{gap:26px;margin-top:22px}
.giri-private .gv-essentials-grid h3{font-size:23px}
.giri-private .gv-essentials-grid p{font-size:12px}
.giri-private .gv-faq{padding:42px var(--gd-space)}
.giri-private .gv-faq h2{font-size:43px}
/* Invitation — typographic welcome, one uninterrupted hero, a photographic album. */
.giri-private .gd-invitation .gd-hero{text-align:center;padding-top:49px;padding-bottom:39px}
.giri-private .gd-invitation .gd-hero h1{margin:20px auto 20px;max-width:12ch}
.giri-private .gd-invitation .gd-hero p{margin:auto;max-width:55ch}
.giri-private .gd-invitation .gv-actions{justify-content:center;margin-top:23px}
.giri-private .gd-panorama{padding:0 var(--gd-space) 26px}
.giri-private .gd-panorama .gd-image{height:370px}
.giri-private .gd-invitation .gd-party-copy h2{max-width:11ch;font-size:clamp(42px,5.4vw,63px)}
.giri-private .gd-invitation .gd-party-image{height:360px}
.giri-private .gd-invitation .gd-table{background:var(--gv-soft);grid-template-columns:1.15fr 1fr}
.giri-private .gd-invitation .gd-gallery{background:var(--gv-paper)}
/* Journal — an asymmetric opening and two editorial spreads. */
.giri-private .gd-journal .gd-hero{display:grid;grid-template-columns:1.07fr 1fr;gap:34px;align-items:end;padding-top:37px;padding-bottom:34px}
.giri-private .gd-journal .gd-hero h1{font-size:clamp(56px,7.3vw,82px);margin:23px 0}
.giri-private .gd-journal .gd-hero figure{height:430px}
.giri-private .gd-journal .gd-hero p{max-width:33ch}
.giri-private .gd-journal .gd-hero .gv-actions{gap:19px}
.giri-private .gd-spread-heading{display:grid;grid-template-columns:1fr 2.4fr;gap:36px;align-items:start;margin-bottom:29px}
.giri-private .gd-spread-heading h2{margin:0;max-width:15ch;font-size:clamp(45px,6.1vw,68px)}
.giri-private .gd-spread-heading .gv-eyebrow{padding-top:10px}
.giri-private .gd-party-spread{display:grid;grid-template-columns:2.4fr 1fr;gap:30px;align-items:end}
.giri-private .gd-party-spread .gd-image{height:330px}
.giri-private .gd-margin-note p{font-size:13px;max-width:28ch}
.giri-private .gd-margin-note h3{margin-bottom:13px;font-size:27px}
.giri-private .gd-margin-note .gv-link{margin-top:15px}
.giri-private .gd-journal .gd-table{background:var(--gv-soft)}
.giri-private .gd-table-spread{display:grid;grid-template-columns:1.25fr .73fr 1fr;gap:24px;align-items:end}
.giri-private .gd-table-spread .gd-image:first-child{height:350px}
.giri-private .gd-table-spread .gd-image:nth-child(2){height:285px}
.giri-private .gd-table-spread h3{font-size:25px;margin-bottom:12px}
.giri-private .gd-table-spread p{font-size:13px}
.giri-private .gd-menu-line{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;margin-top:30px;border-top:1px solid var(--gv-rule);padding-top:21px}
.giri-private .gd-menu-line h3{font-size:24px;margin-bottom:10px}
.giri-private .gd-menu-line p{font-size:12px}
/* Open House — a blue welcome, the room in daylight, practical offers. */
.giri-private .gd-openhouse .gd-hero{display:grid;grid-template-columns:1.6fr 1fr;gap:45px;align-items:end;background:var(--gv-blue);color:var(--gv-paper);padding-top:42px;padding-bottom:40px}
.giri-private .gd-openhouse .gd-hero h1{font-size:clamp(58px,7.9vw,90px);margin-top:21px}
.giri-private .gd-openhouse .gd-hero p{max-width:29ch}
.giri-private .gd-openhouse .gd-hero .gv-button{background:var(--gv-paper);color:var(--gv-ink);border-color:var(--gv-paper)}
.giri-private .gd-openhouse .gd-room-photo{height:380px}
.giri-private .gd-openhouse .gd-room-photo img{object-position:center}
.giri-private .gd-openhouse .gd-party{grid-template-columns:1fr 1.1fr;gap:48px}
.giri-private .gd-openhouse .gd-party .gd-image{height:345px}
.giri-private .gd-openhouse .gd-party h2{font-size:clamp(44px,5.8vw,66px)}
.giri-private .gd-dining-band{background:var(--gv-soft);display:grid;grid-template-columns:.85fr 1.4fr;gap:36px;align-items:center}
.giri-private .gd-dining-band .gd-image{height:340px}
.giri-private .gd-dining-band h2{font-size:clamp(41px,4.9vw,55px)}
.giri-private .gd-dining-band .gd-services{margin-top:14px}
.giri-private .gd-dining-band .gd-services summary{font-size:22px;min-height:50px;padding-block:11px}
.giri-private .gd-openhouse .gv-essentials-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:850px){
 .giri-private .gd-split{gap:30px}
 .giri-private .gd-photo-pair figure:first-child{height:290px}
 .giri-private .gd-photo-pair figure:last-child{height:230px}
 .giri-private .gd-journal .gd-hero{gap:25px}
 .giri-private .gd-table-spread{grid-template-columns:1.2fr .8fr;gap:17px}
 .giri-private .gd-table-spread .gd-margin-note{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start}
 .giri-private .gd-table-spread .gd-margin-note p{max-width:45ch}
 .giri-private .gd-contact-sheet{grid-template-columns:repeat(2,minmax(0,1fr))}
 .giri-private .gd-gallery-three{grid-template-columns:repeat(3,minmax(0,1fr))}
 .giri-private .gd-thumb img{height:210px}
 .giri-private .gd-gallery-three .gd-thumb img{height:200px}
 .giri-private .gd-openhouse .gv-essentials-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:650px){
 .giri-private .gd-section{padding:36px 22px}
 .giri-private .gd-hero,.giri-private .gd-journal .gd-hero,.giri-private .gd-openhouse .gd-hero{display:block;padding:34px 22px}
 .giri-private .gd-hero h1,.giri-private .gd-journal .gd-hero h1,.giri-private .gd-openhouse .gd-hero h1{font-size:clamp(48px,13vw,66px)}
 .giri-private .gd-invitation .gd-hero h1{max-width:12ch;margin-block:18px}
 .giri-private .gd-invitation .gd-hero p{text-align:left}
 .giri-private .gd-panorama{padding:0 22px 22px}
 .giri-private .gd-panorama .gd-image{height:240px}
 .giri-private .gd-facts{padding:17px 22px;gap:10px 25px}
 .giri-private .gd-split,.giri-private .gd-invitation .gd-table,.giri-private .gd-openhouse .gd-party,.giri-private .gd-dining-band{grid-template-columns:1fr;gap:28px}
 .giri-private .gd-invitation .gd-party-image,.giri-private .gd-openhouse .gd-party .gd-image{height:260px}
 .giri-private .gd-photo-pair figure:first-child{height:285px}
 .giri-private .gd-photo-pair figure:last-child{height:235px}
 .giri-private .gd-invitation .gd-table .gd-photo-pair{order:2}
 .giri-private .gd-gallery-head{display:block;margin-bottom:22px}
 .giri-private .gd-gallery-head p{margin-top:18px}
 .giri-private .gd-album-stage{grid-template-columns:1fr;gap:17px}
 .giri-private .gd-album-photo{height:310px!important}
 .giri-private .gd-album-copy h3{font-size:27px;margin:9px 0}
 .giri-private .gd-album-copy p{max-width:48ch}
 .giri-private .gd-album-controls{margin-top:15px;gap:10px}
 .giri-private .gd-contact-sheet,.giri-private .gd-gallery-three{grid-template-columns:1fr 1fr;gap:12px}
 .giri-private .gd-thumb img,.giri-private .gd-gallery-three .gd-thumb img{height:190px}
 .giri-private .gd-gallery-three .gd-thumb:last-child{grid-column:1/-1}
 .giri-private .gd-gallery-three .gd-thumb:last-child img{height:230px}
 .giri-private .gd-gallery-view{padding:14px}
 .giri-private .gd-gallery-view .gd-album-photo{height:310px!important}
 .giri-private .gd-journal .gd-hero figure{height:320px;margin-top:27px}
 .giri-private .gd-spread-heading{grid-template-columns:1fr;gap:15px;margin-bottom:24px}
 .giri-private .gd-spread-heading h2{font-size:46px}
 .giri-private .gd-party-spread{grid-template-columns:1fr;gap:25px}
 .giri-private .gd-party-spread .gd-image{height:260px}
 .giri-private .gd-margin-note p{max-width:45ch}
 .giri-private .gd-table-spread .gd-image:first-child{height:280px}
 .giri-private .gd-table-spread .gd-image:nth-child(2){height:230px}
 .giri-private .gd-table-spread .gd-margin-note{display:block}
 .giri-private .gd-menu-line{grid-template-columns:1fr;gap:20px}
 .giri-private .gd-menu-line article+article{border-top:1px solid var(--gv-rule);padding-top:18px}
 .giri-private .gd-openhouse .gd-hero p{margin-top:25px;max-width:43ch}
 .giri-private .gd-openhouse .gd-room-photo{height:260px}
 .giri-private .gd-dining-band .gd-image{height:300px}
 .giri-private .gv-booking{padding:34px 22px;gap:26px}
 .giri-private .gv-form-wrap{padding:21px 18px;min-height:0}
 .giri-private .gv-essentials,.giri-private .gv-faq{padding:34px 22px}
 .giri-private .gd-caption{font-size:11px;flex-wrap:wrap;gap:5px 15px}
}
@media(max-width:380px){
 .giri-private .gd-photo-pair figure:first-child{height:230px}
 .giri-private .gd-photo-pair figure:last-child{height:190px}
 .giri-private .gd-thumb img,.giri-private .gd-gallery-three .gd-thumb img{height:160px}
 .giri-private .gd-openhouse .gv-essentials-grid{grid-template-columns:1fr}
 .giri-private .gd-gallery-view .gd-album-controls{flex-wrap:wrap}
}

.giri-private{--gi-room:#244588}
.giri-private .gi-room{background:var(--gv-paper)}
.giri-private .gi-room-heading{display:grid;grid-template-columns:1.05fr 1fr;gap:40px;align-items:end;margin-bottom:29px}
.giri-private .gi-room-heading h2{margin-bottom:0}
.giri-private .gi-room-heading>p{font-size:14px;max-width:45ch}
.giri-private .gi-room-layout{display:grid;grid-template-columns:1.1fr 1fr;gap:36px;align-items:start}
.giri-private .gi-room-picture{height:390px}
.giri-private .gi-room-pictures{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:end}
.giri-private .gi-room-pictures figure:first-child{height:340px}
.giri-private .gi-room-pictures figure:last-child{height:265px}
.giri-private .gi-room-details{display:grid;grid-template-columns:1fr 1fr;gap:21px 25px}
.giri-private .gi-room-details article{border-top:1px solid var(--gv-rule);padding-top:15px;min-width:0}
.giri-private .gi-room-details h3{font-size:24px;margin-bottom:9px}
.giri-private .gi-room-details p{font-size:13px;line-height:1.6}
.giri-private .gi-technical{border-block:1px solid var(--gv-rule);margin-top:27px}
.giri-private .gi-technical summary{padding:13px 0;min-height:48px;font-size:14px}
.giri-private .gi-technical p{padding-bottom:18px;font-size:13px;max-width:65ch}
.giri-private .gi-room .gd-caption{padding-top:11px}
.giri-private .gi-room-link{margin-top:17px}
.giri-private .gi-services{background:var(--gv-soft)}
.giri-private .gi-services-heading{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:end;margin-bottom:29px}
.giri-private .gi-services-heading h2{margin-bottom:0;max-width:15ch}
.giri-private .gi-services-heading>div:last-child p{font-size:14px;max-width:43ch}
.giri-private .gi-service-note{font-size:12px!important;color:var(--gv-muted);margin-top:13px!important}
.giri-private .gi-service-index{display:grid;grid-template-columns:1fr 1fr;column-gap:40px}
.giri-private .gi-service-row{display:grid;grid-template-columns:35px 1fr;gap:15px;padding:23px 0;border-top:1px solid var(--gv-rule)}
.giri-private .gi-service-row>.gv-eyebrow{padding-top:5px;color:var(--gv-blue)}
.giri-private .gi-service-row h3{font-size:27px;margin-bottom:10px}
.giri-private .gi-service-row p{font-size:13px;max-width:40ch}
.giri-private .gi-service-row:last-child{grid-column:1/-1}
.giri-private .gi-service-groups{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:29px}
.giri-private .gi-service-group{min-width:0}
.giri-private .gi-service-group>figure{height:240px;margin-bottom:23px}
.giri-private .gi-service-group>h3{font-size:32px;margin:12px 0 19px}
.giri-private .gi-service-mini{border-top:1px solid var(--gv-rule);padding:16px 0}
.giri-private .gi-service-mini h4{font:500 15px/1.4 var(--gv-sans);margin-bottom:7px}
.giri-private .gi-service-mini p{font-size:13px}
.giri-private .gi-service-choices{display:grid;grid-template-columns:.8fr 1.2fr;gap:40px;align-items:start}
.giri-private .gi-service-choices>figure{height:430px}
.giri-private .gi-service-choice{display:block;border-top:1px solid var(--gv-rule);padding:18px 0;min-height:66px}
.giri-private .gi-service-choice>span{display:flex;align-items:center;gap:14px;font:400 25px/1.2 var(--gv-serif)}
.giri-private .gi-service-choice input{appearance:auto;width:19px;height:19px;flex-shrink:0;margin:0;accent-color:var(--gv-blue)}
.giri-private .gi-service-choice small{display:block;padding:9px 0 0 33px;font:400 13px/1.6 var(--gv-sans)}
.giri-private .gi-choice-footer{display:flex;gap:22px;align-items:center;flex-wrap:wrap;margin-top:22px}
.giri-private .gi-choice-count{font-size:12px;color:var(--gv-muted)}
.giri-private .gi-gallery{background:var(--gv-paper)}
.giri-private .gi-gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px 15px}
.giri-private .gi-gallery-grid.gi-mosaic{grid-template-columns:repeat(4,minmax(0,1fr))}
.giri-private .gi-gallery-grid.gi-mosaic .gi-photo:first-child,.giri-private .gi-gallery-grid.gi-mosaic .gi-photo:nth-child(6){grid-column:span 2}
.giri-private .gi-photo{display:block;min-width:0;padding:0;border:0;background:transparent;color:inherit;text-align:left;font-family:var(--gv-sans)}
.giri-private .gi-photo img{width:100%;height:200px;object-fit:cover}
.giri-private .gi-mosaic .gi-photo img{height:235px}
.giri-private .gi-photo .gi-photo-label{display:flex;gap:8px;justify-content:space-between;min-height:44px;padding:11px 0 7px;font-size:12px}
.giri-private .gi-photo[aria-expanded=true] .gi-photo-label{color:var(--gv-blue);border-bottom:1px solid currentColor}
.giri-private .gi-photo img[data-photo=dinner-guests]{object-position:50% 62%}
.giri-private .gi-gallery-bottom{display:flex;justify-content:space-between;gap:25px;align-items:center;flex-wrap:wrap;padding-top:22px;margin-top:15px;border-top:1px solid var(--gv-rule)}
.giri-private .gi-gallery-bottom p{font-size:12px;color:var(--gv-muted)}
.giri-private .gi-photo-viewer{padding:20px;background:var(--gv-soft);margin-top:24px}
.giri-private .gi-photo-viewer img{width:100%;height:430px;object-fit:contain}
.giri-private .gi-photo-viewer figcaption{display:flex;align-items:start;justify-content:space-between;gap:20px;font-size:13px;padding:14px 0}
.giri-private .gi-viewer-controls{display:flex;justify-content:space-between;gap:16px;border-top:1px solid var(--gv-rule);padding-top:9px}
.giri-private .gi-photo-viewer button{min-height:44px;padding:8px 0;background:transparent;border:0;color:inherit;font-size:13px}
.giri-private .gi-room-blue{background:var(--gi-room);color:var(--gv-paper)}
.giri-private .gi-room-blue .gi-room-heading{grid-template-columns:1.3fr 1fr}
.giri-private .gi-room-blue .gi-room-layout{grid-template-columns:1fr 1fr}
.giri-private .gi-room-blue .gi-room-picture{height:370px}
.giri-private .gi-room-blue .gi-room-details article,.giri-private .gi-room-blue .gi-technical{border-color:#a5b3d1}
.giri-private .gi-room-blue .gd-caption{color:var(--gv-paper)}
.giri-private .gi-room-blue .gv-link{color:var(--gv-paper)}
.giri-private .gi-room-blue em{color:var(--gv-pink)}
.giri-private .gi-service-fields{display:grid;grid-template-columns:1fr 1fr;gap:4px 16px;grid-column:1/-1;margin-bottom:10px}
.giri-private .gi-service-fields legend{grid-column:1/-1;font-size:13px;padding:0 0 8px;font-weight:500}
.giri-private .gi-service-fields label{display:flex;gap:9px;align-items:center;min-height:44px;font-size:12px}
.giri-private .gi-service-fields input{width:17px;height:17px;accent-color:var(--gv-blue);margin:0}
.giri-private .gi-service-fields{border:0;padding:0;min-width:0}
.giri-private .gi-matched .gi-room-heading{grid-template-columns:.8fr 1.2fr}
.giri-private .gi-matched .gi-room-layout{grid-template-columns:1fr 1.1fr}
.giri-private .gi-matched .gi-room-details{gap:18px 27px}
.giri-private .gi-table-compact .gd-photo-pair figure:first-child{height:320px}
.giri-private .gi-table-compact .gd-photo-pair figure:last-child{height:245px}
@media(max-width:850px){
 .giri-private .gi-service-groups{gap:20px}
 .giri-private .gi-service-group>figure{height:190px}
 .giri-private .gi-room-layout{gap:25px}
 .giri-private .gi-gallery-grid.gi-mosaic{grid-template-columns:repeat(3,minmax(0,1fr))}
 .giri-private .gi-gallery-grid.gi-mosaic .gi-photo:nth-child(6){grid-column:span 1}
 .giri-private .gi-service-choices{grid-template-columns:.85fr 1.15fr;gap:26px}
}
@media(max-width:650px){
 .giri-private .gi-room-heading,.giri-private .gi-room-layout,.giri-private .gi-services-heading,.giri-private .gi-service-choices,.giri-private .gi-room-blue .gi-room-heading,.giri-private .gi-room-blue .gi-room-layout,.giri-private .gi-matched .gi-room-heading,.giri-private .gi-matched .gi-room-layout{grid-template-columns:1fr;gap:25px}
 .giri-private .gi-room-picture,.giri-private .gi-room-blue .gi-room-picture{height:280px}
 .giri-private .gi-room-pictures figure:first-child{height:260px}
 .giri-private .gi-room-pictures figure:last-child{height:210px}
 .giri-private .gi-room-details{gap:21px 18px}
 .giri-private .gi-service-index{grid-template-columns:1fr}
 .giri-private .gi-service-groups{grid-template-columns:1fr;gap:25px}
 .giri-private .gi-service-group{display:grid;grid-template-columns:.75fr 1fr;gap:0 22px;align-items:start}
 .giri-private .gi-service-group>figure{grid-column:1;grid-row:1/6;height:275px;margin:0}
 .giri-private .gi-service-group>span,.giri-private .gi-service-group>h3,.giri-private .gi-service-group>.gi-service-mini{grid-column:2}
 .giri-private .gi-service-group>h3{margin-top:8px;font-size:29px}
 .giri-private .gi-service-choices>figure{height:275px}
 .giri-private .gi-gallery-grid,.giri-private .gi-gallery-grid.gi-mosaic{grid-template-columns:1fr 1fr;gap:18px 12px}
 .giri-private .gi-gallery-grid.gi-mosaic .gi-photo:first-child{grid-column:span 2}
 .giri-private .gi-photo img,.giri-private .gi-mosaic .gi-photo img{height:180px}
 .giri-private .gi-gallery-grid.gi-mosaic .gi-photo:first-child img{height:240px}
 .giri-private .gi-photo-viewer{padding:12px}
 .giri-private .gi-photo-viewer img{height:330px}
 .giri-private .gi-services-heading{margin-bottom:25px}
 .giri-private .gi-services-heading h2{max-width:none}
 .giri-private .gi-table-compact .gd-photo-pair figure:first-child{height:250px}
 .giri-private .gi-table-compact .gd-photo-pair figure:last-child{height:195px}
}
@media(max-width:380px){
 .giri-private .gi-room-details{grid-template-columns:1fr}
 .giri-private .gi-service-group{grid-template-columns:1fr}
 .giri-private .gi-service-group>figure{grid-row:auto;height:235px;margin-bottom:18px}
 .giri-private .gi-service-group>span,.giri-private .gi-service-group>h3,.giri-private .gi-service-group>.gi-service-mini{grid-column:1}
 .giri-private .gi-service-fields{grid-template-columns:1fr}
 .giri-private .gi-photo img,.giri-private .gi-mosaic .gi-photo img{height:150px}
 .giri-private .gi-photo-viewer figcaption{flex-direction:column;gap:6px}
 .giri-private .gi-viewer-controls{gap:10px}
}

.giri-private{scroll-margin-top:100px}
.giri-private section[id]{scroll-margin-top:110px}
.giri-private .gi-gallery-item img{width:100%;height:220px;object-fit:cover}
.giri-private .gi-gallery-item{min-width:0}
.giri-private .gi-gallery-item .gi-photo-label{display:flex;gap:8px;justify-content:space-between;padding:11px 0 7px;min-height:44px;font-size:12px}
.giri-private .gi-gallery-item .gi-photo-label[aria-expanded=true]{color:var(--gv-blue);border-bottom:1px solid currentColor}
.giri-private .gv-inquiry-form .gv-form-panel + .gv-form-panel{margin-top:25px}
.giri-private .gv-inquiry-form[novalidate] .gv-form-panel + .gv-form-panel{margin-top:0}
.giri-private .gv-review{max-width:none}

.giri-private .gv-button,.giri-private .gv-link,.giri-private button{cursor:pointer}
@media(max-width:650px){.giri-private .gi-gallery-item img{height:180px}}
@media(max-width:380px){.giri-private .gi-gallery-item img{height:150px}}

/* Proposed additions to the approved GIRI 3.6.2 design. */
.gp-chapter-nav{display:flex;flex-wrap:wrap;gap:8px 30px;padding:8px var(--pad);border-bottom:1px solid var(--hairline);font:500 13px/1.4 var(--sans)}
.gp-chapter-nav a{display:inline-flex;align-items:center;min-height:44px;color:inherit}
.gp-chapter-nav a:hover{color:var(--news-blue)}
.gp-about-people{display:grid;grid-template-columns:1.12fr 1fr;gap:clamp(30px,6vw,90px);padding:64px var(--pad);border-top:1px solid var(--hairline);align-items:center}
.gp-about-people figure{min-width:0}
.gp-about-people img{display:block;width:100%;height:auto;aspect-ratio:5/4;object-fit:cover}
.gp-photo-caption{display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;font:400 12px/1.5 var(--sans);padding-top:13px}
.gp-about-people h2,.gp-about-food h2{font:400 clamp(38px,4.5vw,66px)/1.08 var(--serif);letter-spacing:-.04em;margin:19px 0 24px}
.gp-about-people p,.gp-about-food p{font:400 16px/1.7 var(--sans);max-width:48ch;margin:0 0 18px}
.gp-team-signoff{border-top:1px solid var(--hairline);padding-top:20px;margin-top:24px}
.gp-team-signoff span{display:block;font:500 11px/1.5 var(--sans);text-transform:uppercase;letter-spacing:.1em;margin-bottom:8px}
.gp-team-signoff strong{font:400 26px/1.3 var(--serif)}
.gp-people-actions{display:flex;align-items:center;flex-wrap:wrap;gap:14px 26px;margin-top:26px}
.gp-about-food{padding:58px var(--pad);display:grid;grid-template-columns:1.2fr .9fr;gap:clamp(28px,6vw,90px);align-items:center;background:var(--news-blue);color:var(--paper)}
.gp-about-food .micro-label{color:var(--paper)}
.gp-about-food figure img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;height:auto}
.gp-about-food .quiet-link{color:var(--paper);border-color:var(--paper)}
.gp-about-food .gp-chef-credit{font-size:13px;border-top:1px solid rgba(245,243,236,.5);padding-top:18px;margin-top:24px}
.gp-about-food .gp-chef-credit strong{font-weight:500}
.gp-about-food .gp-photo-caption{opacity:.9}
.gp-menu-example{padding:0 0 18px;border-top:1px solid var(--gv-rule)}
.gp-menu-example .gp-sample-label{display:block;font:500 10px/1.6 var(--sans);letter-spacing:.08em;text-transform:uppercase;padding-top:16px;margin-bottom:9px}
.gp-menu-example dl{margin:0;display:grid;gap:12px}
.gp-menu-example dl div{display:grid;grid-template-columns:58px minmax(0,1fr);gap:14px;align-items:start}
.gp-menu-example dt{font:500 10px/1.6 var(--sans);text-transform:uppercase;letter-spacing:.04em;padding-top:2px}
.gp-menu-example dd{margin:0;font:400 14px/1.55 var(--sans)}
.gp-menu-example ul{margin:0;padding:0;list-style:none;display:grid;gap:9px}
.gp-menu-example li{font:400 14px/1.6 var(--sans)}
.giri-private .gp-menu-note{font:400 12px/1.6 var(--sans);margin-top:13px!important;max-width:48ch}
.giri-private .gp-food-author{font-size:13px;margin-top:14px!important}
.gp-room-tabs{display:flex;flex-wrap:wrap;gap:6px 20px;border-bottom:1px solid var(--gv-rule);margin-top:16px;margin-bottom:18px}
.giri-private .gp-room-tabs button{padding:10px 0;min-height:44px;border:0;border-bottom:2px solid transparent;background:none;color:var(--gv-muted);font:500 13px/1.4 var(--sans)}
.giri-private .gp-room-tabs button[aria-selected=true]{color:var(--gv-blue);border-bottom-color:var(--gv-blue)}
.gp-room-panel img{display:block;width:100%;height:auto;aspect-ratio:16/11;object-fit:cover}
.giri-private .gp-room-panel h3{font:400 25px/1.3 var(--serif);margin:17px 0 8px}
.giri-private .gp-room-panel p{font:400 13px/1.65 var(--sans);max-width:50ch;margin-bottom:10px}
.gp-room-panel .gp-photo-caption{border-bottom:1px solid var(--gv-rule);padding-bottom:13px;padding-top:11px}
.giri-private .gp-scope{display:grid;grid-template-columns:.85fr 1.45fr;gap:40px;background:var(--gv-soft)}
.giri-private .gp-scope h2{font-size:clamp(36px,4vw,54px);margin-bottom:18px}
.gp-scope-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px}
.giri-private .gp-scope-grid h3{font:400 27px/1.3 var(--serif);margin:0 0 16px}
.gp-scope-grid ul{list-style:none;padding:0;margin:0}
.gp-scope-grid li{border-top:1px solid var(--gv-rule);padding:12px 0;font:400 14px/1.6 var(--sans)}
.giri-private .gp-scope-note{font-size:12px!important;margin-top:15px!important;color:var(--gv-muted)}
.gp-about-extra section[id]{scroll-margin-top:24px}
.gp-chapter-nav + .section-divider{border-top:0}
@media(max-width:950px){.giri-private .gp-scope{grid-template-columns:1fr;gap:24px}.gp-about-people{gap:35px}.gp-about-food{gap:35px}}
@media(max-width:650px){.gp-chapter-nav{gap:2px 20px;padding-inline:22px}.gp-about-people,.gp-about-food{grid-template-columns:1fr;padding:38px 22px;gap:26px}.gp-about-people h2,.gp-about-food h2{font-size:43px}.gp-about-people p,.gp-about-food p{font-size:15px}.gp-about-food figure{order:2}.gp-about-people img{aspect-ratio:4/3}.gp-scope-grid{grid-template-columns:1fr;gap:25px}.gp-room-panel img{aspect-ratio:4/3}.gp-room-tabs{gap:6px 25px}.gp-menu-example dl div{grid-template-columns:50px minmax(0,1fr);gap:9px}.gp-menu-example dd,.gp-menu-example li{font-size:13px}.gp-photo-caption{font-size:11px}}

/* Proposed visual refinements, for the live theme. */
body.gv-refined .edition-eyebrow,
body.gv-refined .micro-label { font-size: 11px; line-height: 1.5; }
body.gv-refined .site-header nav a { font-size: 14px; }
body.gv-refined .open-status { font-size: 12px; }
body.gv-refined .weekly-event-meta { font-size: 14px; line-height: 1.5; }
body.gv-refined .upcoming-event-main > span { font-size: 11px; }
body.gv-refined .giri-opening-photo figcaption > span { font-size: 11px; }
body.gv-refined .baci-sleeve-meta { font-size: 11px; }

/* Menu: keep the paper and the drawings, give the lists a quiet surface. */
.gv-menu .final-menu-cover { grid-template-columns: 1fr 1fr; gap: 7%; padding-block: 48px; min-height: 0; align-items: center; }
.gv-menu .final-menu-cover > div { min-width: 0; }
.gv-menu .final-menu-cover h1 { max-width: 530px; margin-block: 26px 24px; }
.gv-menu .final-menu-cover p { font-size: clamp(26px,3.2vw,46px); line-height: 1.2; letter-spacing: -.03em; }
.gv-menu .menu-edition-note { display: block; font-size: 14px; margin-top: 26px; }
.gv-menu-photo { margin: 0; min-width: 0; }
.gv-menu-photo img { display: block; width: 100%; height: auto; aspect-ratio: 4/3; object-fit: cover; }
.gv-menu-photo figcaption { display: flex; justify-content: space-between; gap: 16px; padding-top: 13px; font: 400 12px/1.5 var(--sans); }
.gv-menu .menu-category-nav { background: var(--news-pink); justify-content: flex-start; gap: 6px 36px; padding-block: 8px; }
.gv-menu .menu-category-nav a { font-size: 14px; min-height: 46px; display: flex; align-items: center; }
.gv-menu .designer-menu-section { background: #f8edf0; padding-top: 14px; }
.gv-menu .designer-menu-grid { grid-template-columns: repeat(2,minmax(0,1fr)); column-gap: 7%; row-gap: 10px; }
.gv-menu .designer-menu-group { min-width: 0; padding-top: 36px; }
.gv-menu .designer-menu-group-heading { margin-bottom: 20px; align-items: baseline; }
.gv-menu .designer-menu-group-heading > span { font-size: 19px; }
.gv-menu .designer-menu-group h2 { font-size: clamp(30px,3vw,43px); }
.gv-menu .designer-menu-item { min-height: 72px; padding-block: 16px; gap: 16px; border-bottom-color: #c9b7bd; }
.gv-menu .designer-menu-item h3 { font-size: 19px; line-height: 1.3; font-weight: 500; }
.gv-menu .designer-menu-item p { font-size: 14px; line-height: 1.5; color: #51434a; }
.gv-menu .designer-menu-item strong { font-size: 17px; line-height: 1.5; flex-shrink: 0; white-space: nowrap; }
.gv-menu .designer-menu-item > div { min-width: 0; }
.gv-menu .gv-coffee-extras { display: flex; justify-content: space-between; gap: 10px 20px; flex-wrap: wrap; margin-top: 18px; padding: 18px 0; border-block: 1px solid #c9b7bd; }
.gv-menu .gv-coffee-extras h3 { width: 100%; font: 500 12px/1.5 var(--sans); letter-spacing: .07em; text-transform: uppercase; margin: 0; }
.gv-menu .gv-coffee-extras p { margin: 0; font: 400 14px/1.5 var(--sans); }
.gv-menu .gv-menu-wine { margin: 36px 0 0; align-self: start; }
.gv-menu .gv-menu-wine img { display: block; width: 100%; height: auto; aspect-ratio: 4/3; object-fit: cover; }
.gv-menu .gv-menu-wine figcaption { padding-top: 16px; font: 400 15px/1.55 var(--sans); }
.gv-menu .gv-menu-wine figcaption strong { display: block; font: 400 29px/1.25 var(--serif); letter-spacing: -.03em; margin-bottom: 8px; }
.gv-menu .menu-signoff { padding-top: 50px; }
.gv-menu .designer-menu-footnote { font-size: 14px; }

/* BACI: an editorial shelf, with more room for the artwork. */
.gv-baci .baci-featured .baci-cover-record { grid-template-columns: 250px minmax(0,1fr); gap: 42px; }
.gv-baci .baci-featured .baci-cover-record figcaption { align-items: center; }
.gv-baci .baci-featured .baci-cover-record h2 { font-size: clamp(34px,3.3vw,48px); line-height: 1.1; }
.gv-baci .baci-featured .baci-cover-record p { font-size: 14px; margin-block: 14px 20px; }
.gv-baci .baci-feature-play { min-height: 48px; padding: 14px 20px; font-size: 14px; }
.gv-baci .baci-section-heading { gap: 32px; }
.gv-baci .baci-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 42px; border-top: 1px solid var(--ink); }
.gv-baci .baci-archive .baci-archive-record { position: relative; display: grid; grid-template-columns: 136px minmax(0,1fr); grid-template-rows: auto auto; gap: 18px 22px; padding: 26px 0; min-width: 0; }
.gv-baci .baci-archive .baci-archive-record[hidden] { display: none; }
.gv-baci .baci-archive-art { width: 136px; height: 136px; grid-row: 1/3; object-fit: cover; }
.gv-baci .baci-archive-record-copy { min-width: 0; align-self: start; }
.gv-baci .baci-archive .baci-archive-code { font: 500 11px/1.5 var(--sans)!important; letter-spacing: .06em; }
.gv-baci .baci-archive-record h3 { font: 400 clamp(22px,2.1vw,29px)/1.16 var(--serif); letter-spacing: -.025em; margin: 9px 0 10px; overflow-wrap: anywhere; }
.gv-baci .baci-archive-record-copy > p { font-size: 13px; line-height: 1.5; margin: 0; color: #54564c; }
.gv-baci .baci-archive-actions { grid-column: 2; display: flex; flex-direction: row; gap: 8px; flex-wrap: wrap; justify-content: start; align-self: end; }
.gv-baci .baci-archive-actions button,.gv-baci .baci-archive-actions a { padding: 10px 12px; min-height: 44px; font-size: 12px; }
.gv-baci .baci-archive-record.is-selected::before { content: ''; position: absolute; left: -13px; top: 26px; bottom: 26px; width: 3px; background: var(--news-blue); }
.gv-baci .baci-archive-record.is-selected h3 { color: var(--news-blue); }
.gv-baci [data-soundcloud-play][aria-pressed=true] { background: var(--news-blue); color: var(--paper); border-color: var(--news-blue); }
.gv-baci .baci-archive-count { font-size: 13px; }
.gv-baci .baci-search label { font-size: 12px; }
.gv-baci .baci-search input { font-size: 16px; }
.gv-baci .baci-listening-note { font-size: 13px; line-height: 1.6; }
.gv-baci .gv-listening { display: grid; grid-template-columns: 72px minmax(0,1fr) auto; gap: 24px; align-items: center; margin: 0 var(--pad) 32px; padding: 20px 0; border-block: 1px solid var(--hairline); }
.gv-baci .gv-listening img { width: 72px; height: 72px; object-fit: cover; }
.gv-baci .gv-listening span { font: 500 11px/1.5 var(--sans); letter-spacing: .08em; }
.gv-baci .gv-listening h3 { font: 400 25px/1.2 var(--serif); letter-spacing: -.025em; margin: 5px 0 6px; }
.gv-baci .gv-listening p { font: 400 13px/1.5 var(--sans); margin: 0; }
.gv-baci .gv-listening .quiet-link { font-size: 13px; min-height: 44px; display: inline-flex; align-items: center; }

/* Programme: quieter structure, a visible current day. */
.gv-programme .giri-programme-calendar { border-color: #bcbcb0; }
.gv-programme .giri-calendar-weekday { border-color: #bcbcb0; background: #edeae2; font-size: 12px; }
.gv-programme .giri-calendar-day { border-color: #c6c5b9; }
.gv-programme .giri-calendar-day.is-past-date { min-height: 94px; background: #f0eee7; }
.gv-programme .giri-calendar-day.is-past-date > time { color: #797b70; }
.gv-programme .giri-calendar-day.gv-today > time { display: flex; justify-content: space-between; align-items: center; color: var(--news-blue); font-weight: 400; }
.gv-programme .gv-today-label { font: 500 11px/1.5 var(--sans); letter-spacing: .08em; text-transform: uppercase; }
.gv-programme .giri-calendar-day.gv-today { background: #edf0f6; }
.gv-programme .giri-calendar-event { background: #eeece4; }
.gv-programme .gv-today .giri-calendar-event { background: #dde5f2; }
.gv-programme .giri-calendar-event:hover { background: #e7b5c7; color: var(--ink); }
.gv-programme .giri-calendar-event strong { font-size: 23px; line-height: 1.25; }
.gv-programme .giri-calendar-event > span { font-size: 14px; }
.gv-programme .giri-programme-feature-column .giri-next-copy h2 { font-size: 36px; line-height: 1.12; }
.gv-programme .giri-next-eyebrow { font-size: 11px; }
.gv-programme .giri-next-admission { font-size: 14px; }
.gv-programme .programme-detail-date > span,.gv-programme .programme-detail-date small { font-size: 12px; }
.gv-programme .programme-announcement { padding: 13px 18px; background: var(--news-blue); color: var(--paper); border: 1px solid var(--news-blue); font-size: 14px; min-height: 48px; }
.gv-programme .programme-announcement:hover { background: var(--ink); border-color: var(--ink); }

/* Shared footer: map and photograph remain above all practical information. */
footer.gv-footer { padding: 28px var(--pad) 20px!important; }
.gv-footer .footer-topline { font-size: 11px; padding-bottom: 16px; }
.gv-footer .consent-placeholder { grid-template-columns: minmax(0,.82fr) minmax(0,1.18fr); gap: 56px; padding-block: 28px; }
.gv-footer .giri-address-print { margin: 0; max-width: 440px; }
.gv-footer .giri-address-print img { aspect-ratio: 16/9; width: 100%; object-fit: cover; }
.gv-footer .giri-address-print figcaption { font-size: 11px; margin-top: 10px; }
.gv-footer .consent-placeholder > div { max-width: 620px; }
.gv-footer .consent-placeholder h3 { font-size: clamp(34px,3.6vw,52px); margin: 0 0 14px; }
.gv-footer .consent-placeholder p { font-size: 15px; margin: 0; }
.gv-footer .consent-placeholder .map-privacy-note { font-size: 12px; line-height: 1.55; margin: 12px 0 18px; max-width: 61ch; }
.gv-footer .consent-actions .line-button { font-size: 13px; min-height: 46px; }
.gv-footer .footer-columns { grid-template-columns: .9fr 1.2fr .9fr; }
.gv-footer .footer-columns > div { padding: 22px 28px; }
.gv-footer .footer-columns > div:first-child { padding-left: 0; }
.gv-footer .footer-columns .micro-label { font-size: 11px; margin-bottom: 12px; }
.gv-footer .footer-columns > div p { font-size: 22px; line-height: 1.35; margin: 10px 0; }
.gv-footer .footer-columns > div a { font-size: 14px; min-height: 40px; }
.gv-footer .gv-opening-hours { display: grid; grid-template-columns: 1fr; gap: 16px; margin-top: 10px; }
.gv-footer .gv-opening-hours p { margin: 0!important; font-size: 21px!important; }
.gv-footer .gv-opening-hours p small { display: block; font: 400 14px/1.6 var(--sans); margin-top: 4px; }
.gv-footer .footer-legal { padding-block: 12px; gap: 8px 24px; }
.gv-footer .footer-legal a,.gv-footer .footer-legal button { font-size: 13px; min-height: 44px; }
.gv-footer .footer-bottom { padding-top: 16px; font-size: 11px; }
.gv-footer .footer-bottom a { min-height: 36px; display: flex; align-items: center; }

@media(max-width:1050px) {
  .gv-baci .baci-list { gap: 0 28px; }
  .gv-baci .baci-archive .baci-archive-record { grid-template-columns: 108px minmax(0,1fr); gap: 14px 18px; }
  .gv-baci .baci-archive-art { width: 108px; height: 108px; }
  .gv-baci .baci-archive-record h3 { font-size: 25px; }
  .gv-footer .consent-placeholder { gap: 32px; }
  .gv-footer .footer-columns > div { padding-inline: 18px; }
}
@media(max-width:760px) {
  .gv-menu .final-menu-cover { gap: 28px; padding-block: 32px; }
  .gv-menu .final-menu-cover p { font-size: 26px; }
  .gv-menu .menu-edition-note { font-size: 12px; }
  .gv-menu .designer-menu-grid { column-gap: 34px; }
  .gv-menu .designer-menu-item h3 { font-size: 18px; }
  .gv-menu .designer-menu-item p { font-size: 13px; }
  .gv-menu .designer-menu-item strong { font-size: 16px; }
  .gv-baci .baci-list { grid-template-columns: 1fr; }
  .gv-baci .baci-featured .baci-cover-record { grid-template-columns: 150px minmax(0,1fr); gap: 28px; }
  .gv-baci .baci-featured .baci-cover-record h2 { font-size: 32px; }
  .gv-baci .baci-featured .baci-cover-record figcaption { flex-direction: column; align-items: start; gap: 16px; }
  .gv-baci .gv-listening { grid-template-columns: 56px minmax(0,1fr); gap: 18px; }
  .gv-baci .gv-listening img { width: 56px; height: 56px; }
  .gv-baci .gv-listening > a { grid-column: 2; }
  .gv-programme .giri-programme-feature-column .giri-next-copy h2 { font-size: 34px; }
  .gv-footer .consent-placeholder { grid-template-columns: 1fr; gap: 24px; }
  .gv-footer .giri-address-print { max-width: none; }
  .gv-footer .giri-address-print img { max-height: 240px; }
}
@media(max-width:600px) {
  body.gv-refined .weekly-event-meta { font-size: 12px!important; }
  body.gv-refined .giri-opening-photo figcaption > span { font-size: 11px; max-width: 22ch; }
  .gv-menu .final-menu-cover { grid-template-columns: 1fr; gap: 28px; }
  .gv-menu .final-menu-cover h1 { max-width: 320px; margin-block: 20px; }
  .gv-menu .final-menu-cover p { font-size: 30px; margin-bottom: 12px; }
  .gv-menu .menu-edition-note { margin-top: 14px; }
  .gv-menu-photo img { aspect-ratio: 16/10; }
  .gv-menu-photo figcaption { font-size: 11px; }
  .gv-menu .menu-category-nav { gap: 0 24px; }
  .gv-menu .menu-category-nav a { font-size: 13px; min-height: 46px; }
  .gv-menu .designer-menu-grid { grid-template-columns: 1fr; gap: 8px; }
  .gv-menu .designer-menu-group { padding-top: 30px; }
  .gv-menu .designer-menu-group h2 { font-size: 34px; }
  .gv-menu .designer-menu-group-heading { margin-bottom: 14px; }
  .gv-menu .designer-menu-item { min-height: 70px; }
  .gv-menu .designer-menu-item h3 { font-size: 18px; }
  .gv-menu .designer-menu-item p { font-size: 14px; }
  .gv-menu .gv-menu-wine { margin-top: 24px; }
  .gv-menu .gv-menu-wine img { aspect-ratio: 4/3; }
  .gv-menu .designer-menu-footnote { font-size: 13px; }
  .gv-baci .baci-featured .baci-cover-record { grid-template-columns: 110px minmax(0,1fr); gap: 20px; }
  .gv-baci .baci-featured .baci-cover-record h2 { font-size: 29px; }
  .gv-baci .baci-featured .baci-cover-record p { font-size: 13px; }
  .gv-baci .baci-feature-play { font-size: 13px; }
  .gv-baci .baci-archive .baci-archive-record { grid-template-columns: 104px minmax(0,1fr); gap: 14px 18px; padding-block: 24px; }
  .gv-baci .baci-archive-art { width: 104px; height: 104px; }
  .gv-baci .baci-archive-record h3 { font-size: 23px; }
  .gv-baci .baci-archive-record-copy > p { font-size: 13px; }
  .gv-baci .baci-archive-actions { gap: 8px; }
  .gv-baci .baci-archive-actions a,.gv-baci .baci-archive-actions button { font-size: 12px; padding-inline: 11px; }
  .gv-baci .baci-archive .baci-archive-code { font-size: 11px!important; letter-spacing: .03em; }
  .gv-baci .gv-listening h3 { font-size: 23px; }
  .gv-programme .giri-programme-feature-column .giri-next-copy h2 { font-size: 30px; }
  .gv-footer .footer-topline { font-size: 10px; gap: 18px; }
  .gv-footer .consent-placeholder { display: flex; gap: 22px; padding-block: 24px; }
  .gv-footer .giri-address-print img { max-height: 190px; }
  .gv-footer .giri-address-print figcaption { font-size: 11px; }
  .gv-footer .consent-placeholder h3 { font-size: 37px; }
  .gv-footer .consent-actions { display: flex; flex-wrap: wrap; }
  .gv-footer .consent-actions .line-button { flex: 1 1 140px; text-align: center; justify-content: center; padding-inline: 12px; font-size: 12px; }
  .gv-footer .footer-columns { grid-template-columns: 1fr 1fr; }
  .gv-footer .footer-columns > div { padding: 20px 0; }
  .gv-footer .footer-columns > div:nth-child(2) { padding-left: 20px; }
  .gv-footer .footer-columns > div p { font-size: 21px; }
  .gv-footer .gv-opening-hours p { font-size: 19px!important; }
  .gv-footer .gv-opening-hours p small { font-size: 13px; }
  .gv-footer .footer-columns > div:last-child { grid-column: 1/-1; }
  .gv-footer .footer-columns .micro-label { font-size: 11px; }
  .gv-footer .footer-legal { gap: 0 18px; }
  .gv-footer .footer-legal a,.gv-footer .footer-legal button { font-size: 12px; }
  .gv-footer .footer-bottom { font-size: 11px; }
}
@media(max-width:360px) {
  .gv-baci .baci-featured .baci-cover-record { grid-template-columns: 86px minmax(0,1fr); gap: 16px; }
  .gv-baci .baci-featured .baci-cover-record h2 { font-size: 26px; }
  .gv-baci .baci-archive .baci-archive-record { grid-template-columns: 84px minmax(0,1fr); gap: 12px 16px; }
  .gv-baci .baci-archive-art { width: 84px; height: 84px; }
  .gv-baci .baci-archive-record h3 { font-size: 22px; }
  .gv-baci .baci-archive-actions a,.gv-baci .baci-archive-actions button { min-height: 44px; }
}
@media(prefers-reduced-motion:reduce) { .gv-refined * { scroll-behavior: auto!important; } }

/* Practical additions, using the existing GIRI type and colour system. */
.giri-language-switch{display:flex!important;align-items:center;gap:10px;font:500 12px/1.4 var(--sans);white-space:nowrap}
.giri-language-switch a{display:inline-flex;align-items:center;min-height:44px;border-bottom:1px solid transparent}
.giri-language-switch a[aria-current=true]{border-bottom-color:var(--ink)}
.giri-german-visit{display:block;margin-top:6px;font-size:12px!important;line-height:1.5}
.gv-error-summary{margin-bottom:24px;scroll-margin-top:130px}
.gv-error-summary p{margin:8px 0}.gv-error-summary ul{padding-left:20px;margin:10px 0 0}.gv-error-summary li{margin-block:6px}
.gv-error-summary a{text-decoration:underline;text-underline-offset:3px}
.gv-field input[aria-invalid=true],.gv-field select[aria-invalid=true],.gv-field textarea[aria-invalid=true]{border-color:var(--red-pencil);border-width:2px}
.gv-field .gv-field-error{font-size:13px;line-height:1.5;color:var(--red-pencil);opacity:1}
.gv-reply-note{font:400 14px/1.5 var(--sans);margin-top:20px}
.giri-venue-access{margin-top:25px;border-top:1px solid var(--hairline);padding-top:22px}
.giri-venue-access h3{font:400 27px/1.2 var(--serif);margin-bottom:16px}
.giri-access-facts dt{font-weight:500}.giri-access-facts dd{overflow-wrap:anywhere}
.giri-access-reviewed{font-size:12px!important}
.giri-event-share{margin-top:25px}.giri-event-share button{min-height:44px}.giri-event-share p{font:400 13px/1.5 var(--sans);margin:8px 0}
.giri-event-share label{display:block;font:400 13px/1.5 var(--sans)}.giri-event-share input{display:block;width:100%;min-width:0;font:400 16px/1.5 var(--sans);padding:10px;border:1px solid var(--hairline);background:var(--paper);color:var(--ink)}
html[lang=de] .giri-private h1,html[lang=de] .giri-private h2,html[lang=de] .page-shell h2{overflow-wrap:anywhere}
.gp-food-author{font:400 13px/1.6 var(--sans);margin-top:20px}
@media(max-width:600px){.giri-language-switch{gap:8px;margin-left:auto}.giri-language-switch a{font-size:12px}.header-tools{gap:12px}}

.programme-detail-copy h2 a{color:inherit;text-decoration:none}.programme-detail-copy h2 a:hover{text-decoration:underline;text-underline-offset:.12em}
