/* Legacy Portal palette preview — remove body.theme-portal + this file to revert */

body.theme-portal {
  --portal-pink: #ff007f;
  --portal-pink-soft: rgba(255, 0, 127, 0.14);
  --portal-pink-glow: rgba(255, 0, 127, 0.28);
  --portal-bg: #f8f8f8;
  --portal-muted: #666666;
  --portal-border: rgba(0, 0, 0, 0.1);
  --portal-card-shadow: 0 18px 48px rgba(0, 0, 0, 0.06);
}

body.theme-portal {
  background: var(--portal-bg);
  color: var(--black);
}

body.theme-portal html {
  scrollbar-color: var(--portal-muted) var(--portal-bg);
}

body.theme-portal ::selection {
  background: var(--portal-pink);
  color: var(--white);
}

body.theme-portal .grain {
  opacity: 0.02;
}

/* Page surfaces */
body.theme-portal main > section,
body.theme-portal main > section:nth-child(odd):not(.hero),
body.theme-portal main > section:nth-child(even):not(.hero),
body.theme-portal .franchise-hero,
body.theme-portal .franchise-section--light,
body.theme-portal .shop-hero,
body.theme-portal .gallery-hero,
body.theme-portal .exam-results-hero,
body.theme-portal .legal-hero,
body.theme-portal .feedback,
body.theme-portal .gallery-feed,
body.theme-portal .exam-results,
body.theme-portal .legal-content,
body.theme-portal .classes-hero,
body.theme-portal .classes-subscriptions,
body.theme-portal .classes-departments,
body.theme-portal .footer {
  background: var(--portal-bg) !important;
  color: var(--black) !important;
}

/* Accent typography */
body.theme-portal .text-neon,
body.theme-portal .franchise-section--light .text-neon,
body.theme-portal .classes-departments .text-neon {
  color: var(--portal-pink) !important;
}

body.theme-portal .eyebrow,
body.theme-portal .legacy-ascent__eyebrow,
body.theme-portal .course-finder__step-label,
body.theme-portal .course-finder__result-eyebrow,
body.theme-portal .course-finder__section-title,
body.theme-portal .course-finder__group-title,
body.theme-portal .ascent-step__label {
  color: var(--portal-pink) !important;
}

body.theme-portal .section-head p,
body.theme-portal .why__intro > p,
body.theme-portal .faq__intro > p,
body.theme-portal .discovery__copy > p,
body.theme-portal .legacy-ascent__lead,
body.theme-portal .franchise-hero__copy p,
body.theme-portal .gallery-hero p,
body.theme-portal .exam-results-hero p,
body.theme-portal .legal-hero p,
body.theme-portal .feedback__intro p,
body.theme-portal .shop-hero p,
body.theme-portal .classes-hero p,
body.theme-portal .footer__brand p,
body.theme-portal .footer li,
body.theme-portal .footer__social a,
body.theme-portal .footer__bottom {
  color: var(--portal-muted) !important;
}

/* Primary buttons — solid magenta */
body.theme-portal .btn--neon,
body.theme-portal main > section:nth-child(even):not(.hero) .btn--neon,
body.theme-portal .nav__cta,
body.theme-portal .mobile-drawer__cta {
  background: var(--portal-pink) !important;
  color: var(--white) !important;
  border: none !important;
  box-shadow: 0 8px 28px var(--portal-pink-glow) !important;
}

body.theme-portal .btn--neon:hover,
body.theme-portal .nav__cta:hover,
body.theme-portal .mobile-drawer__cta:hover {
  box-shadow: 0 12px 36px var(--portal-pink-glow) !important;
}

body.theme-portal a.teachers__team-btn,
body.theme-portal main > section a.teachers__team-btn {
  background: var(--black) !important;
  color: var(--white) !important;
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.12) !important;
}

body.theme-portal a.teachers__team-btn:hover,
body.theme-portal main > section a.teachers__team-btn:hover {
  box-shadow: 0 8px 36px rgba(0, 0, 0, 0.2) !important;
}

body.theme-portal .btn--outline,
body.theme-portal main > section:nth-child(even):not(.hero) .btn--outline {
  border-color: var(--portal-border) !important;
  color: var(--black) !important;
  background: var(--white) !important;
}

body.theme-portal .btn--outline:hover,
body.theme-portal main > section:nth-child(even):not(.hero) .btn--outline:hover {
  border-color: var(--black) !important;
  background: var(--white) !important;
}

/* Navigation */
body.theme-portal .nav,
body.theme-portal .nav.scrolled {
  background: var(--black) !important;
  border-bottom-color: var(--border) !important;
  backdrop-filter: blur(18px);
}

body.theme-portal .nav__brand span {
  color: var(--white) !important;
  font-family: var(--font-brand) !important;
}

body.theme-portal .brand-text,
body.theme-portal .footer__logo-link span,
body.theme-portal :is(a, h1, h2, h3, h4, h5, h6, p, li, span, strong) .brand-text {
  font-family: var(--font-brand) !important;
  text-transform: uppercase !important;
  font-variant: normal !important;
}

body.theme-portal .eyebrow .brand-text,
body.theme-portal .legacy-ascent__eyebrow .brand-text {
  color: var(--portal-pink) !important;
}

body.theme-portal .nav__links a {
  color: rgba(255, 255, 255, 0.65) !important;
}

body.theme-portal .nav__links a:hover,
body.theme-portal .nav__links a[aria-current="page"],
body.theme-portal .gallery-page .nav__links a[aria-current="page"] {
  color: var(--portal-pink) !important;
}

body.theme-portal .nav__dropdown-toggle:hover,
body.theme-portal .nav__dropdown.is-open .nav__dropdown-toggle,
body.theme-portal .nav__dropdown.is-current .nav__dropdown-toggle {
  color: var(--portal-pink) !important;
}

