<?php
/**
 * Shabnam Theme Framework.
 *
 * A dependency-free SPA settings panel for the theme.
 *
 * @package Shabnam_MuchWOW
 * @developer توسعه ارتباطات شبنم
 * @link https://shabnam.dev/
 */

defined( 'ABSPATH' ) || exit;

/**
 * Framework defaults.
 *
 * @return array<string,mixed>
 */
function shabnam_framework_defaults() {
	return array(
		'brand_logo_id'           => 0,
		'site_icon_id'            => 0,
		'font_family'             => 'avini',
		'base_font_size'          => 16,
		'blog_content_font_size'  => 18,
		'blog_single_title_size'  => 54,
		'blog_card_title_size'    => 22,
		'content_width'           => 1320,
		'border_radius'           => 24,
		'logo_width'              => 150,
		'mobile_logo_width'       => 40,
		'home_demo'               => 'one',
		'demo_use_custom_colors'  => false,
		'setup_completed'         => false,
		'site_spa_enabled'         => true,

		'primary_color'           => '#5836C7',
		'secondary_color'         => '#FFD200',
		'tertiary_color'          => '#FFA2E6',
		'background_color'        => '#0D042C',
		'surface_color'           => '#1A0C3B',
		'text_color'              => '#FFFFFF',
		'muted_color'             => '#CFC4DB',
		'blog_text_color'         => '#F5EFFA',

		'header_cta_text'         => 'به ما بپیوندید',
		'header_cta_url'          => function_exists( 'shabnam_contact_url' ) ? shabnam_contact_url() : home_url( '/' ),
		'sticky_header'           => true,
		'header_blur'             => true,
		'show_cart'               => true,
		'show_account'            => true,
		'back_to_top'             => true,
		'back_to_top_position'    => 'right',
		'cart_animation'          => true,
		'cookie_notice'           => true,
		'auth_registration_enabled' => false,
		'auth_login_redirect'     => 'account',

		'footer_title'            => 'به جمع ما بپیوندید و همراه‌مان باشید',
		'footer_description'      => 'برای آگاهی از تازه‌ترین خبرها، محصولات و نوشته‌ها، ما را در شبکه‌های اجتماعی دنبال کنید.',
		'copyright_text'          => '',
		'facebook_url'            => '',
		'twitter_url'             => '',
		'instagram_url'           => '',
		'youtube_url'             => '',
		'medium_url'              => '',
		'bale_url'                => '',
		'eitaa_url'               => '',
		'aparat_url'              => '',

		'show_breadcrumbs'        => true,
		'shop_columns'            => 3,
		'shop_products_per_page'  => 12,
		'shop_show_result_count'  => true,
		'shop_show_ordering'      => true,
		'shop_show_rating'        => true,
		'shop_show_sale_badge'    => true,
		'shop_home_enabled'       => true,
		'shop_home_title'         => 'محصولات منتخب',
		'shop_home_subtitle'      => 'محصولات تازه و پیشنهادهای فروشگاه را یک‌جا ببینید.',
		'shop_home_count'         => 4,
		'shop_home_orderby'       => 'date',
		'shop_home_order'         => 'DESC',
		'shop_hide_out_of_stock'  => false,
		'shop_related_count'      => 3,

		'blog_archive_label'      => 'مجله',
		'blog_archive_title'      => 'تازه‌ترین نوشته‌ها',
		'blog_columns'            => 3,
		'blog_posts_per_page'     => 9,
		'blog_excerpt_words'      => 24,
		'blog_show_excerpt'       => true,
		'blog_show_date'          => true,
		'blog_show_author'        => true,
		'blog_show_featured'      => true,
		'blog_show_sidebar'       => true,
		'blog_show_tags'          => true,
		'blog_show_navigation'    => true,
		'blog_show_comments'      => true,
		'blog_show_categories'    => true,
		'blog_show_reading_time'  => true,
		'blog_reading_progress'   => true,
		'blog_related_posts'      => true,
		'blog_related_count'      => 3,
		'blog_single_label'       => 'خواندنی‌ها',
		'blog_home_enabled'       => true,
		'blog_home_title'         => 'از مجله بخوانید',
		'blog_home_subtitle'      => 'تازه‌ترین مقاله‌ها، راهنماها و خبرهای سایت را دنبال کنید.',
		'blog_home_count'         => 3,
		'blog_home_columns'       => 3,
		'blog_home_category'      => 0,
		'blog_home_orderby'       => 'date',
		'blog_home_order'         => 'DESC',
	);
}

/**
 * Legacy Customizer keys used by earlier builds of the theme.
 *
 * @return array<string,string>
 */
function shabnam_framework_legacy_map() {
	return array(
		'header_cta_text' => 'shabnam_header_cta_text',
		'header_cta_url'  => 'shabnam_header_cta_url',
		'footer_title'    => 'shabnam_footer_title',
		'facebook_url'    => 'shabnam_facebook_url',
		'twitter_url'     => 'shabnam_twitter_url',
		'instagram_url'   => 'shabnam_instagram_url',
		'youtube_url'     => 'shabnam_youtube_url',
		'medium_url'      => 'shabnam_medium_url',
		'bale_url'        => 'shabnam_bale_url',
		'eitaa_url'       => 'shabnam_eitaa_url',
		'aparat_url'      => 'shabnam_aparat_url',
	);
}

/**
 * Read all framework settings while preserving older theme values.
 *
 * @return array<string,mixed>
 */
function shabnam_framework_get_settings() {
	$defaults = shabnam_framework_defaults();
	$stored   = get_option( 'shcd_shabnam_framework', array() );
	$stored   = is_array( $stored ) ? $stored : array();
	$settings = array_merge( $defaults, $stored );

	foreach ( shabnam_framework_legacy_map() as $new_key => $legacy_key ) {
		if ( ! array_key_exists( $new_key, $stored ) ) {
			$legacy_value = get_theme_mod( $legacy_key, null );
			if ( null !== $legacy_value && '' !== $legacy_value ) {
				$settings[ $new_key ] = $legacy_value;
			}
		}
	}

	if ( ! array_key_exists( 'brand_logo_id', $stored ) ) {
		$settings['brand_logo_id'] = absint( get_theme_mod( 'custom_logo', 0 ) );
	}

	if ( ! array_key_exists( 'site_icon_id', $stored ) ) {
		$settings['site_icon_id'] = absint( get_option( 'site_icon', 0 ) );
	}

	// Trial edition: only plan 1 and built-in fonts are active.
	$settings['home_demo'] = 'one';
	if ( ! in_array( sanitize_key( (string) $settings['font_family'] ), array( 'avini', 'shabnam' ), true ) ) {
		$settings['font_family'] = 'avini';
	}
	foreach ( array( 'custom_font_id', 'performance_cache_enabled', 'performance_cache_ttl', 'performance_defer_theme_js', 'performance_lazy_images', 'performance_disable_animations_mobile', 'performance_webp_enabled' ) as $trial_pro_key ) {
		unset( $settings[ $trial_pro_key ] );
	}

	return $settings;
}

/**
 * Read one setting.
 *
 * @param string $key Setting key.
 * @param mixed  $fallback Optional fallback.
 * @return mixed
 */
function shabnam_get_setting( $key, $fallback = null ) {
	$settings = shabnam_framework_get_settings();
	return array_key_exists( $key, $settings ) ? $settings[ $key ] : $fallback;
}

/**
 * Accept image attachment IDs only.
 *
 * @param mixed $attachment_id Candidate attachment ID.
 * @return int
 */
function shabnam_framework_sanitize_image_id( $attachment_id ) {
	$attachment_id = absint( $attachment_id );
	if ( ! $attachment_id ) {
		return 0;
	}

	if ( 'attachment' !== get_post_type( $attachment_id ) || ! wp_attachment_is_image( $attachment_id ) ) {
		return 0;
	}

	return $attachment_id;
}

/**
 * Sanitize a complete framework payload against a strict whitelist.
 * Unknown keys are discarded.
 *
 * @param mixed $input Raw input.
 * @return array<string,mixed>
 */
function shabnam_framework_sanitize_settings( $input ) {
	$defaults = shabnam_framework_defaults();
	$input    = is_array( $input ) ? $input : array();
	$clean    = array();

	$clean['brand_logo_id']  = isset( $input['brand_logo_id'] ) ? shabnam_framework_sanitize_image_id( $input['brand_logo_id'] ) : 0;
	$clean['site_icon_id']   = isset( $input['site_icon_id'] ) ? shabnam_framework_sanitize_image_id( $input['site_icon_id'] ) : 0;

	foreach ( array( 'primary_color', 'secondary_color', 'tertiary_color', 'background_color', 'surface_color', 'text_color', 'muted_color', 'blog_text_color' ) as $color_key ) {
		$color = isset( $input[ $color_key ] ) ? sanitize_hex_color( (string) $input[ $color_key ] ) : '';
		$clean[ $color_key ] = $color ? strtoupper( $color ) : $defaults[ $color_key ];
	}

	$allowed_fonts = array( 'avini', 'shabnam' );
	$font_family   = isset( $input['font_family'] ) ? sanitize_key( (string) $input['font_family'] ) : $defaults['font_family'];
	$clean['font_family'] = in_array( $font_family, $allowed_fonts, true ) ? $font_family : $defaults['font_family'];
	$clean['base_font_size'] = max( 13, min( 22, isset( $input['base_font_size'] ) ? absint( $input['base_font_size'] ) : $defaults['base_font_size'] ) );
	$clean['blog_content_font_size'] = max( 14, min( 28, isset( $input['blog_content_font_size'] ) ? absint( $input['blog_content_font_size'] ) : $defaults['blog_content_font_size'] ) );
	$clean['blog_single_title_size'] = max( 32, min( 84, isset( $input['blog_single_title_size'] ) ? absint( $input['blog_single_title_size'] ) : $defaults['blog_single_title_size'] ) );
	$clean['blog_card_title_size'] = max( 16, min( 36, isset( $input['blog_card_title_size'] ) ? absint( $input['blog_card_title_size'] ) : $defaults['blog_card_title_size'] ) );
	$clean['content_width']  = max( 960, min( 1680, isset( $input['content_width'] ) ? absint( $input['content_width'] ) : $defaults['content_width'] ) );
	$clean['border_radius']     = max( 0, min( 48, isset( $input['border_radius'] ) ? absint( $input['border_radius'] ) : $defaults['border_radius'] ) );
	$clean['logo_width']        = max( 60, min( 320, isset( $input['logo_width'] ) ? absint( $input['logo_width'] ) : $defaults['logo_width'] ) );
	$clean['mobile_logo_width'] = max( 24, min( 96, isset( $input['mobile_logo_width'] ) ? absint( $input['mobile_logo_width'] ) : $defaults['mobile_logo_width'] ) );

	$back_to_top_position = isset( $input['back_to_top_position'] ) ? sanitize_key( (string) $input['back_to_top_position'] ) : $defaults['back_to_top_position'];
	$clean['back_to_top_position'] = in_array( $back_to_top_position, array( 'right', 'left' ), true ) ? $back_to_top_position : $defaults['back_to_top_position'];

	$home_demo = isset( $input['home_demo'] ) ? sanitize_key( (string) $input['home_demo'] ) : $defaults['home_demo'];
	$clean['home_demo'] = 'one';
	$auth_redirect = isset( $input['auth_login_redirect'] ) ? sanitize_key( (string) $input['auth_login_redirect'] ) : $defaults['auth_login_redirect'];
	$clean['auth_login_redirect'] = in_array( $auth_redirect, array( 'account', 'home' ), true ) ? $auth_redirect : $defaults['auth_login_redirect'];

	$text_keys = array(
		'header_cta_text',
		'footer_title',
		'footer_description',
		'copyright_text',
		'blog_archive_label',
		'blog_archive_title',
		'blog_single_label',
		'blog_home_title',
		'blog_home_subtitle',
		'shop_home_title',
		'shop_home_subtitle',
	);
	foreach ( $text_keys as $text_key ) {
		$clean[ $text_key ] = isset( $input[ $text_key ] ) ? sanitize_text_field( (string) $input[ $text_key ] ) : $defaults[ $text_key ];
	}

	$clean['header_cta_url'] = isset( $input['header_cta_url'] ) ? esc_url_raw( (string) $input['header_cta_url'] ) : $defaults['header_cta_url'];
	foreach ( array( 'facebook_url', 'twitter_url', 'instagram_url', 'youtube_url', 'medium_url', 'bale_url', 'eitaa_url', 'aparat_url' ) as $url_key ) {
		$clean[ $url_key ] = isset( $input[ $url_key ] ) ? esc_url_raw( (string) $input[ $url_key ] ) : '';
	}

	$bool_keys = array(
		'sticky_header', 'header_blur', 'show_cart', 'show_account', 'back_to_top', 'cart_animation', 'cookie_notice', 'auth_registration_enabled', 'demo_use_custom_colors',
		'show_breadcrumbs', 'shop_show_result_count', 'shop_show_ordering', 'shop_show_rating', 'shop_show_sale_badge', 'shop_home_enabled', 'shop_hide_out_of_stock',
		'blog_show_excerpt', 'blog_show_date', 'blog_show_author', 'blog_show_featured', 'blog_show_sidebar', 'blog_show_tags', 'blog_show_navigation', 'blog_show_comments', 'blog_show_categories', 'blog_show_reading_time', 'blog_reading_progress', 'blog_related_posts', 'blog_home_enabled',
		'setup_completed', 'site_spa_enabled',
	);
	foreach ( $bool_keys as $bool_key ) {
		$clean[ $bool_key ] = ! empty( $input[ $bool_key ] );
	}

	$clean['shop_columns']           = max( 2, min( 4, isset( $input['shop_columns'] ) ? absint( $input['shop_columns'] ) : $defaults['shop_columns'] ) );
	$clean['shop_products_per_page'] = max( 4, min( 48, isset( $input['shop_products_per_page'] ) ? absint( $input['shop_products_per_page'] ) : $defaults['shop_products_per_page'] ) );
	$clean['shop_home_count']        = max( 2, min( 12, isset( $input['shop_home_count'] ) ? absint( $input['shop_home_count'] ) : $defaults['shop_home_count'] ) );
	$clean['shop_related_count']     = max( 2, min( 8, isset( $input['shop_related_count'] ) ? absint( $input['shop_related_count'] ) : $defaults['shop_related_count'] ) );
	$clean['blog_columns']           = max( 1, min( 4, isset( $input['blog_columns'] ) ? absint( $input['blog_columns'] ) : $defaults['blog_columns'] ) );
	$clean['blog_posts_per_page']    = max( 3, min( 30, isset( $input['blog_posts_per_page'] ) ? absint( $input['blog_posts_per_page'] ) : $defaults['blog_posts_per_page'] ) );
	$clean['blog_excerpt_words']     = max( 8, min( 80, isset( $input['blog_excerpt_words'] ) ? absint( $input['blog_excerpt_words'] ) : $defaults['blog_excerpt_words'] ) );
	$clean['blog_home_count']        = max( 2, min( 12, isset( $input['blog_home_count'] ) ? absint( $input['blog_home_count'] ) : $defaults['blog_home_count'] ) );
	$clean['blog_home_columns']      = max( 1, min( 4, isset( $input['blog_home_columns'] ) ? absint( $input['blog_home_columns'] ) : $defaults['blog_home_columns'] ) );
	$clean['blog_related_count']     = max( 2, min( 8, isset( $input['blog_related_count'] ) ? absint( $input['blog_related_count'] ) : $defaults['blog_related_count'] ) );

	$category_id = isset( $input['blog_home_category'] ) ? absint( $input['blog_home_category'] ) : 0;
	$clean['blog_home_category'] = $category_id && term_exists( $category_id, 'category' ) ? $category_id : 0;

	$blog_orderby = isset( $input['blog_home_orderby'] ) ? sanitize_key( (string) $input['blog_home_orderby'] ) : $defaults['blog_home_orderby'];
	$clean['blog_home_orderby'] = in_array( $blog_orderby, array( 'date', 'modified', 'comment_count', 'title' ), true ) ? $blog_orderby : $defaults['blog_home_orderby'];
	$blog_order = isset( $input['blog_home_order'] ) ? strtoupper( sanitize_text_field( (string) $input['blog_home_order'] ) ) : $defaults['blog_home_order'];
	$clean['blog_home_order'] = in_array( $blog_order, array( 'ASC', 'DESC' ), true ) ? $blog_order : $defaults['blog_home_order'];

	$shop_orderby = isset( $input['shop_home_orderby'] ) ? sanitize_key( (string) $input['shop_home_orderby'] ) : $defaults['shop_home_orderby'];
	$clean['shop_home_orderby'] = in_array( $shop_orderby, array( 'date', 'modified', 'title', 'menu_order' ), true ) ? $shop_orderby : $defaults['shop_home_orderby'];
	$shop_order = isset( $input['shop_home_order'] ) ? strtoupper( sanitize_text_field( (string) $input['shop_home_order'] ) ) : $defaults['shop_home_order'];
	$clean['shop_home_order'] = in_array( $shop_order, array( 'ASC', 'DESC' ), true ) ? $shop_order : $defaults['shop_home_order'];

	return $clean;
}

