/*
 * ApexClinic — modern design system
 * Design tokens, base typography, and reusable components for the
 * Dr. Dolatshahi Clinical Psychology & Psychotherapy Clinic redesign.
 * Loaded after the legacy RadiantThemes stylesheets so its rules win.
 */

/* -----------------------------------------------------------------------
   Fonts
----------------------------------------------------------------------- */

@font-face {
	font-family: 'iranyekan';
	font-display: swap;
	src: url('../fonts/iranyekanwebregular.woff2') format('woff2'),
		url('../fonts/iranyekanwebregular.woff') format('woff'),
		url('../fonts/iranyekanwebregular.ttf') format('truetype');
	font-weight: 400 700;
	font-style: normal;
}

/* Heading typeface — IRANSans, sourced from the Around theme's bundled font
   files (wp-content/themes/around/assets/fonts/iransans) and vendored into
   this theme's own /fonts directory. Used for headings/titles only; body
   copy stays on iranyekan above. */
@font-face {
	font-family: 'IRANSansWeb';
	font-display: swap;
	src: url('../fonts/iransans/iransans.woff2') format('woff2'),
		url('../fonts/iransans/iransans.woff') format('woff');
	font-weight: 400;
	font-style: normal;
}

@font-face {
	font-family: 'IRANSansWeb';
	font-display: swap;
	src: url('../fonts/iransans/iransans_Medium.woff2') format('woff2'),
		url('../fonts/iransans/iransans_Medium.woff') format('woff');
	font-weight: 500;
	font-style: normal;
}

@font-face {
	font-family: 'IRANSansWeb';
	font-display: swap;
	src: url('../fonts/iransans/iransans_Bold.woff2') format('woff2'),
		url('../fonts/iransans/iransans_Bold.woff') format('woff');
	font-weight: 700;
	font-style: normal;
}

@font-face {
	font-family: 'IRANSansWeb';
	font-display: swap;
	src: url('../fonts/iransans/iransans_Black.woff2') format('woff2'),
		url('../fonts/iransans/iransans_Black.woff') format('woff');
	font-weight: 800 900;
	font-style: normal;
}

/* -----------------------------------------------------------------------
   Design tokens
----------------------------------------------------------------------- */

:root {
	/* Brand palette (matches the clinic's existing teal logo) */
	--ac-color-primary: #14a79c;
	--ac-color-primary-dark: #0e8075;
	--ac-color-primary-light: #e3f4f2;
	--ac-color-accent: #8FA888;
	--ac-color-accent-light: #E9F0E6;
	--ac-color-accent-dark: #718A6A;

	/* Neutrals */
	--ac-color-bg: #faf8f5;
	--ac-color-surface: #ffffff;
	--ac-color-text: #2b2b2b;
	--ac-color-text-muted: #6b6b6b;
	--ac-color-border: #e7e1d8;

	/* Feedback */
	--ac-color-success: #2f9e6b;
	--ac-color-error: #c65b4e;

	/* Radius / shadow */
	--ac-radius-sm: 8px;
	--ac-radius-md: 12px;
	--ac-radius-lg: 16px;
	--ac-shadow-sm: 0 2px 10px rgba(20, 43, 40, 0.06);
	--ac-shadow-md: 0 10px 30px rgba(20, 43, 40, 0.1);

	/* Spacing scale */
	--ac-space-1: 4px;
	--ac-space-2: 8px;
	--ac-space-3: 12px;
	--ac-space-4: 16px;
	--ac-space-5: 24px;
	--ac-space-6: 32px;
	--ac-space-7: 48px;
	--ac-space-8: 64px;
	--ac-space-9: 96px;

	/* Type */
	--ac-font-body: 'iranyekan', Tahoma, 'Segoe UI', Arial, sans-serif;
	--ac-font-heading: 'IRANSansWeb', 'iranyekan', Tahoma, 'Segoe UI', Arial, sans-serif;
	--ac-font-size-base: 16px;
	--ac-line-height: 1.8;
	--ac-container-max: 1200px;
}

/* -----------------------------------------------------------------------
   Base
----------------------------------------------------------------------- */

body {
	background-color: var(--ac-color-bg);
	color: var(--ac-color-text);
	font-family: var(--ac-font-body);
	font-size: var(--ac-font-size-base);
	line-height: var(--ac-line-height);
}

h1, h2, h3, h4, h5, h6 {
	font-family: var(--ac-font-heading);
	color: var(--ac-color-text);
	font-weight: 800;
	line-height: 1.35;
}

/* Non-heading-tag "titles" that should still use the bold heading typeface. */
.ac-eyebrow,
.ac-testimonial-card__name,
.ac-hero__stat-number,
.widget-title {
	font-family: var(--ac-font-heading);
	font-weight: 700;
}


.elementor-widget-apexclinic_team_grid h2{
	color: #fff;
}

.elementor-widget-apexclinic_team_grid .ac-section-title p{
	color: #e5e5e5 !important;
}

a {
	color: var(--ac-color-primary);
	transition: color .2s ease;
}

a:hover,
a:focus {
	color: var(--ac-color-primary-dark);
}

/* Visible focus state for keyboard users on every interactive element. */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
.btn:focus-visible {
	outline: 3px solid var(--ac-color-accent);
	outline-offset: 2px;
}

/* -----------------------------------------------------------------------
   Scroll-reveal (js/apexclinic-modern.js toggles .is-visible via
   IntersectionObserver). Only animates when the visitor hasn't asked for
   reduced motion; otherwise content is simply visible immediately.
----------------------------------------------------------------------- */

@media (prefers-reduced-motion: no-preference) {
	.ac-reveal {
		opacity: 0;
		transform: translateY(24px);
		transition: opacity .6s ease, transform .6s ease;
		transition-delay: var(--ac-reveal-delay, 0ms);
	}

	.ac-reveal.is-visible {
		opacity: 1;
		transform: translateY(0);
	}
}

/* -----------------------------------------------------------------------
   Screen-reader text (the legacy stylesheet incorrectly sets display:none,
   which hides it from assistive tech too, not just visually — restore the
   standard WordPress visually-hidden-but-accessible pattern).
----------------------------------------------------------------------- */

.screen-reader-text {
	display: block;
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	white-space: nowrap;
	border: 0;
}

.screen-reader-text:focus {
	display: block;
	width: auto;
	height: auto;
	inset-inline-start: 6px;
	top: 6px;
	clip: auto;
	z-index: 100000;
	background: var(--ac-color-primary);
	color: #fff;
	padding: var(--ac-space-3) var(--ac-space-5);
	border-radius: var(--ac-radius-sm);
}

/* -----------------------------------------------------------------------
   Skip link
----------------------------------------------------------------------- */

.skip-link {
	position: absolute;
	inset-inline-start: -9999px;
	top: -9999px;
	z-index: 100000;
	background: var(--ac-color-primary);
	color: #fff;
	padding: var(--ac-space-3) var(--ac-space-5);
	border-radius: 0 0 var(--ac-radius-sm) var(--ac-radius-sm);
	font-weight: 700;
}

.skip-link:focus {
	top: 0;
	inset-inline-start: 0;
}

/* -----------------------------------------------------------------------
   Buttons
----------------------------------------------------------------------- */

.ac-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--ac-space-2);
	padding: 13px 14px;
	border-radius: var(--ac-radius-sm);
	font-weight: 700;
	font-size: 15px;
	border: 2px solid transparent;
	cursor: pointer;
	transition: background-color .2s ease, color .2s ease, border-color .2s ease, transform .15s ease;
	text-decoration: none;
	line-height: 1.2;
}

.ac-btn:hover,
.ac-btn:focus {
	transform: translateY(-1px);
	text-decoration: none;
}

.ac-btn .ac-icon-wrap {
	width: 16px;
	height: 16px;
}

/* Explicit text color on every button variant (not just background) — a
   Customizer color change to --ac-color-primary/--ac-color-accent must never
   silently make a button's own text match its background. */
.ac-btn-primary {
	background-color: var(--ac-color-primary);
	color: #fff !important;
}

.ac-btn-primary:hover,
.ac-btn-primary:focus {
	background-color: var(--ac-color-primary-dark);
	color: #fff !important;
}

.ac-btn-outline {
	background-color: transparent;
	border-color: var(--ac-color-primary);
	color: var(--ac-color-primary);
}

.ac-btn-outline:hover,
.ac-btn-outline:focus {
	background-color: var(--ac-color-primary);
	color: #fff;
}

.ac-btn-accent {
	background-color: var(--ac-color-accent);
	color: var(--ac-color-text) !important;
}

.ac-btn-accent:hover,
.ac-btn-accent:focus {
	background-color: var(--ac-color-accent-dark);
	color: var(--ac-color-text) !important;
}

/* -----------------------------------------------------------------------
   Cards
----------------------------------------------------------------------- */

.ac-card {
	background-color: var(--ac-color-surface);
	border-radius: var(--ac-radius-lg);
	box-shadow: var(--ac-shadow-sm);
	transition: box-shadow .25s ease, transform .25s ease;
	overflow: hidden;
}

.ac-card:hover {
	box-shadow: var(--ac-shadow-md);
	transform: translateY(-4px);
}

/* -----------------------------------------------------------------------
   Section helpers (usable inside Elementor via "additional CSS classes" too)
----------------------------------------------------------------------- */

.ac-section {
	padding-block: var(--ac-space-8);
}

.ac-section-sm {
	padding-block: var(--ac-space-6);
}

.ac-section-title {
	text-align: center;
	max-width: 750px;
	margin-inline: auto;
	margin-block-end: var(--ac-space-7);
}

.ac-eyebrow {
	display: inline-block;
	color: var(--ac-color-primary);
	background: var(--ac-color-primary-light);
	border-radius: 999px;
	padding: 6px 16px;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .02em;
	margin-block-end: var(--ac-space-3);
}

.ac-section-title h2 {
	font-size: clamp(26px, 3.2vw, 38px);
	margin: 0 0 var(--ac-space-3);
}

.ac-section-title p {
	color: var(--ac-color-text-muted);
	margin: 0;
}

/* -----------------------------------------------------------------------
   Site header
----------------------------------------------------------------------- */

.ac-site-header {
	background-color: var(--ac-color-surface);
	border-bottom: 1px solid var(--ac-color-border);
	position: sticky;
	top: 0;
	z-index: 500;
	padding: 0;
	transition: box-shadow .2s ease;
}

/* Sticky state (js/apexclinic-modern.js toggles this on scroll): keep generous,
   readable padding rather than collapsing the header flush to the viewport edge. */
.ac-site-header.is-stuck {
	box-shadow: var(--ac-shadow-sm);
}

.ac-site-header__row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--ac-space-5);
	padding-block: var(--ac-space-4);
}

.ac-site-header__logo img {
	max-height: 83px;
	width: auto;
}

.ac-site-header__nav {
	flex: 1 1 auto;
	display: none;
}

.ac-site-header__nav ul {
	list-style: none;
	display: flex;
	align-items: center;
	gap: var(--ac-space-6);
	margin: 0;
	padding: 0;
}

