/* Единое оформление публичных страниц. Загружается после их отдельных CSS. */
body.public-brand {
  --sans: 'George', Arial, sans-serif;
  --max: 1380px;
  --navy: #00323c;
  --blue: #731637;
  --cyan: #00323c;
  --muted: #47182e;
  color: #00323c;
  background: var(--season-soft, #e9e4e1);
  font-family: var(--sans);
  line-height: 1.6;
}
.public-brand :is(button, input, select, textarea, .form-control, .btn) { font-family: var(--sans); }
.public-brand :is(h1,h2,h3,h4,h5,h6) { font-family: var(--sans); font-weight: 400; }
.public-brand .main-nav a { font-size: 15px; font-weight: 400; }
.public-brand .main-nav > .mega-nav-item { flex-shrink: 0; }
.public-brand .main-nav > .mega-nav-item > a { white-space: nowrap; }
.public-brand .floating-header :is(.main-nav,.mobile-menu) a[href*="pushkinskaya-karta"] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 10px 14px;
  border: 1px solid #000;
  border-radius: 10px;
  background: #000;
  color: #00ed63;
  line-height: 1.5;
  white-space: nowrap;
  text-decoration: none;
}
.public-brand .floating-header :is(.main-nav,.mobile-menu) a[href*="pushkinskaya-karta"]:hover {
  background: #000;
  border-color: #00ed63;
  color: #00ed63;
}
.public-brand .floating-header :is(.main-nav,.mobile-menu) a[href*="pushkinskaya-karta"]:focus-visible {
  outline: 3px solid #00ed63;
  outline-offset: 3px;
}
.public-brand .floating-header .brand { background: transparent; }
/* На светлом сезонном меню белая связка логотипов сохраняет контраст. */
html[data-home-season="winter"] .public-brand .floating-header .brand,
html[data-home-season="spring"] .public-brand .floating-header .brand { background: #731637; }
.public-brand #main > .container { width: 100%; max-width: none; padding-inline: 0; }
.public-brand :is(.internal-page,.contacts-page,.events-catalog,.news-catalog,.studios-catalog-page,.event-detail,.studio-detail,.feedback-page,.hall-scheme-page,.structural-units-page,.malaya-dubna-page) { background: transparent; color: #00323c; }
.public-brand :is(.internal-hero,.contacts-hero,.structural-units-hero) { color: #00323c; background: transparent; }
.public-brand .internal-hero { padding: clamp(150px,15vw,210px) 0 48px; }
.public-brand :is(.internal-hero__inner,.internal-content,.contacts-shell,.events-catalog__shell,.news-catalog__shell,.studios-catalog-page__shell,.event-detail__shell,.structural-units-shell,.malaya-dubna-shell,.youth-club-page,.documents-page,.feedback-page,.hall-scheme-page) { width: min(calc(100% - 48px), var(--max)); max-width: var(--max); margin-inline: auto; }
.public-brand .internal-content { padding-inline: 0; }
.public-brand .studio-detail__shell { width: min(calc(100% - 48px), var(--max)); max-width: var(--max); margin-inline: auto; }
.public-brand :is(.studio-detail__enroll-link,.studio-detail__submit,.feedback-form__button) { color: #fffdfa; background: #00323c; border-color: #00323c; border-radius: 14px; font-family: var(--sans); font-weight: 400; }
.public-brand :is(.studio-detail__enroll-link,.studio-detail__submit,.feedback-form__button):hover { color: #fffdfa; background: #731637; }
.public-brand :is(.documents-page__header,.feedback-page__header,.hall-scheme-page__header) { max-width: none; }
.public-brand #main h1 {
  max-width: 100%;
  color: #731637;
  font-size: clamp(42px,6vw,76px);
  font-weight: 400;
  line-height: 1.12;
  letter-spacing: -.03em;
  overflow-wrap: break-word;
}
.public-brand #main .hero h1 { max-width: 680px; color: #fffdfa; font-size: clamp(58px,6vw,94px); line-height: 1.08; }
.public-brand .floating-header,
.public-brand .mega-panel { box-shadow: 0 18px 60px rgba(0,0,0,.20); }
.public-brand #main :is(h2,h3,h4) { color: #00323c; line-height: 1.4; }
.public-brand #main :is(.section-title h2,.documents-section h2,.feedback-form-section h2,.contacts-main h2,.structural-unit-card h2) { color: #731637; }
.public-brand #main :is(.choreography-card h3,.event-overlay h3,.studio-tile h3,.next-event h2,.studio-showcase-card h3) { color: #fffdfa; }
.public-brand :is(.internal-hero p,.page-copy,.studio-description,.documents-page__header p,.news-catalog__header p,.contacts-hero p,.contacts-schedule p,.contacts-map__copy p,.requisites-list dd,.document-row p,.document-row time) { color: #47182e; }
.public-brand :is(.page-copy p,.page-copy li,.document-row p,.feedback-page p) { line-height: 1.65; }
.public-brand :is(.internal-hero .eyebrow,.page-copy .eyebrow) { color: #731637; }
.public-brand :is(.ticket-button,.event-detail__ticket,.events-catalog__details,.document-row__link,.feedback-submit,.feedback-form__submit,.btn-primary,.structural-unit-card__link,.contacts-hero__route) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  padding: 12px 20px;
  border: 1px solid #00323c;
  border-radius: 14px;
  color: #fffdfa;
  background: #00323c;
  font-family: var(--sans);
  font-size: 16px;
  font-weight: 400;
  line-height: 1.4;
  text-decoration: none;
}
.public-brand :is(.ticket-button,.event-detail__ticket,.events-catalog__details,.document-row__link,.feedback-submit,.feedback-form__submit,.btn-primary,.structural-unit-card__link,.contacts-hero__route):hover { color: #fffdfa; background: #731637; border-color: #731637; }
.public-brand :is(.news-catalog-card__link,.studios-catalog-card__link) { display: inline-flex; align-items: center; justify-content: center; min-height: 46px; padding: 12px 20px; border-radius: 14px; color: #fffdfa; background: #00323c; font-family: var(--sans); font-size: 16px; font-weight: 400; line-height: 1.4; text-decoration: none; }
.public-brand :is(.news-catalog-card__link,.studios-catalog-card__link):hover { color: #fffdfa; background: #731637; }
.public-brand :is(.events-catalog__filter,.studios-catalog-page__filter,.contacts-social a) { color: #00323c; border-color: #00323c; background: #fffdfa; font-family: var(--sans); font-weight: 400; }
.public-brand :is(.events-catalog__filter,.studios-catalog-page__filter).is-active,
.public-brand :is(.events-catalog__filter,.studios-catalog-page__filter)[aria-current="page"] { color: #fffdfa; background: #731637; border-color: #731637; }
.public-brand :is(.internal-news-card,.internal-studio-card,.news-catalog-card,.studios-catalog-card,.request-panel,.request-form,.feedback-form,.contacts-detail,.contacts-detail--address,.structural-unit-card) { background-color: #fffdfa; border-color: #d6cbc3; }
.public-brand :is(.contacts-detail a,.contacts-detail svg,.contacts-detail address,.requisites-list dt,.fact-list dt,.fact-list dd,.news-catalog-card__meta,.news-catalog-card__body > p,.events-catalog__info h2,.events-catalog__info p) { color: #00323c; }
.public-brand :is(.form-control,.request-form input:not([type="checkbox"]):not([type="radio"]),.request-form textarea,.feedback-form input:not([type="checkbox"]):not([type="radio"]),.feedback-form textarea) { color: #00323c; border-color: #d6cbc3; background-color: #fff; border-radius: 12px; font-size: 16px; line-height: 1.5; }
.public-brand :is(input,textarea,select) { accent-color: #731637; }
.public-brand :is(a,button,input,textarea,select,summary):focus-visible { outline: 3px solid #731637; outline-offset: 3px; }
.public-brand :is(.page-link,.news-pagination__link,.events-catalog__pagination a,.events-catalog__pagination span) { color: #00323c; border-color: #d6cbc3; background: #fffdfa; font-family: var(--sans); font-weight: 400; }
.public-brand .active :is(.page-link,.news-pagination__link),
.public-brand .events-catalog__pagination .active :is(a,span) { color: #fffdfa; background: #731637; border-color: #731637; }
.public-brand .footer { color: #00323c; border-color: #d6cbc3; font-family: var(--sans); }
.public-brand .footer :is(a,p) { color: #47182e; }
.public-brand footer.footer,
.public-brand footer.footer.footer--sitemap { padding-bottom: calc(112px + env(safe-area-inset-bottom, 0px)); }
.public-brand footer.footer.footer--sitemap .footer__map-section li a,
.public-brand footer.footer > nav:not(.footer-legal) a { font-size: 18px; line-height: 1.6; }
.public-brand footer.footer.footer--sitemap .footer__map-section h2,
.public-brand footer.footer.footer--sitemap .footer__map-section h2 a { font-size: 20px; line-height: 1.5; }
.public-brand footer.footer.footer--sitemap .footer__map-title { font-size: 22px; line-height: 1.5; }
.public-brand footer.footer .footer-legal a,
.public-brand footer.footer.footer--sitemap .footer-legal a,
.public-brand footer.footer .footer__copyright { display: inline-block; font-size: 16px; line-height: 1.6; }
.public-brand footer.footer .footer-legal { gap: 16px 28px; }
.public-brand footer.footer .footer__bottom { padding-top: 28px; margin-top: 56px; }
@media(max-width:767px) {
  .public-brand footer.footer,
  .public-brand footer.footer.footer--sitemap { padding-bottom: calc(96px + env(safe-area-inset-bottom, 0px)); }
  .public-brand footer.footer .footer-legal { display: flex; flex-direction: column; align-items: flex-start; gap: 18px; }
}
.home-season-switcher { display: none !important; }
.public-brand .footer.footer--sitemap { padding-bottom: calc(88px + env(safe-area-inset-bottom, 0px)); }
.public-brand .footer.footer--sitemap .footer__identity p,
.public-brand .footer.footer--sitemap .footer__map-section li { font-size: 16px; line-height: 1.6; }
.public-brand .footer.footer--sitemap .footer__map-title { font-size: 20px; line-height: 1.4; }
.public-brand .footer.footer--sitemap .footer__map-section h2 { font-size: 18px; line-height: 1.4; }
.public-brand .footer.footer--sitemap .footer-legal a,
.public-brand .footer.footer--sitemap .footer__copyright { font-size: 15px; line-height: 1.6; }
.public-brand .footer.footer--sitemap .footer-legal { gap: 16px 28px; }
@media(max-width:767px) {
  .public-brand :is(.internal-hero__inner,.internal-content,.contacts-shell,.events-catalog__shell,.news-catalog__shell,.studios-catalog-page__shell,.event-detail__shell,.structural-units-shell,.malaya-dubna-shell,.youth-club-page,.documents-page,.feedback-page,.hall-scheme-page) { width: calc(100% - 32px); }
  .public-brand .internal-hero { padding-top: 128px; }
  .public-brand #main h1 { font-size: clamp(36px,9vw,54px); }
  .public-brand #main .hero h1 { font-size: clamp(48px,10vw,66px); }
}
/* Show the complete poster at every catalog breakpoint, without cropping. */
.public-brand .events-catalog .events-catalog__poster {
  display: block;
  height: auto;
  max-height: none;
  max-width: 100%;
  object-fit: contain;
  align-self: start;
}
.public-brand .pushkin-guide { display: grid; gap: 28px; }
.public-brand .pushkin-guide details { border-bottom: 1px solid #d8bdc7; }
.public-brand .pushkin-guide summary {
  cursor: pointer;
  background: transparent;
  color: #007d70;
  padding: 18px 0;
  font-size: clamp(26px, 3vw, 32px);
  line-height: 1.4;
  border-radius: 12px;
  overflow-wrap: anywhere;
}
.public-brand .pushkin-guide summary:hover { color: #005c53; }
.public-brand .pushkin-guide summary:focus-visible,
.public-brand .pushkin-guide__link:focus-visible { outline: 3px solid #007d70; outline-offset: 4px; }
.public-brand .pushkin-guide__body { padding: 24px 0 36px; line-height: 1.65; max-width: 75ch; }
.public-brand .pushkin-guide__body h2,
.public-brand .pushkin-guide__body h3 { margin-top: 32px; line-height: 1.35; }
.public-brand .pushkin-guide__body li { margin-bottom: 12px; }
.public-brand .pushkin-guide__link {
  display: inline-flex;
  padding: 14px 20px;
  background: #7b123e;
  color: #fff;
  border-radius: 10px;
  text-decoration: none;
  line-height: 1.5;
}
.public-brand .pushkin-guide__link:hover { background: #621032; color: #fff; }
.public-brand footer.footer .footer__social {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px 24px;
}
.public-brand footer.footer .footer__social a {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-height: 44px;
  font-size: 18px;
  line-height: 1.5;
  text-decoration: underline;
  text-underline-offset: 4px;
}
.public-brand footer.footer .footer__social a:hover { color: #7b123e; }
.public-brand footer.footer .footer__social a:focus-visible {
  outline: 2px solid #7b123e;
  outline-offset: 4px;
}
@media(max-width:600px) {
  .public-brand .floating-header { grid-template-columns: minmax(0,1fr) 44px 44px; gap: 8px; padding-inline: 12px; }
  .public-brand .floating-header .brand { width: 100%; max-width: 210px; min-width: 0; }
  .public-brand .floating-header .menu-toggle { width: 44px; min-width: 0; padding-inline: 0; font-size: 12px; }
}