/**
 * Keep legacy theme mods in sync for backwards compatibility.
 *
 * @param array<string,mixed> $settings Sanitized settings.
 */
function shabnam_framework_sync_legacy_settings( $settings ) {
	foreach ( shabnam_framework_legacy_map() as $new_key => $legacy_key ) {
		if ( array_key_exists( $new_key, $settings ) ) {
			set_theme_mod( $legacy_key, $settings[ $new_key ] );
		}
	}

	if ( ! empty( $settings['brand_logo_id'] ) ) {
		set_theme_mod( 'custom_logo', absint( $settings['brand_logo_id'] ) );
	} else {
		remove_theme_mod( 'custom_logo' );
	}

	if ( array_key_exists( 'site_icon_id', $settings ) ) {
		update_option( 'site_icon', absint( $settings['site_icon_id'] ) );
	}
}

/**
 * Admin menu entry. Slug intentionally starts with shcd-.
 */
function shabnam_framework_admin_menu() {
	add_menu_page(
		__( 'فریم‌ورک پوسته شبنم', 'shabnam-muchwow' ),
		__( 'شبنم', 'shabnam-muchwow' ),
		'edit_theme_options',
		'shcd-muchwow-theme',
		'shabnam_framework_render_admin_page',
		get_template_directory_uri() . '/assets/images/shcd-logo-menu.png',
		59
	);

	/* Rename WordPress' automatic first submenu into an explicit settings item. */
	add_submenu_page(
		'shcd-muchwow-theme',
		__( 'تنظیمات پوسته', 'shabnam-muchwow' ),
		__( 'تنظیمات', 'shabnam-muchwow' ),
		'edit_theme_options',
		'shcd-muchwow-theme',
		'shabnam_framework_render_admin_page'
	);
}
add_action( 'admin_menu', 'shabnam_framework_admin_menu' );

/**
 * Keep the SHCD menu mark inside WordPress' native icon box.
 */
function shabnam_framework_admin_menu_icon_css() {
	?>
	<style id="shcd-muchwow-menu-icon-css">
		#toplevel_page_shcd-muchwow-theme .wp-menu-image img{width:20px!important;height:20px!important;max-width:20px!important;max-height:20px!important;object-fit:contain!important;padding:7px 0 0!important;box-sizing:content-box!important}
	</style>
	<?php
}
add_action( 'admin_head', 'shabnam_framework_admin_menu_icon_css' );

/**
 * Return safe attachment data for image previews.
 *
 * @param int $attachment_id Attachment ID.
 * @return array<string,mixed>
 */
function shabnam_framework_attachment_data( $attachment_id ) {
	$attachment_id = absint( $attachment_id );
	$url           = $attachment_id ? wp_get_attachment_image_url( $attachment_id, 'medium' ) : '';
	return array( 'id' => $attachment_id, 'url' => $url ? esc_url_raw( $url ) : '' );
}

/**
 * Enqueue SPA assets only on the framework screen.
 * Initial settings are embedded in the page; there is no startup request.
 *
 * @param string $hook_suffix Current admin hook.
 */
function shabnam_framework_admin_assets( $hook_suffix ) {
	if ( 'toplevel_page_shcd-muchwow-theme' !== $hook_suffix && 'shabnam_page_shcd-muchwow-theme' !== $hook_suffix ) {
		return;
	}

	$uri      = get_template_directory_uri();
	$ver      = SHABNAM_MUCHWOW_VERSION;
	$settings = shabnam_framework_get_settings();

	wp_enqueue_media();
	wp_enqueue_style( 'shcd-shabnam-framework', $uri . '/assets/admin/shcd-shabnam-framework.css', array(), function_exists( 'shabnam_asset_version' ) ? shabnam_asset_version( 'assets/admin/shcd-shabnam-framework.css' ) : $ver );
	wp_enqueue_script( 'shcd-shabnam-framework', $uri . '/assets/admin/shcd-shabnam-framework.js', array(), function_exists( 'shabnam_asset_version' ) ? shabnam_asset_version( 'assets/admin/shcd-shabnam-framework.js' ) : $ver, true );

	$config = array(
		'restUrl'  => esc_url_raw( rest_url( 'shcd-shabnam/v1/settings' ) ),
		'resetUrl' => esc_url_raw( rest_url( 'shcd-shabnam/v1/reset' ) ),
		'nonce'    => wp_create_nonce( 'wp_rest' ),
		'settings' => $settings,
		'defaults' => shabnam_framework_defaults(),
		'media'    => array(
			'brandLogo' => shabnam_framework_attachment_data( absint( $settings['brand_logo_id'] ) ),
			'siteIcon'  => shabnam_framework_attachment_data( absint( $settings['site_icon_id'] ) ),
		),
		'i18n' => array(
			'saved'          => __( 'تغییرات ذخیره شد و در سایت اعمال می‌شود.', 'shabnam-muchwow' ),
			'error'          => __( 'ذخیره تنظیمات انجام نشد. لطفاً دوباره تلاش کنید.', 'shabnam-muchwow' ),
			'reset'          => __( 'تنظیمات به مقادیر پیش‌فرض بازگردانده شد.', 'shabnam-muchwow' ),
			'chooseImage'    => __( 'انتخاب تصویر', 'shabnam-muchwow' ),
			'useImage'       => __( 'استفاده از این تصویر', 'shabnam-muchwow' ),
			'chooseFont'     => __( 'انتخاب فایل فونت', 'shabnam-muchwow' ),
			'useFont'        => __( 'استفاده از این فونت', 'shabnam-muchwow' ),
			'invalidFont'    => __( 'فقط فایل‌های WOFF و WOFF2 پذیرفته می‌شوند.', 'shabnam-muchwow' ),
			'resetConfirm'   => __( 'همه تنظیمات فریم‌ورک به مقادیر پیش‌فرض بازگردد؟', 'shabnam-muchwow' ),
		),
	);

	wp_add_inline_script(
		'shcd-shabnam-framework',
		'window.SHCDShabnamFramework = ' . wp_json_encode( $config, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES ) . ';',
		'before'
	);
}
add_action( 'admin_enqueue_scripts', 'shabnam_framework_admin_assets' );

/**
 * Register secure REST endpoints used by the SPA.
 */
function shabnam_framework_register_rest_routes() {
	register_rest_route(
		'shcd-shabnam/v1',
		'/settings',
		array(
			'methods'             => WP_REST_Server::CREATABLE,
			'callback'            => 'shabnam_framework_rest_save',
			'permission_callback' => 'shabnam_framework_rest_permission',
		)
	);
	register_rest_route(
		'shcd-shabnam/v1',
		'/reset',
		array(
			'methods'             => WP_REST_Server::CREATABLE,
			'callback'            => 'shabnam_framework_rest_reset',
			'permission_callback' => 'shabnam_framework_rest_permission',
		)
	);
}
add_action( 'rest_api_init', 'shabnam_framework_register_rest_routes' );

/**
 * REST permission callback.
 *
 * @param WP_REST_Request $request Request object.
 * @return bool
 */
function shabnam_framework_rest_permission( WP_REST_Request $request ) {
	$nonce = (string) $request->get_header( 'X-WP-Nonce' );
	return current_user_can( 'edit_theme_options' ) && $nonce && (bool) wp_verify_nonce( $nonce, 'wp_rest' );
}

/**
 * Save settings over REST.
 * No raw SQL is used; data is whitelisted and sanitized before update_option().
 *
 * @param WP_REST_Request $request Request object.
 * @return WP_REST_Response
 */
function shabnam_framework_rest_save( WP_REST_Request $request ) {
	$payload  = $request->get_json_params();
	$settings = shabnam_framework_sanitize_settings( is_array( $payload ) ? $payload : array() );
	update_option( 'shcd_shabnam_framework', $settings, false );
	shabnam_framework_sync_legacy_settings( $settings );
	if ( function_exists( 'shabnam_muchwow_apply_home_demo' ) ) {
		shabnam_muchwow_apply_home_demo( $settings['home_demo'] );
	}
	if ( ! empty( $settings['setup_completed'] ) && function_exists( 'shabnam_muchwow_install_pages' ) ) {
		// The installer is idempotent: it reuses/restores managed pages and never
		// creates a duplicate while a matching page already exists.
		shabnam_muchwow_install_pages();
	}

	return rest_ensure_response(
		array(
			'success'  => true,
			'settings' => $settings,
			'media'    => array(
				'brandLogo' => shabnam_framework_attachment_data( absint( $settings['brand_logo_id'] ) ),
				'siteIcon'  => shabnam_framework_attachment_data( absint( $settings['site_icon_id'] ) ),
			),
		)
	);
}