.ac-site-header__nav a {
	display: inline-block;
	color: var(--ac-color-text);
	font-weight: 700;
	font-size: 15px;
	text-decoration: none;
	padding-block: var(--ac-space-2);
}

.ac-site-header__nav a:hover,
.ac-site-header__nav a:focus,
.ac-site-header__nav .current-menu-item > a {
	color: var(--ac-color-primary);
}

/* Desktop dropdown submenus: shown on hover/focus, hidden otherwise. */
.ac-site-header__nav li {
	position: relative;
}

.ac-site-header__nav li ul {
	display: block;
	position: absolute;
	inset-inline-start: 0;
	top: 100%;
	min-width: 220px;
	background: var(--ac-color-surface);
	border-radius: var(--ac-radius-md);
	box-shadow: var(--ac-shadow-md);
	padding: var(--ac-space-2);
	flex-direction: column;
	gap: 0;
	opacity: 0;
	visibility: hidden;
	transform: translateY(6px);
	transition: opacity .18s ease, transform .18s ease, visibility .18s ease;
	z-index: 10;
}

.ac-site-header__nav li:hover > ul,
.ac-site-header__nav li:focus-within > ul {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}

.ac-site-header__nav li ul a {
	display: block;
	padding: var(--ac-space-2) var(--ac-space-3);
	border-radius: var(--ac-radius-sm);
	font-size: 14px;
}

.ac-site-header__nav li ul a:hover {
	background: var(--ac-color-primary-light);
}

.ac-site-header__actions {
	display: flex;
	align-items: center;
	gap: var(--ac-space-4);
}

.ac-site-header__toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: transparent;
	border: none;
	font-size: 20px;
	color: var(--ac-color-text);
	cursor: pointer;
	padding: var(--ac-space-2);
}

@media (min-width: 992px) {
	.ac-site-header__nav {
		display: block;
	}

	.ac-site-header__toggle {
		display: none;
	}
}

@media (max-width: 410px) {
	.ac-site-header .ac-site-header__actions .ac-btn {
		display: none;
	}
}

/* Belt-and-suspenders: the header's persistent appointment CTA must always
   be readable no matter what wins the cascade elsewhere. */
.ac-site-header__cta {
	background-color: var(--ac-color-primary) !important;
	color: #fff !important;
	border-color: var(--ac-color-primary) !important;
}

.ac-site-header__cta:hover,
.ac-site-header__cta:focus {
	background-color: var(--ac-color-primary-dark) !important;
	color: #fff !important;
}

/* -----------------------------------------------------------------------
   Mobile off-canvas menu (js/apexclinic-modern.js)
----------------------------------------------------------------------- */

.ac-mobile-menu__backdrop {
	position: fixed;
	inset: 0;
	background: rgba(20, 20, 20, 0.55);
	opacity: 0;
	visibility: hidden;
	transition: opacity .25s ease, visibility .25s ease;
	z-index: 900;
}

.ac-mobile-menu__backdrop.is-open {
	opacity: 1;
	visibility: visible;
}

.ac-mobile-menu {
	position: fixed;
	top: 0;
	bottom: 0;
	inset-inline-end: 0;
	width: min(85vw, 360px);
	background: var(--ac-color-surface);
	box-shadow: var(--ac-shadow-md);
	z-index: 901;
	display: flex;
	flex-direction: column;
	padding: var(--ac-space-5);
	overflow-y: auto;
	transform: translateX(-100%);
	transition: transform .3s ease;
}

:dir(ltr) .ac-mobile-menu {
	transform: translateX(100%);
}

.ac-mobile-menu.is-open {
	transform: translateX(0);
}

.ac-mobile-menu__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-block-end: var(--ac-space-5);
	padding-block-end: var(--ac-space-4);
	border-bottom: 1px solid var(--ac-color-border);
}

.ac-mobile-menu__head img {
	max-height: 40px;
	width: auto;
}

.ac-mobile-menu__title {
	font-weight: 700;
}

.ac-mobile-menu__close {
	background: var(--ac-color-primary-light);
	color: var(--ac-color-primary);
	border: none;
	border-radius: 50%;
	width: 36px;
	height: 36px;
	font-size: 16px;
	cursor: pointer;
}

.ac-mobile-menu__nav ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.ac-mobile-menu__nav li {
	position: relative;
	border-bottom: 1px solid var(--ac-color-border);
}

.ac-mobile-menu__nav a {
	display: block;
	padding: 14px 0;
	color: var(--ac-color-text);
	font-weight: 700;
	text-decoration: none;
}

.ac-mobile-menu__nav ul ul {
	padding-inline-start: var(--ac-space-4);
	display: none;
}

.ac-mobile-menu__nav .menu-item-has-children.is-open > ul {
	display: block;
}

.ac-mobile-menu__submenu-toggle {
	position: absolute;
	top: 4px;
	inset-inline-end: 0;
	width: 36px;
	height: 36px;
	background: transparent;
	border: none;
	color: var(--ac-color-text-muted);
	cursor: pointer;
	transition: transform .2s ease;
}

.menu-item-has-children.is-open > .ac-mobile-menu__submenu-toggle {
	transform: rotate(180deg);
	color: var(--ac-color-primary);
}

.ac-mobile-menu__cta {
	margin-block-start: var(--ac-space-5);
	width: 100%;
}

body.ac-menu-open,
body.ac-modal-open {
	overflow: hidden;
}

@media (min-width: 992px) {
	.ac-mobile-menu,
	.ac-mobile-menu__backdrop {
		display: none;
	}
}

/* -----------------------------------------------------------------------
   Appointment request modal
----------------------------------------------------------------------- */

.ac-modal__backdrop {
	position: fixed;
	inset: 0;
	background: rgba(20, 20, 20, 0.6);
	opacity: 0;
	visibility: hidden;
	transition: opacity .25s ease, visibility .25s ease;
	z-index: 950;
}

.ac-modal__backdrop.is-open {
	opacity: 1;
	visibility: visible;
}

.ac-modal {
	position: fixed;
	inset: 0;
	z-index: 951;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: var(--ac-space-4);
	opacity: 0;
	visibility: hidden;
	transition: opacity .25s ease, visibility .25s ease;
}

.ac-modal.is-open {
	opacity: 1;
	visibility: visible;
}

.ac-modal__dialog {
	position: relative;
	width: 100%;
	max-width: 560px;
	max-height: 90vh;
	overflow-y: auto;
	background: var(--ac-color-surface);
	border-radius: var(--ac-radius-lg);
	box-shadow: var(--ac-shadow-md);
	padding: var(--ac-space-7) var(--ac-space-6) var(--ac-space-6);
	transform: translateY(12px);
	transition: transform .25s ease;
}

.ac-modal.is-open .ac-modal__dialog {
	transform: translateY(0);
}

.ac-modal__close {
	position: absolute;
	top: var(--ac-space-4);
	inset-inline-end: var(--ac-space-4);
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: var(--ac-color-primary-light);
	color: var(--ac-color-primary);
	border: none;
	font-size: 15px;
	cursor: pointer;
}

.ac-modal__title {
	font-size: clamp(20px, 2.5vw, 26px);
	margin: 0 0 var(--ac-space-2);
}

.ac-modal__subtitle {
	color: var(--ac-color-text-muted);
	font-size: 14px;
	margin: 0 0 var(--ac-space-6);
}

.ac-appointment-form .ac-form-row {
	margin-block-end: var(--ac-space-4);
}

.ac-appointment-form label,
.ac-appointment-form__row .ac-form-row label,
.ac-form-row__label {
	display: block;
	font-weight: 700;
	font-size: 14px;
	margin-block-end: var(--ac-space-2);
}

.ac-appointment-form input[type="text"],
.ac-appointment-form input[type="tel"],
.ac-appointment-form select {
	width: 100%;
	padding: 12px 14px;
	border: 1px solid var(--ac-color-border);
	border-radius: var(--ac-radius-sm);
	/*background: var(--ac-color-bg);*/
	font-family: var(--ac-font-body);
	font-size: 14px;
}

.ac-appointment-form input:focus,
.ac-appointment-form select:focus {
	outline: 2px solid var(--ac-color-primary);
	outline-offset: 1px;
}

.ac-appointment-form__row--2 {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--ac-space-4);
}

.ac-appointment-form__date {
	display: grid;
	grid-template-columns: 1fr 1.4fr 1fr;
	gap: var(--ac-space-2);
}

.ac-appointment-form__method {
	border: none;
	padding: 0;
	margin: 0 0 var(--ac-space-4);
}

.ac-radio {
	display: inline-flex;
	align-items: center;
	gap: var(--ac-space-2);
	margin-inline-end: var(--ac-space-5);
	font-weight: 700;
	font-size: 14px;
	cursor: pointer;
}

.ac-radio input {
	accent-color: var(--ac-color-primary);
	width: 18px;
	height: 18px;
}

.ac-appointment-form__feedback {
	font-size: 14px;
	font-weight: 700;
	margin-block-end: var(--ac-space-3);
	min-height: 1.2em;
}

.ac-appointment-form__feedback.is-success {
	color: var(--ac-color-success);
}

.ac-appointment-form__feedback.is-error {
	color: var(--ac-color-error);
}

.ac-appointment-form__actions {
	display: flex;
	gap: var(--ac-space-3);
}

.ac-appointment-form__submit {
	flex: 1 1 auto;
}

.ac-appointment-form__cancel {
	flex: 0 0 auto;
}

@media (max-width: 480px) {
	.ac-appointment-form__row--2,
	.ac-appointment-form__date {
		grid-template-columns: 1fr;
	}

	.ac-appointment-form__actions {
		flex-direction: column-reverse;
	}
}

/* -----------------------------------------------------------------------
   Page banner (inner_banner_main)
----------------------------------------------------------------------- */

.ac-page-banner {
	position: relative;
	background:
		radial-gradient(circle at 88% 12%, rgba(201, 162, 109, 0.35) 0%, transparent 45%),
		linear-gradient(135deg, var(--ac-color-primary) 0%, var(--ac-color-primary-dark) 100%);
	padding-block: var(--ac-space-7);
	text-align: center;
	overflow: hidden;
}

.ac-page-banner::before {
	content: "";
	position: absolute;
	inset: 0;
	background-image: radial-gradient(rgba(255, 255, 255, 0.14) 1px, transparent 1px);
	background-size: 22px 22px;
	opacity: .5;
	pointer-events: none;
}

.ac-page-banner .container {
	position: relative;
	z-index: 1;
}

.ac-page-banner h1 {
	color: #fff;
	margin: 0 0 var(--ac-space-3);
	font-size: clamp(26px, 3.4vw, 36px);
	font-weight: 800;
	letter-spacing: -.01em;
	text-shadow: 0 2px 18px rgba(0, 0, 0, 0.15);
}

.ac-page-banner .inner_banner_main > h1::after {
	content: "";
	display: block;
	width: 56px;
	height: 3px;
	margin: var(--ac-space-3) auto 0;
	border-radius: 2px;
	background: linear-gradient(90deg, var(--ac-color-accent), rgba(255, 255, 255, 0.6));
}

