HEX
Server: nginx/1.24.0
System: Linux 0c1023d6c65e 6.8.0-137-generic #137-Ubuntu SMP PREEMPT_DYNAMIC Fri Jul 17 20:28:23 UTC 2026 x86_64
User: root (0)
PHP: 8.3.33
Disabled: NONE
Upload Files
File: /var/www/html/wp-content/mu-plugins/ethnic-schedule-call-page.php
<?php
/**
 * Plugin Name: Ethnic Schedule a Call Page
 * Description: Creates and renders the Schedule a Call page with a low-friction booking-first layout.
 * Version: 1.0.0
 */

if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

if ( ! function_exists( 'ethnic_schedule_call_page_get_target_page' ) ) {
	function ethnic_schedule_call_page_get_target_page() {
		return get_page_by_path( 'schedule-a-call' );
	}
}

if ( ! function_exists( 'ethnic_schedule_call_page_ensure_page' ) ) {
	function ethnic_schedule_call_page_ensure_page() {
		$page = ethnic_schedule_call_page_get_target_page();

		if ( $page instanceof WP_Post ) {
			return;
		}

		$page_id = wp_insert_post(
			array(
				'post_title'     => 'Schedule a Call',
				'post_name'      => 'schedule-a-call',
				'post_status'    => 'publish',
				'post_type'      => 'page',
				'post_content'   => '',
				'post_parent'    => 0,
				'comment_status' => 'closed',
			)
		);

		if ( $page_id && ! is_wp_error( $page_id ) ) {
			update_post_meta( $page_id, '_wp_page_template', 'default' );
		}
	}

	add_action( 'init', 'ethnic_schedule_call_page_ensure_page', 5 );
}

if ( ! function_exists( 'ethnic_schedule_call_page_is_target' ) ) {
	function ethnic_schedule_call_page_is_target() {
		if ( is_admin() ) {
			return false;
		}

		$page = ethnic_schedule_call_page_get_target_page();

		if ( ! ( $page instanceof WP_Post ) ) {
			return false;
		}

		return (int) get_queried_object_id() === (int) $page->ID || is_page( (int) $page->ID );
	}
}

if ( ! function_exists( 'ethnic_schedule_call_page_url' ) ) {
	function ethnic_schedule_call_page_url( $path = '' ) {
		$path = trim( (string) $path, '/' );

		if ( '' === $path ) {
			return home_url( '/schedule-a-call/' );
		}

		return home_url( '/' . $path . '/' );
	}
}

if ( ! function_exists( 'ethnic_schedule_call_page_contact_url' ) ) {
	function ethnic_schedule_call_page_contact_url( $args = array() ) {
		return ethnic_consultation_route_contact_url( $args, ethnic_schedule_call_page_url( 'contact-us' ) );
	}
}

if ( ! function_exists( 'ethnic_schedule_call_page_request_proposal_url' ) ) {
	function ethnic_schedule_call_page_request_proposal_url() {
		return ethnic_schedule_call_page_url( 'request-a-proposal' );
	}
}

if ( ! function_exists( 'ethnic_schedule_call_page_body_class' ) ) {
	function ethnic_schedule_call_page_body_class( $classes ) {
		if ( ethnic_schedule_call_page_is_target() ) {
			$classes[] = 'ethnic-schedule-call-active';
		}

		return $classes;
	}

	add_filter( 'body_class', 'ethnic_schedule_call_page_body_class' );
}

if ( ! function_exists( 'ethnic_schedule_call_page_data' ) ) {
	function ethnic_schedule_call_page_data() {
		static $data = null;

		if ( null !== $data ) {
			return $data;
		}

		$data = array(
			'meta_title'       => 'Schedule a Call | Book a Consultation With Our Team',
			'meta_description' => 'Schedule a call to discuss your project, business needs, technical requirements, or next steps. Book a quick consultation with our team through our easy scheduling page.',
			'hero_title'       => 'Schedule a Call',
			'hero_copy'        => 'Book a quick conversation with our team to discuss project ideas, business needs, technical requirements, delivery planning, or the next step you want to take. This page is designed to make it easy to schedule a call without going through a longer proposal flow first.',
			'hero_points'      => array(
				'Quick and low-friction booking',
				'Discuss goals, scope, and next steps',
				'Ideal for new inquiries and ongoing discussions',
			),
			'intro_title'      => 'A simpler way to start the conversation.',
			'intro_copy'       => array(
				'This page is built for visitors who want a fast initial discussion with the team. It works well for new project ideas, service questions, partnership conversations, technical direction, or delivery planning that needs a live touchpoint.',
				'Use this route when you want something lighter than a full request a proposal form. It is designed to help you book time quickly and move into a useful conversation without unnecessary friction.',
			),
			'intro_cards'      => array(
				array(
					'icon'  => 'flash',
					'title' => 'Fast Initial Discussion',
					'copy'  => 'Start with a focused conversation before moving into a deeper proposal or discovery path.',
				),
				array(
					'icon'  => 'alignment',
					'title' => 'Business and Technical Alignment',
					'copy'  => 'Use the call to compare business goals, delivery needs, and the right service direction.',
				),
				array(
					'icon'  => 'steps',
					'title' => 'Clear Next Steps',
					'copy'  => 'The booking flow is designed to help both sides understand what should happen after the first discussion.',
				),
			),
			'meeting_details'  => array(
				array(
					'label' => 'Meeting format',
					'value' => 'Video / phone / online meeting placeholder',
				),
				array(
					'label' => 'Approximate duration',
					'value' => '15–30 minutes placeholder',
				),
				array(
					'label' => 'Best used for',
					'value' => 'Project discussion, consultation, service fit, or technical direction',
				),
				array(
					'label' => 'Helpful before the call',
					'value' => 'Share a short note, goal, or business context if you already have it ready',
				),
			),
			'widget_notes'     => array(
				'Choose a time that fits your availability and the type of discussion you want to have.',
				'This placeholder area is ready to be replaced later with Calendly or another scheduling embed.',
			),
			'expectations_title' => 'What you can expect from the call.',
			'expectations_copy'  => 'The conversation is meant to provide clarity and help both sides understand what makes sense next. It is not intended to pressure you into a proposal before the context is ready.',
			'expectation_cards'  => array(
				array(
					'icon'  => 'goals',
					'title' => 'Discuss Your Goals',
					'copy'  => 'We start by understanding the outcome, challenge, or business need behind the conversation.',
				),
				array(
					'icon'  => 'fit',
					'title' => 'Explore Service Fit',
					'copy'  => 'We can talk through where our services may fit and where a lighter or broader path makes more sense.',
				),
				array(
					'icon'  => 'scope',
					'title' => 'Clarify Scope & Priorities',
					'copy'  => 'The call helps identify the core scope, pain points, and the priorities that matter first.',
				),
				array(
					'icon'  => 'next',
					'title' => 'Understand Next Steps',
					'copy'  => 'If relevant, the next step might be a proposal request, workshop, discovery phase, or direct follow-up.',
				),
			),
			'alternate_title'    => 'Prefer Another Way to Reach Us?',
			'alternate_copy'     => 'Some visitors prefer email, a general contact route, or a proposal-based conversation instead of booking directly. Use the path that feels more comfortable for your stage and urgency.',
			'final_title'        => 'Book a Time That Works for You',
			'final_copy'         => 'Schedule a quick conversation if you want to discuss a project, validate an idea, understand service fit, or simply explore the right next step with our team.',
		);

		return $data;
	}
}

