/* Circular flag controls; language names remain available to assistive tools. */
header .languages{gap:6px}
header .languages button{display:grid;place-items:center;width:44px;height:44px;min-width:44px;padding:5px;border:2px solid transparent;border-radius:50%;background:transparent;box-shadow:none;transition:border-color .15s,background .15s}
header .languages button img{display:block;width:30px;height:30px;border-radius:50%;object-fit:cover;pointer-events:none}
header .languages button:hover{background:#ffffff18;border-color:#777}
header .languages button[aria-pressed=true]{border-color:var(--gold);background:#cfb47a18;box-shadow:none}
header .languages button:focus-visible{outline:2px solid #fff;outline-offset:3px}

/* Direct Telegram contact, with a scannable QR at every viewport size. */
.contact .primary-contact .telegram-name{margin:10px 0 4px;font-size:15px;letter-spacing:0;color:#fff}
.contact .primary-contact .telegram-phone{font-size:18px;letter-spacing:0}
.contact .telegram-qr{flex-wrap:wrap}
.contact .telegram-qr img{width:180px;height:180px;border-radius:0}
.contact .telegram-qr span{flex:1;min-width:100px}

/* Keep long translated headings inside their cards. */
h2,h3{overflow-wrap:anywhere;hyphens:auto}
@media(max-width:640px){
  .program:not(.direction-card) h3{font-size:clamp(1.75rem,7.6vw,2.75rem);line-height:1.15}
}