.ac-page-banner #crumbs,
.ac-page-banner #crumbs a {
	color: rgba(255, 255, 255, 0.75);
	font-size: 13px;
}

.ac-page-banner #crumbs a:hover {
	color: var(--ac-color-accent);
}

.ac-page-banner #crumbs .current {
	color: #BAE5AE;
	font-weight: 700;
}

/* Blog/archive hero: taller, with a decorative motif + browsable category pills. */
.ac-page-banner--blog {
	padding-block: var(--ac-space-9);
}

.ac-page-banner__motif {
	position: absolute;
	inset-inline-end: -30px;
	top: -40px;
	font-size: 240px;
	line-height: 1;
	color: rgba(255, 255, 255, 0.06);
	pointer-events: none;
	transform: rotate(-8deg);
}

.ac-eyebrow--on-dark {
	background: var(--ac-color-accent);
	color: var(--ac-color-text);
	box-shadow: 0 6px 18px rgba(143, 168, 136, 0.35);
}

.ac-page-banner__meta {
	color: rgba(255, 255, 255, 0.8);
	font-size: 14px;
	margin: 0 0 var(--ac-space-2);
}

.ac-page-banner__pills {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: var(--ac-space-2);
	margin-block-start: var(--ac-space-6);
	position: relative;
}

.ac-pill {
	display: inline-flex;
	align-items: center;
	padding: 8px 18px;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.1);
	border: 1px solid rgba(255, 255, 255, 0.18);
	color: #fff;
	font-size: 13px;
	font-weight: 700;
	text-decoration: none;
	transition: background-color .2s ease, border-color .2s ease, transform .2s ease;
}

.ac-pill:hover,
.ac-pill:focus,
.ac-pill.is-active {
	background: var(--ac-color-accent);
	border-color: var(--ac-color-accent);
	color: var(--ac-color-text);
	transform: translateY(-2px);
}

.ac-page-banner__wave {
	position: absolute;
	inset-inline: 0;
	bottom: -1px;
	line-height: 0;
	color: var(--ac-color-bg);
}

.ac-page-banner__wave svg {
	width: 100%;
	height: 40px;
	display: block;
}

/* -----------------------------------------------------------------------
   Site footer
----------------------------------------------------------------------- */

.ac-site-footer {
	position: relative;
	overflow: hidden;
	background-color: #15161a;
	color: rgba(255, 255, 255, 0.85);
	margin-top: var(--ac-space-8);
}

.ac-site-footer::before {
	content: "";
	position: absolute;
	inset-inline: 0;
	top: 0;
	height: 3px;
	background: linear-gradient(90deg, var(--ac-color-primary), var(--ac-color-accent));
}

.ac-site-footer a {
	color: rgba(255, 255, 255, 0.85);
}

.ac-site-footer a:hover,
.ac-site-footer a:focus {
	color: #fff;
}

.ac-site-footer__main {
	padding-block: var(--ac-space-8) var(--ac-space-7);
	display: grid;
	align-items: start;
	gap: var(--ac-space-7) var(--ac-space-6);
	grid-template-columns: 1fr;
	grid-template-areas:
		"brand"
		"quick"
		"important"
		"contact";
}

@media (min-width: 576px) {
	.ac-site-footer__main {
		grid-template-columns: 1fr 1fr;
		grid-template-areas:
			"brand brand"
			"quick important"
			"contact contact";
	}
}

@media (min-width: 992px) {
	.ac-site-footer__main {
		grid-template-columns: 1fr;
		grid-template-areas: "brand quick important contact";
	}
}

.ac-site-footer__col--brand {
	grid-area: brand;
}

.ac-site-footer__col--quick {
	grid-area: quick;
}

.ac-site-footer__col--important {
	grid-area: important;
	min-width: 162px;
}

.ac-site-footer__col--contact {
	grid-area: contact;
	text-align: right;
}

.ac-site-footer__col h2,
.ac-site-footer__col h3 {
	position: relative;
	color: #fff;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	margin: 0 0 var(--ac-space-5);
	padding-block-end: var(--ac-space-3);
}

.ac-site-footer__col h2::after,
.ac-site-footer__col h3::after {
	content: "";
	position: absolute;
	inset-inline-start: 0;
	bottom: 0;
	width: 32px;
	height: 2px;
	border-radius: 1px;
	background: var(--ac-color-accent);
}

.ac-site-footer__col ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.ac-site-footer__col li {
	margin-block-end: var(--ac-space-2);
}

.ac-site-footer__logo {
	display: block;
	max-width: 218px;
	width: auto;
	margin-block-end: var(--ac-space-5);
	text-align: center;
	margin-right: auto;
	margin-left: auto;
}

.ac-site-footer__about {
	font-size: 14px;
	line-height: 1.9;
	text-align: justify;
	color: rgba(255, 255, 255, 0.75);
	margin: 0 0 var(--ac-space-5);
	/*max-width: 36ch;*/
}

.ac-site-footer__social {
	display: flex;
	gap: var(--ac-space-3);
}

.ac-site-footer__social a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.1);
	transition: background-color .2s ease, transform .2s ease;
}

.ac-site-footer__social a:hover {
	background: var(--ac-color-accent);
	color: var(--ac-color-text);
	transform: translateY(-2px);
}

.ac-site-footer__contact {
	text-align: right;
}

.ac-site-footer__contact li {
	display: flex;
	align-items: flex-start;
	gap: var(--ac-space-2);
	font-size: 14px;
	line-height: 1.7;
	text-align: right;
}

.ac-site-footer__contact li span,
.ac-site-footer__contact li a {
	text-align: right;
}

.ac-site-footer__contact li i {
	color: var(--ac-color-accent);
	margin-top: 4px;
	width: 16px;
	flex-shrink: 0;
	text-align: center;
}

.ac-site-footer__map-buttons {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-end;
	gap: var(--ac-space-2);
	margin-block-start: var(--ac-space-4);
}

.ac-map-btn {
	display: inline-flex;
	align-items: center;
	gap: var(--ac-space-2);
	padding: 8px 16px;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.1);
	font-size: 13px;
	font-weight: 700;
	transition: background-color .2s ease;
}

.ac-map-btn:hover,
.ac-map-btn:focus {
	background: var(--ac-color-accent);
	color: var(--ac-color-text);
}

.ac-site-footer__bottom {
	border-top: 1px solid rgba(255, 255, 255, 0.15);
	padding-block: var(--ac-space-4);
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--ac-space-3);
	font-size: 13px;
}

.ac-site-footer__bottom p {
	margin: 0;
	color: rgba(255, 255, 255, 0.55);
}

@media (max-width: 575px) {
	.ac-site-footer__col--brand {
		text-align: center;
	}

	.ac-site-footer__col--brand .ac-site-footer__logo,
	.ac-site-footer__col--brand .ac-site-footer__about {
		margin-inline: auto;
	}

	.ac-site-footer__col--brand .ac-site-footer__social {
		justify-content: center;
	}

	.ac-site-footer__col--brand h2::after,
	.ac-site-footer__col--brand h3::after {
		inset-inline-start: 50%;
		transform: translateX(-50%);
	}
}

/* -----------------------------------------------------------------------
   Breadcrumbs / pagination
----------------------------------------------------------------------- */

#crumbs {
	font-size: 14px;
	color: var(--ac-color-text-muted);
}

#crumbs a {
	color: var(--ac-color-text-muted);
}

#crumbs a:hover {
	color: var(--ac-color-primary);
}

#crumbs .current {
	color: var(--ac-color-primary);
	font-weight: 700;
}

.pagination {
	display: flex;
	flex-wrap: wrap;
	gap: var(--ac-space-2);
	margin-block-start: var(--ac-space-6);
}

.pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 42px;
	height: 42px;
	padding-inline: var(--ac-space-3);
	border-radius: var(--ac-radius-sm);
	background: var(--ac-color-surface);
	color: var(--ac-color-text);
	box-shadow: var(--ac-shadow-sm);
	text-decoration: none;
}

.pagination .page-numbers.current,
.pagination .page-numbers:hover {
	background: var(--ac-color-primary);
	color: #fff;
}

/* -----------------------------------------------------------------------
   Team grid & cards (archive-team.php)
----------------------------------------------------------------------- */

.ac-team-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: var(--ac-space-6);
}

/* Fixed column counts, used by the Elementor "Team Grid" widget. */
.ac-team-grid--cols-2,
.ac-team-grid--cols-3,
.ac-team-grid--cols-4 {
	grid-template-columns: 1fr;
}

@media (min-width: 768px) {
	.ac-team-grid--cols-3 {
		grid-template-columns: repeat(3, 1fr);
	}

	.ac-team-grid--cols-4 {
		grid-template-columns: repeat(4, 1fr);
	}
}

.ac-team-card {
	display: flex;
	flex-direction: column;
	height: 100%;
	text-align: center;
	padding: var(--ac-space-6) var(--ac-space-5) var(--ac-space-5);
}

.ac-team-card__photo-wrap {
	position: relative;
	width: 140px;
	margin: 0 auto var(--ac-space-4);
}

.ac-team-card__photo {
	width: 140px;
	height: 140px;
	border-radius: 50%;
	overflow: hidden;
	background: var(--ac-color-primary-light);
	padding: 4px;
	background: linear-gradient(150deg, var(--ac-color-primary-light), var(--ac-color-accent-light));
	transition: background .3s ease;
}

.ac-team-card:hover .ac-team-card__photo,
.ac-team-card:focus-within .ac-team-card__photo {
	background: linear-gradient(150deg, var(--ac-color-primary), var(--ac-color-accent));
}

.ac-team-card__photo img {
	width: 100%;
	height: 100%;
	border-radius: 50%;
	object-fit: cover;
	display: block;
	background: var(--ac-color-surface);
}

.ac-team-card__badge {
	position: absolute;
	inset-inline-end: 2px;
	inset-block-end: 2px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	border-radius: 50%;
	background: var(--ac-color-surface);
	color: var(--ac-color-accent-dark, var(--ac-color-accent));
	box-shadow: var(--ac-shadow-sm);
	border: 2px solid var(--ac-color-surface);
	transition: transform .25s ease, color .25s ease;
}

.ac-team-card__badge .ac-icon-wrap {
	width: 17px;
	height: 17px;
}

.ac-team-card:hover .ac-team-card__badge,
.ac-team-card:focus-within .ac-team-card__badge {
	transform: scale(1.12);
	color: var(--ac-color-primary);
}

.ac-team-card__name {
	font-size: 19px;
	margin: 0 0 var(--ac-space-1);
}

.ac-team-card__specialty {
	color: var(--ac-color-primary);
	font-weight: 700;
	font-size: 14px;
	margin: 0 0 var(--ac-space-3);
}

.ac-team-card__excerpt {
	color: var(--ac-color-text-muted);
	font-size: 14px;
	margin: 0 0 var(--ac-space-4);
}

.ac-team-card__actions {
	margin-top: auto;
	display: flex;
	flex-direction: column;
	gap: var(--ac-space-2);
}