body.theme-portal .nav__dropdown-menu a:hover,
body.theme-portal .nav__dropdown-menu a[aria-current="page"] {
  color: var(--portal-pink) !important;
}

body.theme-portal .nav__franchise {
  border-color: rgba(255, 255, 255, 0.35) !important;
  color: var(--white) !important;
}

body.theme-portal .nav__franchise:hover,
body.theme-portal .nav__franchise[aria-current="page"] {
  border-color: var(--white) !important;
  background: rgba(255, 255, 255, 0.08) !important;
}

body.theme-portal .nav__portal {
  background: var(--white) !important;
  color: var(--black) !important;
  border: none !important;
  box-shadow: none !important;
}

body.theme-portal .nav__portal:hover {
  box-shadow: 0 6px 24px rgba(255, 255, 255, 0.2) !important;
}

body.theme-portal .nav__toggle span {
  background: var(--white) !important;
}

body.theme-portal .mobile-drawer {
  background: rgba(0, 0, 0, 0.97) !important;
  color: var(--white) !important;
  border-left: 1px solid var(--border);
}

body.theme-portal .mobile-drawer a {
  color: var(--white) !important;
}

/* White content cards */
body.theme-portal .why-card,
body.theme-portal .ascent-step__card,
body.theme-portal .portal-showcase__features li,
body.theme-portal .course-finder,
body.theme-portal .course-finder__result,
body.theme-portal .course-finder__package,
body.theme-portal .course-finder__shop-card,
body.theme-portal .price-card,
body.theme-portal .teacher-card,
body.theme-portal .branch,
body.theme-portal .discovery .course-finder,
body.theme-portal .franchise-benefit,
body.theme-portal .exam-results__year,
body.theme-portal .franchise-steps li,
body.theme-portal .franchise-apply__form,
body.theme-portal .classes-plan,
body.theme-portal .classes-dept,
body.theme-portal .classes-offering,
body.theme-portal .teacher-flashcard__card,
body.theme-portal .google-reviews__summary-card,
body.theme-portal .google-review-card,
body.theme-portal .faq-item,
body.theme-portal .franchise-stats article,
body.theme-portal .franchise-breakdown__card,
body.theme-portal .hero__stat {
  background: var(--white) !important;
  border-color: var(--portal-border) !important;
  color: var(--black) !important;
  box-shadow: var(--portal-card-shadow);
}

body.theme-portal .why-card:hover,
body.theme-portal .ascent-step__card:hover,
body.theme-portal .teacher-card:hover,
body.theme-portal .price-card:hover {
  border-color: rgba(255, 0, 127, 0.35) !important;
}

body.theme-portal .why-card h3,
body.theme-portal .ascent-step__card h3,
body.theme-portal .ascent-step__card strong,
body.theme-portal .course-finder__question,
body.theme-portal .course-finder__result-course,
body.theme-portal .price-card h3,
body.theme-portal .price-card__amount,
body.theme-portal .teacher-card h3,
body.theme-portal .branch h3,
body.theme-portal .google-reviews__score,
body.theme-portal .google-reviews__brand,
body.theme-portal .google-review-card__author,
body.theme-portal .faq-item summary,
body.theme-portal .hero__stat strong,
body.theme-portal .hero__stat-recent {
  color: var(--black) !important;
}

body.theme-portal .why-card p,
body.theme-portal .ascent-step__card p,
body.theme-portal .portal-showcase__features span,
body.theme-portal .course-finder__hint,
body.theme-portal .course-finder__option-desc,
body.theme-portal .price-card__duration,
body.theme-portal .price-card li,
body.theme-portal .teacher-card p,
body.theme-portal .branch > p,
body.theme-portal .faq-item p,
body.theme-portal .hero__stat-label,
body.theme-portal .hero__stat-link,
body.theme-portal .google-review-card time {
  color: var(--portal-muted) !important;
}

body.theme-portal .google-review-card__quote {
  color: var(--black) !important;
}

body.theme-portal .why-card--large {
  border-color: var(--portal-pink) !important;
}

body.theme-portal .why-card--large .why-card__num {
  color: var(--portal-pink) !important;
}

body.theme-portal .why__intro .legacy-ascent__lead {
  color: var(--portal-muted) !important;
}

body.theme-portal .why__intro {
  border-top-color: var(--portal-border) !important;
}

body.theme-portal .why-card__num {
  color: rgba(255, 0, 127, 0.18) !important;
}

body.theme-portal .why-card:hover .why-card__num {
  color: var(--portal-pink) !important;
}

/* Step markers */
body.theme-portal .ascent-step__num {
  background: var(--white) !important;
  border-color: var(--portal-border) !important;
  color: var(--portal-muted) !important;
  box-shadow: var(--portal-card-shadow);
}

body.theme-portal .ascent-step:first-child .ascent-step__num,
body.theme-portal .ascent-step:last-child .ascent-step__num {
  background: var(--portal-pink) !important;
  border-color: var(--portal-pink) !important;
  color: var(--white) !important;
}

body.theme-portal .legacy-ascent__path::before {
  background: linear-gradient(
    to bottom,
    rgba(255, 0, 127, 0.05),
    rgba(255, 0, 127, 0.35) 12%,
    rgba(255, 0, 127, 0.35) 88%,
    rgba(255, 0, 127, 0.05)
  ) !important;
}

@media (min-width: 1024px) {
  body.theme-portal .legacy-ascent__path::before {
    background: linear-gradient(
      to right,
      rgba(255, 0, 127, 0.05),
      rgba(255, 0, 127, 0.35) 10%,
      rgba(255, 0, 127, 0.35) 90%,
      rgba(255, 0, 127, 0.05)
    ) !important;
  }
}

