html{font-size:100%}body{font-size:1.125rem}h1{font-size:clamp(2.7rem,7.5vw,7rem)}h2{font-size:clamp(2.1rem,4.5vw,4.125rem)}.pagehead h1{font-size:clamp(2.7rem,7vw,6rem)}h1,h2,h3{overflow-wrap:break-word}button,input,select,textarea{font:inherit}input,textarea,select{max-width:100%}a,button{ -webkit-tap-highlight-color:#bd9b6033}a,button,input,select,textarea,summary{scroll-margin-block:120px 40px}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #80602d;outline-offset:5px}.dark :focus-visible{outline-color:#edce9a}main:focus{outline:none}.skip:focus{outline:3px solid #171717}.nav-list{display:flex;gap:25px;list-style:none;margin:0;padding:0}.nav-list a{display:block}.admin-bar .header{top:32px}.textlink,.reading p a,.contact-card a,.contact-grid p a{font-weight:500}.reading p a::after,.contact-card p a::after{content:' ↗';font-size:.8em}.button,.nav-ticket{min-height:44px}.socials span:first-of-type{flex:1}.socials span:last-child{flex:0}.footer-bottom{flex-wrap:wrap}.motion-toggle{background:transparent;color:#625b50;border:1px solid #ded5c7;padding:8px 12px;cursor:pointer;min-height:44px;font-size:.8125rem}.motion-toggle:disabled{opacity:1;cursor:default}.hero-actions{display:flex;flex-wrap:wrap;gap:15px;margin-top:15px}.home-newsletter{margin-top:22px}.home-newsletter p{font-size:1rem;margin-bottom:0}.home-newsletter .button{background:transparent;border:0;color:#80602d;padding:7px 0;font-weight:500}.home-newsletter .button::after{content:' ↗';margin-left:12px}.featured-campaign{flex-basis:100%;padding:15px 18px;border-left:3px solid #bd9b60;background:#f2ebdf}.featured-campaign .eyebrow{display:block;margin:0 0 8px}.szironta-newsletter{padding:22px;border:1px solid #ded5c7;background:#faf8f4}.szironta-newsletter label{display:block;font-size:1rem}.szironta-newsletter input:not([type=checkbox]):not([type=hidden]){width:100%;padding:10px 12px;border:1px solid #80602d;background:#fff}.szironta-newsletter p{margin-bottom:15px}.szironta-newsletter input[type=checkbox]{width:22px;height:22px;float:left;margin:3px 10px 0 0}.szironta-newsletter button{background:#171717;color:white;border:1px solid #171717;padding:12px 18px;cursor:pointer}.product-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:35px}.product-card{padding:25px;border:1px solid #ded5c7}.product-card img{aspect-ratio:1;object-fit:contain;width:100%;margin-bottom:20px}.product-card p{font-size:1rem}.product-card h3{font-size:1.5rem}.event small{display:block}.event-actions{min-width:0}.entry-content{padding-block:70px}.entry-content h1{font-size:clamp(2.5rem,6vw,5rem)}.just-visible{animation:soft-arrival .3s ease-out both}@keyframes soft-arrival{from{opacity:.7;transform:translateY(6px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:no-preference){.button,.socials a{transition:background-color .18s,color .18s,border-color .18s}.socials a:hover{border-color:#80602d;background:#f2ebdf}}html[data-motion=off]{scroll-behavior:auto}html[data-motion=off] *,html[data-motion=off] *::before,html[data-motion=off] *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media(max-width:1100px){.nav-list{gap:14px}.product-grid{grid-template-columns:1fr 1fr}}
@media(max-width:800px){.nav-list{display:grid;gap:0}.hero h1{font-size:clamp(2.8rem,9vw,4rem)}.pagehead h1{font-size:clamp(2.5rem,8vw,3.4rem)}.nav-ticket{display:flex;align-items:center}.contact-grid h2{font-size:clamp(1.5rem,5.5vw,2.8rem)}.event-actions a{min-height:44px;align-items:center}.reading h2{font-size:2rem}.nav nav{max-height:calc(100dvh - 120px);overflow:auto}html:not(.js) .nav{flex-wrap:wrap}html:not(.js) .menu{display:none}html:not(.js) .nav nav{display:block;position:static;flex-basis:100%;box-shadow:none}.product-grid{grid-template-columns:1fr}.button{gap:18px}.socials a{min-width:0}.socials span{overflow-wrap:anywhere}}
@media(max-width:782px){.admin-bar .header{top:46px}}
@media(max-width:380px){.shell{width:calc(100% - 32px)}.hero h1{font-size:2.8rem}.pagehead h1{font-size:2.5rem}.socials{grid-template-columns:1fr}.contact-card{padding:20px}.members{grid-template-columns:1fr}.footer-main{grid-template-columns:1fr}}
@media(forced-colors:active){.button,.nav-ticket,.socials a,.motion-toggle{border:1px solid ButtonText}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid Highlight}.geometry{background-image:none}}
input[type=search]{border-color:var(--accent)}

