/*** Common CSS for all templates ***/
.cycloneslider{
	position:relative;
}
.cycloneslider-slides{
	position:relative;
	overflow:hidden;
}
.cycloneslider-slide{
	position:absolute;
	left:0;
	top:0;
	width:100%;
	height:100%;
	z-index:100;
}
.cycloneslider-slide img{
	border:0;
	padding:0;
	margin:0;
	max-width:100%;
}
.cycloneslider-prev,.cycloneslider-next,.cycloneslider-pager{
	cursor:pointer;
}
.cycloneslider-slide:first-child{
	z-index:101;
}
/*** Template Black ***/
.cycloneslider-template-black img{
    display:block;
}
.cycloneslider-template-black .cycloneslider-prev,
.cycloneslider-template-black .cycloneslider-next{
    display:none;
    opacity:0;
    position:absolute;
    top:50%;
    margin-top:-22px;
    z-index:102;
    width:26px;
    height:44px;
    text-indent:-99999px;
    background: url(https://brsc.edu.bd/wp-content/plugins/cyclone-slider/src/legacy/templates/black/images/sprite-arrows.png) no-repeat;
}
.cycloneslider-template-black:hover .cycloneslider-prev,
.cycloneslider-template-black:hover .cycloneslider-next{
    display:block;
    opacity:0.4;
}
.cycloneslider-template-black .cycloneslider-prev{
    left:10px;
    background-position:0 0;
}
.cycloneslider-template-black .cycloneslider-next{
    right:10px;
    background-position:-29px 0;
}
.cycloneslider-template-black .cycloneslider-prev:hover,
.cycloneslider-template-black .cycloneslider-next:hover{
    opacity:1;
}
.cycloneslider-template-black .cycloneslider-pager{
    position:absolute;
    z-index:99;
    top:20px;
    right:20px;
}
.cycloneslider-template-black .cycloneslider-pager a {
    background: url(https://brsc.edu.bd/wp-content/plugins/cyclone-slider/src/legacy/templates/black/images/sprite-nav.png) no-repeat scroll 0 0 transparent;
    display: block;
    float: left;
    font-size: 0;
    width: 10px;
    height: 10px;
    line-height: 0;
    margin-right: 6px;
    text-indent: -99999px;
}
.cycloneslider-template-black .cycloneslider-pager a.activeSlide {
    background-position: left bottom;
}
.cycloneslider-template-black .cycloneslider-caption{
    position:absolute;
    left:0;
    bottom:0;
    width:100%;
    z-index:99;
    background: url(https://brsc.edu.bd/wp-content/plugins/cyclone-slider/src/legacy/templates/black/images/bg-caption.png);
    color:#fff;
}
.cycloneslider-template-black .cycloneslider-caption-title{
    padding:10px 20px 5px 20px;
    font-size:22px;
    line-height:1;
    margin-bottom:0;
}
.cycloneslider-template-black .cycloneslider-caption-description{
    padding:0 20px 15px 20px;
    line-height:1.5;
    font-size:12px;
}
/*** Template Blue ***/
.cycloneslider-template-blue img{
    display:block;
}
.cycloneslider-template-blue .cycloneslider-prev,
.cycloneslider-template-blue .cycloneslider-next{
    display:none;
    opacity:0;
    position:absolute;
    top:50%;
    margin-top:-22px;
    z-index:102;
    width:26px;
    height:44px;
    text-indent:-99999px;
    background: url(https://brsc.edu.bd/wp-content/plugins/cyclone-slider/src/legacy/templates/blue/images/sprite-arrows.png) no-repeat;
}
.cycloneslider-template-blue:hover .cycloneslider-prev,
.cycloneslider-template-blue:hover .cycloneslider-next{
    display:block;
    opacity:0.4;
}
.cycloneslider-template-blue .cycloneslider-prev{
    left:10px;
    background-position:0 0;
}
.cycloneslider-template-blue .cycloneslider-next{
    right:10px;
    background-position:-29px 0;
}
.cycloneslider-template-blue .cycloneslider-prev:hover,
.cycloneslider-template-blue .cycloneslider-next:hover{
    opacity:1;
}
.cycloneslider-template-blue .cycloneslider-pager{
    position:absolute;
    z-index:99;
    top:20px;
    right:20px;
}
.cycloneslider-template-blue .cycloneslider-pager a {
    background: url(https://brsc.edu.bd/wp-content/plugins/cyclone-slider/src/legacy/templates/blue/images/sprite-nav.png) no-repeat scroll 0 0 transparent;
    display: block;
    float: left;
    font-size: 0;
    width: 10px;
    height: 10px;
    line-height: 0;
    margin-right: 6px;
    text-indent: -99999px;
}
.cycloneslider-template-blue .cycloneslider-pager a.activeSlide {
    background-position: left bottom;
}
.cycloneslider-template-blue .cycloneslider-caption{
    position:absolute;
    left:0;
    bottom:0;
    width:100%;
    z-index:99;
    background: url(https://brsc.edu.bd/wp-content/plugins/cyclone-slider/src/legacy/templates/blue/images/bg-caption.png);
    color:#fff;
}
.cycloneslider-template-blue .cycloneslider-caption-title{
    padding:10px 20px 5px 20px;
    font-size:22px;
    line-height:1;
    margin-bottom:0;
}
.cycloneslider-template-blue .cycloneslider-caption-description{
    padding:0 20px 15px 20px;
    line-height:1.5;
    font-size:12px;
}
<?php
namespace Elementor\Core\Frontend;

use Elementor\Core\Frontend\RenderModes\Render_Mode_Base;
use Elementor\Core\Frontend\RenderModes\Render_Mode_Normal;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

class Render_Mode_Manager {
	const QUERY_STRING_PARAM_NAME = 'render_mode';
	const QUERY_STRING_POST_ID = 'post_id';
	const QUERY_STRING_NONCE_PARAM_NAME = 'render_mode_nonce';
	const NONCE_ACTION_PATTERN = 'render_mode_{post_id}';

	/**
	 * @var Render_Mode_Base
	 */
	private $current;

	/**
	 * @var Render_Mode_Base[]
	 */
	private $render_modes = [];

	/**
	 * @param $post_id
	 * @param $render_mode_name
	 *
	 * @return string
	 */
	public static function get_base_url( $post_id, $render_mode_name ) {
		return add_query_arg( [
			self::QUERY_STRING_POST_ID => $post_id,
			self::QUERY_STRING_PARAM_NAME => $render_mode_name,
			self::QUERY_STRING_NONCE_PARAM_NAME => wp_create_nonce( self::get_nonce_action( $post_id ) ),
			'ver' => time(),
		], get_permalink( $post_id ) );
	}

	/**
	 * @param $post_id
	 *
	 * @return string
	 */
	public static function get_nonce_action( $post_id ) {
		return str_replace( '{post_id}', $post_id, self::NONCE_ACTION_PATTERN );
	}

	/**
	 * Register a new render mode into the render mode manager.
	 *
	 * @param $class_name
	 *
	 * @return $this
	 * @throws \Exception
	 */
	public function register_render_mode( $class_name ) {
		if ( ! is_subclass_of( $class_name, Render_Mode_Base::class ) ) {
			throw new \Exception( "'{$class_name}' must extends 'Render_Mode_Base'" );
		}

		$this->render_modes[ $class_name::get_name() ] = $class_name;

		return $this;
	}

	/**
	 * Get the current render mode.
	 *
	 * @return Render_Mode_Base
	 */
	public function get_current() {
		return $this->current;
	}

	/**
	 * @param Render_Mode_Base $render_mode
	 *
	 * @return $this
	 */
	private function set_current( Render_Mode_Base $render_mode ) {
		$this->current = $render_mode;

		return $this;
	}

	/**
	 * Set render mode.
	 *
	 * @return $this
	 */
	private function choose_render_mode() {
		$post_id = null;
		$key = null;
		$nonce = null;

		if ( isset( $_GET[ self::QUERY_STRING_POST_ID ] ) ) {
			$post_id = $_GET[ self::QUERY_STRING_POST_ID ]; // phpcs:ignore -- Nonce will be checked next line.
		}

		if ( isset( $_GET[ self::QUERY_STRING_NONCE_PARAM_NAME ] ) ) {
			$nonce = $_GET[ self::QUERY_STRING_NONCE_PARAM_NAME ]; // phpcs:ignore -- Nonce will be checked next line.
		}

		if ( isset( $_GET[ self::QUERY_STRING_PARAM_NAME ] ) ) {
			$key = $_GET[ self::QUERY_STRING_PARAM_NAME ]; // phpcs:ignore -- Nonce will be checked next line.
		}

		if (
			$post_id &&
			$nonce &&
			wp_verify_nonce( $nonce, self::get_nonce_action( $post_id ) ) &&
			$key &&
			array_key_exists( $key, $this->render_modes )
		) {
			$this->set_current( new $this->render_modes[ $key ]( $post_id ) );
		} else {
			$this->set_current( new Render_Mode_Normal( $post_id ) );
		}

		return $this;
	}

	/**
	 * Add actions base on the current render.
	 *
	 * @throws \Requests_Exception_HTTP_403
	 */
	private function add_current_actions() {
		if ( ! $this->current->get_permissions_callback() ) {
			throw new \Requests_Exception_HTTP_403();
		}

		// Run when 'template-redirect' actually because the the class is instantiate when 'template-redirect' run.
		$this->current->prepare_render();
	}

	/**
	 * Render_Mode_Manager constructor.
	 *
	 * @throws \Exception
	 */
	public function __construct() {
		$this->register_render_mode( Render_Mode_Normal::class );

		do_action( 'elementor/frontend/render_mode/register', $this );

		$this->choose_render_mode();
		$this->add_current_actions();
	}
}

/*** Template Myrtle ***/
.cycloneslider-template-myrtle{
    overflow:hidden;
}
.cycloneslider-template-myrtle .cycloneslider-slide img{
    max-width:100%;
    max-height:100%;
}
.cycloneslider-template-myrtle .cycloneslider-prev,
.cycloneslider-template-myrtle .cycloneslider-next{
    display:none;
    position:absolute;
    top:50%;
    margin-top:-19px;
    z-index:102;
    text-indent:-99999px;
    width:45px;
    height:45px;
    background: url(https://brsc.edu.bd/wp-content/plugins/cyclone-slider/src/legacy/templates/myrtle/images/sprite-arrows.png) no-repeat;
}
.cycloneslider-template-myrtle:hover .cycloneslider-prev,
.cycloneslider-template-myrtle:hover .cycloneslider-next{
    display:block;
}
.cycloneslider-template-myrtle .cycloneslider-prev{
    left:10px;
    background-position:-45px 0;
}
.cycloneslider-template-myrtle .cycloneslider-next{
    right:10px;
    background-position:0 0;
}
.cycloneslider-template-myrtle .cycloneslider-prev:hover{
    background-position:-45px -45px;
}
.cycloneslider-template-myrtle .cycloneslider-next:hover{
    background-position:0 -45px;
}
.cycloneslider-template-myrtle .cycloneslider-pager{
    position:absolute;
    z-index:99;
    top:20px;
    right:20px;
}
.cycloneslider-template-myrtle .cycloneslider-pager a {
    background: url(https://brsc.edu.bd/wp-content/plugins/cyclone-slider/src/legacy/templates/myrtle/images/sprite-nav.png) no-repeat scroll 0 0 transparent;
    display: block;
    float: left;
    font-size: 0;
    width: 12px;
    height: 12px;
    line-height: 0;
    margin-right: 6px;
    text-indent: -99999px;
}
.cycloneslider-template-myrtle .cycloneslider-pager a.activeSlide {
    background-position: left bottom;
}
.cycloneslider-template-myrtle .cycloneslider-caption{
    position:absolute;
    left:0;
    bottom:0;
    width:100%;
    z-index:99;
    background: url(https://brsc.edu.bd/wp-content/plugins/cyclone-slider/src/legacy/templates/myrtle/images/bg-caption.png) right;
    color:#fff;
}
.cycloneslider-template-myrtle .cycloneslider-caption-title{
    padding:10px 20px 5px 20px;
    font-size:24px;
    line-height:1;
    margin-bottom:0;
    color:#E62B4E;
}
.cycloneslider-template-myrtle .cycloneslider-caption-description{
    padding:0 20px 15px 20px;
    line-height:1.5;
    font-size:12px;
    color:#676761;
}
/*** Template Responsive ***/
.cycloneslider-template-responsive img{
    display:block;
    max-width:100%;
}
.cycloneslider-template-responsive .cycloneslider-prev,
.cycloneslider-template-responsive .cycloneslider-next{
    display:none;
    opacity:0;
    position:absolute;
    top:50%;
    margin-top:-22px;
    z-index:102;
    width:26px;
    height:44px;
    text-indent:-99999px;
    background: url(https://brsc.edu.bd/wp-content/plugins/cyclone-slider/src/legacy/templates/responsive/images/sprite-arrows.png) no-repeat;
}
.cycloneslider-template-responsive:hover .cycloneslider-prev,
.cycloneslider-template-responsive:hover .cycloneslider-next{
    display:block;
    opacity:0.4;
}
.cycloneslider-template-responsive .cycloneslider-prev{
    left:10px;
    background-position:0 0;
}
.cycloneslider-template-responsive .cycloneslider-next{
    right:10px;
    background-position:-29px 0;
}
.cycloneslider-template-responsive .cycloneslider-prev:hover,
.cycloneslider-template-responsive .cycloneslider-next:hover{
    opacity:1;
}
.cycloneslider-template-responsive .cycloneslider-pager{
    position:absolute;
    z-index:99;
    top:20px;
    right:20px;
}
.cycloneslider-template-responsive .cycloneslider-pager a {
    background: url(https://brsc.edu.bd/wp-content/plugins/cyclone-slider/src/legacy/templates/responsive/images/sprite-nav.png) no-repeat scroll 0 0 transparent;
    display: block;
    float: left;
    font-size: 0;
    width: 10px;
    height: 10px;
    line-height: 0;
    margin-right: 6px;
    text-indent: -99999px;
}
.cycloneslider-template-responsive .cycloneslider-pager a.activeSlide {
    background-position: left bottom;
}
.cycloneslider-template-responsive .cycloneslider-caption{
    position:absolute;
    left:0;
    bottom:0;
    width:100%;
    z-index:99;
    background: url(https://brsc.edu.bd/wp-content/plugins/cyclone-slider/src/legacy/templates/responsive/images/bg-caption.png);
    color:#fff;
}
.cycloneslider-template-responsive .cycloneslider-caption-title{
    padding:10px 20px 5px 20px;
    font-size:22px;
    line-height:1;
    margin-bottom:0;
}
.cycloneslider-template-responsive .cycloneslider-caption-description{
    padding:0 20px 15px 20px;
    line-height:1.5;
    font-size:12px;
}
/*** Template Thumbnails ***/
.cycloneslider-template-thumbnails img{
    display:block;
}
.cycloneslider-template-thumbnails .cycloneslider-prev,
.cycloneslider-template-thumbnails .cycloneslider-next{
    display:none;
    opacity:0;
    position:absolute;
    top:50%;
    margin-top:-22px;
    z-index:102;
    width:26px;
    height:44px;
    text-indent:-99999px;
    background: url(https://brsc.edu.bd/wp-content/plugins/cyclone-slider/src/legacy/templates/thumbnails/images/sprite-arrows.png) no-repeat;
}
.cycloneslider-template-thumbnails:hover .cycloneslider-prev,
.cycloneslider-template-thumbnails:hover .cycloneslider-next{
    display:block;
    opacity:0.4;
}
.cycloneslider-template-thumbnails .cycloneslider-prev{
    left:10px;
    background-position:0 0;
}
.cycloneslider-template-thumbnails .cycloneslider-next{
    right:10px;
    background-position:-29px 0;
}
.cycloneslider-template-thumbnails .cycloneslider-prev:hover,
.cycloneslider-template-thumbnails .cycloneslider-next:hover{
    opacity:1;
}

.cycloneslider-template-thumbnails .cycloneslider-caption{
    position:absolute;
    left:0;
    bottom:0;
    width:100%;
    z-index:99;
    background: url(https://brsc.edu.bd/wp-content/plugins/cyclone-slider/src/legacy/templates/thumbnails/images/bg-caption.png);
    color:#fff;
}
.cycloneslider-template-thumbnails .cycloneslider-caption-title{
    padding:10px 20px 5px 20px;
    font-size:22px;
    line-height:1;
    margin-bottom:0;
}
.cycloneslider-template-thumbnails .cycloneslider-caption-description{
    padding:0 20px 15px 20px;
    line-height:1.5;
    font-size:12px;
}

.cycloneslider-template-thumbnails.cycloneslider-thumbnails{
    padding:20px 0;
    text-align:center;
}
.cycloneslider-template-thumbnails.cycloneslider-thumbnails li{
    display:inline-block;
    margin:0 5px;
    border:5px solid #ccc;
    cursor:pointer;
}
.cycloneslider-template-thumbnails.cycloneslider-thumbnails li.current{
    border-color:#333;
}