if ( ! function_exists( 'ethnic_schedule_call_page_icon' ) ) {
	function ethnic_schedule_call_page_icon( $icon ) {
		ob_start();

		switch ( $icon ) {
			case 'flash':
				?>
				<svg viewBox="0 0 24 24" aria-hidden="true" focusable="false">
					<path d="M13 2.8L6.8 13h4.8L11 21.2 17.2 11H12.4L13 2.8z" />
				</svg>
				<?php
				break;

			case 'alignment':
				?>
				<svg viewBox="0 0 24 24" aria-hidden="true" focusable="false">
					<circle cx="7.5" cy="8" r="2.4" />
					<circle cx="16.5" cy="16" r="2.4" />
					<path d="M9.6 9.6l4.8 4.8" />
					<path d="M14.4 8h5" />
					<path d="M4.6 16H10" />
				</svg>
				<?php
				break;

			case 'steps':
				?>
				<svg viewBox="0 0 24 24" aria-hidden="true" focusable="false">
					<path d="M5 6h10" />
					<path d="M5 12h14" />
					<path d="M5 18h9" />
					<circle cx="18.2" cy="6" r="1.4" />
					<circle cx="20" cy="12" r="1.4" />
					<circle cx="16.2" cy="18" r="1.4" />
				</svg>
				<?php
				break;

			case 'calendar':
				?>
				<svg viewBox="0 0 24 24" aria-hidden="true" focusable="false">
					<rect x="4" y="5.5" width="16" height="14" rx="2.2" />
					<path d="M8 3.8V7" />
					<path d="M16 3.8V7" />
					<path d="M4 9.6h16" />
					<path d="M8 13h3" />
					<path d="M13 13h3" />
					<path d="M8 16.5h3" />
				</svg>
				<?php
				break;

			case 'video':
				?>
				<svg viewBox="0 0 24 24" aria-hidden="true" focusable="false">
					<rect x="4.5" y="6.5" width="10.8" height="11" rx="2" />
					<path d="M15.3 10.2l4.2-2v7.6l-4.2-2" />
				</svg>
				<?php
				break;

			case 'clock':
				?>
				<svg viewBox="0 0 24 24" aria-hidden="true" focusable="false">
					<circle cx="12" cy="12" r="8.5" />
					<path d="M12 7.6v4.7l3.1 1.9" />
				</svg>
				<?php
				break;

			case 'goals':
				?>
				<svg viewBox="0 0 24 24" aria-hidden="true" focusable="false">
					<circle cx="12" cy="12" r="8.2" />
					<circle cx="12" cy="12" r="4.1" />
					<path d="M17.8 6.2L14.7 9.3" />
				</svg>
				<?php
				break;

			case 'fit':
				?>
				<svg viewBox="0 0 24 24" aria-hidden="true" focusable="false">
					<path d="M5 8.5h14" />
					<path d="M5 15.5h14" />
					<circle cx="9" cy="8.5" r="2" />
					<circle cx="15" cy="15.5" r="2" />
				</svg>
				<?php
				break;

			case 'scope':
				?>
				<svg viewBox="0 0 24 24" aria-hidden="true" focusable="false">
					<rect x="5" y="5" width="14" height="14" rx="2.4" />
					<path d="M9 9h6" />
					<path d="M9 12.5h6" />
					<path d="M9 16h4" />
				</svg>
				<?php
				break;

			case 'next':
				?>
				<svg viewBox="0 0 24 24" aria-hidden="true" focusable="false">
					<path d="M5.5 12h12.2" />
					<path d="M14 8.4l3.7 3.6-3.7 3.6" />
				</svg>
				<?php
				break;

			case 'message':
				?>
				<svg viewBox="0 0 24 24" aria-hidden="true" focusable="false">
					<path d="M5 6.5h14v9H9.4L6 18.5v-3H5z" />
					<path d="M8.5 10.2h7" />
					<path d="M8.5 13h5" />
				</svg>
				<?php
				break;

			case 'check':
				?>
				<svg viewBox="0 0 24 24" aria-hidden="true" focusable="false">
					<path d="M5.5 12.5l4 4 9-9" />
				</svg>
				<?php
				break;

			default:
				?>
				<svg viewBox="0 0 24 24" aria-hidden="true" focusable="false">
					<circle cx="12" cy="12" r="8.5" />
				</svg>
				<?php
				break;
		}

		return ob_get_clean();
	}
}

if ( ! function_exists( 'ethnic_schedule_call_page_section_heading' ) ) {
	function ethnic_schedule_call_page_section_heading( $eyebrow, $title, $copy = '' ) {
		ob_start();
		?>
		<div class="ethnic-schedule-heading">
			<?php if ( $eyebrow ) : ?>
				<p class="ethnic-schedule-heading__eyebrow"><?php echo esc_html( $eyebrow ); ?></p>
			<?php endif; ?>
			<h2 class="ethnic-schedule-heading__title"><?php echo esc_html( $title ); ?></h2>
			<?php if ( $copy ) : ?>
				<p class="ethnic-schedule-heading__copy"><?php echo esc_html( $copy ); ?></p>
			<?php endif; ?>
		</div>
		<?php

		return ob_get_clean();
	}
}

