/*
 * Aroma accessibility contrast overrides.
 *
 * Rendered-browser verified branch pass: 2026-09-11.
 * Purpose: darken only foreground/accent colours that fail WCAG AA contrast.
 * This file intentionally does not change content, SEO markup, typography,
 * spacing, or component structure. It is loaded after each page bundle.
 */

/* Shared review components. */
.aroma-review-btn.secondary {
  color: #4d6f47 !important;
}
.aroma-review-btn.primary {
  background: #3f745c !important;
  border-color: #3f745c !important;
  color: #fff !important;
}
.aroma-review-stars {
  color: #795c08 !important;
}

/* Sugaring: retain orange identity with accessible dark orange. Repeated
   theme/classes intentionally raise specificity above legacy page bundles. */
html body.theme-sugaring.theme-sugaring :is(
    .section-tag.section-tag,
    .eyebrow.eyebrow,
    .pill-link.pill-link,
    .price-label.price-label,
    .location-label.location-label,
    .aroma-review-eyebrow.aroma-review-eyebrow,
    .quick strong
  ) {
  color: #a54500 !important;
}
html body.theme-sugaring.theme-sugaring :is(
    .btn.btn-secondary.btn-secondary,
    .btn.btn-ghost.btn-ghost,
    .btn-secondary.btn-secondary
  ) {
  color: #a54500 !important;
  border-color: #a54500 !important;
}
html body.theme-sugaring.theme-sugaring :is(
    .btn.btn-primary.btn-primary,
    .btn-primary.btn-primary
  ) {
  background: #a54500 !important;
  background-color: #a54500 !important;
  border-color: #a54500 !important;
  color: #fff !important;
}
html body.theme-sugaring.theme-sugaring .btn-light.btn-light {
  color: #a54500 !important;
}
html body.theme-sugaring.theme-sugaring .level-card.featured .level-badge {
  color: #050b08 !important;
}

/* Waxing: retain the green palette with a deeper accessible green. */
html body.theme-waxing.theme-waxing :is(
    .section-tag.section-tag,
    .eyebrow.eyebrow,
    .pill-link.pill-link,
    .price-pill.price-pill,
    .price-label.price-label,
    .face-wax-card-price.face-wax-card-price,
    .wax-related-kicker.wax-related-kicker,
    .aroma-wax-kicker.aroma-wax-kicker,
    .face-related-kicker.face-related-kicker,
    .first-time-related-kicker.first-time-related-kicker,
    .wax-kicker-clean.wax-kicker-clean,
    .aftercare-section-kicker.aftercare-section-kicker,
    .aroma-wax-guide-kicker.aroma-wax-guide-kicker,
    .prep-kicker.prep-kicker,
    .price-from > span
  ) {
  color: #3f745c !important;
}
html body.theme-waxing.theme-waxing :is(
    .btn.btn-secondary.btn-secondary,
    .btn-secondary.btn-secondary,
    .btn-light.btn-light
  ) {
  color: #3f745c !important;
  border-color: #3f745c !important;
}
html body.theme-waxing.theme-waxing :is(
    .btn.btn-primary.btn-primary,
    .btn-primary.btn-primary
  ) {
  background: #3f745c !important;
  background-color: #3f745c !important;
  border-color: #3f745c !important;
  color: #fff !important;
}
html body.theme-waxing.theme-waxing .level-card.featured .level-badge {
  color: #050b08 !important;
}

/* Laser: normalize the legacy green/slate variables first, then reinforce
   the exact rendered components that remained below AA. */