body.theme-portal .legacy-ascent__ages span {
  background: var(--white);
  border-color: var(--portal-border);
  color: var(--portal-muted);
}

/* Course finder */
body.theme-portal .course-finder__progress li {
  background: rgba(0, 0, 0, 0.08);
}

body.theme-portal .course-finder__progress li.active,
body.theme-portal .course-finder__progress li.done {
  background: var(--portal-pink) !important;
}

body.theme-portal .course-finder__progress li.active {
  box-shadow: 0 0 0 2px var(--white), 0 0 0 4px var(--portal-pink-soft);
}

body.theme-portal .course-finder__option {
  background: var(--portal-bg);
  border-color: var(--portal-border);
}

body.theme-portal .course-finder__option:has(input:checked) {
  border-color: var(--portal-pink) !important;
  background: var(--portal-pink-soft) !important;
  box-shadow: 0 0 0 1px var(--portal-pink);
}

body.theme-portal .course-finder__field input {
  background: var(--portal-bg) !important;
  border-color: var(--portal-border) !important;
  color: var(--black) !important;
}

body.theme-portal .course-finder__discovery-form {
  background: var(--portal-bg) !important;
  border-color: var(--portal-border) !important;
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.08);
}

body.theme-portal .course-finder__discovery-slots,
body.theme-portal .course-finder__discovery-branch-step,
body.theme-portal .course-finder__discovery-teacher {
  background: var(--portal-bg) !important;
  border-color: var(--portal-border) !important;
  color: var(--black) !important;
  box-shadow: none;
}

body.theme-portal .course-finder__discovery-selection {
  color: var(--black) !important;
}

body.theme-portal .course-finder__discovery-hint,
body.theme-portal .course-finder__discovery-slots-empty {
  color: var(--portal-muted) !important;
}

body.theme-portal .course-finder__discovery-eyebrow {
  color: var(--portal-muted) !important;
}

body.theme-portal .course-finder__discovery-heading {
  color: var(--black) !important;
}

body.theme-portal .course-finder__discovery-branch {
  background: var(--white) !important;
  border-color: var(--portal-border) !important;
  color: var(--black) !important;
}

body.theme-portal .course-finder__discovery-branch.is-active {
  background: var(--black) !important;
  border-color: var(--black) !important;
  color: var(--white) !important;
}

body.theme-portal .course-finder__discovery-slot {
  background: var(--white) !important;
  border-color: var(--portal-border) !important;
  color: var(--black) !important;
}

body.theme-portal .course-finder__discovery-slot-meta {
  color: var(--portal-muted) !important;
}

body.theme-portal .course-finder__discovery-slot.is-selected {
  border-color: var(--portal-pink) !important;
  background: var(--portal-pink-soft) !important;
  box-shadow: 0 0 0 1px var(--portal-pink) !important;
}

body.theme-portal .course-finder__discovery-slot.is-selected .course-finder__discovery-slot-meta {
  color: var(--portal-muted) !important;
}

body.theme-portal .course-finder__discovery-slot-check {
  border-color: var(--portal-border) !important;
}

body.theme-portal .course-finder__discovery-slot.is-selected .course-finder__discovery-slot-check {
  background: var(--portal-pink) !important;
  border-color: var(--portal-pink) !important;
  color: var(--white) !important;
}

body.theme-portal .course-finder__discovery-slots-back {
  color: var(--portal-muted) !important;
}

body.theme-portal .course-finder__discovery-slots-back:hover {
  color: var(--portal-pink) !important;
}

body.theme-portal .course-finder__discovery-continue.btn--neon {
  border: none !important;
}

body.theme-portal .course-finder__discovery-form .course-finder__field select {
  background: var(--portal-bg) !important;
  border-color: var(--portal-border) !important;
  color: var(--black) !important;
}

body.theme-portal .course-finder__discovery-form .course-finder__field textarea {
  background: var(--portal-bg) !important;
  border-color: var(--portal-border) !important;
  color: var(--black) !important;
}

body.theme-portal .course-finder__discovery-checkbox {
  color: var(--portal-muted) !important;
}

body.theme-portal .course-finder__discovery-policy {
  color: var(--portal-muted) !important;
}

body.theme-portal .course-finder__discovery-policy strong {
  color: var(--black) !important;
}

body.theme-portal .course-finder__discovery-policy a {
  color: var(--portal-pink) !important;
}

body.theme-portal .course-finder__discovery-success {
  background: rgba(255, 0, 127, 0.08) !important;
  border-color: rgba(255, 0, 127, 0.25) !important;
  color: var(--black) !important;
}

