/* ==========================================================
   CENTRO YOGA FINALE — ACCESSIBILITA E CONTRASTO
   Caricato per ultimo: prevale sugli stili pagina e plugin.
   ========================================================== */

.cyf-skip-link {
  position: fixed;
  z-index: 100000;
  top: 12px;
  left: 12px;
  transform: translateY(-160%);
  min-height: 44px;
  padding: 12px 18px;
  border: 2px solid var(--cyf-color-charcoal);
  font-family: var(--cyf-font-body);
  font-size: 14px;
  line-height: 1.3;
  font-weight: 700;
  color: var(--cyf-color-charcoal) !important;
  background: var(--cyf-color-ivory);
  transition: transform var(--cyf-transition);
}

.cyf-skip-link:focus { transform: translateY(0); }
#cyf-main-content:focus { outline: none; }

.nav-container nav .menu > li.menu-item-has-children:focus-within > .subnav,
.nav-container nav .menu > li.menu-item-has-children.cyf-submenu-open > .subnav {
  visibility: visible !important;
  opacity: 1 !important;
  pointer-events: auto !important;
  transform: translateY(0) !important;
}

.nav-container nav .subnav a {
  display: flex;
  align-items: center;
  min-height: 44px;
}

.cyf-practices-anchor-list a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
}

.cyf-eyebrow,
.cyf-teacher-eyebrow,
.cyf-teacher-mobile-eyebrow,
.cyf-events-eyebrow,
.cyf-event-category,
.cyf-event-month,
.cyf-event-archive-year,
.cyf-contact-location-copy .cyf-kicker,
.cyf-practice-fact-label {
  color: var(--cyf-color-terra-dark) !important;
}

.cyf-practice-teacher-badge {
  color: var(--cyf-color-on-terra) !important;
}

.cyf-practices-cta-title,
.cyf-practices-cta-text,
.cyf-practice-cta,
.cyf-practice-cta-title,
.cyf-practice-cta-title h2,
.cyf-practice-cta-text,
.cyf-orari-cta-label,
.cyf-orari-cta-title h2,
.cyf-teachers-cta-label,
.cyf-teachers-cta-title h2,
.cyf-elisa-cta-label,
.cyf-elisa-cta-title h2,
.cyf-paolo-cta-label,
.cyf-paolo-cta-title h2,
.cyf-centro-cta-label,
.cyf-centro-cta h2,
.cyf-gallery-cta h2,
.cyf-gallery-cta p,
.cyf-contact-cta-label,
.cyf-contact-cta-title h2,
.cyf-events-page-cta h2,
.cyf-events-page-cta p,
.cyf-final-cta-copy h2,
.cyf-final-cta-copy p {
  color: var(--cyf-color-on-terra) !important;
}

.cyf-practices-cta .cyf-btn,
.cyf-practice-cta .cyf-btn--light-outline,
.cyf-orari-cta-button,
.cyf-teachers-cta-button,
.cyf-elisa-cta-button,
.cyf-paolo-cta-button,
.cyf-centro-cta-button,
.cyf-gallery-cta .cyf-btn,
.cyf-contact-cta-button,
.cyf-events-page-cta .cyf-btn {
  border-color: var(--cyf-color-on-terra) !important;
  color: var(--cyf-color-on-terra) !important;
  background: transparent !important;
}

.cyf-practices-cta .cyf-btn:hover,
.cyf-practices-cta .cyf-btn:focus-visible,
.cyf-practice-cta .cyf-btn--light-outline:hover,
.cyf-practice-cta .cyf-btn--light-outline:focus-visible,
.cyf-orari-cta-button:hover,
.cyf-orari-cta-button:focus-visible,
.cyf-teachers-cta-button:hover,
.cyf-teachers-cta-button:focus-visible,
.cyf-elisa-cta-button:hover,
.cyf-elisa-cta-button:focus-visible,
.cyf-paolo-cta-button:hover,
.cyf-paolo-cta-button:focus-visible,
.cyf-centro-cta-button:hover,
.cyf-centro-cta-button:focus-visible,
.cyf-gallery-cta .cyf-btn:hover,
.cyf-gallery-cta .cyf-btn:focus-visible,
.cyf-contact-cta-button:hover,
.cyf-contact-cta-button:focus-visible,
.cyf-events-page-cta .cyf-btn:hover,
.cyf-events-page-cta .cyf-btn:focus-visible {
  border-color: var(--cyf-color-charcoal) !important;
  color: var(--cyf-color-ivory) !important;
  background: var(--cyf-color-charcoal) !important;
}

.cyf-event-single-info span,
.cyf-event-single-aside > span {
  color: var(--cyf-color-terra-light) !important;
}

.single-cyf_evento .nav-container nav .menu > li > a {
  opacity: 1 !important;
}

.cyf-event-filters button,
.cyf-event-link,
.cyf-event-archive-row,
.cyf-event-single-back a {
  min-height: 44px !important;
}

.back-to-top {
  min-width: 44px;
  min-height: 44px;
  cursor: pointer;
}

.cyf-carousel-toggle {
  position: absolute;
  z-index: 8;
  right: 18px;
  bottom: 18px;
  min-width: 72px;
  min-height: 44px;
  padding: 0 14px;
  border: 1px solid rgba(248, 244, 237, .86);
  border-radius: 0;
  font-family: var(--cyf-font-body);
  font-size: 11px;
  line-height: 1;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--cyf-color-ivory);
  background: rgba(37, 39, 37, .86);
  cursor: pointer;
}

.cyf-carousel-toggle:hover,
.cyf-carousel-toggle:focus-visible {
  color: var(--cyf-color-charcoal);
  background: var(--cyf-color-ivory);
}

@media (forced-colors: active) {
  .cyf-carousel-toggle,
  .cyf-skip-link {
    border: 2px solid ButtonText;
  }
}