html body.theme-laser.theme-laser {
  --green: #126b36;
  --gd: #126b36;
  --slate: #59636e;
  --muted: #59636e;
}
html body.theme-laser.theme-laser :is(
    .section-tag.section-tag,
    .eyebrow.eyebrow,
    .aroma-info-card strong,
    .mini-stat strong,
    .icon-badge,
    .aroma-laser-side-label.aroma-laser-side-label
  ) {
  color: #356a86 !important;
}
html body.theme-laser.theme-laser :is(
    .section-subtitle.section-subtitle,
    .section-sub.section-sub,
    .price-note.price-note,
    .pricing-card p,
    .package-pay-card span,
    .booking-mini-sep.booking-mini-sep,
    .text-card p,
    .step-card p,
    .why-card p,
    .expect-card p,
    .location-card p,
    .location-list li,
    .note-box,
    .sun-panel li
  ) {
  color: #59636e !important;
}
html body.theme-laser.theme-laser :is(
    .small-link.small-link,
    .area-price.area-price,
    .pricing-label.pricing-label,
    .book-link.book-link,
    .booking-mini-label.booking-mini-label,
    .package-side-title.package-side-title,
    .highlight-chip.highlight-chip,
    .location-card small
  ) {
  color: #126b36 !important;
}
html body.theme-laser.theme-laser :is(
    .btn.btn-secondary.btn-secondary,
    .btn-secondary.btn-secondary
  ) {
  color: #126b36 !important;
  border-color: #126b36 !important;
}
html body.theme-laser.theme-laser :is(
    .btn.btn-primary.btn-primary,
    .btn-primary.btn-primary
  ) {
  background: #126b36 !important;
  background-color: #126b36 !important;
  border-color: #126b36 !important;
  color: #fff !important;
}
html body.theme-laser.theme-laser :is(.package-top-badge, .package-label) {
  background: #126b36 !important;
  background-color: #126b36 !important;
  color: #fff !important;
}

/* Bikini/Brazilian laser decision cards have both bright-green and dark-blue
   backgrounds. Keep each background and choose the appropriate text colour. */
body.page-bikini-laser .book-link.primary,
body.page-brazilian-laser .book-link.primary {
  color: #050b08 !important;
}
body.page-bikini-laser :is(
    a[href$="brazilian"],
    a[href$="ingrown-hairs"]
  ) .laser-related-action,
body.page-brazilian-laser :is(
    a[href$="preparation"],
    a[href$="maintenance"]
  ) .laser-related-action {
  color: #050b08 !important;
}
body.page-bikini-laser :is(
    a[href$="preparation"],
    a[href$="aftercare"]
  ) .laser-related-action,
body.page-brazilian-laser :is(
    a[href$="aftercare"],
    a[href$="dark-skin"]
  ) .laser-related-action {
  color: #fff !important;
}

/* Laser audience pages use a dark hero panel. */
body.theme-laser :is(.text-3xl.mb-3) {
  color: #dcefff !important;
}

/* PCOS page green panel. */
body.theme-laser :is(.text-white.text-3xl.mb-4, .max-w-2xl) {
  color: #050b08 !important;
}

/* Laser consultation note/info components. */
body.theme-laser .aroma-note-panel :is(.aroma-eyebrow, p) {
  color: #f5fff8 !important;
}
body.theme-laser .aroma-note-panel h2 {
  color: #fff !important;
}

/* Laser hair-colour swatches need dark readable foregrounds on pale/bright
   sample backgrounds. */
body.theme-laser :is(
    .bg-amber-600,
    .bg-red-500,
    .bg-yellow-400,
    .bg-blue-500,
    .bg-gray-400,
    .border-gray-300
  ) :is(.text-xl, .px-3.py-1),
body.theme-laser .bg-blue-500 {
  color: #111827 !important;
}

/* Threading: preserve rose palette with an accessible deeper rose. */
html body.theme-threading.theme-threading :is(
    .hero-eyebrow.hero-eyebrow,
    .section-tag.section-tag,
    .btn-outline.btn-outline,
    figcaption,
    .threading-price-card h3,
    .info-card h3,
    .attention-box strong,
    .breadcrumb-link-clean.breadcrumb-link-clean
  ) {
  color: #8e4860 !important;
}
html body.theme-threading.theme-threading .btn-outline.btn-outline {
  border-color: #8e4860 !important;
}