/* -----------------------------------------------------------------------
   Shared inline-SVG icon wrapper (inc/elementor/icon-library.php). Icons are
   authored with no fixed width/height so they scale to whatever the
   containing element sizes them to, and inherit color via currentColor.
----------------------------------------------------------------------- */

.ac-icon-wrap {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	line-height: 0;
}

.ac-icon-wrap svg {
	width: 100%;
	height: 100%;
	display: block;
}

/* -----------------------------------------------------------------------
   Generic icon+title+text card grid (Elementor Services / Treatment Methods
   Services widget only — Treatment Methods has its own distinct layout, see
   the "Treatment Methods" section below).
----------------------------------------------------------------------- */

.ac-cards-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--ac-space-5);
}

@media (min-width: 576px) {
	.ac-cards-grid--cols-2,
	.ac-cards-grid--cols-3,
	.ac-cards-grid--cols-4 {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (min-width: 992px) {
	.ac-cards-grid--cols-3 {
		grid-template-columns: repeat(3, 1fr);
	}

	.ac-cards-grid--cols-4 {
		grid-template-columns: repeat(4, 1fr);
	}
}

.ac-item-card {
	position: relative;
	padding: var(--ac-space-6) var(--ac-space-5);
	border: 1px solid var(--ac-color-border);
	overflow: hidden;
	transition: border-color .25s ease, box-shadow .25s ease, transform .25s ease;
}

.ac-item-card::before {
	content: "";
	position: absolute;
	inset-block-start: 0;
	inset-inline-start: 0;
	width: 100%;
	height: 3px;
	background: linear-gradient(90deg, var(--ac-color-primary), var(--ac-color-accent));
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .3s ease;
}

:dir(rtl) .ac-item-card::before {
	transform-origin: right;
}

.ac-item-card:hover,
.ac-item-card:focus-within {
	border-color: transparent;
	box-shadow: var(--ac-shadow-md);
	transform: translateY(-6px);
}

.ac-item-card:hover::before,
.ac-item-card:focus-within::before {
	transform: scaleX(1);
}

.ac-item-card__icon {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 64px;
	height: 64px;
	border-radius: var(--ac-radius-lg);
	background: linear-gradient(135deg, var(--ac-color-primary-light), var(--ac-color-surface));
	color: var(--ac-color-primary);
	margin-block-end: var(--ac-space-5);
	transition: background-color .25s ease, color .25s ease, transform .3s ease, box-shadow .3s ease;
}

.ac-item-card__icon .ac-icon-wrap {
	width: 26px;
	height: 26px;
}

.ac-item-card:hover .ac-item-card__icon,
.ac-item-card:focus-within .ac-item-card__icon {
	background: linear-gradient(135deg, var(--ac-color-primary), var(--ac-color-primary-dark));
	color: #fff;
	transform: scale(1.08) rotate(-4deg);
	box-shadow: 0 0 0 6px var(--ac-color-primary-light);
}

.ac-item-card__title {
	font-size: 18px;
	margin: 0 0 var(--ac-space-2);
	transition: color .2s ease;
}

.ac-item-card:hover .ac-item-card__title {
	color: var(--ac-color-primary);
}

.ac-item-card__text {
	color: var(--ac-color-text-muted);
	font-size: 14px;
	margin: 0;
}

/* -----------------------------------------------------------------------
   Treatment Methods (Elementor Treatment Methods widget) — an asymmetric
   bento grid, modeled on astra-child's ServicesShowcaseWidget bento pattern.
   Every 1st and 4th card of each run of 6 spans 2 columns (nth-child, not a
   per-item control) so the grid stays asymmetric regardless of item count,
   and every card shares one background/padding so nothing looks visually
   unbalanced the way the old accordion's open/closed states did.
----------------------------------------------------------------------- */

.ac-methods-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	grid-auto-rows: 1fr;
	gap: var(--ac-space-5);
}

.ac-methods-grid__card:nth-child(6n+1),
.ac-methods-grid__card:nth-child(6n+4) {
	grid-column: span 2;
}

.ac-methods-grid__card {
	position: relative;
	background: var(--ac-color-surface);
	border: 1px solid var(--ac-color-border);
	border-radius: var(--ac-radius-lg);
	box-shadow: var(--ac-shadow-sm);
	padding: var(--ac-space-5);
	display: flex;
	flex-direction: column;
	transition: box-shadow .3s ease, border-color .3s ease, transform .3s ease;
}

.ac-methods-grid__card:hover {
	box-shadow: var(--ac-shadow-md);
	border-color: var(--ac-color-primary-light);
	transform: translateY(-4px);
}

.ac-methods-grid__number {
	font-size: 13px;
	font-weight: 700;
	color: var(--ac-color-border);
	margin-block-end: var(--ac-space-4);
}

.ac-methods-grid__icon {
	display: inline-flex;
	flex-shrink: 0;
	align-items: center;
	justify-content: center;
	width: 85px;
	height: 85px;
	border-radius: 50%;
	background: var(--ac-color-primary-light);
	color: var(--ac-color-primary);
	margin-block-end: var(--ac-space-4);
	transition: background-color .25s ease, color .25s ease, transform .25s ease;
}

.ac-methods-grid__icon .ac-icon-wrap {
	width: 40px;
	height: 40px;
}

.ac-methods-grid__card:hover .ac-methods-grid__icon {
	background: var(--ac-color-primary);
	color: #fff;
	transform: scale(1.05);
}

.ac-methods-grid__title {
	font-size: 18px;
	margin: 0 0 var(--ac-space-2);
	transition: color .2s ease;
}

.ac-methods-grid__card:hover .ac-methods-grid__title {
	color: var(--ac-color-primary);
}

.ac-methods-grid__text {
	color: var(--ac-color-text-muted);
	font-size: 14px;
	line-height: 1.85;
	margin: 0;
}

@media (max-width: 991px) {
	.ac-methods-grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.ac-methods-grid__card:nth-child(6n+1),
	.ac-methods-grid__card:nth-child(6n+4) {
		grid-column: span 2;
	}
}

@media (max-width: 575px) {
	.ac-methods-grid {
		grid-template-columns: 1fr;
	}

	.ac-methods-grid__card:nth-child(6n+1),
	.ac-methods-grid__card:nth-child(6n+4) {
		grid-column: span 1;
	}
}

/* -----------------------------------------------------------------------
   Testimonials (Elementor Testimonials widget) — a "coverflow" stacked
   carousel (js/apexclinic-modern.js "initTestimonialCarousels"): every card
   is absolutely positioned in the same stack and placed via the --pos/--depth
   custom properties the JS sets per card (signed distance from the active
   index, on a circular scale so the loop needs no cloned slides), so the
   previous/next cards stay visible, scaled down and faded, behind the
   active one. Card width/step distance are tuned for this widget's frosted
   card size; the technique itself mirrors astra-child's TestimonialsWidget.
----------------------------------------------------------------------- */

/* Elementor's boxed containers use flex-direction:column with items meant to
   stretch full-width, but the theme's global `* { margin: 0 auto }` reset
   (radiantthemes-custom.css) puts auto inline margins on every flex item,
   which per spec suppresses cross-axis stretch. Without this, the widget
   wrapper (and everything inside it, including .ac-testimonial-carousel)
   shrinks to a fit-content width instead of filling the container, so the
   760px max-width below is never reached and cards get clipped. */
.elementor-widget-apexclinic_testimonials {
	width: 100%;
}

.ac-testimonial-carousel {
	position: relative;
	max-width: 1110px;
	margin-inline: auto;
	padding: var(--ac-space-4) var(--ac-space-2) 0;
	overflow: hidden;
}

.ac-testimonial-carousel::before,
.ac-testimonial-carousel::after {
	content: "";
	position: absolute;
	z-index: -1;
	width: 220px;
	height: 220px;
	border-radius: 50%;
	filter: blur(60px);
	opacity: .35;
	pointer-events: none;
}

.ac-testimonial-carousel::before {
	background: var(--ac-color-primary-light);
	top: -40px;
	inset-inline-start: -40px;
}

.ac-testimonial-carousel::after {
	background: var(--ac-color-accent-light);
	bottom: -40px;
	inset-inline-end: -40px;
}

.ac-testimonial-stage {
	position: relative;
	perspective: 1400px;
	touch-action: pan-y;
}

.ac-testimonial-stage:focus-visible {
	outline: 2px solid var(--ac-color-primary);
	outline-offset: 6px;
	border-radius: var(--ac-radius-lg);
}

.ac-testimonial-track {
	margin-right: -562px;
	position: relative;
	height: clamp(400px, 44vw, 460px);
}

.ac-testimonial-card {
	position: absolute;
	inset-inline-start: 50%;
	top: 50%;
	width: min(560px, 88%);
	margin-inline-start: calc(min(560px, 88%) / -2);
	height: clamp(370px, 40vw, 420px);
	display: flex;
	flex-direction: column;
	padding: var(--ac-space-7) var(--ac-space-6) var(--ac-space-6);
	margin-block: 0;
	background: rgba(255, 255, 255, 0.72);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	border: 1px solid var(--ac-color-border);
	border-radius: var(--ac-radius-lg);
	box-shadow: var(--ac-shadow-md);
	text-align: center;
	overflow: hidden;
	will-change: transform, opacity;
	transform: translateY(-50%) translateX(calc(var(--pos, 0) * -290px)) scale(calc(1 - var(--depth, 0) * 0.12)) rotateY(calc(var(--pos, 0) * 6deg));
	transition:
		transform .55s cubic-bezier(.22, 1, .36, 1),
		opacity .55s cubic-bezier(.22, 1, .36, 1),
		filter .55s cubic-bezier(.22, 1, .36, 1),
		box-shadow .35s ease,
		border-color .35s ease;
	opacity: 0;
	filter: blur(3px);
	pointer-events: none;
	cursor: default;
}

.ac-testimonial-card.is-active {
	z-index: 3;
	opacity: 1;
	filter: blur(0);
	pointer-events: auto;
}

.ac-testimonial-card.is-near {
	z-index: 2;
	opacity: .55;
	filter: blur(1px);
	pointer-events: auto;
	cursor: pointer;
}

.ac-testimonial-card.is-near:hover,
.ac-testimonial-card.is-near:focus-visible {
	opacity: .8;
	filter: blur(.3px);
}

.ac-testimonial-card.is-active:hover,
.ac-testimonial-card.is-active:focus-within {
	transform: translateY(calc(-50% - 6px)) translateX(calc(var(--pos, 0) * -290px)) scale(1) rotateY(0deg);
	box-shadow: 0 30px 60px -20px rgba(20, 43, 40, .28);
	border-color: var(--ac-color-primary-light);
}

.ac-testimonial-card:focus-visible {
	outline: 2px solid var(--ac-color-primary);
	outline-offset: 2px;
}

.ac-testimonial-card__mark {
	color: var(--ac-color-primary-light);
	width: 40px;
	height: 40px;
	margin: 0 auto var(--ac-space-2);
	flex-shrink: 0;
}

.ac-testimonial-card__stars {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 2px;
	color: var(--ac-color-accent);
	margin-block-end: var(--ac-space-3);
	flex-shrink: 0;
}

.ac-testimonial-card__stars svg {
	width: 13px;
	height: 13px;
}

.ac-testimonial-card__quote {
	flex: 1 1 auto;
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 6;
	overflow: hidden;
	font-size: 15px;
	font-weight: 500;
	line-height: 1.9;
	color: var(--ac-color-text);
	margin: 0 0 var(--ac-space-4);
}

.ac-testimonial-card__meta {
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: var(--ac-space-3);
	padding-block-start: var(--ac-space-4);
	border-top: 1px dashed var(--ac-color-border);
}

.ac-testimonial-card__who {
	text-align: start;
}

.ac-testimonial-card__avatar {
	display: inline-flex;
	flex-shrink: 0;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	border-radius: 50%;
	overflow: hidden;
	background: var(--ac-color-primary-light);
}

.ac-testimonial-card__avatar img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ac-testimonial-card__name {
	display: block;
	font-style: normal;
	font-weight: 700;
	font-size: 14px;
}

.ac-testimonial-card__role {
	display: inline-block;
	margin-block-start: 3px;
	color: var(--ac-color-primary);
	background: var(--ac-color-primary-light);
	border-radius: 999px;
	padding: 2px 10px;
	font-size: 11px;
	font-weight: 700;
}

.ac-testimonial-arrow {
	position: absolute;
	top: 50%;
	z-index: 4;
	width: 46px;
	height: 46px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	border: 1px solid var(--ac-color-border);
	background: rgba(255, 255, 255, 0.9);
	backdrop-filter: blur(8px);
	color: var(--ac-color-primary-dark);
	box-shadow: var(--ac-shadow-sm);
	cursor: pointer;
	appearance: none;
	padding: 0;
	transform: translateY(-50%);
	transition: background-color .3s ease, color .3s ease, box-shadow .3s ease, transform .2s ease;
}

.ac-testimonial-arrow svg {
	width: 18px;
	height: 18px;
}

.ac-testimonial-arrow--prev {
	inset-inline-start: 4px;
}

.ac-testimonial-arrow--next {
	inset-inline-end: 4px;
}

.ac-testimonial-arrow:hover {
	background-color: var(--ac-color-primary);
	color: #fff;
	box-shadow: var(--ac-shadow-md);
}

.ac-testimonial-arrow:active {
	transform: translateY(-50%) scale(.92);
}

.ac-testimonial-arrow:focus-visible {
	outline: 2px solid var(--ac-color-primary);
	outline-offset: 2px;
}

.ac-testimonial-dots {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
	gap: 8px;
	margin-block-start: var(--ac-space-5);
}

.ac-testimonial-dot {
	width: 7px;
	height: 7px;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: var(--ac-color-border);
	appearance: none;
	cursor: pointer;
	transition: width .3s ease, background-color .3s ease;
}

.ac-testimonial-dot:hover {
	background-color: var(--ac-color-primary-light);
}

.ac-testimonial-dot.is-active {
	width: 24px;
	background-color: var(--ac-color-primary);
}

.ac-testimonial-dot:focus-visible {
	outline: 2px solid var(--ac-color-primary);
	outline-offset: 2px;
}

@media (max-width: 767px) {
	.ac-testimonial-stage {
		overflow: hidden;
		border-radius: var(--ac-radius-lg);
	}

	.ac-testimonial-track {
		height: auto;
		margin-right: 0;
	}

	.ac-testimonial-card {
		position: relative;
		inset-inline-start: 0;
		top: 0;
		margin-inline-start: 0;
		width: 100%;
		height: auto;
		min-height: 320px;
		transform: translateX(calc(var(--pos, 0) * 108%));
	}

	.ac-testimonial-card:not(.is-active) {
		position: absolute;
		inset-inline-end: 0;
		top: 0;
		width: 100%;
	}

	.ac-testimonial-card.is-active:hover,
	.ac-testimonial-card.is-active:focus-within {
		transform: translateY(-4px);
	}

	.ac-testimonial-card.is-near {
		opacity: 0;
		pointer-events: none;
	}

	.ac-testimonial-arrow {
		width: 40px;
		height: 40px;
	}
}

@media (max-width: 575px) {
	.ac-testimonial-card {
		padding: var(--ac-space-6) var(--ac-space-4) var(--ac-space-5);
	}

	.ac-testimonial-card__meta {
		flex-direction: column;
		text-align: center;
	}

	.ac-testimonial-card__who {
		text-align: center;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ac-testimonial-card {
		transition-duration: .01ms !important;
	}
}

/* -----------------------------------------------------------------------
   Generic carousel (js/apexclinic-modern.js "initCarousels") — currently
   used by the Elementor "Team Grid" widget in carousel mode, written so any
   future ac-cards-grid-style content can reuse it by wrapping items in
   .ac-carousel__slide inside .ac-carousel__track.
----------------------------------------------------------------------- */

.ac-carousel {
	position: relative;
}

.ac-carousel__viewport {
	overflow: hidden;
	/* Small vertical breathing room so a slide's hover-lift transform isn't clipped. */
	padding-block: var(--ac-space-2);
	margin-block: calc(var(--ac-space-2) * -1);
}

.ac-carousel__track {
	display: flex;
	gap: var(--ac-space-6);
	will-change: transform;
	transition: transform .45s ease;
}

.ac-carousel__slide {
	display: flex;
	flex: 0 0 100%;
	min-width: 0;
}

@media (min-width: 576px) {
	.ac-team-carousel[data-ac-carousel-per-view="2"] .ac-carousel__slide,
	.ac-team-carousel[data-ac-carousel-per-view="3"] .ac-carousel__slide,
	.ac-team-carousel[data-ac-carousel-per-view="4"] .ac-carousel__slide {
		flex-basis: calc(50% - var(--ac-space-6) / 2);
	}
}

@media (min-width: 992px) {
	.ac-team-carousel[data-ac-carousel-per-view="3"] .ac-carousel__slide {
		flex-basis: calc((100% - var(--ac-space-6) * 2) / 3);
	}

	.ac-team-carousel[data-ac-carousel-per-view="4"] .ac-carousel__slide {
		flex-basis: calc((100% - var(--ac-space-6) * 3) / 4);
	}
}

.ac-carousel__nav {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: var(--ac-space-4);
	margin-block-start: var(--ac-space-7);
}

.ac-carousel-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background: var(--ac-color-surface);
	color: var(--ac-color-primary);
	border: 1px solid var(--ac-color-border);
	box-shadow: var(--ac-shadow-sm);
	font-size: 18px;
	cursor: pointer;
	transition: background-color .2s ease, color .2s ease, transform .2s ease, box-shadow .2s ease;
}

.ac-carousel-btn:hover,
.ac-carousel-btn:focus-visible {
	background: var(--ac-color-primary);
	color: #fff;
	box-shadow: var(--ac-shadow-md);
	transform: translateY(-2px);
}

.ac-carousel-btn[aria-disabled="true"] {
	opacity: .35;
	cursor: default;
	pointer-events: none;
}

.ac-carousel__dots {
	display: flex;
	align-items: center;
	gap: 8px;
}

.ac-carousel__dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--ac-color-border);
	border: none;
	padding: 0;
	cursor: pointer;
	transition: background-color .2s ease, transform .2s ease, width .2s ease;
}