/* These sizes follow the visitor's browser size and the optional larger-text setting. */
html[data-text="large"] { font-size: 118.75%; }
h3 { font-size: 1.5625rem; }
small { font-size: .9375rem; }
.eyebrow { font-size: .8125rem; }
.nav nav, .nav-ticket, .menu { font-size: .9375rem; }
.hero-intro p { font-size: 1.3125rem; }
.lead { font-size: 1.4375rem; }
.button { font-size: 1rem; }
.section-head p:not(.eyebrow), .event p, .socials a { font-size: 1.0625rem; }
.event time b { font-size: 2.75rem; }
.event time span, .footer-bottom { font-size: .8125rem; }
.event-date, .result-count { font-size: .875rem; }
.event h3 { font-size: 1.6875rem; }
.event-link, .photo-foot, .members p, .search-label, footer { font-size: .9375rem; }
footer h3 { font-size: 1.0625rem; }
.reading h2 { font-size: 2.75rem; }
html .contact-update__leaders a { font-size: 1.0625rem; }
html .contact-update__phones { font-size: clamp(1.375rem, 2.5vw, 1.8125rem); }
html .contact-update__details h2 { font-size: clamp(1.75rem, 3.5vw, 2.9375rem); }
html[data-text="large"] .hero-top,
html[data-text="large"] .contact-grid { gap: 35px; }
html[data-text="large"] .nav-list { flex-wrap: wrap; row-gap: 0; }
html[data-text="large"] .header .nav { padding-block: 12px; }
.hero-top > *, .section-head > *, .split > *, .event > *,
.instrument-teaser > *, .footer-main > *, .product-card { min-width: 0; }