/**
 * Reset settings over REST.
 *
 * @return WP_REST_Response
 */
function shabnam_framework_rest_reset() {
	$settings = shabnam_framework_defaults();
	update_option( 'shcd_shabnam_framework', $settings, false );
	shabnam_framework_sync_legacy_settings( $settings );
	if ( function_exists( 'shabnam_muchwow_apply_home_demo' ) ) {
		shabnam_muchwow_apply_home_demo( $settings['home_demo'] );
	}
	return rest_ensure_response(
		array(
			'success'  => true,
			'settings' => $settings,
			'media'    => array(
				'brandLogo' => shabnam_framework_attachment_data( 0 ),
				'siteIcon'  => shabnam_framework_attachment_data( 0 ),
			),
		)
	);
}

/**
 * Render the SPA shell. Views are switched by JavaScript without navigation.
 */
function shabnam_framework_render_admin_page() {
	if ( ! current_user_can( 'edit_theme_options' ) ) {
		wp_die( esc_html__( 'شما اجازه دسترسی به این بخش را ندارید.', 'shabnam-muchwow' ) );
	}
	?>
	<div class="wrap shcd-shabnam-admin" dir="rtl">
		<div class="shcd-app" id="shcd-shabnam-app">
			<aside class="shcd-sidebar" aria-label="<?php esc_attr_e( 'فهرست تنظیمات شبنم', 'shabnam-muchwow' ); ?>">
				<div class="shcd-brand">
					<img src="<?php echo esc_url( get_template_directory_uri() . '/assets/images/shcd-logo-admin.png' ); ?>" alt="SHCD">
					<div><strong>Shabnam</strong><span><?php esc_html_e( 'فریم‌ورک پوسته', 'shabnam-muchwow' ); ?></span></div>
				</div>
				<nav class="shcd-nav">
					<button type="button" data-route="wizard"><span>✦</span><?php esc_html_e( 'راه‌انداز هوشمند شبنم', 'shabnam-muchwow' ); ?></button>
					<button class="is-active" type="button" data-route="general"><span>⌂</span><?php esc_html_e( 'هویت و برند', 'shabnam-muchwow' ); ?></button>
					<button type="button" data-route="demos"><span>◫</span><?php esc_html_e( 'طرح‌های صفحه اصلی', 'shabnam-muchwow' ); ?></button>
					<button type="button" data-route="colors"><span>◉</span><?php esc_html_e( 'رنگ‌ها و ظاهر', 'shabnam-muchwow' ); ?></button>
					<button type="button" data-route="typography"><span>آ</span><?php esc_html_e( 'تایپوگرافی', 'shabnam-muchwow' ); ?></button>
					<button type="button" data-route="header"><span>↗</span><?php esc_html_e( 'هدر و تجربه کاربری', 'shabnam-muchwow' ); ?></button>
					<button type="button" data-route="auth"><span>♙</span><?php esc_html_e( 'ورود و ثبت‌نام', 'shabnam-muchwow' ); ?></button>
					<button type="button" data-route="blog"><span>✎</span><?php esc_html_e( 'وبلاگ', 'shabnam-muchwow' ); ?></button>
					<button type="button" data-route="shop"><span>◇</span><?php esc_html_e( 'فروشگاه', 'shabnam-muchwow' ); ?></button>
					<button type="button" data-route="footer"><span>◎</span><?php esc_html_e( 'فوتر و شبکه‌های اجتماعی', 'shabnam-muchwow' ); ?></button>
					<button class="shcd-nav-pro" type="button" data-route="health"><span>✓</span><?php esc_html_e( 'پایش سلامت شبنم', 'shabnam-muchwow' ); ?><b>PRO</b></button>
					<button class="shcd-nav-pro" type="button" data-route="performance"><span>↯</span><?php esc_html_e( 'مرکز افزایش سرعت', 'shabnam-muchwow' ); ?><b>PRO</b></button>
					<button type="button" data-route="about"><span>i</span><?php esc_html_e( 'درباره فریم‌ورک پوسته', 'shabnam-muchwow' ); ?></button>
				</nav>
			</aside>

			<main class="shcd-main">
				<header class="shcd-topbar">
					<div>
						<p class="shcd-eyebrow">SHCD • SHABNAM FRAMEWORK • TRIAL</p>
						<h1><?php esc_html_e( 'تنظیمات پوسته', 'shabnam-muchwow' ); ?></h1>
					</div>
					<div class="shcd-actions">
						<button class="shcd-btn shcd-btn-ghost" type="button" id="shcd-reset-settings"><?php esc_html_e( 'بازگردانی پیش‌فرض‌ها', 'shabnam-muchwow' ); ?></button>
						<button class="shcd-btn shcd-btn-primary" type="button" id="shcd-save-settings"><span><?php esc_html_e( 'ذخیره تغییرات', 'shabnam-muchwow' ); ?></span><b>✓</b></button>
					</div>
				</header>

				<div class="shcd-content">
					<section class="shcd-view" data-view="wizard">
						<?php shabnam_framework_section_head( 'شروع', __( 'راه‌انداز هوشمند شبنم', 'shabnam-muchwow' ), __( 'در چند گام کوتاه، طرح اصلی، هویت بصری و بخش‌های ضروری سایت را آماده کنید. همه مراحل بدون بارگذاری دوباره صفحه انجام می‌شوند.', 'shabnam-muchwow' ) ); ?>
						<div class="shcd-wizard" data-shcd-wizard>
							<div class="shcd-wizard-brand"><img src="<?php echo esc_url( get_template_directory_uri() . '/assets/images/shcd-wizard-logo.png' ); ?>" alt="SHCD"><div><strong><?php esc_html_e( 'شبنم، همراه راه‌اندازی پوسته', 'shabnam-muchwow' ); ?></strong><span><?php esc_html_e( 'تنظیمات اصلی را مرحله‌به‌مرحله انجام دهید و در پایان، برگه‌های ضروری را فقط در صورت نبودن ایجاد یا بازیابی کنید.', 'shabnam-muchwow' ); ?></span></div></div>
							<div class="shcd-wizard-progress"><i data-wizard-progress></i></div>
							<div class="shcd-wizard-steps">
								<div class="shcd-wizard-step is-active" data-wizard-step="0"><span class="shcd-kicker">01</span><h3><?php esc_html_e( 'طرح صفحه اصلی', 'shabnam-muchwow' ); ?></h3><p><?php esc_html_e( 'در نسخه آزمایشی، طرح 1 فعال است. پیش‌نمایش طرح‌های حرفه‌ای را می‌توانید ببینید؛ فعال‌سازی آن‌ها در نسخه PRO در دسترس است.', 'shabnam-muchwow' ); ?></p><div class="shcd-wizard-choice-grid">
									<button type="button" class="shcd-wizard-choice is-active" data-wizard-demo="one"><span class="shcd-wizard-choice-media"><img src="<?php echo esc_url( get_template_directory_uri() . '/assets/images/demos/home-one.jpg' ); ?>" alt="<?php esc_attr_e( 'پیش‌نمایش طرح 1', 'shabnam-muchwow' ); ?>"><i aria-hidden="true">✓</i></span><strong><?php esc_html_e( 'طرح 1', 'shabnam-muchwow' ); ?></strong><small><?php esc_html_e( 'فعال در نسخه Trial', 'shabnam-muchwow' ); ?></small></button>
									<div class="shcd-wizard-choice shcd-pro-demo" aria-disabled="true"><span class="shcd-wizard-choice-media"><img src="<?php echo esc_url( get_template_directory_uri() . '/assets/images/demos/home-two.jpg' ); ?>" alt="<?php esc_attr_e( 'پیش‌نمایش طرح 2', 'shabnam-muchwow' ); ?>"></span><strong><?php esc_html_e( 'طرح 2', 'shabnam-muchwow' ); ?></strong><small><?php esc_html_e( 'ویژه نسخه حرفه‌ای', 'shabnam-muchwow' ); ?></small><span class="shcd-pro-badge">PRO</span></div>
									<div class="shcd-wizard-choice shcd-pro-demo" aria-disabled="true"><span class="shcd-wizard-choice-media"><img src="<?php echo esc_url( get_template_directory_uri() . '/assets/images/demos/home-three.jpg' ); ?>" alt="<?php esc_attr_e( 'پیش‌نمایش طرح 3', 'shabnam-muchwow' ); ?>"></span><strong><?php esc_html_e( 'طرح 3', 'shabnam-muchwow' ); ?></strong><small><?php esc_html_e( 'ویژه نسخه حرفه‌ای', 'shabnam-muchwow' ); ?></small><span class="shcd-pro-badge">PRO</span></div>
								</div></div>
								<div class="shcd-wizard-step" data-wizard-step="1"><span class="shcd-kicker">02</span><h3><?php esc_html_e( 'هویت بصری', 'shabnam-muchwow' ); ?></h3><p><?php esc_html_e( 'رنگ اصلی و فونت سایت را انتخاب کنید. بعداً می‌توانید جزئیات بیشتری را از بخش‌های تخصصی تغییر دهید.', 'shabnam-muchwow' ); ?></p><div class="shcd-grid shcd-grid-2"><div class="shcd-card shcd-field-card"><label for="shcd-wizard-primary-color"><?php esc_html_e( 'رنگ اصلی', 'shabnam-muchwow' ); ?></label><p><?php esc_html_e( 'رنگ پایه رابط سایت را انتخاب کنید.', 'shabnam-muchwow' ); ?></p><input id="shcd-wizard-primary-color" type="color" data-setting="primary_color" value="#5836C7"></div><div class="shcd-card shcd-field-card"><label><?php esc_html_e( 'فونت', 'shabnam-muchwow' ); ?></label><select data-setting="font_family"><option value="avini"><?php esc_html_e( 'آوینی {پیشفرض}', 'shabnam-muchwow' ); ?></option><option value="shabnam"><?php esc_html_e( 'شبنم', 'shabnam-muchwow' ); ?></option></select></div></div></div>
								<div class="shcd-wizard-step" data-wizard-step="2"><span class="shcd-kicker">03</span><h3><?php esc_html_e( 'بخش‌های اصلی', 'shabnam-muchwow' ); ?></h3><p><?php esc_html_e( 'مشخص کنید فروشگاه و مجله در صفحه اصلی نمایش داده شوند یا خیر.', 'shabnam-muchwow' ); ?></p><?php shabnam_framework_toggle_field( 'shop_home_enabled', __( 'نمایش فروشگاه در صفحه اصلی', 'shabnam-muchwow' ), __( 'محصولات منتخب در صفحه اصلی نمایش داده می‌شوند.', 'shabnam-muchwow' ) ); ?><?php shabnam_framework_toggle_field( 'blog_home_enabled', __( 'نمایش مجله در صفحه اصلی', 'shabnam-muchwow' ), __( 'تازه‌ترین نوشته‌های منتشرشده در صفحه اصلی نمایش داده می‌شوند.', 'shabnam-muchwow' ) ); ?></div>
								<div class="shcd-wizard-step" data-wizard-step="3"><span class="shcd-kicker">04</span><h3><?php esc_html_e( 'تجربه سریع‌تر', 'shabnam-muchwow' ); ?></h3><p><?php esc_html_e( 'ناوبری تک‌صفحه‌ای سایت در نسخه Trial در دسترس است. کش، WebP و ابزارهای افزایش سرعت در نسخه PRO ارائه می‌شوند.', 'shabnam-muchwow' ); ?></p><?php shabnam_framework_toggle_field( 'site_spa_enabled', __( 'ناوبری SPA بدون صفحه لودینگ', 'shabnam-muchwow' ), __( 'هدر و فوتر ثابت می‌مانند و محتوای صفحات داخلی با Fetch جابه‌جا می‌شود. در صورت ناسازگاری، مرورگر خودکار به بارگذاری عادی برمی‌گردد.', 'shabnam-muchwow' ) ); ?><div class="shcd-pro-mini"><div><strong><?php esc_html_e( 'کش، WebP و افزایش سرعت', 'shabnam-muchwow' ); ?></strong><span><?php esc_html_e( 'این ابزارها در نسخه حرفه‌ای فعال می‌شوند.', 'shabnam-muchwow' ); ?></span></div><b>PRO</b></div></div>
								<div class="shcd-wizard-step" data-wizard-step="4"><span class="shcd-kicker">05</span><h3><?php esc_html_e( 'آماده‌سازی نهایی', 'shabnam-muchwow' ); ?></h3><p><?php esc_html_e( 'با پایان راه‌اندازی، تنظیمات ذخیره می‌شوند و پوسته فقط برگه‌های ضروریِ گمشده را ایجاد یا بازیابی می‌کند؛ هیچ برگه تکراری ساخته نمی‌شود.', 'shabnam-muchwow' ); ?></p><div class="shcd-wizard-summary"><b>✓</b><span><?php esc_html_e( 'تنظیمات آماده ذخیره‌سازی است.', 'shabnam-muchwow' ); ?></span></div></div>
							</div>
							<div class="shcd-wizard-actions"><button type="button" class="shcd-btn shcd-btn-ghost" data-wizard-prev><?php esc_html_e( 'مرحله قبل', 'shabnam-muchwow' ); ?></button><button type="button" class="shcd-btn shcd-btn-primary" data-wizard-next><?php esc_html_e( 'مرحله بعد', 'shabnam-muchwow' ); ?></button><button type="button" class="shcd-btn shcd-btn-primary" data-wizard-finish hidden><?php esc_html_e( 'پایان و ذخیره', 'shabnam-muchwow' ); ?></button></div>
						</div>
					</section>

					<section class="shcd-view is-active" data-view="general">
						<?php shabnam_framework_section_head( '01', __( 'هویت و نشان تجاری', 'shabnam-muchwow' ), __( 'نشان اصلی سایت و آیکون مرورگر را از کتابخانه رسانه انتخاب کنید.', 'shabnam-muchwow' ) ); ?>
						<div class="shcd-grid shcd-grid-2">
							<?php shabnam_framework_media_field( 'brand_logo_id', __( 'لوگوی اصلی سایت', 'shabnam-muchwow' ), 'هدر', __( 'لوگوی سایت', 'shabnam-muchwow' ), false ); ?>
							<?php shabnam_framework_media_field( 'site_icon_id', __( 'آیکون سایت', 'shabnam-muchwow' ), 'آیکون مرورگر', __( 'آیکون سایت', 'shabnam-muchwow' ), true ); ?>
						</div>
						<div class="shcd-grid shcd-grid-2 shcd-mt">
							<?php shabnam_framework_number_field( 'logo_width', __( 'عرض لوگوی دسکتاپ', 'shabnam-muchwow' ), __( 'عرض لوگو در هدر دسکتاپ را بین ۶۰ تا ۳۲۰ پیکسل تنظیم کنید.', 'shabnam-muchwow' ), 60, 320, 1 ); ?>
							<?php shabnam_framework_number_field( 'mobile_logo_width', __( 'عرض لوگوی موبایل', 'shabnam-muchwow' ), __( 'عرض لوگو در منوی موبایل را بین ۲۴ تا ۹۶ پیکسل تنظیم کنید.', 'shabnam-muchwow' ), 24, 96, 1 ); ?>
						</div>
						<div class="shcd-card shcd-note"><strong><?php esc_html_e( 'تنظیمات سراسری', 'shabnam-muchwow' ); ?></strong><p><?php esc_html_e( 'تنظیمات این بخش در سراسر پوسته اعمال می‌شود، اما محتوایی که با المنتور ساخته‌اید حذف یا بازنویسی نخواهد شد.', 'shabnam-muchwow' ); ?></p></div>
					</section>


					<section class="shcd-view" data-view="demos">
						<?php shabnam_framework_section_head( '02', __( 'طرح‌های صفحه اصلی', 'shabnam-muchwow' ), __( 'نسخه Trial با طرح 1 ارائه می‌شود. طرح‌های 2 و 3 به‌صورت پیش‌نمایش نمایش داده می‌شوند و در نسخه PRO قابل فعال‌سازی هستند.', 'shabnam-muchwow' ) ); ?>
						<div class="shcd-card shcd-form-card">
							<?php shabnam_framework_select_field( 'home_demo', __( 'طرح فعال', 'shabnam-muchwow' ), __( 'در نسخه آزمایشی فقط طرح 1 قابل انتخاب است.', 'shabnam-muchwow' ), array( 'one' => __( 'طرح 1 — تیره اصلی', 'shabnam-muchwow' ) ) ); ?>
							<?php shabnam_framework_toggle_field( 'demo_use_custom_colors', __( 'اعمال رنگ‌های سفارشی روی طرح', 'shabnam-muchwow' ), __( 'در صورت فعال‌سازی، رنگ‌های بخش «رنگ‌ها و ظاهر» روی طرح 1 اعمال می‌شوند.', 'shabnam-muchwow' ) ); ?>
						</div>
						<div class="shcd-card shcd-note shcd-mt"><strong><?php esc_html_e( 'نسخه Trial بدون برگه‌های تکراری', 'shabnam-muchwow' ); ?></strong><p><?php esc_html_e( 'فقط برگه طرح 1 ساخته و مدیریت می‌شود. برگه‌های اختصاصی طرح‌های PRO در این بسته وجود ندارند.', 'shabnam-muchwow' ); ?></p></div>
						<div class="shcd-demo-grid">
							<?php $shcd_demo_page_id = function_exists( 'shabnam_muchwow_get_page_id' ) ? shabnam_muchwow_get_page_id( 'demo-one' ) : 0; ?>
							<div class="shcd-card shcd-demo-card is-selected" data-demo-select="one" role="button" tabindex="0" aria-pressed="true"><img src="<?php echo esc_url( get_template_directory_uri() . '/assets/images/demos/home-one.jpg' ); ?>" alt="<?php esc_attr_e( 'پیش‌نمایش طرح 1', 'shabnam-muchwow' ); ?>"><div><strong><?php esc_html_e( 'طرح 1', 'shabnam-muchwow' ); ?></strong><span class="shcd-demo-selected-label"><?php esc_html_e( 'فعال', 'shabnam-muchwow' ); ?></span><?php if ( $shcd_demo_page_id ) : ?><a href="<?php echo esc_url( get_edit_post_link( $shcd_demo_page_id ) ); ?>"><?php esc_html_e( 'ویرایش برگه', 'shabnam-muchwow' ); ?></a><?php if ( function_exists( 'shabnam_elementor_edit_url' ) ) : ?><a href="<?php echo esc_url( shabnam_elementor_edit_url( $shcd_demo_page_id ) ); ?>"><?php esc_html_e( 'ویرایش با المنتور', 'shabnam-muchwow' ); ?></a><?php endif; ?><?php endif; ?></div></div>
							<div class="shcd-card shcd-demo-card shcd-pro-demo" aria-disabled="true"><img src="<?php echo esc_url( get_template_directory_uri() . '/assets/images/demos/home-two.jpg' ); ?>" alt="<?php esc_attr_e( 'پیش‌نمایش طرح 2', 'shabnam-muchwow' ); ?>"><div><strong><?php esc_html_e( 'طرح 2', 'shabnam-muchwow' ); ?></strong><span><?php esc_html_e( 'نسخه حرفه‌ای', 'shabnam-muchwow' ); ?></span></div><span class="shcd-pro-badge">PRO</span></div>
							<div class="shcd-card shcd-demo-card shcd-pro-demo" aria-disabled="true"><img src="<?php echo esc_url( get_template_directory_uri() . '/assets/images/demos/home-three.jpg' ); ?>" alt="<?php esc_attr_e( 'پیش‌نمایش طرح 3', 'shabnam-muchwow' ); ?>"><div><strong><?php esc_html_e( 'طرح 3', 'shabnam-muchwow' ); ?></strong><span><?php esc_html_e( 'نسخه حرفه‌ای', 'shabnam-muchwow' ); ?></span></div><span class="shcd-pro-badge">PRO</span></div>
						</div>
					</section>
					<section class="shcd-view" data-view="colors">
						<?php shabnam_framework_section_head( '02', __( 'رنگ‌ها و ظاهر سایت', 'shabnam-muchwow' ), __( 'رنگ‌های اصلی، پس‌زمینه، سطح کارت‌ها و متن را از همین بخش مدیریت کنید.', 'shabnam-muchwow' ) ); ?>
						<div class="shcd-grid shcd-grid-2 shcd-color-grid">
							<?php shabnam_framework_color_field( 'primary_color', __( 'رنگ اصلی', 'shabnam-muchwow' ), '#5836C7' ); ?>
							<?php shabnam_framework_color_field( 'secondary_color', __( 'رنگ تأکیدی', 'shabnam-muchwow' ), '#FFD200' ); ?>
							<?php shabnam_framework_color_field( 'tertiary_color', __( 'رنگ مکمل و گرادیان', 'shabnam-muchwow' ), '#FFA2E6' ); ?>
							<?php shabnam_framework_color_field( 'background_color', __( 'پس‌زمینه اصلی', 'shabnam-muchwow' ), '#0D042C' ); ?>
							<?php shabnam_framework_color_field( 'surface_color', __( 'پس‌زمینه کارت‌ها', 'shabnam-muchwow' ), '#1A0C3B' ); ?>
							<?php shabnam_framework_color_field( 'text_color', __( 'رنگ متن اصلی', 'shabnam-muchwow' ), '#FFFFFF' ); ?>
							<?php shabnam_framework_color_field( 'muted_color', __( 'رنگ متن کم‌رنگ', 'shabnam-muchwow' ), '#CFC4DB' ); ?>
							<?php shabnam_framework_color_field( 'blog_text_color', __( 'رنگ نوشته‌های وبلاگ', 'shabnam-muchwow' ), '#F5EFFA' ); ?>
						</div>
						<div class="shcd-card shcd-live-preview"><div><span><?php esc_html_e( 'پیش‌نمایش رنگ‌ها', 'shabnam-muchwow' ); ?></span><h3><?php esc_html_e( 'ترکیب رنگ انتخابی شما', 'shabnam-muchwow' ); ?></h3><p><?php esc_html_e( 'پس از ذخیره، رنگ‌های انتخاب‌شده در بخش‌های اصلی پوسته، وبلاگ و فروشگاه اعمال می‌شوند.', 'shabnam-muchwow' ); ?></p></div><button type="button"><?php esc_html_e( 'نمونه دکمه', 'shabnam-muchwow' ); ?></button></div>
					</section>

					<section class="shcd-view" data-view="typography">
						<?php shabnam_framework_section_head( '03', __( 'تایپوگرافی و اندازه‌ها', 'shabnam-muchwow' ), __( 'رابط تنظیمات همیشه با فونت شبنم نمایش داده می‌شود. از این بخش می‌توانید فونت و اندازه‌های متن در بخش عمومی سایت را تنظیم کنید.', 'shabnam-muchwow' ) ); ?>
						<div class="shcd-grid shcd-grid-2">
							<div class="shcd-card shcd-field-card"><label for="shcd-font-family"><?php esc_html_e( 'فونت اصلی سایت', 'shabnam-muchwow' ); ?></label><p><?php esc_html_e( 'پوسته به‌صورت پیش‌فرض با فونت آوینی طراحی شده است. فونت شبنم نیز در نسخه Trial قابل انتخاب است؛ بارگذاری فونت سفارشی در نسخه PRO ارائه می‌شود.', 'shabnam-muchwow' ); ?></p><select id="shcd-font-family" data-setting="font_family"><option value="avini"><?php esc_html_e( 'آوینی {پیشفرض}', 'shabnam-muchwow' ); ?></option><option value="shabnam"><?php esc_html_e( 'شبنم', 'shabnam-muchwow' ); ?></option></select></div>
							<?php shabnam_framework_font_field(); ?>
							<?php shabnam_framework_number_field( 'base_font_size', __( 'اندازه پایه متن', 'shabnam-muchwow' ), __( 'اندازه پایه متن را بر حسب پیکسل و در بازه ۱۳ تا ۲۲ تنظیم کنید.', 'shabnam-muchwow' ), 13, 22, 1 ); ?>
							<?php shabnam_framework_number_field( 'blog_content_font_size', __( 'اندازه متن مقاله', 'shabnam-muchwow' ), __( 'اندازه متن اصلی نوشته‌های وبلاگ را در صفحه نوشته تکی، بین ۱۴ تا ۲۸ پیکسل تنظیم کنید.', 'shabnam-muchwow' ), 14, 28, 1 ); ?>
							<?php shabnam_framework_number_field( 'blog_single_title_size', __( 'اندازه عنوان نوشته تکی', 'shabnam-muchwow' ), __( 'حداکثر اندازه عنوان اصلی مقاله را در صفحه نوشته تکی، بین ۳۲ تا ۸۴ پیکسل تنظیم کنید.', 'shabnam-muchwow' ), 32, 84, 1 ); ?>
							<?php shabnam_framework_number_field( 'blog_card_title_size', __( 'اندازه عنوان کارت‌های وبلاگ', 'shabnam-muchwow' ), __( 'اندازه عنوان نوشته‌ها را در کارت‌های صفحه اصلی و آرشیو وبلاگ، بین ۱۶ تا ۳۶ پیکسل تنظیم کنید.', 'shabnam-muchwow' ), 16, 36, 1 ); ?>
							<?php shabnam_framework_number_field( 'content_width', __( 'حداکثر عرض محتوا', 'shabnam-muchwow' ), __( 'حداکثر عرض محتوای سایت را بر حسب پیکسل و متناسب با نمایشگرهای دسکتاپ تعیین کنید.', 'shabnam-muchwow' ), 960, 1680, 10 ); ?>
							<?php shabnam_framework_number_field( 'border_radius', __( 'گردی گوشه کارت‌ها', 'shabnam-muchwow' ), __( 'میزان گردی گوشه‌ها را بر حسب پیکسل تعیین کنید؛ مقدار صفر، گوشه‌های کاملاً صاف ایجاد می‌کند.', 'shabnam-muchwow' ), 0, 48, 1 ); ?>
						</div>
					</section>

					<section class="shcd-view" data-view="header">
						<?php shabnam_framework_section_head( '04', __( 'هدر و تجربه کاربری', 'shabnam-muchwow' ), __( 'متن دکمه اصلی هدر و رفتار عناصر سراسری رابط کاربری را تنظیم کنید.', 'shabnam-muchwow' ) ); ?>
						<div class="shcd-card shcd-form-card">
							<?php shabnam_framework_text_field( 'header_cta_text', __( 'متن دکمه هدر', 'shabnam-muchwow' ), 'text' ); ?>
							<?php shabnam_framework_text_field( 'header_cta_url', __( 'نشانی دکمه هدر', 'shabnam-muchwow' ), 'url' ); ?>
						</div>
						<div class="shcd-grid shcd-grid-2">
							<?php shabnam_framework_toggle_field( 'sticky_header', __( 'هدر چسبان', 'shabnam-muchwow' ), __( 'با فعال‌کردن این گزینه، هدر هنگام پیمایش صفحه در دسترس کاربر باقی می‌ماند.', 'shabnam-muchwow' ) ); ?>
							<?php shabnam_framework_toggle_field( 'header_blur', __( 'پس‌زمینه شیشه‌ای هدر', 'shabnam-muchwow' ), __( 'با فعال‌کردن این گزینه، افکت محوشدگی در پشت منوی اصلی نمایش داده می‌شود.', 'shabnam-muchwow' ) ); ?>
							<?php shabnam_framework_toggle_field( 'show_cart', __( 'سبد خرید در هدر', 'shabnam-muchwow' ), __( 'اگر ووکامرس فعال باشد، آیکون سبد خرید و تعداد اقلام موجود در آن نمایش داده می‌شود.', 'shabnam-muchwow' ) ); ?>
							<?php shabnam_framework_toggle_field( 'show_account', __( 'آیکون ورود و حساب کاربری', 'shabnam-muchwow' ), __( 'با فعال‌کردن این گزینه، آیکون کاربر در هدر نمایش داده می‌شود و به برگه ورود یا حساب کاربری پیوند می‌خورد.', 'shabnam-muchwow' ) ); ?>
							<?php shabnam_framework_toggle_field( 'cart_animation', __( 'انیمیشن افزودن به سبد خرید', 'shabnam-muchwow' ), __( 'پس از افزودن محصول، تصویر آن با یک حرکت نرم به سمت آیکون سبد خرید هدایت می‌شود.', 'shabnam-muchwow' ) ); ?>
							<?php shabnam_framework_toggle_field( 'back_to_top', __( 'دکمه بازگشت به بالا', 'shabnam-muchwow' ), __( 'با فعال‌کردن این گزینه، دکمه شناور بازگشت سریع به ابتدای صفحه نمایش داده می‌شود.', 'shabnam-muchwow' ) ); ?>
							<?php shabnam_framework_select_field( 'back_to_top_position', __( 'جایگاه دکمه بازگشت به بالا', 'shabnam-muchwow' ), __( 'محل نمایش دکمه شناور را در سمت راست یا چپ صفحه انتخاب کنید.', 'shabnam-muchwow' ), array( 'right' => __( 'سمت راست', 'shabnam-muchwow' ), 'left' => __( 'سمت چپ', 'shabnam-muchwow' ) ) ); ?>
							<?php shabnam_framework_toggle_field( 'cookie_notice', __( 'پیام حریم خصوصی', 'shabnam-muchwow' ), __( 'با فعال‌کردن این گزینه، پیام کوتاه مربوط به استفاده از کوکی‌ها در سایت نمایش داده می‌شود.', 'shabnam-muchwow' ) ); ?>
							<?php shabnam_framework_toggle_field( 'site_spa_enabled', __( 'ناوبری SPA بدون صفحه لودینگ', 'shabnam-muchwow' ), __( 'پیوندهای داخلی پوسته بدون بازسازی کامل صفحه جابه‌جا می‌شوند. هدر و فوتر ثابت می‌مانند و در صورت ناسازگاری، بارگذاری عادی به‌عنوان مسیر پشتیبان استفاده می‌شود.', 'shabnam-muchwow' ) ); ?>
						</div>
					</section>


					<section class="shcd-view" data-view="auth">
						<?php shabnam_framework_section_head( '05', __( 'ورود، ثبت‌نام و حساب کاربری', 'shabnam-muchwow' ), __( 'برگه‌های ورود، ثبت‌نام و بازیابی رمز عبور بر اساس طراحی پوسته ساخته شده‌اند و فرم‌های آن‌ها مستقیماً با حساب‌های واقعی وردپرس کار می‌کنند.', 'shabnam-muchwow' ) ); ?>
						<div class="shcd-grid shcd-grid-2">
							<?php shabnam_framework_toggle_field( 'auth_registration_enabled', __( 'اجازه ثبت‌نام از فرم پوسته', 'shabnam-muchwow' ), __( 'با فعال‌کردن این گزینه، کاربران می‌توانند از برگه ثبت‌نام پوسته برای خود حساب وردپرس بسازند. این قابلیت را فقط زمانی فعال کنید که ثبت‌نام عمومی در سایت شما مجاز است.', 'shabnam-muchwow' ) ); ?>
							<?php shabnam_framework_select_field( 'auth_login_redirect', __( 'انتقال پس از ورود', 'shabnam-muchwow' ), __( 'کاربر بعد از ورود موفق به کدام بخش هدایت شود؟', 'shabnam-muchwow' ), array( 'account' => __( 'حساب کاربری / حساب من ووکامرس', 'shabnam-muchwow' ), 'home' => __( 'صفحه اصلی', 'shabnam-muchwow' ) ) ); ?>
						</div>
						<div class="shcd-card shcd-form-card shcd-mt"><h3><?php esc_html_e( 'برگه‌های آماده', 'shabnam-muchwow' ); ?></h3><p><?php esc_html_e( 'هر برگه را می‌توانید از ویرایشگر وردپرس یا مستقیماً با المنتور باز کنید. محتوای موجود شما در برگه‌های هم‌نام بازنویسی نمی‌شود و فعال‌سازی دوباره افزونه‌ها نیز نسخه تکراری از این برگه‌ها ایجاد نمی‌کند.', 'shabnam-muchwow' ); ?></p><div class="shcd-managed-pages"><?php foreach ( array( 'sign-in' => 'ورود', 'sign-up' => 'ثبت‌نام', 'reset-password' => 'بازیابی رمز عبور', 'contact' => 'تماس با ما', 'privacy' => 'حریم خصوصی', 'terms' => 'شرایط استفاده' ) as $shcd_page_key => $shcd_page_label ) : $shcd_pid = function_exists( 'shabnam_muchwow_get_page_id' ) ? shabnam_muchwow_get_page_id( $shcd_page_key ) : 0; if ( ! $shcd_pid ) { continue; } ?><div class="shcd-managed-page"><strong><?php echo esc_html( $shcd_page_label ); ?></strong><div class="shcd-page-links"><a class="shcd-btn shcd-btn-soft" href="<?php echo esc_url( get_edit_post_link( $shcd_pid ) ); ?>"><?php esc_html_e( 'ویرایش برگه', 'shabnam-muchwow' ); ?></a><?php if ( function_exists( 'shabnam_elementor_edit_url' ) ) : ?><a class="shcd-btn shcd-btn-soft" href="<?php echo esc_url( shabnam_elementor_edit_url( $shcd_pid ) ); ?>"><?php esc_html_e( 'ویرایش با المنتور', 'shabnam-muchwow' ); ?></a><?php endif; ?></div></div><?php endforeach; ?></div></div>
					</section>
					<section class="shcd-view" data-view="blog">
						<?php shabnam_framework_section_head( '05', __( 'وبلاگ و نوشته‌ها', 'shabnam-muchwow' ), __( 'نمایش آرشیو نوشته‌ها، کارت مقاله و صفحه داخلی هر مطلب را مدیریت کنید.', 'shabnam-muchwow' ) ); ?>
						<div class="shcd-card shcd-form-card">
							<div class="shcd-grid shcd-grid-2">
								<?php shabnam_framework_text_field( 'blog_archive_label', __( 'برچسب بالای آرشیو', 'shabnam-muchwow' ) ); ?>
								<?php shabnam_framework_text_field( 'blog_archive_title', __( 'عنوان پیش‌فرض آرشیو', 'shabnam-muchwow' ) ); ?>
								<?php shabnam_framework_text_field( 'blog_single_label', __( 'برچسب صفحه نوشته', 'shabnam-muchwow' ) ); ?>
								<?php shabnam_framework_number_field( 'blog_posts_per_page', __( 'تعداد نوشته در هر صفحه', 'shabnam-muchwow' ), __( 'تعداد نوشته‌های هر صفحه را بین ۳ تا ۳۰ مورد تعیین کنید.', 'shabnam-muchwow' ), 3, 30, 1 ); ?>
								<?php shabnam_framework_number_field( 'blog_columns', __( 'تعداد ستون‌های آرشیو', 'shabnam-muchwow' ), __( 'تعداد ستون‌ها را در نمایش دسکتاپ بین ۱ تا ۴ ستون تعیین کنید.', 'shabnam-muchwow' ), 1, 4, 1 ); ?>
								<?php shabnam_framework_number_field( 'blog_excerpt_words', __( 'طول خلاصه نوشته', 'shabnam-muchwow' ), __( 'تعداد واژه‌هایی را که در خلاصه کارت هر نوشته نمایش داده می‌شود تعیین کنید.', 'shabnam-muchwow' ), 8, 80, 1 ); ?>
							</div>
						</div>
						<div class="shcd-grid shcd-grid-2">
							<?php shabnam_framework_toggle_field( 'blog_show_featured', __( 'تصویر شاخص', 'shabnam-muchwow' ), __( 'با فعال‌کردن این گزینه، تصویر شاخص در کارت‌ها و صفحه داخلی نوشته نمایش داده می‌شود.', 'shabnam-muchwow' ) ); ?>
							<?php shabnam_framework_toggle_field( 'blog_show_excerpt', __( 'خلاصه نوشته', 'shabnam-muchwow' ), __( 'با فعال‌کردن این گزینه، بخشی از متن نوشته در کارت‌های آرشیو نمایش داده می‌شود.', 'shabnam-muchwow' ) ); ?>
							<?php shabnam_framework_toggle_field( 'blog_show_date', __( 'تاریخ انتشار', 'shabnam-muchwow' ), __( 'با فعال‌کردن این گزینه، تاریخ انتشار در کارت و صفحه داخلی نوشته نمایش داده می‌شود.', 'shabnam-muchwow' ) ); ?>
							<?php shabnam_framework_toggle_field( 'blog_show_author', __( 'نام نویسنده', 'shabnam-muchwow' ), __( 'با فعال‌کردن این گزینه، نام نویسنده در اطلاعات نوشته نمایش داده می‌شود.', 'shabnam-muchwow' ) ); ?>
							<?php shabnam_framework_toggle_field( 'blog_show_sidebar', __( 'سایدبار صفحه نوشته', 'shabnam-muchwow' ), __( 'اگر در سایدبار وبلاگ ابزارکی قرار داده باشید، با فعال‌کردن این گزینه آن ابزارک کنار نوشته نمایش داده می‌شود.', 'shabnam-muchwow' ) ); ?>
							<?php shabnam_framework_toggle_field( 'blog_show_tags', __( 'برچسب‌های نوشته', 'shabnam-muchwow' ), __( 'با فعال‌کردن این گزینه، برچسب‌های مطلب در انتهای نوشته نمایش داده می‌شوند.', 'shabnam-muchwow' ) ); ?>
							<?php shabnam_framework_toggle_field( 'blog_show_navigation', __( 'نوشته قبلی و بعدی', 'shabnam-muchwow' ), __( 'با فعال‌کردن این گزینه، پیوندهای نوشته قبلی و بعدی در انتهای مطلب نمایش داده می‌شوند.', 'shabnam-muchwow' ) ); ?>
							<?php shabnam_framework_toggle_field( 'blog_show_comments', __( 'دیدگاه‌های نوشته', 'shabnam-muchwow' ), __( 'با فعال‌کردن این گزینه، فرم و فهرست دیدگاه‌ها در نوشته‌های وبلاگ نمایش داده می‌شود.', 'shabnam-muchwow' ) ); ?>
						</div>
						<div class="shcd-grid shcd-grid-2 shcd-mt">
							<?php shabnam_framework_toggle_field( 'blog_show_categories', __( 'دسته‌بندی نوشته', 'shabnam-muchwow' ), __( 'با فعال‌کردن این گزینه، دسته‌بندی هر نوشته در کارت‌ها و صفحه داخلی آن نمایش داده می‌شود.', 'shabnam-muchwow' ) ); ?>
							<?php shabnam_framework_toggle_field( 'blog_show_reading_time', __( 'زمان تقریبی مطالعه', 'shabnam-muchwow' ), __( 'با فعال‌کردن این گزینه، زمان تقریبی مطالعه در اطلاعات نوشته نمایش داده می‌شود.', 'shabnam-muchwow' ) ); ?>
							<?php shabnam_framework_toggle_field( 'blog_reading_progress', __( 'نوار پیشرفت مطالعه', 'shabnam-muchwow' ), __( 'در صفحه نوشته تکی، یک نوار باریک میزان پیشرفت خواندن مقاله را در بالای صفحه نشان می‌دهد.', 'shabnam-muchwow' ) ); ?>
							<?php shabnam_framework_toggle_field( 'blog_related_posts', __( 'نوشته‌های مرتبط', 'shabnam-muchwow' ), __( 'با فعال‌کردن این گزینه، نوشته‌های مرتبط بر پایه دسته‌بندی‌های مشترک در انتهای مطلب نمایش داده می‌شوند.', 'shabnam-muchwow' ) ); ?>
							<?php shabnam_framework_number_field( 'blog_related_count', __( 'تعداد نوشته‌های مرتبط', 'shabnam-muchwow' ), __( 'تعداد نوشته‌های مرتبط را بین ۲ تا ۸ مورد تعیین کنید.', 'shabnam-muchwow' ), 2, 8, 1 ); ?>
						</div>
						<?php $shabnam_post_counts = wp_count_posts( 'post' ); $shabnam_published_count = isset( $shabnam_post_counts->publish ) ? (int) $shabnam_post_counts->publish : 0; $shabnam_draft_count = isset( $shabnam_post_counts->draft ) ? (int) $shabnam_post_counts->draft : 0; ?>
						<div class="shcd-card shcd-form-card shcd-mt">
							<div class="shcd-card-title"><h3><?php esc_html_e( 'سکشن وبلاگ در صفحه اصلی', 'shabnam-muchwow' ); ?></h3><span><?php echo esc_html( sprintf( __( '%1$d منتشرشده • %2$d پیش‌نویس', 'shabnam-muchwow' ), $shabnam_published_count, $shabnam_draft_count ) ); ?></span></div>
							<?php if ( 0 === $shabnam_published_count && $shabnam_draft_count > 0 ) : ?><div class="shcd-inline-notice shcd-inline-notice-warning"><strong><?php esc_html_e( 'نوشته‌ها هنوز منتشر نشده‌اند.', 'shabnam-muchwow' ); ?></strong><span><?php echo esc_html( sprintf( __( '%d نوشته در وضعیت پیش‌نویس دارید. پیش‌نویس‌ها برای بازدیدکنندگان نمایش داده نمی‌شوند؛ برای نمایش در صفحه اصلی، آن‌ها را منتشر کنید.', 'shabnam-muchwow' ), $shabnam_draft_count ) ); ?></span></div><?php endif; ?>
							<?php shabnam_framework_toggle_field( 'blog_home_enabled', __( 'نمایش سکشن وبلاگ', 'shabnam-muchwow' ), __( 'با فعال‌کردن این گزینه، نوشته‌های منتشرشده وردپرس در صفحه اصلی نمایش داده می‌شوند.', 'shabnam-muchwow' ) ); ?>
							<div class="shcd-grid shcd-grid-2">
								<?php shabnam_framework_text_field( 'blog_home_title', __( 'عنوان سکشن', 'shabnam-muchwow' ) ); ?>
								<?php shabnam_framework_text_field( 'blog_home_subtitle', __( 'توضیح کوتاه سکشن', 'shabnam-muchwow' ) ); ?>
								<?php shabnam_framework_number_field( 'blog_home_count', __( 'تعداد نوشته‌ها', 'shabnam-muchwow' ), __( 'تعداد کارت‌های قابل نمایش را بین ۲ تا ۱۲ مورد تعیین کنید.', 'shabnam-muchwow' ), 2, 12, 1 ); ?>
								<?php shabnam_framework_number_field( 'blog_home_columns', __( 'تعداد ستون‌های سکشن', 'shabnam-muchwow' ), __( 'تعداد ستون‌ها را در نمایش دسکتاپ بین ۱ تا ۴ ستون تعیین کنید.', 'shabnam-muchwow' ), 1, 4, 1 ); ?>
								<?php shabnam_framework_select_field( 'blog_home_category', __( 'دسته‌بندی منبع', 'shabnam-muchwow' ), __( 'اگر می‌خواهید نوشته‌های همه دسته‌بندی‌ها نمایش داده شوند، گزینه «همه دسته‌ها» را انتخاب کنید.', 'shabnam-muchwow' ), shabnam_framework_blog_category_options() ); ?>
								<?php shabnam_framework_select_field( 'blog_home_orderby', __( 'مرتب‌سازی نوشته‌ها', 'shabnam-muchwow' ), __( 'معیار مرتب‌سازی نوشته‌های بخش وبلاگ در صفحه اصلی را انتخاب کنید.', 'shabnam-muchwow' ), array( 'date' => __( 'تاریخ انتشار', 'shabnam-muchwow' ), 'modified' => __( 'آخرین ویرایش', 'shabnam-muchwow' ), 'comment_count' => __( 'بیشترین دیدگاه', 'shabnam-muchwow' ), 'title' => __( 'عنوان', 'shabnam-muchwow' ) ) ); ?>
								<?php shabnam_framework_select_field( 'blog_home_order', __( 'ترتیب نمایش', 'shabnam-muchwow' ), __( 'ترتیب نمایش نتایج را به‌صورت صعودی یا نزولی انتخاب کنید.', 'shabnam-muchwow' ), array( 'DESC' => __( 'نزولی؛ جدیدترها ابتدا', 'shabnam-muchwow' ), 'ASC' => __( 'صعودی؛ قدیمی‌ترها ابتدا', 'shabnam-muchwow' ) ) ); ?>
							</div>
							<p class="shcd-help"><?php esc_html_e( 'این سکشن فقط نوشته‌های «منتشرشده» از نوع نوشته استاندارد وردپرس را می‌خواند. در صفحه‌های ساخته‌شده با المنتور نیز ویجت «وبلاگ MuchWOW» از همین منبع استفاده می‌کند.', 'shabnam-muchwow' ); ?></p>
							<?php $shabnam_blog_page_id = function_exists( 'shabnam_muchwow_get_page_id' ) ? shabnam_muchwow_get_page_id( 'blog' ) : 0; ?>
							<?php if ( $shabnam_blog_page_id ) : ?><div class="shcd-page-links shcd-mt"><a class="shcd-btn shcd-btn-soft" href="<?php echo esc_url( get_permalink( $shabnam_blog_page_id ) ); ?>" target="_blank" rel="noopener noreferrer"><?php esc_html_e( 'مشاهده آرشیو /blog', 'shabnam-muchwow' ); ?></a><a class="shcd-btn shcd-btn-soft" href="<?php echo esc_url( get_edit_post_link( $shabnam_blog_page_id ) ); ?>"><?php esc_html_e( 'ویرایش برگه وبلاگ', 'shabnam-muchwow' ); ?></a></div><?php endif; ?>
						</div>
					</section>

					<section class="shcd-view" data-view="shop">
						<?php shabnam_framework_section_head( '06', __( 'فروشگاه و محصولات', 'shabnam-muchwow' ), __( 'چیدمان آرشیو محصولات و سکشن فروشگاه در صفحه اصلی را تنظیم کنید.', 'shabnam-muchwow' ) ); ?>
						<div class="shcd-grid shcd-grid-2">
							<?php shabnam_framework_toggle_field( 'show_breadcrumbs', __( 'مسیر راهنما', 'shabnam-muchwow' ), __( 'با فعال‌کردن این گزینه، مسیر راهنما داخل محتوای فروشگاه و با فاصله مناسب از هدر نمایش داده می‌شود.', 'shabnam-muchwow' ) ); ?>
							<?php shabnam_framework_toggle_field( 'shop_show_result_count', __( 'تعداد نتایج', 'shabnam-muchwow' ), __( 'با فعال‌کردن این گزینه، تعداد محصولات پیدا‌شده در بالای آرشیو نمایش داده می‌شود.', 'shabnam-muchwow' ) ); ?>
							<?php shabnam_framework_toggle_field( 'shop_show_ordering', __( 'مرتب‌سازی محصولات', 'shabnam-muchwow' ), __( 'با فعال‌کردن این گزینه، فهرست مرتب‌سازی ووکامرس در صفحه آرشیو محصولات نمایش داده می‌شود.', 'shabnam-muchwow' ) ); ?>
							<?php shabnam_framework_toggle_field( 'shop_show_rating', __( 'امتیاز محصول در کارت', 'shabnam-muchwow' ), __( 'با فعال‌کردن این گزینه، میانگین امتیاز هر محصول در کارت فروشگاه نمایش داده می‌شود.', 'shabnam-muchwow' ) ); ?>
							<?php shabnam_framework_toggle_field( 'shop_show_sale_badge', __( 'نشان تخفیف', 'shabnam-muchwow' ), __( 'با فعال‌کردن این گزینه، برچسب حراج روی محصولات دارای تخفیف نمایش داده می‌شود.', 'shabnam-muchwow' ) ); ?>
							<?php shabnam_framework_number_field( 'shop_columns', __( 'تعداد ستون محصولات', 'shabnam-muchwow' ), __( 'تعداد ستون‌های محصولات را در نمایش دسکتاپ بین ۲ تا ۴ ستون تعیین کنید.', 'shabnam-muchwow' ), 2, 4, 1 ); ?>
							<?php shabnam_framework_number_field( 'shop_products_per_page', __( 'تعداد محصول در هر صفحه', 'shabnam-muchwow' ), __( 'تعداد محصولات هر صفحه را بین ۴ تا ۴۸ مورد تعیین کنید.', 'shabnam-muchwow' ), 4, 48, 1 ); ?>
						</div>
						<div class="shcd-card shcd-form-card shcd-mt">
							<h3><?php esc_html_e( 'سکشن فروشگاه در صفحه اصلی', 'shabnam-muchwow' ); ?></h3>
							<?php shabnam_framework_toggle_field( 'shop_home_enabled', __( 'نمایش سکشن فروشگاه', 'shabnam-muchwow' ), __( 'با فعال‌کردن این گزینه، محصولات تازه در بخش فروشگاه صفحه اصلی نمایش داده می‌شوند.', 'shabnam-muchwow' ) ); ?>
							<div class="shcd-grid shcd-grid-2">
								<?php shabnam_framework_text_field( 'shop_home_title', __( 'عنوان سکشن', 'shabnam-muchwow' ) ); ?>
								<?php shabnam_framework_text_field( 'shop_home_subtitle', __( 'توضیح کوتاه سکشن', 'shabnam-muchwow' ) ); ?>
								<?php shabnam_framework_number_field( 'shop_home_count', __( 'تعداد محصولات', 'shabnam-muchwow' ), __( 'تعداد کارت‌های قابل نمایش را بین ۲ تا ۱۲ مورد تعیین کنید.', 'shabnam-muchwow' ), 2, 12, 1 ); ?>
								<?php shabnam_framework_select_field( 'shop_home_orderby', __( 'مرتب‌سازی سکشن فروشگاه', 'shabnam-muchwow' ), __( 'معیار مرتب‌سازی محصولات بخش فروشگاه در صفحه اصلی را انتخاب کنید.', 'shabnam-muchwow' ), array( 'date' => __( 'تاریخ انتشار', 'shabnam-muchwow' ), 'modified' => __( 'آخرین ویرایش', 'shabnam-muchwow' ), 'menu_order' => __( 'ترتیب منو', 'shabnam-muchwow' ), 'title' => __( 'عنوان', 'shabnam-muchwow' ) ) ); ?>
								<?php shabnam_framework_select_field( 'shop_home_order', __( 'ترتیب محصولات', 'shabnam-muchwow' ), __( 'ترتیب نمایش نتایج را به‌صورت صعودی یا نزولی انتخاب کنید.', 'shabnam-muchwow' ), array( 'DESC' => __( 'نزولی', 'shabnam-muchwow' ), 'ASC' => __( 'صعودی', 'shabnam-muchwow' ) ) ); ?>
								<?php shabnam_framework_number_field( 'shop_related_count', __( 'تعداد محصولات مرتبط', 'shabnam-muchwow' ), __( 'تعداد محصولات مرتبط را در صفحه محصول بین ۲ تا ۸ مورد تعیین کنید.', 'shabnam-muchwow' ), 2, 8, 1 ); ?>
							</div>
							<?php shabnam_framework_toggle_field( 'shop_hide_out_of_stock', __( 'پنهان‌کردن محصولات ناموجود', 'shabnam-muchwow' ), __( 'با فعال‌کردن این گزینه، محصولات ناموجود در بخش فروشگاه صفحه اصلی نمایش داده نمی‌شوند.', 'shabnam-muchwow' ) ); ?>
						</div>
					</section>

					<section class="shcd-view" data-view="footer">
						<?php shabnam_framework_section_head( '07', __( 'فوتر و راه‌های ارتباطی', 'shabnam-muchwow' ), __( 'متن پایانی سایت و نشانی شبکه‌های اجتماعی را در یک بخش مدیریت کنید.', 'shabnam-muchwow' ) ); ?>
						<div class="shcd-card shcd-form-card">
							<?php shabnam_framework_text_field( 'footer_title', __( 'عنوان اصلی فوتر', 'shabnam-muchwow' ) ); ?>
							<?php shabnam_framework_text_field( 'footer_description', __( 'توضیح کوتاه فوتر', 'shabnam-muchwow' ) ); ?>
							<?php shabnam_framework_text_field( 'copyright_text', __( 'متن کپی‌رایت سفارشی', 'shabnam-muchwow' ) ); ?>
							<p class="shcd-help"><?php esc_html_e( 'اگر متن کپی‌رایت را خالی بگذارید، نام سایت و سال جاری به‌صورت خودکار نمایش داده می‌شود.', 'shabnam-muchwow' ); ?></p>
							<div class="shcd-grid shcd-grid-2">
								<?php shabnam_framework_text_field( 'instagram_url', 'اینستاگرام', 'url' ); ?>
								<?php shabnam_framework_text_field( 'bale_url', 'بله', 'url' ); ?>
								<?php shabnam_framework_text_field( 'eitaa_url', 'ایتا', 'url' ); ?>
								<?php shabnam_framework_text_field( 'aparat_url', 'آپارات', 'url' ); ?>
								<?php shabnam_framework_text_field( 'facebook_url', 'فیسبوک', 'url' ); ?>
								<?php shabnam_framework_text_field( 'twitter_url', 'ایکس / توییتر', 'url' ); ?>
								<?php shabnam_framework_text_field( 'youtube_url', 'یوتیوب', 'url' ); ?>
								<?php shabnam_framework_text_field( 'medium_url', 'مدیوم', 'url' ); ?>
							</div>
						</div>
					</section>

					<section class="shcd-view" data-view="health">
						<?php shabnam_framework_section_head( 'PRO', __( 'پایش سلامت شبنم', 'shabnam-muchwow' ), __( 'مرکز پایش سلامت و گزارش فنی در نسخه حرفه‌ای فریم‌ورک شبنم ارائه می‌شود.', 'shabnam-muchwow' ) ); ?>
						<div class="shcd-pro-view"><div class="shcd-pro-blur"><div class="shcd-health-overview"><div class="shcd-pro-orb">97%</div><div><h3><?php esc_html_e( 'پایش سازگاری و سلامت سایت', 'shabnam-muchwow' ); ?></h3><p><?php esc_html_e( 'بررسی وردپرس، PHP، ووکامرس، المنتور، REST API و محیط میزبانی.', 'shabnam-muchwow' ); ?></p></div></div><div class="shcd-terminal-card shcd-mt"><div class="shcd-terminal-bar"><strong>shabnam://health</strong></div><div class="shcd-terminal-screen">✓ WordPress &nbsp; ✓ PHP &nbsp; ✓ WooCommerce &nbsp; ✓ Elementor</div></div></div><span class="shcd-pro-badge shcd-pro-badge-center">PRO</span></div>
					</section>

					<section class="shcd-view" data-view="performance">
						<?php shabnam_framework_section_head( 'PRO', __( 'مرکز افزایش سرعت', 'shabnam-muchwow' ), __( 'کش صفحات، آزمون سرعت، تشخیص گلوگاه و تبدیل WebP در نسخه حرفه‌ای فعال می‌شوند.', 'shabnam-muchwow' ) ); ?>
						<div class="shcd-pro-view"><div class="shcd-pro-blur"><div class="shcd-performance-hero"><div class="shcd-pro-orb">94%</div><div><h3><?php esc_html_e( 'مرکز افزایش سرعت شبنم', 'shabnam-muchwow' ); ?></h3><p><?php esc_html_e( 'کش هوشمند، سنجش قبل و بعد، WebP و تحلیل عوامل کندی.', 'shabnam-muchwow' ); ?></p></div></div><div class="shcd-grid shcd-grid-2 shcd-mt"><div class="shcd-card"><h3><?php esc_html_e( 'کش صفحات عمومی', 'shabnam-muchwow' ); ?></h3><p><?php esc_html_e( 'مدیریت کش و پاک‌سازی یک‌کلیکی.', 'shabnam-muchwow' ); ?></p></div><div class="shcd-card"><h3>WebP</h3><p><?php esc_html_e( 'بهینه‌سازی تصاویر و کاهش حجم انتقال.', 'shabnam-muchwow' ); ?></p></div></div></div><span class="shcd-pro-badge shcd-pro-badge-center">PRO</span></div>
					</section>

					<section class="shcd-view" data-view="about">
						<div class="shcd-about-hero">
							<img src="<?php echo esc_url( get_template_directory_uri() . '/assets/images/shcd-logo-admin.png' ); ?>" alt="SHCD">
							<div><span>SHABNAM FRAMEWORK 1.0</span><h2><?php esc_html_e( 'فریم‌ورک پوسته شبنم', 'shabnam-muchwow' ); ?></h2><p><?php esc_html_e( 'فریم‌ورک شبنم، تنظیمات اختصاصی پوسته را در یک رابط تک‌صفحه‌ای و سبک در اختیار شما قرار می‌دهد و با امکانات استاندارد وردپرس و ووکامرس سازگار است.', 'shabnam-muchwow' ); ?></p></div>
						</div>
						<div class="shcd-grid shcd-grid-2">
							<div class="shcd-card"><span class="shcd-kicker"><?php esc_html_e( 'توسعه‌دهنده', 'shabnam-muchwow' ); ?></span><h3><?php esc_html_e( 'توسعه ارتباطات شبنم', 'shabnam-muchwow' ); ?></h3><a href="https://shabnam.dev/" target="_blank" rel="noopener noreferrer">shabnam.dev</a></div>
							<div class="shcd-card"><span class="shcd-kicker"><?php esc_html_e( 'معماری پنل', 'shabnam-muchwow' ); ?></span><h3>SPA + WordPress REST API</h3><p><?php esc_html_e( 'اطلاعات اولیه هم‌زمان با صفحه دریافت می‌شود و جابه‌جایی میان بخش‌های تنظیمات، بدون بارگذاری دوباره صفحه انجام می‌گیرد.', 'shabnam-muchwow' ); ?></p></div>
						</div>
						<div class="shcd-card shcd-mt shcd-about-health-link shcd-pro-mini"><div><span class="shcd-kicker"><?php esc_html_e( 'امکانات حرفه‌ای', 'shabnam-muchwow' ); ?></span><h3><?php esc_html_e( 'پایش سلامت و مرکز افزایش سرعت', 'shabnam-muchwow' ); ?></h3><p><?php esc_html_e( 'این دو مرکز در نسخه PRO فریم‌ورک شبنم فعال می‌شوند.', 'shabnam-muchwow' ); ?></p></div><b>PRO</b></div>
					</section>
				</div>
			</main>
			<div class="shcd-toast" id="shcd-toast" role="status" aria-live="polite"></div>
		</div>
	</div>
	<?php
}