.ac-carousel__dot.is-active {
	background: var(--ac-color-primary);
	width: 22px;
	border-radius: 4px;
}

/* -----------------------------------------------------------------------
   Single team member (single-team.php / team-single-one.php)
----------------------------------------------------------------------- */

.ac-doctor-profile {
	display: grid;
	grid-template-columns: minmax(240px, 300px) 1fr;
	gap: var(--ac-space-7);
	align-items: start;
}

@media (max-width: 767px) {
	.ac-doctor-profile {
		grid-template-columns: 1fr;
	}
}

.ac-doctor-card {
	padding: var(--ac-space-6);
	text-align: center;
	position: sticky;
	top: var(--ac-space-6);
}

.ac-doctor-card__photo {
	width: 100%;
	aspect-ratio: 1 / 1;
	border-radius: var(--ac-radius-lg);
	overflow: hidden;
	margin-block-end: var(--ac-space-4);
	background: var(--ac-color-primary-light);
}

.ac-doctor-card__photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.ac-doctor-card__name {
	font-size: 20px;
	font-weight: 800;
	margin: 0 0 var(--ac-space-1);
}

.ac-doctor-card__specialty {
	color: var(--ac-color-primary);
	font-weight: 700;
	margin: 0 0 var(--ac-space-4);
}

.ac-doctor-meta {
	list-style: none;
	margin: 0 0 var(--ac-space-4);
	padding: 0;
	text-align: start;
	border-top: 1px solid var(--ac-color-border);
	padding-top: var(--ac-space-4);
}

.ac-doctor-meta li {
	display: flex;
	justify-content: space-between;
	gap: var(--ac-space-3);
	padding-block: var(--ac-space-2);
	font-size: 14px;
	border-bottom: 1px dashed var(--ac-color-border);
}

.ac-doctor-meta li:last-child {
	border-bottom: none;
}

.ac-doctor-meta .label {
	color: var(--ac-color-text-muted);
}

.ac-doctor-social {
	display: flex;
	justify-content: center;
	gap: var(--ac-space-3);
	margin-block-start: var(--ac-space-4);
}

.ac-doctor-social a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	background: var(--ac-color-primary-light);
	color: var(--ac-color-primary);
}

.ac-doctor-social a:hover {
	background: var(--ac-color-primary);
	color: #fff;
}

.ac-doctor-bio {
	padding: var(--ac-space-6);
}

.ac-doctor-bio h1 {
	font-size: clamp(24px, 3vw, 32px);
	margin-block-start: 0;
}

/* -----------------------------------------------------------------------
   Doctor finder (template-find-a-doctor.php)
----------------------------------------------------------------------- */

.ac-page-lead {
	color: var(--ac-color-text-muted);
}

.ac-doctor-finder-toolbar {
	margin-block-end: var(--ac-space-7);
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--ac-space-4);
}

.ac-doctor-finder-search {
	display: flex;
	width: 100%;
	max-width: 420px;
	gap: var(--ac-space-2);
}

.ac-doctor-finder-search input[type="search"] {
	flex: 1 1 auto;
	padding: 12px 16px;
	border: 1px solid var(--ac-color-border);
	border-radius: var(--ac-radius-sm);
	background: var(--ac-color-surface);
	font-family: var(--ac-font-body);
}

.ac-doctor-finder-search button {
	padding-inline: var(--ac-space-4);
}

.ac-page-banner__pills--light {
	margin-block-start: 0;
}

.ac-pill--light {
	background: var(--ac-color-primary-light);
	color: var(--ac-color-primary);
}

.ac-pill--light:hover,
.ac-pill--light:focus,
.ac-pill--light.is-active {
	background: var(--ac-color-primary);
	color: #fff;
}