/* A separate utility row leaves room for the main navigation. */
.header .header-tools {
  position: relative;
  display: flex;
  justify-content: flex-end;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px 20px;
  min-height: 48px;
  padding-block: 5px;
  border-bottom: 1px solid var(--line);
  font-size: .875rem;
}
.header .nav { position: static; }
.language-picker {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
  margin: 0;
  min-width: 0;
  max-width: 100%;
}
.language-picker label { display: inline-flex; gap: 5px; align-items: center; }
.language-picker select {
  min-height: 42px;
  max-width: min(12rem, 100%);
  min-width: 0;
  background: #fff;
  color: var(--ink);
  border: 1px solid var(--line);
  border-radius: 2px;
  padding: 6px 9px;
  font-size: .875rem;
  cursor: pointer;
}
.language-picker button {
  min-height: 42px;
  padding: 6px 10px;
  border: 1px solid var(--accent);
  background: #fff;
  color: var(--ink);
}
html.js .language-picker button[type="submit"] { display: none; }
.display-settings { position: static; min-width: 0; }
.display-settings summary {
  display: flex;
  align-items: center;
  gap: 9px;
  min-height: 42px;
  padding: 6px 0;
  cursor: pointer;
  list-style: none;
  color: var(--ink);
  overflow-wrap: anywhere;
}
.display-settings summary::-webkit-details-marker { display: none; }
.display-settings summary::after {
  content: '';
  width: 7px;
  height: 7px;
  flex-shrink: 0;
  border-inline-end: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: rotate(45deg) translateY(-2px);
}
.display-settings[open] summary::after { transform: rotate(225deg) translate(-1px, -1px); }
.display-panel {
  position: absolute;
  inset-inline-end: 0;
  top: calc(100% + 8px);
  z-index: 30;
  display: grid;
  gap: 8px;
  width: min(23rem, calc(100vw - 40px));
  max-width: 100%;
  max-height: min(65vh, 26rem);
  overflow-y: auto;
  padding: 15px;
  color: var(--ink);
  background: #fff;
  border: 1px solid var(--line);
  box-shadow: 0 12px 40px #17171718;
}
.display-panel button, .motion-toggle {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 48px;
  width: 100%;
  padding: 11px 13px;
  background: #fff;
  color: var(--ink);
  border: 1px solid var(--line);
  border-radius: 2px;
  font-size: .9375rem;
  line-height: 1.4;
  text-align: start;
  cursor: pointer;
}
.display-panel button::before, .motion-toggle::before {
  content: '';
  display: inline-grid;
  place-content: center;
  width: 20px;
  height: 20px;
  flex: 0 0 20px;
  border: 1px solid currentColor;
  font-weight: 700;
  font-size: 15px;
}
.display-panel button[aria-pressed="true"], .motion-toggle[aria-pressed="true"] {
  background: var(--light);
  border-color: var(--accent);
}
.display-panel button[aria-pressed="true"]::before,
.motion-toggle[aria-pressed="true"]::before { content: '✓'; }
.display-panel button:disabled, .motion-toggle:disabled { opacity: 1; cursor: default; }
html:not(.js) .display-settings, html:not(.js) .motion-toggle { display: none; }
.footer-bottom .motion-toggle { width: auto; max-width: 100%; }