body.theme-portal .course-finder__discovery-form.is-confirmed .course-finder__discovery-success {
  background:
    radial-gradient(circle at 50% 0%, rgba(255, 0, 127, 0.3), transparent 45%),
    linear-gradient(145deg, #080808, #280016) !important;
  border-color: rgba(255, 0, 127, 0.55) !important;
  color: var(--white) !important;
}

body.theme-portal .course-finder__discovery-form.is-confirmed .course-finder__discovery-success-detail,
body.theme-portal .course-finder__discovery-form.is-confirmed .course-finder__discovery-success strong {
  color: var(--white) !important;
}

body.theme-portal .legacy-celebrate .legacy-celebrate__card {
  background:
    radial-gradient(circle at 50% 0%, rgba(255, 0, 127, 0.3), transparent 45%),
    linear-gradient(145deg, #080808, #280016) !important;
  border-color: rgba(255, 0, 127, 0.55) !important;
  color: var(--white) !important;
}

body.theme-portal .legacy-celebrate--muted .legacy-celebrate__card {
  background: linear-gradient(145deg, #080808, #1c1c1c) !important;
  border-color: rgba(255, 255, 255, 0.22) !important;
}

body.theme-portal .legacy-celebrate .course-finder__discovery-success-detail,
body.theme-portal .legacy-celebrate .course-finder__discovery-success strong {
  color: var(--white) !important;
}

body.theme-portal .legacy-celebrate .btn--outline {
  border-color: rgba(255, 255, 255, 0.4) !important;
  background: transparent !important;
  color: var(--white) !important;
}

body.theme-portal .course-finder__discovery-form .course-finder__discovery-form-back {
  color: var(--portal-muted) !important;
}

body.theme-portal .course-finder__discovery-form .course-finder__discovery-form-back:hover {
  color: var(--portal-pink) !important;
}

body.theme-portal .course-finder__discovery-slot-summary {
  color: var(--black) !important;
}

body.theme-portal .course-finder__discovery-prompt-text {
  color: var(--black) !important;
}

body.theme-portal .course-finder__book-cta.is-active {
  border-color: var(--portal-pink) !important;
  color: var(--portal-pink) !important;
  background: rgba(255, 0, 127, 0.06) !important;
}

body.theme-portal .course-finder__restart {
  color: var(--portal-muted);
}

body.theme-portal .course-finder__restart:hover {
  color: var(--portal-pink) !important;
}

/* Form contrast — dark text on white/light surfaces */
body.theme-portal .course-finder__option-title {
  color: var(--black) !important;
}

body.theme-portal .course-finder__result-level {
  background: var(--portal-bg) !important;
  color: var(--black) !important;
}

body.theme-portal .course-finder__section-hint {
  color: var(--portal-muted) !important;
}

body.theme-portal .course-finder__package h4,
body.theme-portal .course-finder__package-price,
body.theme-portal .course-finder__shop-card h5 {
  color: var(--black) !important;
}

body.theme-portal .course-finder__package-duration,
body.theme-portal .course-finder__package li,
body.theme-portal .course-finder__shop-card p {
  color: var(--portal-muted) !important;
}

body.theme-portal .course-finder__package li::before {
  color: var(--portal-pink) !important;
}

body.theme-portal .course-finder__field span {
  color: var(--portal-muted) !important;
}

body.theme-portal .course-finder__result .btn--outline {
  color: var(--black) !important;
  border-color: var(--portal-border) !important;
  background: var(--white) !important;
}

body.theme-portal .course-finder__result .btn--outline:hover {
  border-color: var(--black) !important;
  background: var(--white) !important;
}

body.theme-portal .course-finder__discovery-close-back,
body.theme-portal .course-finder__discovery-back-teacher {
  color: var(--portal-muted) !important;
}

body.theme-portal .course-finder__discovery-close-back:hover,
body.theme-portal .course-finder__discovery-back-teacher:hover {
  color: var(--portal-pink) !important;
}

body.theme-portal .price-mandate-form__title,
body.theme-portal .price-mandate-form__summary {
  color: var(--black) !important;
}

body.theme-portal .price-mandate-form__section legend {
  color: var(--portal-muted) !important;
}

body.theme-portal .franchise-apply__form input,
body.theme-portal .franchise-apply__form select,
body.theme-portal .franchise-apply__form textarea {
  background: var(--portal-bg) !important;
  border-color: var(--portal-border) !important;
  color: var(--black) !important;
}

body.theme-portal .franchise-apply__form input::placeholder,
body.theme-portal .franchise-apply__form textarea::placeholder {
  color: var(--portal-muted) !important;
}

body.theme-portal .franchise-apply__form input:focus,
body.theme-portal .franchise-apply__form select:focus,
body.theme-portal .franchise-apply__form textarea:focus {
  border-color: var(--portal-pink) !important;
}

body.theme-portal .franchise-apply__form select option {
  background: var(--white) !important;
  color: var(--black) !important;
}

/* Pricing */
body.theme-portal .price-card--featured,
body.theme-portal main > section.pricing:nth-child(even) .price-card--featured {
  border-color: var(--portal-pink) !important;
  box-shadow: 0 20px 60px var(--portal-pink-glow) !important;
  animation: none !important;
}

body.theme-portal .price-card__badge {
  background: var(--portal-pink) !important;
  color: var(--white) !important;
}

body.theme-portal .price-billing__option.is-active,
body.theme-portal main > section.pricing:nth-child(even) .price-billing__option.is-active {
  background: var(--black) !important;
  color: var(--white) !important;
}

body.theme-portal .price-addon[aria-pressed="true"],
body.theme-portal main > section.pricing:nth-child(even) .price-addon[aria-pressed="true"] {
  border-color: var(--portal-pink) !important;
  background: var(--portal-pink-soft) !important;
  box-shadow: 0 0 0 1px var(--portal-pink) !important;
}

body.theme-portal .price-card li {
  border-bottom-color: var(--portal-border) !important;
}

body.theme-portal .price-card li::before {
  color: var(--portal-pink) !important;
}

body.theme-portal .price-card.is-highlighted {
  outline: 2px solid var(--portal-pink) !important;
  outline-offset: 4px;
  box-shadow: 0 0 0 6px var(--portal-pink-soft) !important;
}

body.theme-portal .price-signup-modal .price-card:not(.price-card--featured) {
  border-color: var(--portal-border) !important;
  box-shadow: var(--portal-card-shadow) !important;
  outline: none !important;
}

body.theme-portal .price-signup-modal .price-card.is-highlighted {
  outline: none !important;
  box-shadow: var(--portal-card-shadow) !important;
  border-color: var(--portal-border) !important;
}

body.theme-portal .price-signup-modal__dialog {
  background: var(--white) !important;
  border-color: var(--portal-border) !important;
}

body.theme-portal .price-signup-modal__header {
  border-bottom-color: var(--portal-border) !important;
}

body.theme-portal .price-signup-modal__eyebrow {
  color: var(--portal-muted) !important;
}

body.theme-portal .price-signup-modal__title {
  color: var(--black) !important;
}

body.theme-portal .price-signup-modal__plan {
  color: var(--black) !important;
}

body.theme-portal .price-signup-modal__close {
  color: var(--black) !important;
  border-color: var(--portal-border) !important;
}

body.theme-portal .price-signup-modal__close:hover {
  border-color: var(--portal-pink) !important;
  color: var(--portal-pink) !important;
}

body.theme-portal .price-mandate-form__hint,
body.theme-portal .price-mandate-form__field span,
body.theme-portal .price-mandate-form__checkbox,
body.theme-portal .price-mandate-form__policy {
  color: var(--portal-muted) !important;
}

body.theme-portal .price-mandate-form__field input,
body.theme-portal .price-mandate-form__field select,
body.theme-portal .price-mandate-form__field textarea {
  color: var(--black) !important;
  background: var(--white) !important;
  border-color: var(--portal-border) !important;
}

body.theme-portal .price-mandate-form__field input:focus,
body.theme-portal .price-mandate-form__field select:focus,
body.theme-portal .price-mandate-form__field textarea:focus {
  border-color: var(--portal-pink) !important;
}

body.theme-portal .price-mandate-form__policy strong,
body.theme-portal .price-mandate-form__success {
  color: var(--black) !important;
}

body.theme-portal .price-mandate-form__policy a {
  color: var(--portal-pink) !important;
}

body.theme-portal .price-signup__hint,
body.theme-portal .price-signup__department-hint,
body.theme-portal .price-signup__slots-empty {
  color: var(--portal-muted) !important;
}

body.theme-portal .price-signup__selection,
body.theme-portal .price-mandate-form__slot-summary {
  color: var(--black) !important;
}

body.theme-portal .price-mandate-form__payment {
  background: rgba(0, 0, 0, 0.03) !important;
  border-color: var(--portal-border) !important;
}

body.theme-portal .price-mandate-form__payment-card {
  background: var(--white) !important;
  border-color: var(--portal-border) !important;
}

body.theme-portal .price-mandate-form__payment-card--due {
  border-color: rgba(255, 0, 127, 0.35) !important;
  background: rgba(255, 0, 127, 0.06) !important;
}

body.theme-portal .price-mandate-form__payment-value {
  color: var(--black) !important;
}

body.theme-portal .price-mandate-form__payment-card--due .price-mandate-form__payment-value {
  color: var(--portal-pink, #ff007f) !important;
}

body.theme-portal .price-mandate-form__payment-label,
body.theme-portal .price-mandate-form__payment-meta,
body.theme-portal .price-mandate-form__payment-note,
body.theme-portal .price-mandate-form__payment-heading {
  color: var(--portal-muted) !important;
}

body.theme-portal .price-signup__teacher-chip {
  color: var(--black) !important;
  background: var(--white) !important;
  border-color: var(--portal-border) !important;
}

body.theme-portal .price-signup__teacher-chip.is-selected {
  border-color: var(--portal-pink) !important;
  box-shadow: 0 0 0 1px var(--portal-pink) !important;
}

body.theme-portal .price-signup__teacher-filter-label,
body.theme-portal .price-mandate-form__quote-status,
body.theme-portal .price-mandate-form__schedule-heading,
body.theme-portal .price-mandate-form__schedule-list li,
body.theme-portal .price-mandate-form__quote-small {
  color: var(--portal-muted) !important;
}

body.theme-portal .price-mandate-form__quote-status.is-error {
  color: #c2185b !important;
}

body.theme-portal .price-mandate-form__schedule-list strong,
body.theme-portal .price-mandate-form__error {
  color: var(--black) !important;
}

body.theme-portal .price-signup-teacher__card {
  background: var(--white) !important;
  border-color: var(--portal-border) !important;
}

body.theme-portal .price-signup-teacher.is-selected .price-signup-teacher__card {
  border-color: var(--portal-pink) !important;
  box-shadow: 0 0 0 1px var(--portal-pink) !important;
}

body.theme-portal .price-signup-teacher__name {
  color: var(--black) !important;
}

body.theme-portal .price-signup-teacher__role {
  color: var(--portal-muted) !important;
}

body.theme-portal .price-signup-teacher__tagline {
  color: var(--portal-muted) !important;
}

/* Modal forms (appended to body — outside page cards) */
body.theme-portal .price-signup-modal,
body.theme-portal .price-signup-modal__body {
  color: var(--black) !important;
}

body.theme-portal .price-signup-modal :where(
  .course-finder__option-title,
  .course-finder__question,
  .course-finder__result-course,
  .course-finder__package h4,
  .course-finder__package-price,
  .course-finder__shop-card h5,
  .price-mandate-form__title,
  .price-mandate-form__summary,
  .price-mandate-form__slot-summary,
  .price-signup__selection,
  .course-finder__discovery-heading,
  .course-finder__discovery-selection,
  .course-finder__discovery-policy strong
) {
  color: var(--black) !important;
}

body.theme-portal .price-signup-modal :where(
  .course-finder__hint,
  .course-finder__option-desc,
  .course-finder__result-desc,
  .course-finder__section-hint,
  .course-finder__package-duration,
  .course-finder__package li,
  .course-finder__shop-card p,
  .course-finder__field span,
  .price-mandate-form__hint,
  .price-mandate-form__field span,
  .price-mandate-form__checkbox,
  .price-mandate-form__policy,
  .price-mandate-form__section legend,
  .price-signup__hint,
  .price-signup__department-hint,
  .price-signup__slots-empty,
  .course-finder__discovery-hint,
  .course-finder__discovery-eyebrow,
  .course-finder__discovery-slot-meta,
  .slot-calendar__slot-detail,
  .slot-calendar__empty
) {
  color: var(--portal-muted) !important;
}

body.theme-portal .price-signup-modal .course-finder__result-level {
  background: var(--portal-bg) !important;
  color: var(--black) !important;
}

body.theme-portal .price-signup-modal .course-finder__option,
body.theme-portal .price-signup-modal .course-finder__package,
body.theme-portal .price-signup-modal .course-finder__shop-card {
  background: var(--white) !important;
  border-color: var(--portal-border) !important;
  color: var(--black) !important;
}

body.theme-portal .price-signup-modal .course-finder__option:has(input:checked) {
  border-color: var(--portal-pink) !important;
  background: var(--portal-pink-soft) !important;
}

body.theme-portal .price-signup-modal .course-finder__package li::before {
  color: var(--portal-pink) !important;
}

body.theme-portal .price-signup-modal .course-finder__result .btn--outline {
  color: var(--black) !important;
  border-color: var(--portal-border) !important;
  background: var(--white) !important;
}

body.theme-portal .price-signup-modal .course-finder__result .btn--outline:hover {
  border-color: var(--black) !important;
  background: var(--white) !important;
}

body.theme-portal .price-signup-modal .course-finder__discovery-form .course-finder__field input {
  background: var(--portal-bg) !important;
  border-color: var(--portal-border) !important;
  color: var(--black) !important;
}

body.theme-portal .slot-calendar__picker,
body.theme-portal .slot-calendar__times-panel {
  background: var(--white) !important;
  border-color: var(--portal-border) !important;
}

body.theme-portal .slot-calendar__month-label,
body.theme-portal .slot-calendar__period-label,
body.theme-portal .slot-calendar__date-label {
  color: var(--black) !important;
}

body.theme-portal .slot-calendar__nav {
  background: var(--white) !important;
  border-color: var(--portal-border) !important;
  color: var(--black) !important;
}

body.theme-portal .slot-calendar__day.is-past {
  color: var(--portal-muted) !important;
}

body.theme-portal .slot-calendar__day.is-available {
  color: var(--portal-pink) !important;
}

body.theme-portal .slot-calendar__day.is-selected {
  background: var(--portal-pink) !important;
  color: var(--white) !important;
}

body.theme-portal .slot-calendar__timezone {
  color: var(--portal-pink) !important;
}

body.theme-portal .slot-calendar__time {
  border-color: rgba(255, 0, 127, 0.35) !important;
  color: var(--portal-pink) !important;
  background: var(--white) !important;
}

body.theme-portal .slot-calendar__time.is-selected {
  background: var(--portal-pink) !important;
  border-color: var(--portal-pink) !important;
  color: var(--white) !important;
}

body.theme-portal .slot-calendar__time.is-full,
body.theme-portal .slot-calendar__time.is-full:hover {
  background: #f4f4f4 !important;
  border-color: #e2e2e2 !important;
  color: #a3a3a3 !important;
  text-decoration: line-through;
  cursor: not-allowed;
}

body.theme-portal .slot-calendar__slot-detail,
body.theme-portal .slot-calendar__empty {
  color: var(--portal-muted) !important;
}

body.theme-portal .price-signup__instruments .course-finder__option {
  background: var(--white) !important;
  border-color: var(--portal-border) !important;
}

body.theme-portal .feedback-form {
  background: var(--white) !important;
  border-color: var(--portal-border) !important;
}

body.theme-portal .feedback-form input,
body.theme-portal .feedback-form select,
body.theme-portal .feedback-form textarea {
  background: var(--portal-bg) !important;
  border-color: var(--portal-border) !important;
  color: var(--black) !important;
}

body.theme-portal .feedback-form input::placeholder,
body.theme-portal .feedback-form textarea::placeholder {
  color: var(--portal-muted) !important;
}

body.theme-portal .feedback-form input:focus,
body.theme-portal .feedback-form select:focus,
body.theme-portal .feedback-form textarea:focus {
  border-color: var(--portal-pink) !important;
  box-shadow: 0 0 0 3px var(--portal-pink-soft) !important;
}

body.theme-portal .feedback-form select option {
  background: var(--white) !important;
  color: var(--black) !important;
}

body.theme-portal .feedback-form__label,
body.theme-portal .feedback-form__success {
  color: var(--portal-muted) !important;
}

body.theme-portal .feedback-form__error {
  color: #c62828 !important;
}

body.theme-portal .feedback__intro a {
  color: var(--portal-pink) !important;
}

body.theme-portal .pro-rata-modal__dialog {
  background: var(--white) !important;
  color: var(--black) !important;
}

body.theme-portal .pro-rata-modal__title,
body.theme-portal .pro-rata-modal__plan,
body.theme-portal .pro-rata-modal__breakdown dd {
  color: var(--black) !important;
}

body.theme-portal .pro-rata-modal__eyebrow,
body.theme-portal .pro-rata-modal__date,
body.theme-portal .pro-rata-modal__note,
body.theme-portal .pro-rata-modal__breakdown dt {
  color: var(--portal-muted) !important;
}

body.theme-portal .pro-rata-modal__total dd {
  color: var(--portal-pink) !important;
}

body.theme-portal .pro-rata-modal__close {
  border-color: var(--portal-border) !important;
  color: var(--black) !important;
}

/* Discovery */
body.theme-portal .discovery__steps li.active {
  background: var(--portal-pink) !important;
  border-color: var(--portal-pink) !important;
  color: var(--white) !important;
}

/* FAQ */
body.theme-portal .faq-item {
  border-bottom: 1px solid var(--portal-border) !important;
  border-radius: 14px;
  padding: 0 1.25rem;
  margin-bottom: 0.65rem;
}

body.theme-portal .faq-item summary::after {
  color: var(--portal-pink) !important;
}

/* Google Reviews */
body.theme-portal .google-reviews__star.is-filled {
  color: #fbbc04 !important;
}

body.theme-portal .google-review-card:hover,
body.theme-portal .google-reviews__summary-card:hover {
  border-color: rgba(255, 0, 127, 0.35) !important;
}

/* Hero image plane — keep dark for white type */
body.theme-portal .hero {
  background: #0a0a0a !important;
  color: var(--white) !important;
}

body.theme-portal .hero__stat {
  background: rgba(255, 255, 255, 0.96) !important;
}

body.theme-portal .hero__stat.is-updated {
  border-color: var(--portal-pink) !important;
  box-shadow: 0 0 0 1px var(--portal-pink-soft), var(--portal-card-shadow) !important;
}

body.theme-portal .hero__stat:hover .hero__stat-link {
  color: var(--portal-pink) !important;
}

/* Footer */
body.theme-portal .footer {
  border-top-color: var(--portal-border) !important;
}

body.theme-portal .footer a:hover,
body.theme-portal .footer__social a:hover {
  color: var(--portal-pink) !important;
}

/* Back to top */
body.theme-portal .back-to-top {
  background: var(--black) !important;
  color: var(--white) !important;
  border-color: var(--black) !important;
}

body.theme-portal .back-to-top:hover {
  background: var(--portal-pink) !important;
  border-color: var(--portal-pink) !important;
}

/* Gallery */
body.theme-portal .gallery-card {
  border-color: var(--portal-border) !important;
  box-shadow: var(--portal-card-shadow);
}

body.theme-portal .gallery-feed__empty a {
  color: var(--portal-pink) !important;
}

/* Classes featured badge */
body.theme-portal .classes-plan__badge {
  background: var(--portal-pink) !important;
}

body.theme-portal .classes-plan--featured {
  border-color: var(--portal-pink) !important;
}

/* Black text on light backgrounds — pink accents preserved */
body.theme-portal main > section:not(.hero) :where(h1, h2, h3, h4, h5, h6, p, li, dt, dd, label, summary, span, a, strong, em, small),
body.theme-portal :is(.franchise-hero, .shop-hero, .gallery-hero, .exam-results-hero, .legal-hero, .classes-hero, .gallery-feed, .exam-results, .legal-content, .legal-prose, .feedback, .feedback__intro, .classes-subscriptions, .classes-departments, .footer) :where(h1, h2, h3, h4, h5, h6, p, li, a, span, strong, label, summary) {
  color: var(--black) !important;
}

body.theme-portal :is(
  .why-card,
  .ascent-step__card,
  .course-finder,
  .course-finder__result,
  .course-finder__package,
  .course-finder__shop-card,
  .price-card,
  .teacher-card,
  .branch,
  .discovery .course-finder,
  .franchise-benefit,
  .franchise-steps li,
  .franchise-apply__form,
  .classes-plan,
  .classes-dept,
  .classes-offering,
  .teacher-flashcard__card,
  .google-reviews__summary-card,
  .google-review-card,
  .faq-item,
  .franchise-stats article,
  .franchise-breakdown__card,
  .hero__stat
) :where(h1, h2, h3, h4, h5, h6, p, li, span, a, strong, label, summary, blockquote, footer) {
  color: var(--black) !important;
}

/* Keep magenta accent text */
body.theme-portal :is(
  .text-neon,
  .eyebrow,
  .legacy-ascent__eyebrow,
  .legacy-ascent__accent,
  .course-finder__step-label,
  .course-finder__result-eyebrow,
  .course-finder__section-title,
  .ascent-step__label,
  .google-reviews__star.is-filled,
  .faq-item summary::after,
  .price-card li::before,
  .course-finder__restart:hover,
  .google-review-card:hover,
  .footer a:hover,
  .footer__social a:hover,
  .hero__stat:hover .hero__stat-link,
  .gallery-feed__empty a,
  .nav__links a:hover,
  .nav__links a[aria-current="page"],
  .gallery-page .nav__links a[aria-current="page"]
) {
  color: var(--portal-pink) !important;
}

/* White text on magenta controls */
body.theme-portal :is(
  .btn--neon,
  .nav__cta,
  .mobile-drawer__cta,
  .price-card__badge,
  .discovery__steps li.active,
  .ascent-step:first-child .ascent-step__num,
  .ascent-step:last-child .ascent-step__num,
  .price-billing__option.is-active
) {
  color: var(--white) !important;
}

body.theme-portal .why-card__num {
  color: rgba(255, 0, 127, 0.22) !important;
}

body.theme-portal .why-card:hover .why-card__num {
  color: var(--portal-pink) !important;
}

body.theme-portal .portal-store-badge {
  background: var(--black) !important;
  color: var(--white) !important;
}

body.theme-portal main > section .portal-store-badge .portal-store-badge__label,
body.theme-portal main > section .portal-store-badge .portal-store-badge__name {
  color: var(--white) !important;
  font-family: var(--font-body) !important;
  text-transform: none !important;
}

body.theme-portal .portal-store-badge__icon {
  fill: var(--white) !important;
}

body.theme-portal .team-hero {
  background: var(--portal-bg) !important;
  border-bottom-color: var(--portal-border) !important;
}

body.theme-portal .team-hero p {
  color: var(--portal-muted) !important;
}

body.theme-portal .team-hero__inner::after {
  background: var(--portal-pink) !important;
}

body.theme-portal .team-list__count span {
  color: var(--portal-pink) !important;
}

body.theme-portal .team-list__rule {
  background: linear-gradient(90deg, var(--portal-pink), transparent) !important;
}

body.theme-portal .team-spotlight {
  background: var(--white) !important;
  border-color: var(--portal-border) !important;
  box-shadow: var(--portal-card-shadow) !important;
}

body.theme-portal .team-spotlight:nth-child(even) {
  background: var(--black) !important;
  border-color: rgba(255, 255, 255, 0.1) !important;
}

body.theme-portal .team-spotlight:hover {
  box-shadow: 0 32px 80px var(--portal-pink-glow) !important;
}

body.theme-portal .team-spotlight__frame::before {
  background: linear-gradient(135deg, var(--portal-pink), transparent 55%) !important;
}

body.theme-portal .team-spotlight__badge {
  background: var(--portal-pink) !important;
  box-shadow: 0 8px 24px var(--portal-pink-glow) !important;
}

body.theme-portal .team-spotlight__owner {
  background: var(--portal-pink) !important;
  color: var(--white) !important;
  box-shadow: 0 4px 16px var(--portal-pink-glow) !important;
}

body.theme-portal .team-spotlight--owner {
  border-color: rgba(255, 0, 127, 0.28) !important;
}

body.theme-portal .team-spotlight__role,
body.theme-portal .team-spotlight__surname {
  color: var(--portal-pink) !important;
}

body.theme-portal .team-spotlight:nth-child(odd) .team-spotlight__tagline,
body.theme-portal .team-spotlight:nth-child(odd) .team-spotlight__bio {
  color: var(--portal-muted) !important;
}

body.theme-portal .team-spotlight:nth-child(even) {
  color: var(--white) !important;
}

body.theme-portal .team-spotlight:nth-child(even) .team-spotlight__name,
body.theme-portal .team-spotlight:nth-child(even) .team-spotlight__tagline,
body.theme-portal .team-spotlight:nth-child(even) .team-spotlight__bio,
body.theme-portal .team-spotlight:nth-child(even) .team-spotlight__branches {
  color: var(--white) !important;
}

body.theme-portal .team-spotlight:nth-child(even) .team-spotlight__role,
body.theme-portal .team-spotlight:nth-child(even) .team-spotlight__surname {
  color: var(--portal-pink) !important;
}

body.theme-portal .team-spotlight__tags li {
  font-size: 1rem !important;
  padding: 0.65rem 1.1rem !important;
}

body.theme-portal .team-spotlight:nth-child(even) .team-spotlight__tags li {
  color: var(--white) !important;
  border-color: rgba(255, 255, 255, 0.28) !important;
  background: rgba(255, 255, 255, 0.08) !important;
}

body.theme-portal .team-spotlight:hover .team-spotlight__tags li {
  border-color: rgba(255, 0, 127, 0.35) !important;
}

body.theme-portal .team-profile__role {
  color: var(--portal-pink) !important;
}

body.theme-portal .team-profile__bio {
  color: var(--portal-muted) !important;
}

body.theme-portal .team-stat {
  background: var(--white) !important;
  border-color: var(--portal-border) !important;
  box-shadow: var(--portal-card-shadow);
}

body.theme-portal .team-stat strong {
  color: var(--black) !important;
}

body.theme-portal .team-stat span {
  color: var(--portal-muted) !important;
}

body.theme-portal .team-pillar,
body.theme-portal .team-card,
body.theme-portal .team-cta__inner {
  background: var(--white) !important;
  border-color: var(--portal-border) !important;
  box-shadow: var(--portal-card-shadow);
}

body.theme-portal .team-pillar p,
body.theme-portal .team-card__tagline,
body.theme-portal .team-cta__copy p {
  color: var(--portal-muted) !important;
}

body.theme-portal .team-filter.is-active {
  background: var(--portal-pink) !important;
  border-color: var(--portal-pink) !important;
  color: var(--white) !important;
}

body.theme-portal .team-filter:hover {
  border-color: var(--portal-pink) !important;
  color: var(--portal-pink) !important;
}

body.theme-portal .team-card__link {
  color: var(--portal-pink) !important;
}

body.theme-portal .team-card:hover {
  border-color: rgba(255, 0, 127, 0.28) !important;
  box-shadow: 0 20px 48px var(--portal-pink-glow) !important;
}

body.theme-portal .team-hero__cta-secondary {
  border-color: var(--portal-border) !important;
  color: var(--black) !important;
}

body.theme-portal .team-hero__cta-secondary:hover {
  border-color: var(--black) !important;
  background: rgba(0, 0, 0, 0.04) !important;
}

body.theme-portal main > section:not(.hero) a.teachers__team-btn {
  background: var(--black) !important;
  color: var(--white) !important;
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.12) !important;
}

body.theme-portal main > section:not(.hero) a.teachers__team-btn:hover {
  color: var(--white) !important;
  box-shadow: 0 8px 36px rgba(0, 0, 0, 0.2) !important;
}

/* Shop storefront (portal catalog) */
body.theme-portal main > section:not(.hero) .shop-store__kicker,
body.theme-portal main > section:not(.hero) .shop-store__kicker .brand-text {
  color: var(--portal-pink) !important;
  background: none !important;
  border: 0 !important;
}
body.theme-portal .shop-card {
  border-color: var(--portal-border) !important;
  box-shadow: var(--portal-card-shadow) !important;
}
body.theme-portal .shop-card--featured {
  box-shadow:
    0 0 0 2px var(--portal-pink-glow),
    var(--portal-card-shadow) !important;
}
body.theme-portal .shop-card__type {
  color: var(--portal-pink) !important;
}
body.theme-portal .shop-card__badge {
  background: var(--portal-pink) !important;
}
body.theme-portal .shop-card__features li::before {
  color: var(--portal-pink) !important;
}
body.theme-portal .shop-store__empty {
  border-color: var(--portal-border) !important;
  background: rgba(255, 255, 255, 0.72) !important;
}