.ac-doctor-finder-empty {
	text-align: center;
	color: var(--ac-color-text-muted);
	padding-block: var(--ac-space-6);
}

.ac-form-row {
	margin-block-end: var(--ac-space-4);
}

.ac-form-row label {
	display: block;
	font-weight: 700;
	margin-block-end: var(--ac-space-2);
	font-size: 14px;
}

.ac-form-row select,
.ac-form-row input[type="text"] {
	width: 100%;
	padding: 11px 14px;
	border: 1px solid var(--ac-color-border);
	border-radius: var(--ac-radius-sm);
	background: var(--ac-color-surface);
	font-family: var(--ac-font-body);
}

/* -----------------------------------------------------------------------
   Modernizing overrides for existing legacy templates (page/post/blog/
   comments/woocommerce) — restyled via their existing class names rather
   than rewriting each template's markup, to keep this pass low-risk.
----------------------------------------------------------------------- */

.wraper_blog_main,
.wraper_doctor_finder,
.wraper_team_single {
	padding-block: var(--ac-space-7);
}

.entry-title {
	font-size: clamp(24px, 3vw, 34px);
	margin-block-end: var(--ac-space-5);
}

.entry-content a {
	color: var(--ac-color-primary);
	text-decoration: underline;
}

.entry-content blockquote {
	border-inline-start: 4px solid var(--ac-color-primary);
	background: var(--ac-color-primary-light);
	padding: var(--ac-space-4) var(--ac-space-5);
	border-radius: var(--ac-radius-sm);
	margin-inline: 0;
	font-style: normal;
}

.blog_single,
.doctor-finder-search,
.author-bio,
.comments-area {
	background: var(--ac-color-surface);
	border-radius: var(--ac-radius-lg);
	/*box-shadow: var(--ac-shadow-sm);*/
	padding: var(--ac-space-6);
}


@media (max-width: 574px) {
	.blog_single,
	.doctor-finder-search,
	.author-bio,
	.comments-area {
		padding: 5px;
	}
}

medi

.blog_related_article_box_item .holder {
	background: var(--ac-color-surface);
	border-radius: var(--ac-radius-md);
	overflow: hidden;
	box-shadow: var(--ac-shadow-sm);
	transition: box-shadow .25s ease, transform .25s ease;
}

.blog_related_article_box_item .holder:hover {
	box-shadow: var(--ac-shadow-md);
	transform: translateY(-4px);
}

.post-tags,
.post-navigation {
	margin-block-start: var(--ac-space-5);
}

/* Buttons / form controls theme-wide (contact forms, comment form, WooCommerce). */
.btn,
input[type="submit"],
button[type="submit"],
.woocommerce a.button,
.woocommerce button.button,
.woocommerce #respond input#submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background-color: var(--ac-color-primary);
	color: #fff;
	border: 2px solid transparent;
	border-radius: var(--ac-radius-sm);
	padding: 12px 26px;
	font-weight: 700;
	transition: background-color .2s ease;
}

.btn:hover,
input[type="submit"]:hover,
button[type="submit"]:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover {
	background-color: var(--ac-color-primary-dark);
	color: #fff;
}

.ac-404 {
	text-align: center;
}

.ac-404__image {
	max-width: 320px;
	margin: 0 auto var(--ac-space-6);
}

.ac-404__cta {
	margin-block-start: var(--ac-space-5);
}

.ac-404__search {
	max-width: 420px;
	margin: var(--ac-space-6) auto 0;
}

/* -----------------------------------------------------------------------
   Comments (comments.php) — restyles WordPress core's default
   wp_list_comments()/comment_form() markup and classes.
----------------------------------------------------------------------- */

.ac-comments {
	margin-block-start: var(--ac-space-8);
}

.ac-comments__title,
.comment-reply-title {
	font-size: 20px;
	margin: 0 0 var(--ac-space-5);
}

.comment-reply-title small {
	font-size: 13px;
	font-weight: 400;
	margin-inline-start: var(--ac-space-2);
}

.ac-comments__list,
.comment-list .children {
	list-style: none;
	margin: 0;
	padding: 0;
}

.comment-list .children {
	padding-inline-start: var(--ac-space-6);
	margin-block-start: var(--ac-space-4);
}

.comment-body {
	background: var(--ac-color-surface);
	border-radius: var(--ac-radius-lg);
	box-shadow: var(--ac-shadow-sm);
	padding: var(--ac-space-5);
	margin-block-end: var(--ac-space-4);
}

.comment-author.vcard {
	display: flex;
	align-items: center;
	gap: var(--ac-space-3);
}

.comment-author .avatar {
	border-radius: 50%;
	width: 48px;
	height: 48px;
}

.comment-author .fn {
	font-style: normal;
	font-weight: 700;
}

.comment-author .says {
	display: none;
}

.comment-metadata {
	font-size: 12px;
	color: var(--ac-color-text-muted);
	margin-inline-start: 60px;
	margin-block-start: -8px;
}

.comment-metadata a {
	color: inherit;
}

.comment-content {
	margin-block-start: var(--ac-space-3);
	font-size: 14px;
	line-height: 1.9;
}

.comment-content p:last-child {
	margin-bottom: 0;
}

.comment .reply {
	margin-block-start: var(--ac-space-3);
}

.comment-reply-link {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 13px;
	font-weight: 700;
	color: var(--ac-color-primary);
	text-decoration: none;
}

.comment-reply-link:hover {
	color: var(--ac-color-primary-dark);
}

.ac-comment-form {
	background: var(--ac-color-surface);
	border-radius: var(--ac-radius-lg);
	box-shadow: var(--ac-shadow-sm);
	padding: var(--ac-space-6);
}

.ac-comment-form .comment-notes,
.ac-comment-form .comment-form-cookies-consent {
	font-size: 13px;
	color: var(--ac-color-text-muted);
}

.ac-comment-form p[class*="comment-form-"] {
	margin-block-end: var(--ac-space-4);
}

.ac-comment-form label {
	display: block;
	font-weight: 700;
	font-size: 14px;
	margin-block-end: var(--ac-space-2);
}

.ac-comment-form input[type="text"],
.ac-comment-form input[type="email"],
.ac-comment-form input[type="url"],
.ac-comment-form textarea {
	width: 100%;
	padding: 12px 14px;
	border: 1px solid var(--ac-color-border);
	border-radius: var(--ac-radius-sm);
	background: var(--ac-color-bg);
	font-family: var(--ac-font-body);
}

.ac-comment-form .form-submit {
	margin: 0;
}

.comment-form input[type="text"],
.comment-form input[type="email"],
.comment-form input[type="url"],
.comment-form textarea,
.radiant-contact-form input,
.radiant-contact-form textarea {
	border: 1px solid var(--ac-color-border);
	border-radius: var(--ac-radius-sm);
	padding: 11px 14px;
	font-family: var(--ac-font-body);
}

/* -----------------------------------------------------------------------
   Blog/archive layout (inc/blog/blog-default.php + template-parts/blog-sidebar.php
   + template-parts/content-default.php) — used by index.php, archive.php, search.php.
----------------------------------------------------------------------- */

.ac-blog-layout {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--ac-space-8);
	align-items: start;
}

@media (min-width: 992px) {
	.ac-blog-layout {
		grid-template-columns: minmax(0, 1fr) 320px;
	}
}

.ac-blog-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--ac-space-6);
}

@media (min-width: 576px) {
	.ac-blog-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

.ac-blog-card {
	display: flex;
	flex-direction: column;
	border: 1px solid var(--ac-color-border);
	transition: box-shadow .25s ease, transform .25s ease, border-color .25s ease;
}

.ac-blog-card:hover,
.ac-blog-card:focus-within {
	box-shadow: var(--ac-shadow-md);
	transform: translateY(-6px);
	border-color: transparent;
}

.ac-blog-card__thumb {
	display: block;
	aspect-ratio: 16 / 10;
	overflow: hidden;
}

.ac-blog-card__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .4s ease;
}

.ac-blog-card:hover .ac-blog-card__thumb img {
	transform: scale(1.06);
}

.ac-blog-card__body {
	padding: var(--ac-space-5);
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
}

.ac-blog-card__category {
	align-self: start;
	font-size: 12px;
	font-weight: 700;
	color: var(--ac-color-primary);
	background: var(--ac-color-primary-light);
	border-radius: 999px;
	padding: 4px 12px;
	margin-block-end: var(--ac-space-3);
	text-decoration: none;
}

.ac-blog-card__title {
	font-size: 18px;
	margin: 0 0 var(--ac-space-2);
	line-height: 1.5;
}

.ac-blog-card__title a {
	color: var(--ac-color-text);
	text-decoration: none;
}

.ac-blog-card:hover .ac-blog-card__title a {
	color: var(--ac-color-primary);
}

.ac-blog-card__meta {
	display: flex;
	flex-wrap: wrap;
	gap: var(--ac-space-4);
	font-size: 12px;
	color: var(--ac-color-text-muted);
	margin-block-end: var(--ac-space-3);
}

.ac-blog-card__excerpt {
	color: var(--ac-color-text-muted);
	font-size: 14px;
	line-height: 1.8;
	margin-block-end: var(--ac-space-4);
}

.ac-blog-card__more {
	margin-block-start: auto;
	display: inline-flex;
	align-items: center;
	gap: var(--ac-space-2);
	font-size: 13px;
	font-weight: 700;
	color: var(--ac-color-primary);
	text-decoration: none;
	transition: gap .2s ease;
}

.ac-blog-card__more:hover {
	gap: var(--ac-space-3);
}

/* Sidebar */

.ac-blog-sidebar {
	display: flex;
	flex-direction: column;
	gap: var(--ac-space-5);
	position: sticky;
	top: calc(var(--ac-space-7) + 72px);
}

.ac-sidebar-widget {
	padding: var(--ac-space-5);
}

.ac-sidebar-widget__title {
	font-size: 15px;
	margin: 0 0 var(--ac-space-4);
}

.ac-sidebar-search {
	display: flex;
	gap: var(--ac-space-2);
}

.ac-sidebar-search input {
	flex: 1 1 auto;
	padding: 10px 14px;
	border: 1px solid var(--ac-color-border);
	border-radius: var(--ac-radius-sm);
	background: var(--ac-color-bg);
	font-family: var(--ac-font-body);
}

.ac-sidebar-search button {
	width: 42px;
	border: none;
	border-radius: var(--ac-radius-sm);
	background: var(--ac-color-primary);
	color: #fff;
	cursor: pointer;
}

.ac-sidebar-categories {
	list-style: none;
	margin: 0;
	padding: 0;
}

.ac-sidebar-categories li + li {
	margin-block-start: var(--ac-space-2);
}

.ac-sidebar-categories a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 9px 12px;
	border-radius: var(--ac-radius-sm);
	color: var(--ac-color-text);
	text-decoration: none;
	font-size: 14px;
	transition: background-color .2s ease, color .2s ease;
}

.ac-sidebar-categories a:hover,
.ac-sidebar-categories a.is-active {
	background: var(--ac-color-primary-light);
	color: var(--ac-color-primary);
}