/* Motion never controls visibility: it is an enhancement on already readable content. */
@keyframes sz-text-arrival {
  from { opacity: .5; transform: translateY(26px); }
  to { opacity: 1; transform: none; }
}
@keyframes sz-photo-arrival {
  from { opacity: .65; transform: translateY(26px) scale(.985); }
  to { opacity: 1; transform: none; }
}
@keyframes sz-facet-arrival {
  from { background-position: right calc(50% + 36px); }
  to { background-position: right center; }
}
@media (prefers-reduced-motion: no-preference) {
  html[data-motion="on"] .sz-hero-text {
    animation: sz-text-arrival 1.15s cubic-bezier(.22, 1, .36, 1) var(--arrival-delay, 0ms) both;
  }
  html[data-motion="on"] .sz-hero-photo {
    animation: sz-photo-arrival 1.4s cubic-bezier(.22, 1, .36, 1) var(--arrival-delay, 0ms) both;
  }
  html[data-motion="on"] .sz-arrive {
    animation: sz-text-arrival .9s cubic-bezier(.22, 1, .36, 1) var(--arrival-delay, 0ms) both;
  }
  html[data-motion="on"] .sz-geometry {
    animation: sz-facet-arrival 3.2s cubic-bezier(.22, 1, .36, 1) both;
  }
  html[data-motion="on"] .button,
  html[data-motion="on"] .socials a,
  html[data-motion="on"] .product-card,
  html[data-motion="on"] .nav-ticket {
    transition: transform .25s ease, background-color .25s ease, color .25s ease, border-color .25s ease, box-shadow .25s ease;
  }
  html[data-motion="on"] .event {
    transition: background-color .25s ease;
  }
  html[data-motion="on"] .event-link span {
    transition: transform .25s ease;
  }
  html[data-motion="on"] .event:focus-within {
    background-color: #bd9b600d;
  }
  html[data-motion="on"] .event-link:focus-visible span {
    transform: translateX(4px);
  }
}
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  html[data-motion="on"] .button:hover,
  html[data-motion="on"] .socials a:hover,
  html[data-motion="on"] .nav-ticket:hover { transform: translateY(-3px); }
  html[data-motion="on"] .product-card:hover { box-shadow: 0 10px 24px #1717170c; }
  html[data-motion="on"] .event:hover { background-color: #bd9b600d; }
  html[data-motion="on"] .event-link:hover span { transform: translateX(4px); }
}
html[data-motion="off"] .sz-hero-text,
html[data-motion="off"] .sz-hero-photo,
html[data-motion="off"] .sz-arrive { opacity: 1; transform: none; }

/* Strong contrast also replaces the fixed muted colours inherited from site.css. */
html[data-contrast="high"] {
  --ink: #101010;
  --muted: #292929;
  --accent: #4d350c;
  --gold: #6b4b16;
  --light: #f8f4e9;
  --line: #766c5b;
}
html[data-contrast="high"] body { color: var(--ink); background: #fff; }
html[data-contrast="high"] .geometry { background-image: none; background-color: #fff; }
html[data-contrast="high"] :is(.eyebrow, .textlink, .event small, .event time span, .home-newsletter .button) { color: var(--accent); }
html[data-contrast="high"] :is(.result-count, .event-date) { color: var(--muted); }
html[data-contrast="high"] :is(.header, .language-picker select, .display-panel, .product-card, .socials a, .szironta-newsletter) {
  color: var(--ink);
  background-color: #fff;
  border-color: var(--line);
}
html[data-contrast="high"] :is(.dark, .photo-foot) { background: #101010; color: #fff; }
html[data-contrast="high"] .dark :is(.eyebrow, .textlink, em, small) { color: #f3dba7; }
html[data-contrast="high"] .dark a:not(.button):hover { color: #f3dba7; }
html[data-contrast="high"] .dark .button { color: #101010; background: #f3dba7; border-color: #f3dba7; }
html[data-contrast="high"] .button:not(.secondary):not(.home-newsletter .button) { color: #fff; background: #101010; border-color: #101010; }
html[data-contrast="high"] .dark .button:not(.secondary) { color: #101010; background: #f3dba7; border-color: #f3dba7; }
html[data-contrast="high"] .button.secondary { color: var(--ink); background: #fff; border-color: var(--ink); }
html[data-contrast="high"] :is(input, select, textarea) { color: #101010; background-color: #fff; border-color: #4d350c; }
html[data-contrast="high"] ::placeholder { color: #444; opacity: 1; }
html[data-contrast="high"] :focus-visible { outline-color: #101010; }
html[data-contrast="high"] .dark :focus-visible { outline-color: #f3dba7; }
html[data-contrast="high"] :is(.display-panel button, .motion-toggle)[aria-pressed="true"] { border: 2px solid #4d350c; }

/* Logical placement supports Arabic and keeps translated controls inside narrow screens. */
html[dir="rtl"] .nav nav { margin-left: 0; margin-right: auto; }
html[dir="rtl"] .menu { margin-left: 0; margin-right: auto; }
html[dir="rtl"] .footer-bottom span:first-child { margin-right: 0; margin-left: auto; }
html[dir="rtl"] .socials { text-align: right; }
html[dir="rtl"] .eyebrow, html[dir="rtl"] .event time span { letter-spacing: normal; }
html[dir="rtl"] .szironta-newsletter input[type="checkbox"] { float: right; margin: 3px 0 0 10px; }
html[dir="rtl"] .featured-campaign { border-left: 0; border-right: 3px solid var(--gold); }
html[dir="rtl"] .contact-update__phones, html[dir="rtl"] a[href^="tel:"], html[dir="rtl"] a[href^="mailto:"] { direction: ltr; unicode-bidi: isolate; }
@media (max-width: 1100px) {
  .nav nav { font-size: .8125rem; }
  .header .nav { gap: 18px; }
  .nav-list { flex-wrap: wrap; gap: 0 14px; }
}
@media (max-width: 800px) {
  .header .header-tools { gap: 4px 14px; padding-block: 4px; }
  .header .nav { gap: 14px; }
  .header .nav nav { top: 100%; max-height: min(65dvh, 30rem); font-size: 1.0625rem; }
  .nav-ticket, .menu { font-size: .875rem; }
  .nav-list { display: grid; gap: 0; }
  .hero-intro p { font-size: 1.1875rem; }
  .lead { font-size: 1.3125rem; }
  .button { font-size: .9375rem; }
  .event time b { font-size: 2.1875rem; }
  .event time span { font-size: .75rem; }
  .event h3 { font-size: 1.5rem; }
  .event p { font-size: .9375rem; }
  .event-date, .event small { font-size: .8125rem; }
  .event-link, .socials a { font-size: .875rem; }
  .photo-foot { font-size: .8125rem; flex-wrap: wrap; }
  .members h3 { font-size: 1.3125rem; }
  .reading h2 { font-size: 2rem; }
  .contact-grid h2 { font-size: clamp(1.5rem, 5.5vw, 2.8rem); }
  html[dir="rtl"] .event-link span { margin-left: 0; margin-right: auto; }
  html[data-text="large"] .socials { grid-template-columns: 1fr; }
}
@media (max-width: 480px) {
  .header .header-tools { justify-content: space-between; }
  .language-picker { gap: 4px; }
  .language-picker select { max-width: 10rem; }
  .language-picker label { font-size: .8125rem; }
  .display-settings summary { font-size: .8125rem; }
  .header .logo img { width: 132px; }
  .header .nav { gap: 8px; flex-wrap: wrap; padding-block: 10px; }
  .header .menu { padding-inline: 5px; }
  .header .nav-ticket { padding-inline: 9px; }
  html[data-text="large"] .header .logo img { width: 112px; }
  .display-panel { width: min(23rem, calc(100vw - 32px)); }
}
@media (forced-colors: active) {
  .display-panel, .display-panel button, .language-picker select, .display-settings summary, .product-card { border: 1px solid ButtonText; }
  .display-panel button[aria-pressed="true"], .motion-toggle[aria-pressed="true"] { outline: 2px solid Highlight; outline-offset: -4px; }
  .display-panel button::before, .motion-toggle::before { forced-color-adjust: auto; }
}

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.language-flag{width:24px;height:16px;object-fit:cover;border:1px solid #ded5c7}.source-language-note{font-size:.875rem;color:var(--muted);padding-bottom:30px}html:lang(ar) body{font-family:Tahoma,Arial,sans-serif}html:lang(ar) h1,html:lang(ar) h2{letter-spacing:normal;line-height:1.35}

/* Concert calendar: editable instrument photo beside the introduction. */
.concert-pagehead{padding-block:48px}
.concert-pagehead__grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:center;gap:clamp(32px,5vw,80px)}
.concert-pagehead__copy{min-width:0}
.concert-pagehead h1{font-size:clamp(2.75rem,5.5vw,5rem);max-width:12ch}
.concert-pagehead .lead{max-width:30em}
.concert-pagehead__photo{margin:0;overflow:hidden;border-radius:3px;border-bottom:3px solid var(--gold);background:#e9e1d6}
.concert-pagehead__photo img{display:block;width:100%;height:auto;aspect-ratio:5/4;max-height:380px;object-fit:cover;object-position:50% 62%}
@media(max-width:800px){
 .concert-pagehead{padding-block:36px}
 .concert-pagehead__grid{grid-template-columns:minmax(0,1fr);gap:28px}
 .concert-pagehead h1{font-size:clamp(2.5rem,9vw,3.75rem);max-width:none}
 .concert-pagehead__photo img{aspect-ratio:3/2;max-height:320px}
}