/* Location templates. */
:is(.loc-btn.secondary, .loc-team-role, .loc-review-source, .loc-service-small, .loc-btn.btn-white) {
  color: #126b36 !important;
}
.loc-btn:not(.secondary):not(.btn-white) {
  background: #126b36 !important;
  background-color: #126b36 !important;
  border-color: #126b36 !important;
  color: #fff !important;
}
.loc-service-card a,
.loc-card a,
.loc-copy p > a {
  color: #126b36 !important;
}
.not-avail {
  color: #6b6b6b !important;
}
.loc-tag,
.loc-badge {
  color: #2d774b !important;
}
.badge-bloor {
  color: #245f3e !important;
}

/* Homepage service labels. */
.waxing > .service-body > .service-tag {
  color: #3f745c !important;
}
.sugaring > .service-body > .service-tag {
  color: #8b5718 !important;
}

/* Pricing/directory/blog/editorial metadata. */
.section-kicker,
#waxing .tag,
#sugaring .tag,
#threading .tag,
#tinting .tag,
#spray-tan .tag,
.wrap > .tag,
.blog-card-cat,
.cat-label {
  color: #3f745c !important;
}
.post-date-small {
  color: #59645c !important;
}

/* Spray tan uses a warm rose/brown accent on pale peach panels. */
.soft-section .section-tag {
  color: #8b3f1e !important;
}

/* Final residual selectors found by the rendered branch audit. These are
   deliberately narrow so the fixes do not spread into unrelated components. */
.loc-card .btns a[rel="noopener noreferrer"][target="_blank"] {
  color: #fff !important;
}

html body.theme-sugaring.theme-sugaring :is(
    .pricing-page-access .btn-secondary,
    .booking-card .btn-secondary,
    .btn-secondary.btn-small,
    .btn-ghost
  ) {
  background: #fff !important;
  background-color: #fff !important;
  color: #a54500 !important;
  border-color: #a54500 !important;
}

html body.theme-waxing.theme-waxing .aroma-review-eyebrow {
  color: #3f745c !important;
}
html body.theme-waxing.theme-waxing .booking-card .btn-secondary {
  background: #fff !important;
  background-color: #fff !important;
  color: #3f745c !important;
  border-color: #3f745c !important;
}

body.page-laser-vs-sugaring-toronto .aroma-review-eyebrow {
  color: #356a86 !important;
}

body.theme-laser .area-card .area-price {
  color: #126b36 !important;
  -webkit-text-fill-color: #126b36 !important;
}
body.theme-laser .badge,
body.theme-laser .chip-best,
body.theme-laser .btn-light {
  color: #126b36 !important;
  -webkit-text-fill-color: #126b36 !important;
}
body.theme-laser .chip-care {
  color: #7a4d00 !important;
  -webkit-text-fill-color: #7a4d00 !important;
}
body.theme-laser .seasonal-laser-hair-removal-toronto-clean-04 {
  color: #f5f7fa !important;
  -webkit-text-fill-color: #f5f7fa !important;
}

body.theme-laser .laser-hair-removal-preparation-toronto-clean-11 {
  background: #176b8f !important;
  background-color: #176b8f !important;
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  border-color: #176b8f !important;
}
body.theme-laser .laser-hair-removal-preparation-toronto-clean-12 {
  color: #176b8f !important;
  -webkit-text-fill-color: #176b8f !important;
  border-color: #176b8f !important;
}

body.theme-laser .bg-amber-600 .text-xl,
body.theme-laser .bg-yellow-400 .text-xl,
body.theme-laser .bg-gray-400 .text-xl,
body.theme-laser .bg-amber-600 .bg-yellow-500,
body.theme-laser .bg-red-500 .bg-yellow-500,
body.theme-laser .bg-gray-400 .bg-red-500,
body.theme-laser span.bg-blue-500 {
  color: #111827 !important;
  -webkit-text-fill-color: #111827 !important;
}
