/* 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; } }
