/*
 * Allure 13: accessibility and layout fixes over the replayed live render.
 * Every rule names its finding in docs/AUDIT.md. Loaded last in <head>, after Elementor's
 * generated CSS; the "html body" prefix outranks the identical Elementor selectors it overrides.
 * The baseline (no fixes) is git tag allure13-baseline-live-replay.
 */

/* ---------- A. Global tokens (AUDIT section 4, step A) ---------- */
html body.elementor-kit-6 {
	--e-global-color-text: #767676;         /* A1: 4.54 on white; eyebrow on black stays 4.62 */
	--e-global-color-4eac614: #02010199;    /* M4: team arrow disc, 24% to 60% black */
	--e-global-typography-209ec7a-line-height: 1.1em;  /* B5, L5: tile titles, was 26px on 32px */
	--e-global-typography-b31992c-line-height: 1.5em;  /* B5, M8: tile descriptions, was 15px on 14px */
}

/* ---------- Hero (d09c527) ---------- */
/* M2: black overlay 0.20 over the video so the subtitle and links reach 4.5:1 */
html body .elementor-668 .elementor-element.elementor-element-d09c527 > .elementor-background-video-container::after {
	content: "";
	position: absolute;
	inset: 0;
	background-color: #000;
	opacity: 0.2;
	z-index: 1;
	pointer-events: none;
}
/* m8: the "," and "&" between the Vagaro links were black on the video */
html body .elementor-668 .elementor-element-5a1eb72 .vagaro { color: #F6F6F6 !important; }
/* S1: Vagaro Book Now, white on #5FBD6A (2.34) to the nearest same-hue green #258838 (4.51).
   The loader writes the colour inline, so !important is the only way in. */
html body .elementor-668 .vagaro-container a.loader-btn-html,
html body .vagaro-container a.loader-btn-html {
	background-color: #258838 !important;
	border-color: #258838 !important;
	color: #FFFFFF !important;
}
/* L2: hero title, no tablet or mobile size before */
@media (max-width: 1024px) {
	html body .elementor-668 .elementor-element.elementor-element-a1bbd06 .pp-info-box-title { font-size: 44px; }
}
@media (max-width: 767px) {
	html body .elementor-668 .elementor-element.elementor-element-a1bbd06 .pp-info-box-title { font-size: 36px; }
}
/* L1: social icons stacked in the 15% column between 768 and about 1140 */
@media (min-width: 768px) and (max-width: 1140px) {
	html body .elementor-668 .elementor-element.elementor-element-b85dc70 > .elementor-widget-container { padding: 0; }
	html body .elementor-668 .elementor-element.elementor-element-b85dc70 { --icon-size: 18px; }
}

/* ---------- About (41eaeef) ---------- */
/* L3: text centred beside the photo at every width (it was top-aligned on desktop only) */
html body .elementor-668 .elementor-element.elementor-element-41eaeef { --align-items: center; }
/* L4: the 458px zigzag divider at every width */
@media (max-width: 1024px) {
	html body .elementor-668 .elementor-element.elementor-element-41eaeef > .elementor-shape-bottom svg { height: 200px; }
}
@media (max-width: 767px) {
	html body .elementor-668 .elementor-element.elementor-element-41eaeef > .elementor-shape-bottom svg { height: 120px; }
}

/* ---------- Service tiles (652fb46) ---------- */
/* C1: black overlay 0.60 on each tile photo; descriptions from #54595F to #F6F6F6 */
html body .elementor-668 .elementor-element.elementor-element-14fcd26,
html body .elementor-668 .elementor-element.elementor-element-57f7120,
html body .elementor-668 .elementor-element.elementor-element-8566b69,
html body .elementor-668 .elementor-element.elementor-element-eb8bd54 { --overlay-opacity: 0.6; }
html body .elementor-668 .elementor-element.elementor-element-14fcd26::before,
html body .elementor-668 .elementor-element.elementor-element-57f7120::before,
html body .elementor-668 .elementor-element.elementor-element-8566b69::before,
html body .elementor-668 .elementor-element.elementor-element-eb8bd54::before {
	--background-overlay: '';
	background-color: #000;
}
html body .elementor-668 .elementor-element.elementor-element-70c1cb4 .pp-info-box-description,
html body .elementor-668 .elementor-element.elementor-element-d7843df .pp-info-box-description,
html body .elementor-668 .elementor-element.elementor-element-a9b5a47 .pp-info-box-description,
html body .elementor-668 .elementor-element.elementor-element-866d3ae .pp-info-box-description { color: var(--e-global-color-50dffc4); }
/* L5: 2 x 2 tiles on tablets, where four 177px tiles overflowed their titles */
@media (min-width: 768px) and (max-width: 1024px) {
	html body .elementor-668 .elementor-element.elementor-element-652fb46 { --flex-wrap: wrap; }
	html body .elementor-668 .elementor-element.elementor-element-14fcd26,
	html body .elementor-668 .elementor-element.elementor-element-57f7120,
	html body .elementor-668 .elementor-element.elementor-element-8566b69,
	html body .elementor-668 .elementor-element.elementor-element-eb8bd54 { --width: calc(50% - 10px); }
}

/* ---------- Team (8fe2bbe, 580edbb) ---------- */
/* S2: bio overlay 0.5 to 0.6 (4.61:1 or better at each photo's lightest 1%) */
html body .elementor-668 .elementor-element-580edbb .pp-tm-overlay-content-wrap::before { opacity: 0.6; }
/* S2: the bio now opens for keyboard users too (each card is focusable, see the markup) */
html body .elementor-668 .elementor-element-580edbb .pp-tm:focus-within .pp-tm-overlay-content-wrap,
html body .elementor-668 .elementor-element-580edbb .pp-tm:focus .pp-tm-overlay-content-wrap { opacity: 1; pointer-events: auto; }
html body .elementor-668 .elementor-element-580edbb .pp-tm:focus-visible { outline: 2px solid #F6F6F6; outline-offset: -2px; }
/* M4: arrow glyph light on the 60% disc (5.26 over a white photo, 19.35 over black) */
html body .elementor-668 .elementor-element.elementor-element-580edbb .pp-slider-arrow { color: #F6F6F6; fill: #F6F6F6; }
/* m1: position line 10px to 12px */
html body .elementor-668 .elementor-element.elementor-element-580edbb .pp-tm-position { font-size: 12px; }
/* L6: section heading shown on phones too (it was hidden below 768) */
@media (max-width: 767px) {
	html body .elementor-668 .elementor-element-c546cef.elementor-hidden-mobile,
	html body .elementor-668 .elementor-element-65c49c8.elementor-hidden-mobile { display: block; }
	html body .elementor-668 .elementor-element.elementor-element-65c49c8 .elementor-heading-title { font-size: 32px; line-height: 1.1em; }
}

/* ---------- Testimonials (a6aee01), AUDIT section 2, Option 1 ---------- */
/* C3: charcoal field instead of the hair photo and its white-to-black gradient (13.82:1) */
html body .elementor-668 .elementor-element.elementor-element-a6aee01:not(.elementor-motion-effects-element-type-background) {
	background-image: none;
	background-color: var(--e-global-color-56bc30d);
}
html body .elementor-668 .elementor-element.elementor-element-a6aee01::before { content: none; background-image: none; }
html body .elementor-668 .elementor-element.elementor-element-a6aee01 > .elementor-shape-top .elementor-shape-fill,
html body .elementor-668 .elementor-element.elementor-element-a6aee01 > .elementor-shape-bottom .elementor-shape-fill { fill: var(--e-global-color-accent); }
html body .elementor-668 .elementor-element.elementor-element-b1689b2 .elementor-heading-title { text-shadow: none; }
/* Pink jewel quote mark at Qi's own 100px, text centred under it */
html body .elementor-668 .elementor-element.elementor-element-7dbe173 .qodef-e-inner { flex-direction: column; align-items: center; }
html body .elementor-668 .elementor-element.elementor-element-7dbe173 .qodef-e-quote { color: #EC407A; font-size: 100px; width: auto; margin: 0 0 10px; line-height: 1; }
html body .elementor-668 .elementor-element.elementor-element-7dbe173 .qodef-e-content { text-align: center; }
/* L7: one column on tablets instead of two plus an orphan */
@media (max-width: 1024px) {
	html body .elementor-668 .elementor-element.elementor-element-7dbe173 .qodef-qi-grid > .qodef-grid-inner { grid-template-columns: minmax(0, 1fr); }
}

/* ---------- Services and prices (4eb3085, 9910e84) ---------- */
/* L8: "SERVICES" centred like every other heading; shorter band on phones */
html body .elementor-668 .elementor-element.elementor-element-92d7d1c { text-align: center; }
@media (max-width: 767px) {
	html body .elementor-668 .elementor-element.elementor-element-4eb3085 { --min-height: 250px; }
}
/* L9: three equal columns (33% left 1% empty on the right) */
@media (min-width: 768px) {
	html body .elementor-668 .elementor-element.elementor-element-c99f51e,
	html body .elementor-668 .elementor-element.elementor-element-aa045e5,
	html body .elementor-668 .elementor-element.elementor-element-fe93a99 { --width: 33.3333%; }
}
/* S5: solid card behind each price item; notes #757575 to #6C6C6C (4.86 on #F6F6F6) */
html body .elementor-668 .elementor-element.elementor-element-8ef4431 .wpr-price-list-item,
html body .elementor-668 .elementor-element.elementor-element-555dc18 .wpr-price-list-item,
html body .elementor-668 .elementor-element.elementor-element-3cadf23 .wpr-price-list-item { background-color: #F6F6F6; }
html body .elementor-668 .elementor-element.elementor-element-8ef4431 .wpr-price-list-description,
html body .elementor-668 .elementor-element.elementor-element-555dc18 .wpr-price-list-description,
html body .elementor-668 .elementor-element.elementor-element-3cadf23 .wpr-price-list-description { color: #6C6C6C; }

/* ---------- Treatment slider (af3eee9, b2be2c5): C2, rebuilt as live text ---------- */
@font-face {
	font-family: "Allure13 Display SC";
	src: url("fonts/playfair-display-sc-700.woff2") format("woff2");
	font-weight: 700;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: "Allure13 Slide Text";
	src: url("fonts/montserrat-300-italic.woff2") format("woff2");
	font-weight: 300;
	font-style: italic;
	font-display: swap;
}
/* The four jewel colours made opaque, nudged in lightness only, black text (4.51 to 6.02) */
html body .elementor-668 .a13-slide {
	container-type: inline-size;
	aspect-ratio: 1300 / 500;
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0;
	color: #000;
}
html body .elementor-668 .a13-slide--indigo { background-color: #6562EC; }
html body .elementor-668 .a13-slide--purple { background-color: #AE4ABF; }
html body .elementor-668 .a13-slide--coral { background-color: #EF5350; }
html body .elementor-668 .a13-slide--pink { background-color: #EC407A; }
html body .elementor-668 .a13-slide-text { width: 48cqw; max-width: 100%; }
html body .elementor-668 .a13-slide-title {
	font-family: "Allure13 Display SC", "Playfair Display SC", Didot, "Bodoni 72", serif;
	font-weight: 700;
	font-size: max(22px, 4.6cqw);
	line-height: 1;
	letter-spacing: 0.04em;
	text-transform: none;
	text-align: center;
	color: #000;
	margin: 0 0 max(10px, 1.8cqw);
}
html body .elementor-668 .a13-slide-copy {
	font-family: "Allure13 Slide Text", Montserrat, "Helvetica Neue", Arial, sans-serif;
	font-style: italic;
	font-weight: 300;
	font-size: max(15px, 1.7cqw);
	line-height: 1.2;
	text-transform: none;
	color: #000;
	margin: 0;
}
html body .elementor-668 .a13-slide--justify .a13-slide-copy { text-align: justify; hyphens: auto; }
html body .elementor-668 .a13-slide--center .a13-slide-copy { text-align: center; }
@media (max-width: 767px) {
	html body .elementor-668 .a13-slide { aspect-ratio: auto; min-height: 260px; padding: 36px 24px 56px; }
	html body .elementor-668 .a13-slide-text { width: 100%; }
	html body .elementor-668 .a13-slide-title { font-size: 28px; }
	html body .elementor-668 .a13-slide-copy { font-size: 16px; line-height: 1.4; text-align: center; }
}
/* L10: no 505px band of parallax photo around the slide on tablets */
@media (max-width: 1024px) {
	html body .elementor-668 .elementor-element.elementor-element-af3eee9 { --min-height: 0px; }
}

/* ---------- Pause controls for moving content (S4, C2) ---------- */
html body .a13-pause {
	position: absolute;
	z-index: 5;
	width: 40px;
	height: 40px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background-color: rgba(0, 0, 0, 0.6);
	color: #F6F6F6;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
}
html body .a13-pause:focus-visible { outline: 2px solid #F6F6F6; outline-offset: 2px; }
html body .a13-pause svg { width: 16px; height: 16px; fill: currentColor; }
html body .a13-pause .a13-icon-play,
html body .a13-pause[aria-pressed="true"] .a13-icon-pause { display: none; }
html body .a13-pause[aria-pressed="true"] .a13-icon-play { display: block; }
html body .a13-pause--hero { right: 16px; bottom: 48px; }
html body .a13-pause--slider { left: 50%; bottom: 12px; transform: translateX(-50%); }

/* ---------- Contact form (050de43): M3 ---------- */
html body .elementor-668 .elementor-element-050de43 .wpforms-container {
	--wpforms-field-border-color: #767676;   /* 1.83 to 4.54 on white, 3.09 on the panel */
	--wpforms-label-sublabel-color: #5C5C5C; /* 4.29 to 4.54 */
}
html body .elementor-668 .elementor-element-050de43 .wpforms-container input:not([type=submit]),
html body .elementor-668 .elementor-element-050de43 .wpforms-container textarea { border-color: #767676; }
html body .elementor-668 .elementor-element-050de43 .wpforms-container .wpforms-field-sublabel { color: #5C5C5C; }

/* ---------- Footer row (bb042b7): L11 ---------- */
html body .elementor-668 .elementor-element.elementor-element-a9418a6 { text-align: center; }

/* ---------- Visible focus on the dark carousels (step E21) ---------- */
html body .elementor-668 .elementor-swiper-button:focus-visible { outline: 2px solid #F6F6F6; outline-offset: 2px; }

/* ---------- m7: reduced motion stops the parallax too ---------- */
@media (prefers-reduced-motion: reduce) {
	html body .jarallax-img,
	html body [id^="jarallax-container"] > * { transform: none !important; }
}
