.fest-logo{background-size:561px 306px;max-width:125px;width:115px;height:88px;background-color:transparent;border-radius:0}
.logo-0{background-position:-10px -40px;width:106px;height:45px}
.logo-1{background-position:-119px -15px;height:78px}
.logo-2{background-position:-248px -15px;width:95px;height:76px}
.logo-3{background-position:-344px -15px;width:95px;height:76px}
.logo-4{background-position:-443px -15px;width:90px;height:77px}
.logo-5{background-position:-30px -174px;width:110px;height:65px}
.logo-6{background-position:-165px -168px;width:91px;height:66px}
.logo-7{background-position:-291px -172px;width:102px;height:70px}
.logo-8{background-position:-427px -175px;width:100px;height:78px}
.winter-name .fest-logo{flex-basis:110px;flex-shrink:0}
.concept-mascot .scene-caption{display:none}.concept-mascot .motion-toggle{bottom:8px;background:#fffdf5ee;padding:4px 7px;border-radius:10px}.concept-mascot .scene-note:not(.is-speaking){display:none}
.fest-heading .eyebrow{justify-content:center}.fest-calendar-intro+.fest-section{padding-top:20px}.fest-calendar-intro+.fest-section .fest-heading{display:none}

/* Keep the original artwork: white in the shared logo sheet takes on the paper below. */
.fest-logo{mix-blend-mode:multiply}
.fest-section{background:var(--paper)}
.fest-heading{max-width:760px;margin:0 auto 34px}
.fest-heading p{margin:12px auto 0}
.season-filters{margin:28px 0 34px;gap:9px}
.season-filters button{background:transparent;border:1px solid #d9d6c6;padding:10px 23px;transition:background .2s,border-color .2s,color .2s}
.season-filters button:hover{background:#eeeade;border-color:#bcb99f}
.season-filters button[aria-pressed=true]{background:var(--green);border-color:var(--green);color:var(--paper)}
.fest-list{border-top:1px solid var(--line)}
.fest-row{grid-template-columns:132px minmax(0,1fr) auto;gap:28px;min-height:124px;padding:24px 16px;transition:background .2s}
.fest-row:hover,.fest-row:focus-visible{background:#f0eddf}
.fest-emblem{display:flex;align-items:center;justify-content:center;min-height:80px;width:132px}
.fest-emblem .fest-custom-logo.fest-brauermarkt-logo{width:100%;height:auto;flex-shrink:0;object-fit:contain}
.fest-identity{min-width:0}
.fest-row h3{font-size:clamp(22px,2.2vw,29px);line-height:1.2;letter-spacing:-.45px}
.fest-place{display:block;grid-column:auto;grid-row:auto;margin:9px 0 0;font-size:13px;line-height:1.5;color:#627368}
.fest-date{grid-column:auto;grid-row:auto;font-size:14px;line-height:1.65;letter-spacing:.15px;text-align:right;white-space:nowrap}
.fest-arrow{display:flex;align-items:center;justify-content:center;width:38px;height:38px;border:1px solid #c7cbb9;border-radius:50%;font-size:21px;transition:background .2s,color .2s,transform .2s}
.fest-row:hover .fest-arrow,.fest-row:focus-visible .fest-arrow{background:var(--green);border-color:var(--green);color:var(--paper);transform:translate(2px,-2px)}
@media(max-width:900px){
  .fest-row{grid-template-columns:112px minmax(0,1fr);gap:7px 22px;padding:22px 8px;min-height:126px}
  .fest-emblem{width:112px;grid-row:1 / span 2}
  .fest-identity{grid-column:2;grid-row:1}
  .fest-date{grid-column:2;grid-row:2;text-align:left;font-size:13px}
  .fest-arrow{grid-column:3;grid-row:1 / span 2;width:34px;height:34px}
  .fest-place{margin:6px 0 0;font-size:12px}
}
@media(max-width:600px){
  .fest-heading{margin-bottom:26px}
  .season-filters{gap:7px;margin:24px 0 28px;justify-content:flex-start}
  .season-filters button{padding:9px 14px;font-size:12px}
  .fest-row{grid-template-columns:82px minmax(0,1fr);gap:7px 16px;padding:20px 0;min-height:122px}
  .fest-emblem{width:82px;min-height:78px}
  .fest-emblem .fest-logo{flex-shrink:0;transform:scale(.7);transform-origin:center}
  .fest-emblem .fest-custom-logo{width:74px;height:74px}
  .fest-row h3{font-size:23px;letter-spacing:-.4px;overflow-wrap:anywhere}
  .fest-date{font-size:12px;white-space:normal}
  .fest-arrow{display:none}
}
@media(prefers-reduced-motion:reduce){.fest-row,.fest-arrow,.season-filters button{transition:none}.fest-row:hover .fest-arrow,.fest-row:focus-visible .fest-arrow{transform:none}}

/* Local visitor information: open editorial layout, without extra card blocks. */
.fest-calendar-intro>p{max-width:780px;margin-top:24px;color:var(--muted)}
.festival-guide{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:clamp(40px,7vw,105px)}
.festival-guide h2{font-size:clamp(30px,3.2vw,46px);line-height:1.12;margin-bottom:24px}
.festival-guide p{font-size:16px;color:var(--muted);margin:20px 0;line-height:1.8}
.festival-guide a{color:var(--green);text-decoration:underline;text-underline-offset:4px;text-decoration-color:#a5b4a6}
.festival-districts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 34px;margin:34px 0}
.festival-district{min-width:0;padding:0 0 23px;border-bottom:1px solid #d9d7c3}
.festival-districts dt{display:flex;flex-direction:column;align-items:flex-start;gap:12px;font:700 clamp(24px,2.15vw,31px)/1.15 var(--serif);letter-spacing:-.7px}
.district-symbol{width:46px;height:46px;color:#68866c}
.festival-district:nth-child(2) .district-symbol{color:#8a763d}.festival-district:nth-child(3) .district-symbol{color:#527681}.festival-district:nth-child(4) .district-symbol{color:#ac6242}
.festival-districts dd{display:flex;flex-direction:column;align-items:flex-start;gap:2px;margin:12px 0 0}
.festival-districts dd a{padding:6px 0;font-size:14px;line-height:1.55;text-decoration-color:#c9cdbb;text-decoration-thickness:1px;text-underline-offset:5px;transition:color .18s,text-decoration-color .18s}
.festival-districts dd a:hover{color:#98612f;text-decoration-color:currentColor}
.festival-guide-more{margin-top:36px;padding:25px 0 0}
.festival-stories-kicker{display:block;font-size:10px;font-weight:650;letter-spacing:1.8px;text-transform:uppercase;color:#7e765c;margin-bottom:9px}
.festival-guide-more h3{font-size:clamp(24px,2vw,29px);line-height:1.2;letter-spacing:-.6px}
.festival-guide .festival-guide-more p{font-size:14px;line-height:1.7;margin:10px 0 15px}
.festival-stories-links{display:flex;align-items:flex-start;flex-wrap:wrap;gap:8px 24px}
.festival-guide .festival-stories-links a{display:inline-block;padding:5px 0;font-size:13px;font-weight:600;text-decoration:none;border-bottom:1px solid #a9b69d;transition:color .18s,border-color .18s}
.festival-guide .festival-stories-links a:hover{color:#98612f;border-color:currentColor}
.festival-questions{padding-top:5px}.festival-questions details{border-bottom:1px solid var(--line);padding:20px 0}
.festival-guide .festival-entry{display:flex;align-items:center;gap:10px;margin:0 0 20px;color:var(--green);font-size:14px;font-weight:600}
.festival-entry svg{width:24px;height:24px;flex-shrink:0;color:#6b8060}
.festival-questions summary{cursor:pointer;font-weight:600;line-height:1.6;padding-right:12px}
.festival-questions summary:focus-visible{outline:3px solid #ae8233;outline-offset:6px}
.festival-questions details p{margin-bottom:0}
@media(max-width:900px){.festival-guide{grid-template-columns:1fr;gap:42px}.festival-districts{gap:28px 40px}.festival-questions{max-width:680px}.festival-guide p{font-size:15px}}
@media(max-width:600px){.fest-calendar-intro h1{font-size:clamp(30px,8.5vw,46px)}}
@media(max-width:540px){.festival-districts{grid-template-columns:1fr;gap:23px;margin:28px 0}.festival-districts dt{flex-direction:row;align-items:center;gap:15px;font-size:27px}.festival-districts dd{margin:5px 0 0 61px}.festival-district{padding-bottom:19px}.festival-guide{gap:35px}}
@media(prefers-reduced-motion:reduce){.festival-districts dd a{transition:none}}
@media(max-width:540px){.festival-guide-more{padding-top:15px;margin-top:24px}.festival-stories-links{flex-direction:column;gap:9px}}
@media(prefers-reduced-motion:reduce){.festival-stories-links a{transition:none}}