/**
 * Render a section heading.
 *
 * @param string $number Number.
 * @param string $title Title.
 * @param string $description Description.
 */
function shabnam_framework_section_head( $number, $title, $description ) {
	?>
	<div class="shcd-section-head"><div><span><?php echo esc_html( $number ); ?></span><h2><?php echo esc_html( $title ); ?></h2><p><?php echo esc_html( $description ); ?></p></div></div>
	<?php
}

/**
 * Render image media field.
 */
function shabnam_framework_media_field( $key, $label, $badge, $select_label, $icon = false ) {
	?>
	<div class="shcd-card shcd-media-field" data-media-field="<?php echo esc_attr( $key ); ?>">
		<div class="shcd-card-title"><h3><?php echo esc_html( $label ); ?></h3><span><?php echo esc_html( $badge ); ?></span></div>
		<div class="shcd-media-preview<?php echo $icon ? ' is-icon' : ''; ?>"><div class="shcd-media-empty"><?php echo $icon ? '◈' : 'SHCD'; ?></div><img alt="" hidden></div>
		<div class="shcd-inline-actions"><button class="shcd-btn shcd-btn-soft" type="button" data-media-select><?php echo esc_html( $select_label ); ?></button><button class="shcd-link-btn" type="button" data-media-remove><?php esc_html_e( 'حذف', 'shabnam-muchwow' ); ?></button></div>
	</div>
	<?php
}

