/* Shared light/dark theme. Loaded after each page's styles. */
:root { color-scheme: light; }
html[data-theme="dark"],
html[data-theme="dark"] body,
html[data-theme="dark"] .dark {
  color-scheme: dark;
  --bg: #171116;
  --bg-soft: #271D25;
  --ink: #FFF4FA;
  --ink-dark: #FFF4FA;
  --muted: #CBBAC4;
  --muted-dark: #CBBAC4;
  --pink: #F47BB6;
  --pink-hot: #F47BB6;
  --pink-strong: #F47BB6;
  --plum: #352030;
  --charcoal: #241B23;
  --ivory: #20171F;
  --ivory-soft: #2B2029;
  --line: rgba(244, 123, 182, .2);
  --theme-glass: rgba(30, 22, 29, .95);
}
.theme-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 44px;
  width: 44px;
  height: 44px;
  margin-left: 12px;
  padding: 10px;
  color: #873258;
  background: #FCE4F0;
  border: 0;
  border-radius: 50%;
  cursor: pointer;
}
.theme-toggle svg {
  width: 22px;
  height: 22px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.theme-toggle .theme-sun { display: none; }
html[data-theme="dark"] .theme-toggle { color: var(--pink); background: #3B2433; }
html[data-theme="dark"] .theme-moon { display: none; }
html[data-theme="dark"] .theme-sun { display: block; }
.theme-toggle:hover { box-shadow: 0 0 0 4px rgba(228, 90, 155, .18); }
.theme-toggle:focus-visible,
html[data-theme="dark"] :focus-visible { outline: 3px solid var(--pink); outline-offset: 4px; }
html[data-theme="dark"] body { color: var(--ink); background: var(--bg); }
html[data-theme="dark"] body::before { opacity: .15; }
html[data-theme="dark"] .site-header,
html[data-theme="dark"] .site-header.is-scrolled {
  background: var(--theme-glass);
  box-shadow: 0 12px 40px rgba(0, 0, 0, .3);
}
html[data-theme="dark"] .brand { color: var(--ink); }
html[data-theme="dark"] .main-nav { color: var(--muted); }
html[data-theme="dark"] .hero,
html[data-theme="dark"] .home-hero,
html[data-theme="dark"] .page-hero,
html[data-theme="dark"] .all-pricing-page .pricing-page-section,
html[data-theme="dark"] .partner-hero,
html[data-theme="dark"] .partner-cta {
  background: radial-gradient(ellipse at 80% 15%, rgba(228, 90, 155, .19), transparent 55%),
    linear-gradient(135deg, #171116, #2D1C29);
}
html[data-theme="dark"] .hero-overlay {
  background: linear-gradient(90deg, rgba(23, 17, 22, .96), rgba(23, 17, 22, .7) 54%, rgba(228, 90, 155, .08)),
    linear-gradient(0deg, rgba(23, 17, 22, .96), rgba(23, 17, 22, .18) 52%, rgba(45, 28, 41, .7));
}
html[data-theme="dark"] .dark { background: #21171F; }
html[data-theme="dark"] :is(.home-trainer-card, .trainer-card, .card, .review-card,
  .feature-card, .detail-card, .contact-card, .info-grid article, .effect-grid article,
  .contact-list div, .hub-link, .schedule-link-box, .schedule-tags li,
  .schedule-toolbar button, .schedule-today, .schedule-day, .schedule-event,
  .schedule-points div, .schedule-visit-address, .partner-side, .partner-event-card) {
  color: var(--ink);
  background: var(--charcoal);
}
html[data-theme="dark"] :is(.home-choice .choice-card, .pass-card, .opening-card,
  .opening-card.text-only, .schedule-panel, .schedule-story, .app-showcase-layout,
  .all-pricing-page .price-card, .all-pricing-page .pass-card, .partner-value) {
  color: var(--ink);
  background: radial-gradient(circle at top right, rgba(228, 90, 155, .12), transparent 45%), var(--charcoal);
}
html[data-theme="dark"] :is(.home-choice .choice-card-featured,
  .all-pricing-page .price-card.featured, .pass-card.featured,
  .all-pricing-page .pass-card.featured, .schedule-day.is-today,
  .partner-side-featured, .partner-event-card:nth-child(even)) {
  background: radial-gradient(circle at top right, rgba(228, 90, 155, .18), transparent 55%), #352030;
}
html[data-theme="dark"] :is(.button.ghost, .home-hero .button.ghost,
  .all-pricing-page .button.ghost) {
  color: var(--ink);
  background: #3B2935;
}
html[data-theme="dark"] :is(.button.ghost:hover, .button.ghost:focus-visible) {
  color: var(--ink);
  background: #523047;
}
html[data-theme="dark"] :is(.button.primary, .nav-cta, .scroll-top, .opening-strip) {
  color: #24171D;
  background: var(--pink);
}
html[data-theme="dark"] :is(.button.primary:hover, .nav-cta:hover, .scroll-top:hover) {
  color: #24171D;
  background: #FFABD3;
}
html[data-theme="dark"] :is(.trainer-instagram, .question-cta) { background: #352030; }
html[data-theme="dark"] :is(.trainer-instagram:hover, .question-cta:hover) { background: #523047; color: var(--ink); }
html[data-theme="dark"] :is(.ivory-surface, .ivory-outline) { color: var(--ink); background: var(--bg-soft); }
html[data-theme="dark"] :is(.ivory-surface, .ivory-outline) :is(h2, h3, p, strong) { color: var(--ink); }
html[data-theme="dark"] .site-cursor-dot.is-hover { background: #FFF4FA; }
html[data-theme="dark"] ::selection { color: #24171D; background: #F47BB6; }
@media (min-width: 921px) {
  .site-header .main-nav { margin-left: auto; }
}
@media (max-width: 920px) {
  .theme-toggle {
    position: fixed;
    top: 12px;
    right: 12px;
    z-index: 61;
    margin: 0;
    width: 48px;
    height: 48px;
    box-shadow: 0 8px 24px rgba(36, 23, 29, .15);
  }
  html[data-theme="dark"] .site-header,
  html[data-theme="dark"] .site-header.is-scrolled { background: transparent; box-shadow: none; }
  html[data-theme="dark"] .brand,
  html[data-theme="dark"] .main-nav { background: var(--theme-glass); }
  html[data-theme="dark"] .main-nav a:not(.nav-cta) { color: var(--muted); }
  html[data-theme="dark"] .main-nav a:not(.nav-cta):is(:hover, [aria-current="page"]) {
    color: var(--pink); background: #352030;
  }
  html[data-theme="dark"] .main-nav .nav-cta { color: #24171D; }
}
html[data-theme="dark"] .hub-link.featured,
html[data-theme="dark"] .hub-link.featured:hover {
  color: #24171D;
  background: var(--pink);
}
html[data-theme="dark"] .home-choice .choice-card::before { color: #FFF4FA; }
/* The home schedule has additional page-specific surface rules. */
html[data-theme="dark"] .home-bestrong.dark .schedule-frame,
html[data-theme="dark"] .home-bestrong.dark .schedule-toolbar button,
html[data-theme="dark"] .home-bestrong.dark .schedule-day,
html[data-theme="dark"] .home-bestrong.dark .schedule-event {
  color: var(--ink);
  background: var(--charcoal);
}
html[data-theme="dark"] .home-bestrong.dark .schedule-day.is-today { background: #352030; }
html[data-theme="dark"] .schedule-visit-action,
html[data-theme="dark"] .schedule-visit-action :is(h2, h3, a, p) { color: #24171D; }
html[data-theme="dark"] .schedule-day.is-today .schedule-day-heading {
  background: linear-gradient(135deg, #523047, #2B2029);
}
html[data-theme="dark"] .schedule-page .schedule-story .button.primary:is(:hover, :focus-visible) {
  color: #24171D;
  background: #FFABD3;
}
html[data-theme="dark"] .schedule-visit-action:is(:hover, :focus-visible) { background: #FFABD3; }