.ac-sidebar-categories__count {
	font-size: 12px;
	color: var(--ac-color-text-muted);
}

.ac-sidebar-categories a:hover .ac-sidebar-categories__count,
.ac-sidebar-categories a.is-active .ac-sidebar-categories__count {
	color: inherit;
}

.ac-sidebar-recent {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: var(--ac-space-4);
}

.ac-sidebar-recent__link {
	display: flex;
	gap: var(--ac-space-3);
	text-decoration: none;
	align-items: center;
}

.ac-sidebar-recent__thumb {
	flex-shrink: 0;
	width: 56px;
	height: 56px;
	border-radius: var(--ac-radius-sm);
	overflow: hidden;
	background: var(--ac-color-primary-light);
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--ac-color-primary);
}

.ac-sidebar-recent__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ac-sidebar-recent__body {
	display: flex;
	flex-direction: column;
	gap: 4px;
	min-width: 0;
}

.ac-sidebar-recent__title {
	font-size: 13px;
	font-weight: 700;
	color: var(--ac-color-text);
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.ac-sidebar-recent__date {
	font-size: 12px;
	color: var(--ac-color-text-muted);
}

.ac-sidebar-cta {
	background: linear-gradient(150deg, var(--ac-color-primary), var(--ac-color-primary-dark));
	color: #fff;
	text-align: center;
	padding: var(--ac-space-6) var(--ac-space-5);
	border-radius: var(--ac-radius-lg);
}

.ac-sidebar-cta .ac-sidebar-widget__title {
	color: #fff;
}

.ac-sidebar-cta__icon {
	font-size: 30px;
	color: var(--ac-color-accent);
	margin-block-end: var(--ac-space-3);
	display: block;
}

.ac-sidebar-cta p {
	font-size: 13px;
	color: rgba(255, 255, 255, 0.85);
	margin: 0 0 var(--ac-space-4);
}

.ac-sidebar-cta .ac-btn {
	width: 100%;
}

@media (max-width: 991px) {
	.ac-blog-sidebar {
		position: static;
	}
}

.ac-no-results {
	grid-column: 1 / -1;
	text-align: center;
	padding: var(--ac-space-8) var(--ac-space-6);
}

.ac-no-results__icon {
	font-size: 36px;
	color: var(--ac-color-primary);
	background: var(--ac-color-primary-light);
	width: 72px;
	height: 72px;
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-block-end: var(--ac-space-5);
}

.ac-no-results__search {
	display: flex;
	max-width: 360px;
	margin: var(--ac-space-5) auto 0;
	gap: var(--ac-space-2);
}

.ac-no-results__search input {
	flex: 1 1 auto;
	padding: 11px 14px;
	border: 1px solid var(--ac-color-border);
	border-radius: var(--ac-radius-sm);
	background: var(--ac-color-bg);
	font-family: var(--ac-font-body);
}

.ac-no-results__search button {
	width: 44px;
	border: none;
	border-radius: var(--ac-radius-sm);
	background: var(--ac-color-primary);
	color: #fff;
	cursor: pointer;
}

/* -----------------------------------------------------------------------
   Hero (Elementor "Hero" widget, inc/elementor/class-hero-widget.php).
   Entrance animation reuses .ac-reveal (js/apexclinic-modern.js); the
   scroll-scrubbed parallax on [data-ac-hero-layer] is driven by GSAP
   ScrollTrigger (js/apexclinic-hero.js), loaded only on pages using this
   widget. This section owns layout/visuals only — no scroll logic here.
----------------------------------------------------------------------- */

.ac-hero {
	--ac-hero-accent: var(--ac-color-accent);
	position: relative;
	overflow: clip;
	background: var(--ac-color-bg);
	padding-block: var(--ac-space-9);
	isolation: isolate;
}

.ac-hero__wash {
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	background:
		radial-gradient(circle at 15% 20%, var(--ac-color-primary-light) 0%, transparent 45%),
		radial-gradient(circle at 88% 78%, var(--ac-color-accent-light) 0%, transparent 42%);
	opacity: .9;
}

.ac-hero__decor {
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	color: var(--ac-color-primary);
}

.ac-hero__decor-ring {
	position: absolute;
	inset-inline-end: -60px;
	top: -60px;
	width: 220px;
	height: 220px;
	opacity: .12;
}

.ac-hero__decor-dots {
	position: absolute;
	inset-inline-start: 6%;
	bottom: 8%;
	width: 90px;
	height: 30px;
	opacity: .18;
	color: var(--ac-hero-accent);
}

.ac-hero__inner {
	position: relative;
	z-index: 1;
	max-width: var(--ac-container-max);
	margin-inline: auto;
	padding-inline: var(--ac-space-5);
	display: flex;
	flex-direction: column-reverse;
	gap: var(--ac-space-8);
	align-items: center;
}

@media (min-width: 992px) {
	.ac-hero__inner {
		flex-direction: row;
		align-items: center;
		gap: var(--ac-space-9);
	}

	/* Flexbox row/row-reverse is writing-mode aware: "end" puts the media
	   after the content in reading order (right in LTR, left in RTL) with
	   zero :dir() overrides needed. */
	.ac-hero--media-start .ac-hero__inner {
		flex-direction: row-reverse;
	}

	.ac-hero__media,
	.ac-hero__content {
		flex: 1 1 50%;
		min-width: 0;
	}
}

/* Layered "badge" composition: an upper square panel and a taller lower
   rectangle panel, offset so they overlap in the middle band. The cutout
   portrait (transparent background) sits above both (z-index 1) and is
   taller than the container, anchored to the container's bottom edge, so
   the head overshoots above the square's top edge by design — the
   "breaking the frame" effect — while the body reads against the rectangle. */
.ac-hero__media {
	position: relative;
	width: 100%;
	max-width: 480px;
	aspect-ratio: 4 / 5;
	overflow: visible;
}

@media (min-width: 992px) {
	.ac-hero__media {
		max-width: none;
	}
}

.ac-hero__media::before,
.ac-hero__media::after {
	content: "";
	position: absolute;
	z-index: 0;
	border-radius: var(--ac-radius-lg);
	box-shadow: var(--ac-shadow-md);
}

/* Upper square. */
.ac-hero__media::before {
	top: 0;
	inset-inline-end: 0;
	width: 60%;
	aspect-ratio: 1 / 1;
	background: linear-gradient(150deg, var(--ac-hero-accent), var(--ac-color-primary));
}

/* Lower rectangle. */
.ac-hero__media::after {
	bottom: 0;
	inset-inline-start: 0;
	width: 82%;
	height: 76%;
	background: var(--ac-color-surface);
	border: 1px solid var(--ac-color-border);
}

.ac-hero__image {
	position: absolute;
	z-index: 1;
	inset-inline: 0;
	margin-inline: auto;
	bottom: 0;
	width: auto;
	height: 106%;
	will-change: transform;
	filter: drop-shadow(0 18px 26px rgba(20, 43, 40, 0.22));
}

.ac-hero__image-secondary {
	position: absolute;
	z-index: 2;
	inset-inline-end: -8%;
	inset-block-end: -6%;
	width: 46%;
	max-width: 220px;
	border-radius: var(--ac-radius-md);
	box-shadow: var(--ac-shadow-md);
	border: 4px solid var(--ac-color-surface);
	object-fit: cover;
	aspect-ratio: 1 / 1;
	will-change: transform;
}

.ac-hero__overlay {
	position: absolute;
	z-index: 3;
	inset: 0;
	background: #14201e;
	opacity: var(--ac-hero-overlay-opacity, 0);
	pointer-events: none;
}

.ac-hero__content {
	position: relative;
	z-index: 1;
	max-width: 620px;
	text-align: center;
}

@media (min-width: 992px) {
	.ac-hero__content {
		text-align: start;
	}
}

.ac-hero__eyebrow {
	margin-block-end: var(--ac-space-4);
}

.ac-hero__heading {
	font-size: clamp(30px, 4.4vw, 52px);
	font-weight: 800;
	line-height: 1.25;
	letter-spacing: -.01em;
	white-space: pre-line;
	margin: 0 0 var(--ac-space-5);
}

.ac-hero__highlight {
	color: var(--ac-hero-accent);
	position: relative;
}

.ac-hero__subtitle {
	color: var(--ac-color-text-muted);
	font-size: 17px;
	line-height: 1.9;
	margin: 0 0 var(--ac-space-6);
}

@media (min-width: 992px) {
	.ac-hero__subtitle {
		margin-inline: 0;
	}
}

.ac-hero__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: var(--ac-space-4);
	margin-block-end: var(--ac-space-7);
}

@media (min-width: 992px) {
	.ac-hero__actions {
		justify-content: flex-start;
	}
}

.ac-hero__cta-arrow svg {
	transition: transform .2s ease;
}

:dir(rtl) .ac-hero__cta-arrow svg {
	transform: scaleX(-1);
}

.ac-hero__cta-secondary:hover .ac-hero__cta-arrow svg,
.ac-hero__cta-secondary:focus-visible .ac-hero__cta-arrow svg {
	transform: translateX(3px);
}

:dir(rtl) .ac-hero__cta-secondary:hover .ac-hero__cta-arrow svg,
:dir(rtl) .ac-hero__cta-secondary:focus-visible .ac-hero__cta-arrow svg {
	transform: scaleX(-1) translateX(3px);
}

.ac-hero__stats {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: var(--ac-space-6);
	padding-block-start: var(--ac-space-6);
	border-top: 1px dashed var(--ac-color-border);
}

@media (min-width: 992px) {
	.ac-hero__stats {
		justify-content: flex-start;
	}
}

.ac-hero__stat {
	display: flex;
	align-items: center;
	gap: var(--ac-space-3);
}

.ac-hero__stat-icon {
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: var(--ac-color-primary-light);
	color: var(--ac-color-primary);
}

.ac-hero__stat-icon .ac-icon-wrap {
	width: 20px;
	height: 20px;
}

.ac-hero__stat-body {
	display: flex;
	flex-direction: column;
	text-align: start;
}

.ac-hero__stat-number {
	font-size: 19px;
	font-weight: 800;
	color: var(--ac-color-text);
	line-height: 1.2;
}

.ac-hero__stat-label {
	font-size: 12px;
	color: var(--ac-color-text-muted);
}

@media (prefers-reduced-motion: reduce) {
	.ac-hero [data-ac-hero-layer] {
		transform: none !important;
	}
}

/* -----------------------------------------------------------------------
   Consult Guide widget (inc/elementor/class-consult-guide-widget.php) —
   long-form content panel with a fixed-height, custom-scrollbar body so
   the panel's height never grows with the content.
----------------------------------------------------------------------- */

.ac-content-panel {
	position: relative;
	max-width: 820px;
	margin-inline: auto;
	padding: var(--ac-space-7) var(--ac-space-6);
	text-align: center;
}

.ac-content-panel__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 60px;
	height: 60px;
	border-radius: 50%;
	background: linear-gradient(135deg, var(--ac-color-primary-light), var(--ac-color-surface));
	color: var(--ac-color-primary);
	margin-block-end: var(--ac-space-4);
}