/**
 * Render the font attachment selector.
 */
function shabnam_framework_font_field() {
	?>
	<div class="shcd-card shcd-font-field shcd-pro-field" aria-disabled="true">
		<div class="shcd-pro-blur">
			<div class="shcd-card-title"><h3><?php esc_html_e( 'فونت سفارشی سایت', 'shabnam-muchwow' ); ?></h3><span>WOFF / WOFF2</span></div>
			<div class="shcd-font-preview"><strong><?php esc_html_e( 'بارگذاری فونت اختصاصی', 'shabnam-muchwow' ); ?></strong><span><?php esc_html_e( 'در نسخه حرفه‌ای می‌توانید فونت اختصاصی خود را بارگذاری و روی سایت اعمال کنید.', 'shabnam-muchwow' ); ?></span></div>
			<div class="shcd-inline-actions"><span class="shcd-btn shcd-btn-soft"><?php esc_html_e( 'انتخاب فایل فونت', 'shabnam-muchwow' ); ?></span></div>
		</div>
		<span class="shcd-pro-badge">PRO</span>
	</div>
	<?php
}

/**
 * Render a color field shell.
 */
function shabnam_framework_color_field( $key, $label, $fallback ) {
	?>
	<div class="shcd-card shcd-color-field"><div><label for="shcd-<?php echo esc_attr( $key ); ?>"><?php echo esc_html( $label ); ?></label><code data-color-code="<?php echo esc_attr( $key ); ?>"><?php echo esc_html( $fallback ); ?></code></div><div class="shcd-color-control"><input type="color" id="shcd-<?php echo esc_attr( $key ); ?>" data-setting="<?php echo esc_attr( $key ); ?>" value="<?php echo esc_attr( $fallback ); ?>"><input class="shcd-color-text" type="text" inputmode="text" maxlength="7" data-color-text="<?php echo esc_attr( $key ); ?>" value="<?php echo esc_attr( $fallback ); ?>" spellcheck="false"></div></div>
	<?php
}