if ( ! function_exists( 'ethnic_schedule_call_page_render' ) ) {
	function ethnic_schedule_call_page_render() {
		$data               = ethnic_schedule_call_page_data();
		$proposal_url       = ethnic_schedule_call_page_request_proposal_url();
		$contact_url        = ethnic_schedule_call_page_contact_url(
			array(
				'intent' => 'schedule-call',
				'source' => 'schedule-a-call',
			)
		);
		$consultation_url   = ethnic_schedule_call_page_contact_url(
			array(
				'intent' => 'consultation',
				'source' => 'schedule-a-call',
			)
		);
		$widget_anchor_url  = '#schedule-widget';

		ob_start();
		?>
		<div class="ethnic-schedule-call-page">
			<section class="ethnic-schedule-hero">
				<div class="ethnic-schedule-shell ethnic-schedule-hero__layout">
					<div class="ethnic-schedule-hero__content">
						<p class="ethnic-schedule-hero__eyebrow">Quick Consultation Booking</p>
						<h1 class="ethnic-schedule-hero__title"><?php echo esc_html( $data['hero_title'] ); ?></h1>
						<p class="ethnic-schedule-hero__copy"><?php echo esc_html( $data['hero_copy'] ); ?></p>
						<div class="ethnic-schedule-hero__actions">
							<a class="ethnic-schedule-button ethnic-schedule-button--primary" href="<?php echo esc_url( $widget_anchor_url ); ?>">Book Your Call</a>
							<a class="ethnic-schedule-button ethnic-schedule-button--secondary" href="<?php echo esc_url( $proposal_url ); ?>">Request a Proposal</a>
						</div>
						<ul class="ethnic-schedule-hero__points">
							<?php foreach ( (array) $data['hero_points'] as $point ) : ?>
								<li>
									<span class="ethnic-schedule-hero__point-marker" aria-hidden="true"></span>
									<span><?php echo esc_html( $point ); ?></span>
								</li>
							<?php endforeach; ?>
						</ul>
					</div>
					<div class="ethnic-schedule-hero__visual" aria-hidden="true">
						<div class="ethnic-schedule-visual">
							<div class="ethnic-schedule-visual__window">
								<div class="ethnic-schedule-visual__toolbar">
									<span></span><span></span><span></span>
								</div>
								<div class="ethnic-schedule-visual__header">
									<div class="ethnic-schedule-visual__icon"><?php echo ethnic_schedule_call_page_icon( 'calendar' ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?></div>
									<div>
										<p>Meeting Scheduler</p>
										<p class="ethnic-schedule-visual__title">Choose a consultation time</p>
									</div>
								</div>
								<div class="ethnic-schedule-visual__calendar">
									<div class="ethnic-schedule-visual__calendar-days">
										<span>Mon</span>
										<span>Tue</span>
										<span>Wed</span>
										<span>Thu</span>
										<span>Fri</span>
									</div>
									<div class="ethnic-schedule-visual__slots">
										<span>10:00</span>
										<span>11:30</span>
										<span class="is-active">02:00</span>
										<span>03:30</span>
										<span>05:00</span>
									</div>
								</div>
							</div>
							<div class="ethnic-schedule-visual__card ethnic-schedule-visual__card--confirm">
								<p class="ethnic-schedule-visual__kicker">Booking Support</p>
								<p class="ethnic-schedule-visual__title">Quick business and technical discussion with clear next-step direction.</p>
								<ul>
									<li>15–30 minute conversation placeholder</li>
									<li>Project, service, or scope discussion</li>
									<li>Follow-up can move into proposal or consultation</li>
								</ul>
							</div>
							<div class="ethnic-schedule-visual__card ethnic-schedule-visual__card--availability">
								<div class="ethnic-schedule-visual__mini-icon"><?php echo ethnic_schedule_call_page_icon( 'clock' ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?></div>
								<p class="ethnic-schedule-visual__kicker">Availability Card</p>
								<p class="ethnic-schedule-visual__title">Responsive placeholder ready for a future scheduling widget embed.</p>
								<div class="ethnic-schedule-visual__pills">
									<span>Video</span>
									<span>Phone</span>
									<span>Online</span>
								</div>
							</div>
						</div>
					</div>
				</div>
			</section>

			<section class="ethnic-schedule-section">
				<div class="ethnic-schedule-shell">
					<?php echo ethnic_schedule_call_page_section_heading( 'Quick Start', $data['intro_title'], 'A schedule a call page designed for faster project discussion and easier first contact.' ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
					<div class="ethnic-schedule-intro">
						<div class="ethnic-schedule-prose">
							<?php foreach ( (array) $data['intro_copy'] as $paragraph ) : ?>
								<p><?php echo esc_html( $paragraph ); ?></p>
							<?php endforeach; ?>
						</div>
						<div class="ethnic-schedule-intro__cards">
							<?php foreach ( (array) $data['intro_cards'] as $card ) : ?>
								<article class="ethnic-schedule-mini-card">
									<div class="ethnic-schedule-mini-card__icon"><?php echo ethnic_schedule_call_page_icon( $card['icon'] ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?></div>
									<h3><?php echo esc_html( $card['title'] ); ?></h3>
									<p><?php echo esc_html( $card['copy'] ); ?></p>
								</article>
							<?php endforeach; ?>
						</div>
					</div>
				</div>
			</section>

			<section class="ethnic-schedule-section ethnic-schedule-section--widget" id="schedule-widget">
				<div class="ethnic-schedule-shell">
					<?php echo ethnic_schedule_call_page_section_heading( 'Scheduling Widget', 'Choose a Time That Works for You', 'This section is designed to hold a future Calendly or booking-tool embed while still feeling complete and trustworthy in the meantime.' ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
					<div class="ethnic-schedule-booking">
						<div class="ethnic-schedule-booking__main">
							<div class="ethnic-schedule-widget-card">
								<div class="ethnic-schedule-widget-card__header">
									<div class="ethnic-schedule-widget-card__badge"><?php echo ethnic_schedule_call_page_icon( 'calendar' ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?></div>
									<div>
										<p class="ethnic-schedule-widget-card__eyebrow">Calendly Booking Widget</p>
										<h3>Choose a Time That Works for You</h3>
									</div>
								</div>
								<div class="ethnic-schedule-widget-placeholder ethnic-schedule-widget-placeholder--embed" data-scheduling-embed-placeholder>
									<div class="ethnic-schedule-widget-placeholder__surface ethnic-schedule-widget-placeholder__surface--embed">
										<div class="calendly-inline-widget" data-url="https://calendly.com/ethnicinfotech-sales/30min"></div>
									</div>
								</div>
								<div class="ethnic-schedule-widget-card__notes">
									<?php foreach ( (array) $data['widget_notes'] as $note ) : ?>
										<p><?php echo esc_html( $note ); ?></p>
									<?php endforeach; ?>
								</div>
							</div>
						</div>
						<aside class="ethnic-schedule-booking__side">
							<div class="ethnic-schedule-side-card">
								<p class="ethnic-schedule-side-card__eyebrow">Meeting Overview</p>
								<h3>Helpful context around the booking.</h3>
								<div class="ethnic-schedule-side-card__details">
									<?php foreach ( (array) $data['meeting_details'] as $detail ) : ?>
										<div class="ethnic-schedule-side-card__detail">
											<strong><?php echo esc_html( $detail['label'] ); ?></strong>
											<p><?php echo esc_html( $detail['value'] ); ?></p>
										</div>
									<?php endforeach; ?>
								</div>
								<div class="ethnic-schedule-side-card__support">
									<div class="ethnic-schedule-side-card__support-icon"><?php echo ethnic_schedule_call_page_icon( 'message' ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?></div>
									<div>
										<strong>Want to share context before the call?</strong>
										<p>After booking, you can send a short note, brief, or links to help the conversation start faster.</p>
									</div>
								</div>
							</div>
						</aside>
					</div>
				</div>
			</section>

			<section class="ethnic-schedule-section">
				<div class="ethnic-schedule-shell">
					<?php echo ethnic_schedule_call_page_section_heading( 'Call Expectations', $data['expectations_title'], $data['expectations_copy'] ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
					<div class="ethnic-schedule-expectations">
						<?php foreach ( (array) $data['expectation_cards'] as $card ) : ?>
							<article class="ethnic-schedule-expectation-card">
								<div class="ethnic-schedule-expectation-card__icon"><?php echo ethnic_schedule_call_page_icon( $card['icon'] ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?></div>
								<h3><?php echo esc_html( $card['title'] ); ?></h3>
								<p><?php echo esc_html( $card['copy'] ); ?></p>
							</article>
						<?php endforeach; ?>
					</div>
				</div>
			</section>

			<section class="ethnic-schedule-section ethnic-schedule-section--alt">
				<div class="ethnic-schedule-shell">
					<div class="ethnic-schedule-alt">
						<div class="ethnic-schedule-alt__content">
							<?php echo ethnic_schedule_call_page_section_heading( 'Alternate Contact', $data['alternate_title'], $data['alternate_copy'] ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
							<div class="ethnic-schedule-alt__actions">
								<a class="ethnic-schedule-button ethnic-schedule-button--primary" href="<?php echo esc_url( $proposal_url ); ?>">Request a Proposal</a>
								<a class="ethnic-schedule-button ethnic-schedule-button--secondary" href="<?php echo esc_url( $contact_url ); ?>">Contact Us</a>
							</div>
						</div>
						<div class="ethnic-schedule-alt__panel">
							<div class="ethnic-schedule-alt__panel-icon"><?php echo ethnic_schedule_call_page_icon( 'video' ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?></div>
							<h3>Choose the path that matches your stage.</h3>
							<ul class="ethnic-schedule-checklist">
								<li><?php echo ethnic_schedule_call_page_icon( 'check' ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?><span>Book directly if you want a quick discussion</span></li>
								<li><?php echo ethnic_schedule_call_page_icon( 'check' ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?><span>Use the proposal route for more detailed business requirements</span></li>
								<li><?php echo ethnic_schedule_call_page_icon( 'check' ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?><span>Use the contact route for general or lower-pressure outreach</span></li>
							</ul>
						</div>
					</div>
				</div>
			</section>

			<section class="ethnic-schedule-section ethnic-schedule-section--cta">
				<div class="ethnic-schedule-shell">
					<div class="ethnic-schedule-cta">
						<div class="ethnic-schedule-cta__content">
							<p class="ethnic-schedule-cta__eyebrow">Ready to Book?</p>
							<h2><?php echo esc_html( $data['final_title'] ); ?></h2>
							<p><?php echo esc_html( $data['final_copy'] ); ?></p>
							<div class="ethnic-schedule-cta__actions">
								<a class="ethnic-schedule-button ethnic-schedule-button--primary" href="<?php echo esc_url( $widget_anchor_url ); ?>">Schedule a Call</a>
								<a class="ethnic-schedule-button ethnic-schedule-button--secondary" href="<?php echo esc_url( $consultation_url ); ?>">Talk to Our Team</a>
							</div>
						</div>
						<div class="ethnic-schedule-cta__panel">
							<div class="ethnic-schedule-cta__panel-icon"><?php echo ethnic_schedule_call_page_icon( 'clock' ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?></div>
							<h3>A simple booking-first page built for faster action.</h3>
							<p>Use this scheduling path when you want a project discussion, a book a consultation route, or a quick business conversation before committing to a more detailed process.</p>
						</div>
					</div>
				</div>
			</section>
		</div>
		<script type="application/ld+json">
			<?php
			echo wp_json_encode(
				array(
					'@context'    => 'https://schema.org',
					'@type'       => 'WebPage',
					'name'        => $data['meta_title'],
					'description' => $data['meta_description'],
					'url'         => ethnic_schedule_call_page_url(),
				),
				JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE
			);
			?>
		</script>
		<?php

		return ob_get_clean();
	}
}

if ( ! function_exists( 'ethnic_schedule_call_page_styles' ) ) {
	function ethnic_schedule_call_page_styles() {
		return <<<'CSS'
body.ethnic-schedule-call-active #page-title.page-title-block.custom-page-title {
	display: none;
}

body.ethnic-schedule-call-active .fullwidth-content > .ethnic-schedule-call-page {
	padding-bottom: clamp(72px, 8vw, 120px);
}

body.ethnic-schedule-call-active .block-content > .container {
	width: 100%;
	max-width: none;
	padding-left: 0;
	padding-right: 0;
}

body.ethnic-schedule-call-active .block-content > .container > .panel.row {
	margin-left: 0;
	margin-right: 0;
}

body.ethnic-schedule-call-active .block-content > .container > .panel > .panel-center {
	width: 100%;
	padding-left: 0;
	padding-right: 0;
}

body.ethnic-schedule-call-active .entry-content.post-content {
	margin-bottom: 0;
}

.ethnic-schedule-call-page {
	--ethnic-schedule-bg: #f6f9ff;
	--ethnic-schedule-surface: #ffffff;
	--ethnic-schedule-surface-soft: rgba(255, 255, 255, 0.88);
	--ethnic-schedule-border: rgba(13, 25, 48, 0.08);
	--ethnic-schedule-border-strong: rgba(146, 164, 196, 0.22);
	--ethnic-schedule-text: #0f1830;
	--ethnic-schedule-text-soft: #546a8a;
	--ethnic-schedule-text-muted: #7890b2;
	--ethnic-schedule-dark: #0c1a3a;
	--ethnic-schedule-dark-soft: #13264c;
	--ethnic-schedule-accent: #ebff56;
	--ethnic-schedule-blue: #4f7bff;
	--ethnic-schedule-shadow: 0 24px 58px rgba(10, 22, 45, 0.08);
	--ethnic-schedule-radius: 30px;
	background:
		radial-gradient(circle at top left, rgba(235, 255, 86, 0.08), transparent 22%),
		radial-gradient(circle at top right, rgba(79, 123, 255, 0.12), transparent 26%),
		linear-gradient(180deg, #f8fbff, #f2f6ff 100%);
	color: var(--ethnic-schedule-text);
	font-family: "Plus Jakarta Sans", "Figtree", sans-serif;
}

.ethnic-schedule-call-page *,
.ethnic-schedule-call-page *::before,
.ethnic-schedule-call-page *::after {
	box-sizing: border-box;
}

.ethnic-schedule-shell {
	width: min(1280px, calc(100% - 40px));
	margin: 0 auto;
}

.ethnic-schedule-section {
	padding: clamp(72px, 8vw, 110px) 0;
}

.ethnic-schedule-heading {
	display: grid;
	gap: 14px;
	max-width: 760px;
	margin-bottom: 38px;
}

.ethnic-schedule-heading__eyebrow,
.ethnic-schedule-hero__eyebrow,
.ethnic-schedule-side-card__eyebrow,
.ethnic-schedule-widget-card__eyebrow,
.ethnic-schedule-cta__eyebrow {
	display: inline-flex;
	align-items: center;
	width: fit-content;
	min-height: 42px;
	padding: 10px 18px;
	margin: 0;
	border-radius: 999px;
	border: 1px solid rgba(255, 255, 255, 0.14);
	background: rgba(255, 255, 255, 0.12);
	color: rgba(255, 255, 255, 0.9);
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.14em;
	line-height: 1;
	text-transform: uppercase;
}

.ethnic-schedule-hero__eyebrow,
.ethnic-schedule-hero__title,
.ethnic-schedule-hero__copy,
.ethnic-schedule-hero__points li,
.ethnic-schedule-button--secondary,
.ethnic-schedule-visual__header p,
.ethnic-schedule-visual__header .ethnic-schedule-visual__title,
.ethnic-schedule-visual__card--confirm .ethnic-schedule-visual__kicker,
.ethnic-schedule-visual__card--confirm .ethnic-schedule-visual__title,
.ethnic-schedule-visual__card--confirm ul li,
.ethnic-schedule-cta__panel h3,
.ethnic-schedule-cta__panel p {
	-webkit-text-fill-color: currentColor;
}

.ethnic-schedule-heading__eyebrow,
.ethnic-schedule-side-card__eyebrow,
.ethnic-schedule-widget-card__eyebrow {
	border-color: rgba(79, 123, 255, 0.12);
	background: rgba(79, 123, 255, 0.08);
	color: #506a92;
}

.ethnic-schedule-heading__title {
	margin: 0;
	color: var(--ethnic-schedule-text);
	font-size: clamp(34px, 4.4vw, 56px);
	font-weight: 700;
	line-height: 1.02;
	letter-spacing: -0.06em;
	text-wrap: balance;
}

.ethnic-schedule-heading__copy,
.ethnic-schedule-hero__copy,
.ethnic-schedule-prose p,
.ethnic-schedule-mini-card p,
.ethnic-schedule-widget-card__notes p,
.ethnic-schedule-side-card__detail p,
.ethnic-schedule-side-card__support p,
.ethnic-schedule-expectation-card p,
.ethnic-schedule-alt__content p,
.ethnic-schedule-cta p {
	margin: 0;
	color: var(--ethnic-schedule-text-soft);
	font-size: 18px;
	line-height: 1.78;
}

.ethnic-schedule-hero {
	position: relative;
	overflow: clip;
	padding: clamp(76px, 9vw, 124px) 0 clamp(74px, 8vw, 110px);
	background:
		radial-gradient(circle at top right, rgba(235, 255, 86, 0.14), transparent 22%),
		radial-gradient(circle at top left, rgba(79, 123, 255, 0.16), transparent 24%),
		linear-gradient(135deg, #081731 0%, #0d1e44 50%, #153851 100%);
}

.ethnic-schedule-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	background:
		linear-gradient(rgba(255, 255, 255, 0.03) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, 0.03) 1px, transparent 1px);
	background-size: 42px 42px;
	opacity: 0.36;
	pointer-events: none;
}

.ethnic-schedule-hero__layout {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: minmax(0, 0.92fr) minmax(430px, 1.08fr);
	gap: clamp(34px, 4vw, 56px);
	align-items: center;
}

.ethnic-schedule-hero__content {
	display: grid;
	gap: 24px;
}

.ethnic-schedule-hero__title {
	margin: 0;
	color: #ffffff !important;
	-webkit-text-fill-color: #ffffff;
	font-size: clamp(52px, 6vw, 88px);
	font-weight: 700;
	line-height: 0.94;
	letter-spacing: -0.08em;
	text-wrap: balance;
}

.ethnic-schedule-hero__copy {
	max-width: 700px;
	color: rgba(236, 242, 255, 0.94) !important;
	-webkit-text-fill-color: rgba(236, 242, 255, 0.94);
}

.ethnic-schedule-hero__actions,
.ethnic-schedule-alt__actions,
.ethnic-schedule-cta__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
}

.ethnic-schedule-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 56px;
	padding: 16px 28px;
	border-radius: 999px;
	border: 1px solid transparent;
	font-size: 17px;
	font-weight: 700;
	line-height: 1;
	text-align: center;
	text-decoration: none;
	transition: transform 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease, border-color 0.2s ease;
}

.ethnic-schedule-button:hover,
.ethnic-schedule-button:focus-visible {
	transform: translateY(-1px);
	box-shadow: 0 16px 34px rgba(8, 19, 40, 0.16);
}

.ethnic-schedule-button--primary {
	background: var(--ethnic-schedule-accent);
	color: #091225;
}

.ethnic-schedule-button--secondary {
	background: rgba(255, 255, 255, 0.12);
	border-color: rgba(255, 255, 255, 0.16);
	color: #ffffff !important;
	-webkit-text-fill-color: #ffffff;
	backdrop-filter: blur(12px);
}

.ethnic-schedule-alt .ethnic-schedule-button--secondary,
.ethnic-schedule-cta .ethnic-schedule-button--secondary {
	background: rgba(79, 123, 255, 0.08);
	border-color: rgba(79, 123, 255, 0.12);
	color: #314d86;
	backdrop-filter: none;
}

.ethnic-schedule-hero__points,
.ethnic-schedule-checklist {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 14px;
	padding: 0;
	margin: 0;
	list-style: none;
}

.ethnic-schedule-hero__points li {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	min-height: 100%;
	padding: 18px 18px 18px 16px;
	border-radius: 24px;
	background:
		linear-gradient(180deg, rgba(255, 255, 255, 0.12), rgba(255, 255, 255, 0.06)),
		rgba(255, 255, 255, 0.04);
	border: 1px solid rgba(255, 255, 255, 0.12);
	color: rgba(245, 248, 255, 0.94) !important;
	-webkit-text-fill-color: rgba(245, 248, 255, 0.94);
	font-size: 14px;
	font-weight: 600;
	line-height: 1.6;
}

.ethnic-schedule-hero__point-marker {
	display: inline-flex;
	width: 10px;
	height: 10px;
	flex: 0 0 auto;
	margin-top: 5px;
	border-radius: 50%;
	background: var(--ethnic-schedule-accent);
	box-shadow: 0 0 0 5px rgba(235, 255, 86, 0.12);
}

.ethnic-schedule-visual {
	position: relative;
	min-height: 580px;
}

.ethnic-schedule-visual__window,
.ethnic-schedule-visual__card {
	border-radius: 32px;
	box-shadow: 0 32px 70px rgba(4, 11, 26, 0.26);
}

.ethnic-schedule-visual__window {
	position: absolute;
	inset: 34px 48px 78px 34px;
	padding: 26px;
	background:
		linear-gradient(180deg, rgba(255, 255, 255, 0.12), rgba(255, 255, 255, 0.04)),
		linear-gradient(180deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.02));
	border: 1px solid rgba(255, 255, 255, 0.14);
}

.ethnic-schedule-visual__toolbar {
	display: flex;
	gap: 8px;
	margin-bottom: 18px;
}

.ethnic-schedule-visual__toolbar span {
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.54);
}

.ethnic-schedule-visual__header {
	display: grid;
	grid-template-columns: 56px minmax(0, 1fr);
	gap: 14px;
	align-items: center;
	margin-bottom: 28px;
}

.ethnic-schedule-visual__header p,
.ethnic-schedule-visual__kicker {
	margin: 0 0 6px;
	color: rgba(236, 242, 255, 0.84) !important;
	-webkit-text-fill-color: rgba(236, 242, 255, 0.84);
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.14em;
	line-height: 1;
	text-transform: uppercase;
}

.ethnic-schedule-visual__title {
	margin: 0;
	font-size: clamp(24px, 2.6vw, 34px);
	font-weight: 700;
	line-height: 1.08;
	letter-spacing: -0.05em;
}

.ethnic-schedule-visual__header .ethnic-schedule-visual__title {
	color: #ffffff !important;
	-webkit-text-fill-color: #ffffff;
}

.ethnic-schedule-visual__icon,
.ethnic-schedule-visual__mini-icon {
	display: inline-grid;
	place-items: center;
	border-radius: 18px;
	background: rgba(255, 255, 255, 0.1);
	border: 1px solid rgba(255, 255, 255, 0.14);
	color: #ffffff;
}

.ethnic-schedule-visual__icon {
	width: 56px;
	height: 56px;
}

.ethnic-schedule-visual__mini-icon {
	width: 52px;
	height: 52px;
	margin-bottom: 14px;
}

.ethnic-schedule-visual__icon svg,
.ethnic-schedule-visual__mini-icon svg,
.ethnic-schedule-mini-card__icon svg,
.ethnic-schedule-expectation-card__icon svg,
.ethnic-schedule-alt__panel-icon svg,
.ethnic-schedule-cta__panel-icon svg,
.ethnic-schedule-checklist svg,
.ethnic-schedule-side-card__support-icon svg,
.ethnic-schedule-widget-card__badge svg {
	width: 22px;
	height: 22px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.8;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.ethnic-schedule-visual__calendar {
	display: grid;
	gap: 18px;
	padding: 24px;
	border-radius: 28px;
	background: rgba(6, 18, 39, 0.34);
	border: 1px solid rgba(255, 255, 255, 0.08);
}

.ethnic-schedule-visual__calendar-days,
.ethnic-schedule-visual__slots {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 12px;
}

.ethnic-schedule-visual__calendar-days span,
.ethnic-schedule-visual__slots span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 10px 12px;
	border-radius: 16px;
	font-size: 14px;
	font-weight: 700;
	line-height: 1.2;
}

.ethnic-schedule-visual__calendar-days span {
	background: rgba(255, 255, 255, 0.08);
	color: rgba(236, 242, 255, 0.84);
}

.ethnic-schedule-visual__slots span {
	background: rgba(255, 255, 255, 0.96);
	color: #21355f;
}

.ethnic-schedule-visual__slots span.is-active {
	background: var(--ethnic-schedule-accent);
	color: #111a31;
}

.ethnic-schedule-visual__card {
	position: absolute;
	padding: 24px;
}

.ethnic-schedule-visual__card--confirm {
	left: 0;
	bottom: 34px;
	width: 320px;
	background: linear-gradient(180deg, #234d39, #17372a);
	color: #ffffff;
}

.ethnic-schedule-visual__card--availability {
	right: 0;
	top: 0;
	width: 310px;
	background: linear-gradient(180deg, #ffffff, #edf5ff);
}

.ethnic-schedule-visual__card--confirm .ethnic-schedule-visual__title {
	color: #ffffff !important;
	-webkit-text-fill-color: #ffffff;
}

.ethnic-schedule-visual__card--availability .ethnic-schedule-visual__title {
	color: #14233e;
}

.ethnic-schedule-visual__card ul {
	display: grid;
	gap: 12px;
	padding: 0;
	margin: 18px 0 0;
	list-style: none;
}

.ethnic-schedule-visual__card ul li {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.55;
}

.ethnic-schedule-visual__card--confirm ul li {
	color: rgba(255, 255, 255, 0.9) !important;
	-webkit-text-fill-color: rgba(255, 255, 255, 0.9);
}

.ethnic-schedule-visual__card--availability ul li {
	color: #50647f;
}

.ethnic-schedule-visual__card ul li::before {
	content: "";
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--ethnic-schedule-accent);
	box-shadow: 0 0 0 4px rgba(235, 255, 86, 0.16);
}

.ethnic-schedule-visual__pills {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 18px;
}

.ethnic-schedule-visual__pills span {
	display: inline-flex;
	align-items: center;
	min-height: 36px;
	padding: 10px 14px;
	border-radius: 999px;
	background: rgba(79, 123, 255, 0.08);
	color: #3f5888;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.12em;
	line-height: 1;
	text-transform: uppercase;
}

.ethnic-schedule-intro,
.ethnic-schedule-booking,
.ethnic-schedule-alt,
.ethnic-schedule-cta {
	display: grid;
	grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
	gap: 24px;
	align-items: start;
}

.ethnic-schedule-prose {
	display: grid;
	gap: 18px;
}

.ethnic-schedule-intro__cards,
.ethnic-schedule-expectations {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 18px;
}

.ethnic-schedule-mini-card,
.ethnic-schedule-widget-card,
.ethnic-schedule-side-card,
.ethnic-schedule-expectation-card,
.ethnic-schedule-alt__panel {
	border-radius: 28px;
	border: 1px solid var(--ethnic-schedule-border);
	background:
		linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(247, 250, 255, 0.92)),
		var(--ethnic-schedule-surface);
	box-shadow: var(--ethnic-schedule-shadow);
}

.ethnic-schedule-mini-card,
.ethnic-schedule-expectation-card {
	padding: 24px;
}

.ethnic-schedule-mini-card__icon,
.ethnic-schedule-expectation-card__icon,
.ethnic-schedule-alt__panel-icon,
.ethnic-schedule-cta__panel-icon,
.ethnic-schedule-widget-card__badge,
.ethnic-schedule-side-card__support-icon {
	width: 52px;
	height: 52px;
	display: inline-grid;
	place-items: center;
	border-radius: 18px;
	background: rgba(79, 123, 255, 0.08);
	border: 1px solid rgba(79, 123, 255, 0.14);
	color: #4162b4;
}

.ethnic-schedule-mini-card h3,
.ethnic-schedule-widget-card h3,
.ethnic-schedule-side-card h3,
.ethnic-schedule-expectation-card h3,
.ethnic-schedule-alt__panel h3,
.ethnic-schedule-cta__panel h3 {
	margin: 18px 0 12px;
	color: var(--ethnic-schedule-text);
	font-size: 24px;
	font-weight: 700;
	line-height: 1.14;
	letter-spacing: -0.04em;
}

.ethnic-schedule-section--widget,
.ethnic-schedule-section--cta {
	background:
		radial-gradient(circle at top left, rgba(235, 255, 86, 0.08), transparent 22%),
		linear-gradient(180deg, rgba(247, 250, 255, 0.86), rgba(239, 244, 255, 0.94));
}

.ethnic-schedule-widget-card,
.ethnic-schedule-side-card,
.ethnic-schedule-alt__panel {
	padding: 28px;
}

.ethnic-schedule-widget-card__header {
	display: grid;
	grid-template-columns: 52px minmax(0, 1fr);
	gap: 16px;
	align-items: center;
	margin-bottom: 18px;
}

.ethnic-schedule-widget-placeholder {
	padding: 22px;
	border-radius: 28px;
	background:
		radial-gradient(circle at top left, rgba(235, 255, 86, 0.1), transparent 22%),
		linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(244, 248, 255, 0.96));
	border: 1px dashed rgba(79, 123, 255, 0.24);
}

.ethnic-schedule-widget-placeholder--embed {
	padding: 18px;
}

.ethnic-schedule-widget-placeholder__surface {
	display: grid;
	gap: 20px;
	min-height: 460px;
	padding: 22px;
	border-radius: 24px;
	background: #ffffff;
	border: 1px solid rgba(79, 123, 255, 0.08);
}

.ethnic-schedule-widget-placeholder__surface--embed {
	padding: 12px;
	min-height: 720px;
}

.ethnic-schedule-widget-placeholder__surface--embed .calendly-inline-widget {
	width: 100%;
	min-width: 320px;
	height: 700px;
	border-radius: 20px;
	overflow: hidden;
}

.ethnic-schedule-widget-placeholder__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 14px;
}

.ethnic-schedule-widget-placeholder__day {
	display: grid;
	gap: 10px;
	padding: 18px 14px;
	border-radius: 22px;
	background: #f7faff;
	border: 1px solid rgba(79, 123, 255, 0.08);
}

.ethnic-schedule-widget-placeholder__day strong,
.ethnic-schedule-side-card__detail strong {
	color: var(--ethnic-schedule-text);
	font-size: 13px;
	font-weight: 800;
	letter-spacing: 0.12em;
	line-height: 1.1;
	text-transform: uppercase;
}

.ethnic-schedule-widget-placeholder__day span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 42px;
	padding: 10px 12px;
	border-radius: 16px;
	background: rgba(79, 123, 255, 0.08);
	color: #314d86;
	font-size: 14px;
	font-weight: 700;
	line-height: 1.2;
}

.ethnic-schedule-widget-placeholder__day span.is-active {
	background: var(--ethnic-schedule-accent);
	color: #0f1830;
}

.ethnic-schedule-widget-placeholder__note {
	display: grid;
	gap: 8px;
	padding: 22px;
	border-radius: 22px;
	background: rgba(79, 123, 255, 0.06);
	border: 1px solid rgba(79, 123, 255, 0.08);
}

.ethnic-schedule-widget-placeholder__note strong {
	color: var(--ethnic-schedule-text);
	font-size: 18px;
	font-weight: 700;
	line-height: 1.4;
}

.ethnic-schedule-widget-placeholder__note p {
	margin: 0;
	color: var(--ethnic-schedule-text-soft);
	font-size: 15px;
	line-height: 1.72;
}

.ethnic-schedule-widget-card__notes {
	display: grid;
	gap: 10px;
	margin-top: 18px;
}

.ethnic-schedule-side-card__details {
	display: grid;
	gap: 14px;
	margin-top: 18px;
}

.ethnic-schedule-side-card__detail {
	display: grid;
	gap: 8px;
	padding: 16px 18px;
	border-radius: 20px;
	background: rgba(79, 123, 255, 0.05);
	border: 1px solid rgba(79, 123, 255, 0.08);
}

.ethnic-schedule-side-card__support {
	display: grid;
	grid-template-columns: 52px minmax(0, 1fr);
	gap: 14px;
	align-items: start;
	margin-top: 20px;
	padding: 18px;
	border-radius: 22px;
	background: rgba(15, 24, 48, 0.03);
	border: 1px solid rgba(15, 24, 48, 0.06);
}

.ethnic-schedule-expectations {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.ethnic-schedule-alt {
	padding: 34px;
	border-radius: 34px;
	background:
		radial-gradient(circle at top left, rgba(235, 255, 86, 0.12), transparent 24%),
		radial-gradient(circle at top right, rgba(79, 123, 255, 0.12), transparent 26%),
		linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(246, 250, 255, 0.94));
	border: 1px solid var(--ethnic-schedule-border);
	box-shadow: var(--ethnic-schedule-shadow);
}

.ethnic-schedule-checklist {
	grid-template-columns: 1fr;
	gap: 12px;
	margin-top: 16px;
}

.ethnic-schedule-checklist li {
	display: grid;
	grid-template-columns: 22px minmax(0, 1fr);
	gap: 12px;
	align-items: start;
	color: var(--ethnic-schedule-text-soft);
	font-size: 15px;
	font-weight: 600;
	line-height: 1.68;
}

.ethnic-schedule-checklist li svg {
	color: #4766bf;
	margin-top: 4px;
}

.ethnic-schedule-cta {
	grid-template-columns: minmax(0, 1.02fr) minmax(320px, 0.98fr);
	padding: 34px;
	border-radius: 34px;
	background:
		radial-gradient(circle at top left, rgba(235, 255, 86, 0.12), transparent 24%),
		radial-gradient(circle at top right, rgba(79, 123, 255, 0.12), transparent 26%),
		linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(246, 250, 255, 0.94));
	border: 1px solid var(--ethnic-schedule-border);
	box-shadow: var(--ethnic-schedule-shadow);
}

.ethnic-schedule-cta h2 {
	margin: 16px 0 16px;
	color: var(--ethnic-schedule-text);
	font-size: clamp(36px, 4.8vw, 62px);
	font-weight: 700;
	line-height: 0.98;
	letter-spacing: -0.06em;
	max-width: 12ch;
}

.ethnic-schedule-cta__panel {
	padding: 28px;
	border-radius: 28px;
	background:
		linear-gradient(180deg, rgba(255, 255, 255, 0.12), rgba(255, 255, 255, 0.04)),
		linear-gradient(180deg, #102240, #0d1d37 58%, #0a162d);
	border: 1px solid rgba(255, 255, 255, 0.12);
	box-shadow: 0 26px 60px rgba(15, 23, 42, 0.24);
}

.ethnic-schedule-cta__panel h3 {
	color: #ffffff !important;
	-webkit-text-fill-color: #ffffff;
	margin-top: 18px;
}

.ethnic-schedule-cta__panel p {
	color: rgba(255, 255, 255, 0.9) !important;
	-webkit-text-fill-color: rgba(255, 255, 255, 0.9);
}

.ethnic-schedule-hero__eyebrow,
.ethnic-schedule-hero__points li span,
.ethnic-schedule-visual__card p,
.ethnic-schedule-visual__card li,
.ethnic-schedule-cta__panel h3,
.ethnic-schedule-cta__panel p {
	text-shadow: none;
}

@media (max-width: 1200px) {
	.ethnic-schedule-hero__layout,
	.ethnic-schedule-intro,
	.ethnic-schedule-booking,
	.ethnic-schedule-alt,
	.ethnic-schedule-cta {
		grid-template-columns: 1fr;
	}

	.ethnic-schedule-hero__points,
	.ethnic-schedule-intro__cards,
	.ethnic-schedule-expectations {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.ethnic-schedule-visual {
		max-width: 760px;
	}
}

@media (max-width: 900px) {
	.ethnic-schedule-intro__cards,
	.ethnic-schedule-expectations,
	.ethnic-schedule-widget-placeholder__grid,
	.ethnic-schedule-hero__points {
		grid-template-columns: 1fr;
	}

	.ethnic-schedule-visual {
		min-height: auto;
		display: grid;
		gap: 16px;
	}

	.ethnic-schedule-visual__window,
	.ethnic-schedule-visual__card {
		position: relative;
		inset: auto;
		width: 100%;
	}

	.ethnic-schedule-widget-placeholder__surface--embed {
		min-height: 680px;
	}

	.ethnic-schedule-mini-card,
	.ethnic-schedule-widget-card,
	.ethnic-schedule-side-card,
	.ethnic-schedule-expectation-card,
	.ethnic-schedule-alt,
	.ethnic-schedule-alt__panel,
	.ethnic-schedule-cta,
	.ethnic-schedule-cta__panel {
		border-radius: 24px;
	}
}

@media (max-width: 767px) {
	.ethnic-schedule-shell {
		width: min(100%, calc(100% - 24px));
	}

	.ethnic-schedule-section {
		padding: 60px 0;
	}

	.ethnic-schedule-hero {
		padding: 72px 0 64px;
	}

	.ethnic-schedule-hero__title {
		font-size: clamp(36px, 12vw, 50px);
	}

	.ethnic-schedule-heading__title,
	.ethnic-schedule-cta h2 {
		font-size: clamp(30px, 9vw, 38px);
	}

	.ethnic-schedule-button {
		width: 100%;
	}

	.ethnic-schedule-mini-card,
	.ethnic-schedule-widget-card,
	.ethnic-schedule-side-card,
	.ethnic-schedule-expectation-card,
	.ethnic-schedule-alt,
	.ethnic-schedule-alt__panel,
	.ethnic-schedule-cta,
	.ethnic-schedule-cta__panel {
		padding: 22px;
	}

	.ethnic-schedule-widget-card__header,
	.ethnic-schedule-side-card__support,
	.ethnic-schedule-visual__header {
		grid-template-columns: 46px 1fr;
	}

	.ethnic-schedule-widget-placeholder--embed {
		padding: 12px;
	}

	.ethnic-schedule-widget-placeholder__surface--embed {
		padding: 8px;
		min-height: 640px;
	}

	.ethnic-schedule-widget-placeholder__surface--embed .calendly-inline-widget {
		min-width: 0;
		height: 620px;
		border-radius: 16px;
	}

	.ethnic-schedule-visual__icon,
	.ethnic-schedule-visual__mini-icon,
	.ethnic-schedule-mini-card__icon,
	.ethnic-schedule-expectation-card__icon,
	.ethnic-schedule-alt__panel-icon,
	.ethnic-schedule-cta__panel-icon,
	.ethnic-schedule-widget-card__badge,
	.ethnic-schedule-side-card__support-icon {
		width: 46px;
		height: 46px;
		border-radius: 16px;
	}

	.ethnic-schedule-visual__window {
		padding: 22px;
	}
}
CSS;
	}
}

if ( ! function_exists( 'ethnic_schedule_call_page_enqueue_assets' ) ) {
	function ethnic_schedule_call_page_enqueue_assets() {
		if ( ! ethnic_schedule_call_page_is_target() ) {
			return;
		}

		$page = ethnic_schedule_call_page_get_target_page();

		if ( $page instanceof WP_Post ) {
			$handle = 'elementor-post-' . (int) $page->ID;
			wp_dequeue_style( $handle );
			wp_deregister_style( $handle );
		}

		wp_enqueue_script(
			'ethnic-calendly-widget',
			'https://assets.calendly.com/assets/external/widget.js',
			array(),
			null,
			true
		);

		if ( function_exists( 'wp_script_add_data' ) ) {
			wp_script_add_data( 'ethnic-calendly-widget', 'strategy', 'async' );
		}
	}

	add_action( 'wp_enqueue_scripts', 'ethnic_schedule_call_page_enqueue_assets', 120 );
}

if ( ! function_exists( 'ethnic_schedule_call_page_print_head_assets' ) ) {
	function ethnic_schedule_call_page_print_head_assets() {
		if ( ! ethnic_schedule_call_page_is_target() ) {
			return;
		}

		$data = ethnic_schedule_call_page_data();
		?>
		<style id="ethnic-schedule-call-page-inline-css" type="text/css">
			<?php echo ethnic_schedule_call_page_styles(); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
		</style>
		<meta name="description" content="<?php echo esc_attr( $data['meta_description'] ); ?>" />
		<?php
	}

	add_action( 'wp_head', 'ethnic_schedule_call_page_print_head_assets', 120 );
}

if ( ! function_exists( 'ethnic_schedule_call_page_document_title' ) ) {
	function ethnic_schedule_call_page_document_title( $title ) {
		if ( ethnic_schedule_call_page_is_target() ) {
			$data = ethnic_schedule_call_page_data();

			return $data['meta_title'];
		}

		return $title;
	}

	add_filter( 'pre_get_document_title', 'ethnic_schedule_call_page_document_title', 50 );
}

if ( ! function_exists( 'ethnic_schedule_call_page_replace_content' ) ) {
	function ethnic_schedule_call_page_replace_content( $content ) {
		if ( ! ethnic_schedule_call_page_is_target() || ! in_the_loop() || ! is_main_query() ) {
			return $content;
		}

		static $rendered = false;

		if ( $rendered ) {
			return $content;
		}

		$rendered = true;

		return ethnic_schedule_call_page_render();
	}

	add_filter( 'the_content', 'ethnic_schedule_call_page_replace_content', 1000 );
}