.ac-content-panel__icon .ac-icon-wrap {
	width: 26px;
	height: 26px;
}

.ac-content-panel__heading {
	font-size: clamp(22px, 2.6vw, 28px);
	margin: 0 0 var(--ac-space-5);
}

.ac-content-panel__body {
	text-align: start;
	color: var(--ac-color-text-muted);
	font-size: 15px;
	line-height: 2;
}

.ac-content-panel__body p {
	margin: 0 0 var(--ac-space-4);
}

.ac-content-panel__body--scroll {
	max-height: 287px;
	overflow-y: auto;
	padding-inline-end: var(--ac-space-4);
	margin-inline-end: calc(var(--ac-space-4) * -1);

	/* Firefox */
	scrollbar-width: thin;
	scrollbar-color: var(--ac-color-primary) var(--ac-color-primary-light);
}

.ac-content-panel__body--scroll::-webkit-scrollbar {
	width: 8px;
}

.ac-content-panel__body--scroll::-webkit-scrollbar-track {
	background: var(--ac-color-primary-light);
	border-radius: var(--ac-radius-sm);
}

.ac-content-panel__body--scroll::-webkit-scrollbar-thumb {
	background-color: var(--ac-color-primary);
	border-radius: var(--ac-radius-sm);
}

.ac-content-panel__body--scroll::-webkit-scrollbar-thumb:hover {
	background-color: var(--ac-color-primary-dark);
}

/* -----------------------------------------------------------------------
   Counseling Types Intro widget (class-counseling-types-widget.php) —
   premium gradient panel with a CTA.
----------------------------------------------------------------------- */

.ac-intro-panel {
	position: relative;
	overflow: hidden;
	max-width: 900px;
	margin-inline: auto;
	padding: var(--ac-space-8) var(--ac-space-6);
	text-align: center;
	border-radius: var(--ac-radius-lg);
	background: linear-gradient(150deg, var(--ac-color-primary), var(--ac-color-primary-dark));
	color: #fff;
	box-shadow: var(--ac-shadow-md);
	height: 100%;
}

.ac-intro-panel__decor {
	position: absolute;
	inset-inline-end: -40px;
	top: -40px;
	width: 220px;
	height: 220px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.08);
	pointer-events: none;
}

.ac-intro-panel__icon {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 60px;
	height: 60px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.14);
	color: #fff;
	margin-block-end: var(--ac-space-4);
}

.ac-intro-panel__icon .ac-icon-wrap {
	width: 26px;
	height: 26px;
}

.ac-intro-panel__heading {
	position: relative;
	color: #fff;
	font-size: clamp(22px, 2.6vw, 28px);
	margin: 0 0 var(--ac-space-4);
}

.ac-intro-panel__body {
	position: relative;
	color: rgba(255, 255, 255, 0.88);
	font-size: 15px;
	line-height: 1.95;
	max-width: 640px;
	margin: 0 auto var(--ac-space-6);
}

.ac-intro-panel__cta {
	position: relative;
}

/* -----------------------------------------------------------------------
   Treatment Approaches Intro widget (class-treatment-intro-widget.php) —
   a single centered variant of .ac-item-card (Services widget).
----------------------------------------------------------------------- */

.ac-item-card--intro {
	max-width: 640px;
	margin-inline: auto;
	text-align: center;
}

.ac-item-card--intro .ac-item-card__icon {
	margin-inline: auto;
}

/* -----------------------------------------------------------------------
   Find a Psychologist CTA widget (class-find-psychologist-widget.php).
----------------------------------------------------------------------- */

.ac-cta-banner {
	position: relative;
	overflow: hidden;
	text-align: center;
	padding: var(--ac-space-8) var(--ac-space-6);
	border-radius: var(--ac-radius-lg);
	background: linear-gradient(135deg, var(--ac-color-accent-light), var(--ac-color-primary-light));
	box-shadow: var(--ac-shadow-sm);
}

.ac-cta-banner__decor {
	position: absolute;
	inset-inline-start: 50%;
	top: 50%;
	width: 480px;
	height: 480px;
	transform: translate(-50%, -50%);
	color: var(--ac-color-primary);
	opacity: .05;
	pointer-events: none;
}

.ac-cta-banner__icon {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 64px;
	height: 64px;
	border-radius: 50%;
	background: var(--ac-color-surface);
	color: var(--ac-color-primary);
	box-shadow: var(--ac-shadow-sm);
	margin-block-end: var(--ac-space-4);
}

.ac-cta-banner__icon .ac-icon-wrap {
	width: 28px;
	height: 28px;
}

.ac-cta-banner__heading {
	position: relative;
	font-size: clamp(22px, 2.6vw, 30px);
	margin: 0 0 var(--ac-space-3);
}

.ac-cta-banner__subtitle {
	position: relative;
	color: var(--ac-color-text-muted);
	max-width: 560px;
	margin: 0 auto var(--ac-space-6);
}

.ac-cta-banner__cta {
	position: relative;
}

/* -----------------------------------------------------------------------
   Work Experience widget (class-work-experience-widget.php) — reuses the
   Hero widget's .ac-hero__stat* classes for its stat items.
----------------------------------------------------------------------- */

.ac-experience {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--ac-space-7);
	align-items: center;
}

@media (min-width: 992px) {
	.ac-experience {
		grid-template-columns: 1fr 1fr;
	}
}

.ac-experience__heading {
	font-size: clamp(24px, 3vw, 32px);
	margin: 0 0 var(--ac-space-4);
}

.ac-experience__body {
	color: var(--ac-color-text-muted);
	line-height: 1.95;
	margin: 0 0 var(--ac-space-6);
}

.ac-experience__stats {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: var(--ac-space-5);
}

.ac-experience__stat {
	display: flex;
	align-items: center;
	gap: var(--ac-space-3);
	padding: var(--ac-space-5);
	background: var(--ac-color-surface);
	border: 1px solid var(--ac-color-border);
	border-radius: var(--ac-radius-md);
	box-shadow: var(--ac-shadow-sm);
	transition: box-shadow .3s ease, transform .3s ease, border-color .3s ease;
}

.ac-experience__stat:hover {
	box-shadow: var(--ac-shadow-md);
	transform: translateY(-4px);
	border-color: var(--ac-color-primary-light);
}

/* -----------------------------------------------------------------------
   CBT Tree widget (inc/elementor/class-cbt-tree-widget.php) — root -> trunk
   -> three-branch diagram. Connector lines are plain CSS (border/background
   on wrapper elements), not a hand-drawn SVG, so the shape reflows cleanly
   at any width instead of needing per-breakpoint path math. Each node is a
   native <details>, so expand/collapse needs no JS and is keyboard-operable
   for free.
----------------------------------------------------------------------- */

.ac-cbt-tree {
	max-width: 900px;
	margin-inline: auto;
	display: flex;
	flex-direction: column;
	align-items: center;
}

.ac-cbt-tree__level {
	width: 100%;
	display: flex;
	justify-content: center;
}

.ac-cbt-tree__level--branches {
	position: relative;
	flex-wrap: wrap;
	gap: var(--ac-space-5);
	padding-block-start: var(--ac-space-6);
}

.ac-cbt-tree__connector--single {
	width: 2px;
	height: var(--ac-space-6);
	background: linear-gradient(to bottom, var(--ac-color-border), var(--ac-color-primary-light));
}

/* The horizontal "spine" the three branch nodes hang from - an
   approximate-width bar rather than a pixel-measured one, which keeps this
   pure CSS (no JS layout measurement) while still reading clearly as a
   branching connector. */
.ac-cbt-tree__spine {
	position: absolute;
	inset-inline: 12%;
	top: 0;
	height: 2px;
	background: var(--ac-color-primary-light);
}

.ac-cbt-tree__spine::before,
.ac-cbt-tree__spine::after {
	content: "";
	position: absolute;
	top: 0;
	width: 2px;
	height: var(--ac-space-5);
	background: var(--ac-color-primary-light);
}

.ac-cbt-tree__spine::before {
	inset-inline-start: 0;
}

.ac-cbt-tree__spine::after {
	inset-inline-end: 0;
}

@media (max-width: 767px) {
	.ac-cbt-tree__level--branches {
		flex-direction: column;
		align-items: center;
	}

	.ac-cbt-tree__spine {
		inset-inline: 50%;
		width: 2px;
		height: 100%;
		inset-inline-start: 50%;
		transform: translateX(-1px);
	}

	.ac-cbt-tree__spine::before,
	.ac-cbt-tree__spine::after {
		display: none;
	}
}

.ac-cbt-node {
	position: relative;
	width: 100%;
	max-width: 300px;
	background: var(--ac-color-surface);
	border: 1px solid var(--ac-color-border);
	border-radius: var(--ac-radius-lg);
	box-shadow: var(--ac-shadow-sm);
	padding-inline: var(--ac-space-5);
	transition: box-shadow .3s ease, border-color .3s ease, transform .3s ease;
}

.ac-cbt-node--root,
.ac-cbt-node--trunk {
	max-width: 340px;
}

.ac-cbt-node:hover {
	box-shadow: var(--ac-shadow-md);
	border-color: var(--ac-color-primary-light);
	transform: translateY(-3px);
}

.ac-cbt-node[open] {
	border-color: var(--ac-color-primary);
	box-shadow: var(--ac-shadow-md);
}

.ac-cbt-node__summary {
	display: flex;
	align-items: center;
	gap: var(--ac-space-3);
	padding-block: var(--ac-space-4);
	cursor: pointer;
	list-style: none;
}

.ac-cbt-node__summary::-webkit-details-marker {
	display: none;
}

.ac-cbt-node__icon {
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	border-radius: 50%;
	background: var(--ac-color-primary-light);
	color: var(--ac-color-primary);
	transition: background-color .3s ease, color .3s ease, box-shadow .3s ease;
}

.ac-cbt-node__icon .ac-icon-wrap {
	width: 18px;
	height: 18px;
}

.ac-cbt-node--root .ac-cbt-node__icon {
	background: var(--ac-color-accent-light);
	color: var(--ac-color-accent-dark, var(--ac-color-accent));
}

.ac-cbt-node[open] .ac-cbt-node__icon {
	background: var(--ac-color-primary);
	color: #fff;
	box-shadow: 0 0 0 5px var(--ac-color-primary-light);
}

.ac-cbt-node__title {
	flex: 1 1 auto;
	font-size: 15px;
	font-weight: 700;
}

.ac-cbt-node__chevron {
	flex-shrink: 0;
	color: var(--ac-color-text-muted);
	font-size: 12px;
	transition: transform .3s ease, color .3s ease;
}

.ac-cbt-node[open] .ac-cbt-node__chevron {
	transform: rotate(180deg);
	color: var(--ac-color-primary);
}

.ac-cbt-node__text {
	color: var(--ac-color-text-muted);
	font-size: 13px;
	line-height: 1.85;
	margin: 0 0 var(--ac-space-4);
}