/**
 * Render a text/url field shell.
 */
function shabnam_framework_text_field( $key, $label, $type = 'text' ) {
	?>
	<div class="shcd-field"><label for="shcd-<?php echo esc_attr( $key ); ?>"><?php echo esc_html( $label ); ?></label><input id="shcd-<?php echo esc_attr( $key ); ?>" type="<?php echo esc_attr( $type ); ?>" data-setting="<?php echo esc_attr( $key ); ?>" autocomplete="off"></div>
	<?php
}

/**
 * Render a numeric field.
 */
function shabnam_framework_number_field( $key, $label, $description, $min, $max, $step = 1 ) {
	?>
	<div class="shcd-card shcd-field-card"><label for="shcd-<?php echo esc_attr( $key ); ?>"><?php echo esc_html( $label ); ?></label><p><?php echo esc_html( $description ); ?></p><input id="shcd-<?php echo esc_attr( $key ); ?>" type="number" data-setting="<?php echo esc_attr( $key ); ?>" min="<?php echo esc_attr( $min ); ?>" max="<?php echo esc_attr( $max ); ?>" step="<?php echo esc_attr( $step ); ?>"></div>
	<?php
}

/**
 * Render a select field.
 *
 * @param string              $key Setting key.
 * @param string              $label Field label.
 * @param string              $description Field help text.
 * @param array<string,string> $options Allowed options.
 */
