/* Shared final rules for the live calendar, afisha and event detail. */
.museum-visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.calendar-section .calendar-day{background:#fff;min-height:56px}
.calendar-section .calendar-day--outside{background:#f8f8f8;color:#767676}
.calendar-section .calendar-day__events{margin-top:auto}
.calendar-section .calendar-tag{border-radius:0;padding:2px;font-size:11px;line-height:1.25;text-decoration:none}
.calendar-section .calendar-tag--blue{color:#0062bc}.calendar-section .calendar-tag--orange{color:#945000}.calendar-section .calendar-tag--red{color:#b00020}.calendar-section .calendar-tag--green{color:#226838}
.calendar-day--has-events{position:relative}
.calendar-day--single-event .calendar-tag::after{content:"";position:absolute;inset:0}
.calendar-day--single-event:focus-within{outline:2px solid #087b82;outline-offset:-2px}
.calendar-day--has-events:not(.calendar-day--single-event) .calendar-tag{min-height:44px;box-sizing:border-box;width:100%}
.calendar-section .calendar-copy__link{font-size:16px;line-height:1.3;padding:10px 16px;min-height:44px;max-width:100%;box-sizing:border-box;gap:12px;text-decoration:none}
.calendar-section .calendar-copy__link::after{width:8px;height:8px;flex-shrink:0}
.live-afisha h1{margin-bottom:48px}
.live-afisha .events-card{width:100%;max-width:1120px;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:48px}
.live-afisha .events-card__media{width:100%;height:480px;background:transparent}
.live-afisha .events-card__image{object-fit:contain}
.live-afisha .events-card__content{min-width:0}
.live-afisha .events-card__date,.live-afisha .events-card__title,.live-afisha .events-card__excerpt{width:100%;max-width:none}
.live-afisha .events-card__date{font-size:18px;line-height:1.4;margin:0 0 16px}
.live-afisha .events-card__title{font-size:32px;line-height:1.2;overflow-wrap:anywhere}
.live-afisha .events-card__excerpt{font-size:18px;line-height:1.6;margin-top:20px}
.live-afisha .events-card__link{margin-top:24px;align-self:flex-start;flex-shrink:0;min-height:44px}
.events-card__date,.museum-event__dates,.event-article-page__date{color:#a95b12}
.museum-event{padding:48px 0 64px}
.museum-event__layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:48px;align-items:start}
.museum-event__layout article{min-width:0}
.museum-event__poster{margin:0}
.museum-event__poster img{display:block;width:100%;height:auto}
.museum-event__title{font-size:32px;line-height:1.2;margin:0 0 20px;overflow-wrap:anywhere}
.museum-event__dates{font-size:18px;margin:0 0 24px}
.museum-event .entry-content{font-size:18px;line-height:1.6}
.museum-event .entry-content p{margin:0 0 20px}
.museum-event .entry-content h2{font-size:24px;line-height:1.3;margin:30px 0 16px}
.museum-event .entry-content ul{padding-left:22px}
.museum-event .entry-content a{color:#07818a;overflow-wrap:anywhere}
@media(max-width:768px){
 .live-afisha h1{margin-bottom:32px}
 .live-afisha .events-card{grid-template-columns:minmax(0,1fr);gap:24px}
 .live-afisha .events-card__media{height:auto}
 .live-afisha .events-card__image{height:auto;max-height:520px}
 .live-afisha .events-card__content{width:100%;min-height:0}
 .live-afisha .events-card__title,.museum-event__title{font-size:28px}
 .live-afisha .events-card__excerpt,.museum-event .entry-content{font-size:17px}
 .museum-event{padding:28px 0 40px}
 .museum-event__layout{grid-template-columns:minmax(0,1fr);gap:28px}
 .museum-event__poster{max-width:480px;margin:0 auto}
}
@media(max-width:480px){.calendar-section .calendar-tag{font-size:10px}.calendar-section .calendar-day{padding:5px 2px;min-height:60px}}

/* Consistent festival typography; keep the narrower reading column on desktop. */
.event-article-page .event-article-page__title{font-size:32px;line-height:1.2}
.event-article-page .event-article-page__date{font-size:18px;line-height:1.4}
.event-article-page .event-article-page__text,.event-article-page .event-article-page__bottom-note p{font-size:18px;line-height:1.6}
.calendar-section .calendar-panel__nav{width:44px;height:44px}
.hero-banner .hero-banner__dot,.event-article-page__gallery-dot{width:44px;height:44px;padding:0;flex-shrink:0;border:0;background:radial-gradient(circle,#b0b0b0 0 4px,transparent 5px);transform:none}
.hero-banner .hero-banner__dot.is-active,.hero-banner .hero-banner__dot--active,.event-article-page__gallery-dot--active{background:radial-gradient(circle,#087b82 0 5px,transparent 6px)}
.hero-banner .hero-banner__pagination,.event-article-page__gallery-dots{gap:0;flex-wrap:wrap}
@media(max-width:980px){
 .events-page:not(.live-afisha) .events-card{width:100%;max-width:100%;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px}
 .events-page:not(.live-afisha) .events-card__media{width:100%;height:auto;aspect-ratio:4/3}
 .events-page:not(.live-afisha) .events-card__content{min-width:0;min-height:0}
 .events-page:not(.live-afisha) .events-card__date,.events-page:not(.live-afisha) .events-card__title,.events-page:not(.live-afisha) .events-card__excerpt{width:100%;max-width:100%}
 .events-page:not(.live-afisha) .events-card__date{font-size:18px;margin:0 0 16px}
 .events-page:not(.live-afisha) .events-card__title{margin:0;font-size:28px}
 .events-page:not(.live-afisha) .events-card__excerpt{font-size:17px;line-height:1.6;margin-top:20px}
 .events-page:not(.live-afisha) .events-card__link{margin-top:24px;min-height:44px;flex-shrink:0}
 .event-article-page .event-article-page__header,.event-article-page .event-article-page__feature-copy,.event-article-page .event-article-page__text,.event-article-page .event-article-page__bottom-note{width:100%;max-width:100%;min-width:0}
 .event-article-page .event-article-page__intro-row,.event-article-page .event-article-page__feature-row,.event-article-page .event-article-page__summary-row{display:grid;grid-template-columns:minmax(0,1fr);gap:24px}
 .event-article-page .event-article-page__top-photo,.event-article-page .event-article-page__side-photo{position:static;width:100%;height:auto;aspect-ratio:4/3;margin:24px 0}
 .event-article-page .event-article-page__article{padding-top:32px}
 .event-article-page .event-article-page__hero{height:clamp(200px,45vw,400px)}
 .event-article-page .event-article-page__vk-band-inner{grid-template-columns:minmax(0,1fr);gap:20px;padding:24px 16px;box-sizing:border-box}
 .event-article-page .event-article-page__vk-band-text{width:100%;font-size:20px}
 .event-article-page .event-article-page__vk-band-link{min-height:44px;max-width:100%}
 .event-article-page .event-article-page__divider{justify-self:center}
}
@media(max-width:768px){
 .events-page:not(.live-afisha) .events-card{grid-template-columns:minmax(0,1fr)}
 .event-article-page .event-article-page__title{font-size:28px}
 .event-article-page .event-article-page__text,.event-article-page .event-article-page__bottom-note p{font-size:17px}
}

.calendar-tag__short{display:none}
@media(max-width:480px){.calendar-tag__full{display:none}.calendar-tag__short{display:inline}.calendar-section .calendar-tag{white-space:nowrap;word-break:normal}}
@media(max-width:768px){
 .about-documents-page .about-documents-page__lead{text-align:left;font-size:17px;font-weight:400}
 .about-documents-page .about-documents-page__accordion-summary{padding:20px 16px;gap:12px}
 .about-documents-page .about-documents-page__accordion-title{padding-right:24px;font-size:20px;overflow-wrap:normal;word-break:normal;line-height:1.35;width:100%}
 .about-documents-page .about-documents-page__accordion-summary::after{right:16px}
 .about-documents-page .about-documents-page__accordion-content{padding:0 16px 20px}
}

.calendar-copy p{font-size:18px;line-height:1.6}
:where(a,button,input,textarea,summary):focus-visible{outline:2px solid #087b82;outline-offset:3px}
@media(max-width:768px){.calendar-copy p{font-size:17px}.contacts-page__social-button,.contacts-page__submit,.program-detail-page__back-link,.program-detail-page__order-button,.programs-page__more{min-height:44px}.about-documents-page .about-documents-page__accordion-title{box-sizing:border-box;padding-right:32px}}
@media(max-width:400px){.about-documents-page .about-documents-page__accordion-title{font-size:18px}}