function shabnam_framework_select_field( $key, $label, $description, $options ) {
	?>
	<div class="shcd-card shcd-field-card"><label for="shcd-<?php echo esc_attr( $key ); ?>"><?php echo esc_html( $label ); ?></label><p><?php echo esc_html( $description ); ?></p><select id="shcd-<?php echo esc_attr( $key ); ?>" data-setting="<?php echo esc_attr( $key ); ?>"><?php foreach ( $options as $value => $option_label ) : ?><option value="<?php echo esc_attr( $value ); ?>"><?php echo esc_html( $option_label ); ?></option><?php endforeach; ?></select></div>
	<?php
}

/**
 * Return category options for the homepage blog source.
 *
 * @return array<string,string>
 */
function shabnam_framework_blog_category_options() {
	$options = array( '0' => __( 'همه دسته‌ها', 'shabnam-muchwow' ) );
	$terms = get_categories( array( 'hide_empty' => false, 'orderby' => 'name', 'order' => 'ASC' ) );
	if ( ! is_wp_error( $terms ) ) {
		foreach ( $terms as $term ) {
			$options[ (string) absint( $term->term_id ) ] = $term->name;
		}
	}
	return $options;
}

/**
 * Render a toggle field shell.
 */
function shabnam_framework_toggle_field( $key, $label, $description ) {
	?>
	<div class="shcd-card shcd-toggle-card"><div><h3><?php echo esc_html( $label ); ?></h3><p><?php echo esc_html( $description ); ?></p></div><label class="shcd-switch"><input type="checkbox" data-setting="<?php echo esc_attr( $key ); ?>"><span aria-hidden="true"></span><em class="screen-reader-text"><?php echo esc_html( $label ); ?></em></label></div>
	<?php
}

/**
 * Convert hex color to RGB triplet.
 *
 * @param string $hex Hex color.
 * @return string
 */
function shabnam_framework_hex_to_rgb( $hex ) {
	$hex = sanitize_hex_color( $hex );
	if ( ! $hex ) {
		return '0,0,0';
	}
	$hex = ltrim( $hex, '#' );
	return hexdec( substr( $hex, 0, 2 ) ) . ',' . hexdec( substr( $hex, 2, 2 ) ) . ',' . hexdec( substr( $hex, 4, 2 ) );
}

/**
 * Return a CSS-safe font stack for the selected typography option.
 *
 * @param array<string,mixed>|null $settings Settings.
 * @return string
 */
function shabnam_framework_font_stack( $settings = null ) {
	$settings = is_array( $settings ) ? $settings : shabnam_framework_get_settings();
	$font     = isset( $settings['font_family'] ) ? sanitize_key( (string) $settings['font_family'] ) : 'avini';
	$stacks   = array(
		'avini'   => '"Avini",sans-serif',
		'shabnam' => '"SHCD Shabnam",sans-serif',
	);
	return isset( $stacks[ $font ] ) ? $stacks[ $font ] : $stacks['avini'];
}

/**
 * Apply framework appearance settings to the front end.
 */
function shabnam_framework_frontend_css() {
	$settings   = shabnam_framework_get_settings();
	$primary    = sanitize_hex_color( $settings['primary_color'] ) ?: '#5836C7';
	$secondary  = sanitize_hex_color( $settings['secondary_color'] ) ?: '#FFD200';
	$tertiary   = sanitize_hex_color( $settings['tertiary_color'] ) ?: '#FFA2E6';
	$background = sanitize_hex_color( $settings['background_color'] ) ?: '#0D042C';
	$surface    = sanitize_hex_color( $settings['surface_color'] ) ?: '#1A0C3B';
	$text       = sanitize_hex_color( $settings['text_color'] ) ?: '#FFFFFF';
	$muted      = sanitize_hex_color( $settings['muted_color'] ) ?: '#CFC4DB';
	$blog_text  = sanitize_hex_color( $settings['blog_text_color'] ?? '' ) ?: '#F5EFFA';
	$base_size  = max( 13, min( 22, absint( $settings['base_font_size'] ) ) );
	$blog_content_size = max( 14, min( 28, absint( $settings['blog_content_font_size'] ?? 18 ) ) );
	$blog_single_title_size = max( 32, min( 84, absint( $settings['blog_single_title_size'] ?? 54 ) ) );
	$blog_card_title_size = max( 16, min( 36, absint( $settings['blog_card_title_size'] ?? 22 ) ) );
	$content    = max( 960, min( 1680, absint( $settings['content_width'] ) ) );
	$radius     = max( 0, min( 48, absint( $settings['border_radius'] ) ) );
	$shop_columns = max( 2, min( 4, absint( $settings['shop_columns'] ) ) );
	$logo_width = max( 60, min( 320, absint( $settings['logo_width'] ) ) );
	$mobile_logo_width = max( 24, min( 96, absint( $settings['mobile_logo_width'] ) ) );
	$font_stack = shabnam_framework_font_stack( $settings );
	$custom_demo_colors = ! empty( $settings['demo_use_custom_colors'] );

	$css = '@font-face{font-family:"Avini";src:url("' . esc_url( get_template_directory_uri() . '/assets/fonts/aviny.ttf' ) . '") format("truetype");font-weight:400;font-style:normal;font-display:swap;}';
	$css .= '@font-face{font-family:"SHCD Shabnam";src:url("' . esc_url( get_template_directory_uri() . '/assets/fonts/Shabnam-FD.woff2' ) . '") format("woff2");font-weight:400;font-style:normal;font-display:swap;}';

	$css .= ':root{'
		. '--shcd-primary:' . $primary . ';--shcd-secondary:' . $secondary . ';--shcd-tertiary:' . $tertiary . ';--shcd-background-color:' . $background . ';--shcd-surface:' . $surface . ';--shcd-text:' . $text . ';--shcd-muted:' . $muted . ';--shcd-blog-text:' . $blog_text . ';'
		. '--shcd-content-width:' . $content . 'px;--shcd-radius:' . $radius . 'px;--shcd-base-font-size:' . $base_size . 'px;--shcd-blog-content-font-size:' . $blog_content_size . 'px;--shcd-blog-single-title-size:' . $blog_single_title_size . 'px;--shcd-blog-card-title-size:' . $blog_card_title_size . 'px;--shcd-shop-columns:' . $shop_columns . ';--shcd-logo-width:' . $logo_width . 'px;--shcd-mobile-logo-width:' . $mobile_logo_width . 'px;'
		. '}';

	$css .= 'html{font-size:' . $base_size . 'px}body.shabnam-theme{font-family:' . $font_stack . '!important}'
		. 'body.shabnam-theme button,body.shabnam-theme input,body.shabnam-theme textarea,body.shabnam-theme select{font-family:' . $font_stack . '!important}'
		. 'body.shabnam-theme .container{max-width:min(var(--shcd-content-width),calc(100% - 2rem))}'
		. 'body.shabnam-theme .shabnam-site-logo img{width:var(--shcd-logo-width)!important;max-width:100%;height:auto!important;object-fit:contain}'
		. 'body.shabnam-theme #uc-menu-panel .uc-logo img{width:var(--shcd-mobile-logo-width)!important;height:auto!important}'
		. 'body.shabnam-theme .shabnam-post-card,body.shabnam-theme .shabnam-product-card,body.shabnam-theme .shabnam-entry-content,body.shabnam-theme .woocommerce div.product .woocommerce-tabs,body.shabnam-theme .widget{background:' . $surface . '!important;border-radius:' . $radius . 'px!important}'
		. 'body.shabnam-theme .shabnam-home-shop,body.shabnam-theme .shabnam-home-blog,body.shabnam-theme .shabnam-blog-archive,body.shabnam-theme .shabnam-single-post,body.shabnam-theme .shabnam-shop-main{--shcd-section-bg:' . $background . ';}'
		. 'body.shabnam-theme .shabnam-section-card{border-radius:' . $radius . 'px!important;background:' . $surface . '!important}'
		. 'body.shabnam-theme .uc-navbar-container .uc-navbar{border-radius:' . min( $radius, 32 ) . 'px!important}'
		. 'body.shabnam-theme.single-post .shabnam-entry-content{color:' . $blog_text . '!important}'
		. 'body.shabnam-theme.single-post .shabnam-entry-content p,body.shabnam-theme.single-post .shabnam-entry-content li,body.shabnam-theme.single-post .shabnam-entry-content h1,body.shabnam-theme.single-post .shabnam-entry-content h2,body.shabnam-theme.single-post .shabnam-entry-content h3,body.shabnam-theme.single-post .shabnam-entry-content h4,body.shabnam-theme.single-post .shabnam-entry-content h5,body.shabnam-theme.single-post .shabnam-entry-content h6,body.shabnam-theme.single-post .shabnam-entry-content strong,body.shabnam-theme.single-post .shabnam-entry-content em,body.shabnam-theme.single-post .shabnam-entry-content span,body.shabnam-theme.single-post .shabnam-entry-content small,body.shabnam-theme.single-post .shabnam-entry-content blockquote,body.shabnam-theme.single-post .shabnam-entry-content td,body.shabnam-theme.single-post .shabnam-entry-content th,body.shabnam-theme.single-post .shabnam-entry-content figcaption{color:' . $blog_text . '!important}'
		. 'body.shabnam-theme.single-post .shabnam-entry-content{font-size:var(--shcd-blog-content-font-size)!important;line-height:2.05}'
		. 'body.shabnam-theme.single-post .shabnam-single-post article>header h1{font-size:clamp(2rem,5vw,var(--shcd-blog-single-title-size))!important;line-height:1.25!important}'
		. 'body.shabnam-theme .shabnam-post-card h2{font-size:var(--shcd-blog-card-title-size)!important;line-height:1.65!important}';

	/* Trial: plan 1 is the only active home plan. */

	if ( $custom_demo_colors ) {
		$css .= ':root{'
			. '--color-primary:' . $primary . ';--color-primary-500:' . $primary . ';--bs-primary-rgb:' . shabnam_framework_hex_to_rgb( $primary ) . ';'
			. '--color-secondary:' . $secondary . ';--color-secondary-500:' . $secondary . ';--bs-secondary-rgb:' . shabnam_framework_hex_to_rgb( $secondary ) . ';'
			. '--color-tertiary:' . $tertiary . ';--color-tertiary-500:' . $tertiary . ';'
			. '--color-gray-700:' . $background . ';--bs-gray-700-rgb:' . shabnam_framework_hex_to_rgb( $background ) . ';}'
			. 'body.shabnam-theme{background:' . $background . '!important;color:' . $text . '!important}'
			. 'body.shabnam-theme .bg-gray-700{background-color:' . $background . '!important}'
			. 'body.shabnam-theme .hero-header,body.shabnam-theme .about,body.shabnam-theme .numbers,body.shabnam-theme .tokenomics,body.shabnam-theme .roadmap,body.shabnam-theme .faq{background-color:' . $background . '!important}'
			. 'body.shabnam-theme .bg-primary{background-color:' . $primary . '!important}body.shabnam-theme .text-primary{color:' . $primary . '!important}'
			. 'body.shabnam-theme .bg-secondary{background-color:' . $secondary . '!important}body.shabnam-theme .text-secondary{color:' . $secondary . '!important}'
			. 'body.shabnam-theme .bg-tertiary{background-color:' . $tertiary . '!important}body.shabnam-theme .text-tertiary{color:' . $tertiary . '!important}'
			. 'body.shabnam-theme .text-white{color:' . $text . '!important}'
			. 'body.shabnam-theme .from-secondary{--uc-gradient-from:' . $secondary . '!important;--uc-gradient-stops:var(--uc-gradient-from),var(--uc-gradient-to)!important}'
			. 'body.shabnam-theme .to-tertiary{--uc-gradient-to:' . $tertiary . '!important}'
			. 'body.shabnam-theme .btn-primary{--bs-btn-bg:' . $primary . ';--bs-btn-border-color:' . $primary . ';--bs-btn-hover-bg:' . $primary . ';--bs-btn-hover-border-color:' . $primary . '}'
			. 'body.shabnam-theme .shabnam-muted,body.shabnam-theme .text-opacity-70,body.shabnam-theme .text-opacity-80{--bs-text-opacity:1;color:' . $muted . '!important}'
			. 'body.shabnam-theme .faq-item,body.shabnam-theme .roadmap .panel[style*="linear-gradient"],body.shabnam-theme .tokenomics .panel[style*="linear-gradient"],body.shabnam-theme .footer-media .vstack[style*="linear-gradient"]{background:linear-gradient(20deg,rgba(255,255,255,.09),' . $background . ')!important}';
	}

	wp_add_inline_style( 'shabnam-style', $css );
}
add_action( 'wp_enqueue_scripts', 'shabnam_framework_frontend_css', 99 );

/**
 * Get the preferred logo URL.
 *
 * @return string
 */
function shabnam_framework_logo_url() {
	$logo_id = absint( shabnam_get_setting( 'brand_logo_id', 0 ) );
	$url     = $logo_id ? wp_get_attachment_image_url( $logo_id, 'full' ) : '';
	return $url ? $url : '';
}

/**
 * Get the preferred site icon URL.
 *
 * @return string
 */
function shabnam_framework_site_icon_url() {
	$icon_id = absint( shabnam_get_setting( 'site_icon_id', 0 ) );
	$url     = $icon_id ? wp_get_attachment_image_url( $icon_id, 'full' ) : '';
	if ( $url ) {
		return $url;
	}
	$site_icon = get_site_icon_url( 64 );
	return $site_icon ? $site_icon : get_template_directory_uri() . '/favicon.ico';
}
