/* shown when the AOS script is unavailable, so content is never left hidden */
.no_aos [data-aos] {opacity:1 !important; transform:none !important;}

/* header.js prints the default inner hero; this page has its own */
.inner.visitors .hero {display:none;}


/* SCROLL PROGRESS BAR + FLOATING REGISTER BUTTON */

.visitor_progress {
	position: fixed;
	left: 0;
	top: 0;
	width: 100%;
	height: 3px;
	z-index: 9999;
	pointer-events: none;
}
.visitor_progress span {
	display: block;
	height: 100%;
	background: linear-gradient(90deg, #36c7ff, #063cbc);
	transform: scaleX(0);
	transform-origin: left center;
}
.visitor_float_btn {
	position: fixed;
	right: 20px;
	bottom: 20px;
	z-index: 98;
	padding: 13px 26px;
	border-radius: 30px;
	font-size: 14px;
	line-height: 20px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #010926;
	background: linear-gradient(90deg, #36c7ff, #7fdcff);
	box-shadow: 0 10px 30px rgb(54 199 255 / 35%);
	opacity: 0;
	visibility: hidden;
	transform: translateY(30px);
	transition: 0.4s all ease;
}
.visitor_float_btn.show {opacity:1; visibility:visible; transform:translateY(0);}
.visitor_float_btn:hover {color:#010926; box-shadow:0 14px 36px rgb(54 199 255 / 55%); transform:translateY(-3px);}
.visitor_float_btn i {margin-left:6px; font-size:13px;}


/* COMMON SECTION CSS (odd = dark, even = light) */

.visitor_scn {
	padding: 100px 0 180px;
	position: relative;
	overflow: hidden;
	scroll-margin-top: 60px;
}
.visitor_scn .container {position:relative; z-index:2;}
.visitor_scn h2 {
	font-size: 44px;
	line-height: 50px;
	padding: 0 0 20px;
}
.visitor_scn .scn_header {max-width:820px; padding:0 0 40px;}
.visitor_scn .scn_header.text-center {margin:0 auto;}
.visitor_scn .scn_header p {padding:0;}
.visitor_scn .lead_tx {
	font-size: 20px;
	line-height: 30px;
	font-weight: 500;
}

.visitor_scn.scn_dark {background:radial-gradient(900px 480px at 85% 50%, rgb(6 60 188 / 30%), transparent 70%), #010926;}
.visitor_scn.scn_dark h2, .visitor_scn.scn_dark h3, .visitor_scn.scn_dark p, .visitor_scn.scn_dark li {color:#fff;}

.visitor_scn.scn_light {background:#f5f8fc;}
.visitor_scn.scn_light:after {
	content: "";
	position: absolute;
	right: -180px;
	top: -160px;
	width: 560px;
	height: 560px;
	border-radius: 50%;
	background: radial-gradient(circle, rgb(54 199 255 / 20%), transparent 65%);
	pointer-events: none;
}
.visitor_scn.scn_light h2, .visitor_scn.scn_light h3 {color:#010926;}
.visitor_scn.scn_light p, .visitor_scn.scn_light li {color:#333;}
.visitor_scn.scn_light .color_tx {color:#063cbc;}
.visitor_scn.scn_light .eyebrow {color:#063cbc;}
.visitor_scn.scn_light .eyebrow::after, .visitor_scn.scn_light .eyebrow_left:before {background:#063cbc;}

/* wave at the bottom of a section, filled with the colour of the next one */
.scn_wave {
	position: absolute;
	left: 0;
	bottom: -1px;
	width: 100%;
	height: 90px;
	display: block;
	z-index: 3;
	pointer-events: none;
}
.scn_wave.flip {transform:scaleX(-1);}
.scn_wave.wave_light path {fill:#f5f8fc;}
.scn_wave.wave_dark path {fill:#010926;}

/* animated gradient text */
.grad_tx {
	color: #36c7ff;
	background: linear-gradient(90deg, #36c7ff, #8fb4ff 50%, #36c7ff);
	background-size: 200% auto;
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	animation: grad_move 6s linear infinite;
}
@keyframes grad_move {
	to {background-position:200% center;}
}

/* button shine */
.visitors .sub_btn {position:relative; overflow:hidden;}
.visitors .sub_btn:after {
	content: "";
	position: absolute;
	top: 0;
	left: -80%;
	width: 50%;
	height: 100%;
	background: linear-gradient(100deg, transparent, rgb(255 255 255 / 35%), transparent);
	transform: skewX(-20deg);
	transition: 0.7s left ease;
	pointer-events: none;
}
.visitors .sub_btn:hover:after {left:130%;}
.visitors .sub_btn i {transition:0.3s transform ease;}
.visitors .sub_btn:hover i {transform:translateX(5px);}

/* solid cyan button, as on the reference layout */
.visitors .sub_btn.cyan_btn {
	color: #010926;
	font-weight: 700;
	background: linear-gradient(90deg, #36c7ff, #7fdcff);
	border-color: transparent;
}
.visitors .sub_btn.cyan_btn:hover {color:#010926; background:linear-gradient(90deg, #7fdcff, #36c7ff); transform:translateY(-3px);}

/* text link with arrow */
.arrow_link {
	display: inline-block;
	font-size: 14px;
	line-height: 20px;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: #36c7ff;
}
.arrow_link i {margin-left:8px; transition:0.3s transform ease;}
.arrow_link:hover {color:#fff;}
.arrow_link:hover i {transform:translateX(6px);}
.scn_light .arrow_link {color:#063cbc;}
.scn_light .arrow_link:hover {color:#010926;}

/* cards with cursor spotlight (--mx / --my are set from the script below) */
.visitor_bx {
	height: 100%;
	padding: 32px 28px;
	border-radius: 16px;
	position: relative;
	overflow: hidden;
	transition: 0.4s transform ease, 0.4s border-color ease, 0.4s box-shadow ease;
}
.visitor_bx:before {
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	background: radial-gradient(340px circle at var(--mx, 50%) var(--my, 0%), rgb(6 60 188 / 9%), transparent 60%);
	opacity: 0;
	transition: 0.4s opacity ease;
	pointer-events: none;
}
.visitor_bx:hover:before {opacity:1;}
.visitor_bx > * {position:relative; z-index:1;}
.visitor_bx h3 {
	font-size: 22px;
	line-height: 28px;
	padding: 0 0 12px;
}
.visitor_bx p {font-size:15px; line-height:23px; padding:0;}
.scn_light .visitor_bx {background:#fff; border:1px solid #dde6f0; box-shadow:0 6px 20px rgb(1 9 38 / 4%);}
.scn_light .visitor_bx:hover {border-color:#063cbc; transform:translateY(-6px); box-shadow:0 22px 45px rgb(1 9 38 / 12%);}

.visitor_row {margin-bottom:-30px;}
.visitor_row > div {margin-bottom:30px;}


/* 1. HERO */

.visitor_hero {
	min-height: 600px;
	/* top = header (150px) + 20px, bottom = wave (60px) + 20px; the content is centred in between */
	padding: 170px 0 80px;
	display: flex;
	align-items: center;
	position: relative;
	overflow: hidden;
	background: radial-gradient(700px 500px at 0% 100%, rgb(6 60 188 / 35%), transparent 70%), #010926;
}

/* picture panel on the right, faded into the background with a linear gradient */
.visitor_hero .hero_visual {
	position: absolute;
	right: 0;
	top: 0;
	width: 50%;
	height: 100%;
	overflow: hidden;
	/* no hard edge: the photo fades out to the left so it melts into the hero background */
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 55%);
	mask-image: linear-gradient(90deg, transparent, #000 55%);
}
.visitor_hero .hero_visual_in {
	position: relative;
	width: 100%;
	height: 100%;
	overflow: hidden;
}
.visitor_hero .hero_bg {
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	will-change: transform;
}

/* photo slides, cross-faded from the script below.
   The new photo fades in on top while the previous one stays solid underneath, so the dark
   background never shows through, and both keep zooming so nothing jumps during the change */
.visitor_hero .hero_slide {
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	z-index: 0;
	background-repeat: no-repeat;
	background-position: center center;
	background-size: cover;
	opacity: 0;
	backface-visibility: hidden;
}
.visitor_hero .hero_slide.active,
.visitor_hero .hero_slide.prev {opacity:1; animation:hero_zoom 12s linear forwards;}
.visitor_hero .hero_slide.active {z-index:2; transition:1.8s opacity ease-in-out;}
.visitor_hero .hero_slide.prev {z-index:1;}
@keyframes hero_zoom {
	from {transform:scale(1.12);}
	to {transform:scale(1);}
}
.visitor_hero .hero_visual_in:before {
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	z-index: 1;
	background: linear-gradient(90deg, rgb(1 9 38 / 70%), rgb(1 9 38 / 15%) 45%), linear-gradient(rgb(1 9 38 / 55%), rgb(1 9 38 / 0%) 30%, rgb(1 9 38 / 0%) 65%, rgb(1 9 38 / 75%));
}
/* dark band behind the menu so the navigation stays readable over the photo */
.visitor_hero:after {
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 230px;
	z-index: 1;
	background: linear-gradient(rgb(1 9 38 / 96%) 30%, rgb(1 9 38 / 70%) 62%, rgb(1 9 38 / 0%));
	pointer-events: none;
}
.visitor_hero .container {position:relative; z-index:2; width:100%;}
.visitor_hero h1 {
	font-family: "Outfit", Helvetica, Arial, sans-serif;
	font-size: 44px;
	line-height: 48px;
	font-weight: 700;
	color: #fff;
	letter-spacing: 0.5px;
	padding: 0 0 15px;
}
.visitor_hero h1 span {display:block;}
.visitor_hero h1 .thin {font-weight:400;}
.visitor_hero .eyebrow {margin-bottom:10px;}
.visitor_hero .scn_wave {height:60px;}
.visitor_hero p {
	font-size: 17px;
	line-height: 26px;
	max-width: 560px;
	padding: 0 0 15px;
	color: rgb(255 255 255 / 88%);
}
.visitor_hero .hero_meta {
	display: flex;
	flex-wrap: wrap;
	list-style: none;
	padding: 0 0 15px;
	margin: 0;
}
.visitor_hero .hero_meta li {
	color: #fff;
	font-size: 16px;
	line-height: 22px;
	font-weight: 600;
	padding: 0 26px 10px 0;
}
.visitor_hero .hero_meta li i {color:#36c7ff; margin-right:8px;}
.visitor_hero .hero_btns {display:flex; flex-wrap:wrap; align-items:center;}
.visitor_hero .hero_btns .sub_btn {
	margin: 0 30px 0 0;
	text-transform: uppercase;
	font-weight: 600;
	letter-spacing: 0.5px;
	box-shadow: 0 10px 35px rgb(54 199 255 / 25%) !important;
}


/* 2. WHY VISIT */

.why_visit_scn .why_head {max-width:900px; margin:0 auto; padding-bottom:55px; text-align:center;}
.why_visit_scn .why_head .lead_tx {font-style:italic;}
.why_visit_scn .why_head p:last-child {padding:0;}

/* all six points in one box, three per row with dividers */
.why_visit_scn .benefit_strip {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	background: #fff;
	border: 1px solid #dde6f0;
	border-radius: 20px;
	box-shadow: 0 20px 50px rgb(1 9 38 / 8%);
	padding: 0 10px;
	margin: 0;
}
.why_visit_scn .benefit_strip .benefit {
	padding: 40px 32px;
	border-left: 1px solid #dde6f0;
	position: relative;
}
.why_visit_scn .benefit_strip .benefit:nth-child(3n+1) {border-left:none;}
.why_visit_scn .benefit_strip .benefit:nth-child(n+4) {border-top:1px solid #dde6f0;}
.why_visit_scn .benefit_strip .count {
	display: inline-block;
	font-family: "Outfit", Helvetica, Arial, sans-serif;
	font-size: 42px;
	line-height: 42px;
	font-weight: 700;
	padding: 0 0 16px;
	color: #063cbc;
	background: linear-gradient(135deg, #36c7ff, #063cbc);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	transition: 0.4s transform ease;
}
.why_visit_scn .benefit_strip .benefit:hover .count {transform:translateY(-5px);}
.why_visit_scn .benefit_strip h3 {font-size:22px; line-height:28px; padding:0 0 10px;}
.why_visit_scn .benefit_strip p {font-size:15px; line-height:23px; padding:0;}



/* 3. OPEN TECHNOLOGY PROGRAMMES */

.open_programmes_scn:before {
	content: "";
	position: absolute;
	top: -70px;
	right: 0;
	width: 60%;
	height: 100%;
	background: url(../images/Evolving_rt_img.png) no-repeat;
	background-size: 132%;
	opacity: 0.25;
}
.open_programmes_scn .open_tag {
	display: inline-block;
	font-size: 13px;
	line-height: 18px;
	font-weight: 700;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: #010926;
	background: #36c7ff;
	border-radius: 30px;
	padding: 7px 18px 7px 34px;
	position: relative;
	animation: tag_blink 1.2s ease-in-out infinite;
}
/* blinker so the "Open to Expo Visitors" tag catches the eye */
@keyframes tag_blink {
	0%, 100% {opacity:1; box-shadow:0 0 18px rgb(54 199 255 / 75%);}
	50% {opacity:0.45; box-shadow:0 0 0 rgb(54 199 255 / 0%);}
}
.open_programmes_scn .open_tag:before {
	content: "";
	position: absolute;
	left: 16px;
	top: 50%;
	width: 8px;
	height: 8px;
	margin-top: -4px;
	border-radius: 50%;
	background: #010926;
	animation: tag_pulse 1.8s ease-out infinite;
}
@keyframes tag_pulse {
	0% {box-shadow:0 0 0 0 rgb(1 9 38 / 55%);}
	100% {box-shadow:0 0 0 9px rgb(1 9 38 / 0%);}
}
.open_programmes_scn .programme_points {
	display: flex;
	flex-wrap: wrap;
	list-style: none;
	padding: 0;
	margin: 50px 0 -12px;
}
/* each point is a glass pill with a tick badge */
.open_programmes_scn .programme_points li {
	display: flex;
	align-items: center;
	font-size: 15px;
	line-height: 20px;
	font-weight: 500;
	color: #fff;
	padding: 9px 20px 9px 10px;
	margin: 0 12px 12px 0;
	border: 1px solid rgb(54 199 255 / 35%);
	border-radius: 40px;
	background: rgb(255 255 255 / 6%);
	transition: 0.3s all ease;
}
.open_programmes_scn .programme_points li:hover {border-color:#36c7ff; background:rgb(54 199 255 / 12%);}
.open_programmes_scn .programme_points li i {
	flex: 0 0 24px;
	width: 24px;
	height: 24px;
	line-height: 24px;
	text-align: center;
	font-size: 11px;
	color: #010926;
	background: #36c7ff;
	border-radius: 50%;
	margin-right: 10px;
}

/* programmes as circles on a wave line, as on the reference layout */
.open_programmes_scn .programme_wave {
	display: flex;
	list-style: none;
	padding: 0;
	margin: 60px 0 0;
	position: relative;
}
.open_programmes_scn .programme_wave .wave_line {
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 176px;
	pointer-events: none;
}
.open_programmes_scn .programme_wave .wave_line path {
	fill: none;
	stroke: #36c7ff;
	stroke-opacity: 0.45;
	stroke-width: 1.5;
	stroke-dasharray: 5 7;
	vector-effect: non-scaling-stroke;
	animation: wave_dash 30s linear infinite;
}
@keyframes wave_dash {
	to {stroke-dashoffset:-480;}
}
.open_programmes_scn .programme_wave li {
	flex: 1;
	padding: 0 10px;
	text-align: center;
	position: relative;
	z-index: 1;
}
.open_programmes_scn .programme_wave li:nth-of-type(even) {margin-top:46px;}
.open_programmes_scn .programme_wave .circle {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 130px;
	height: 130px;
	margin: 0 auto 20px;
	border-radius: 50%;
	color: #fff;
	border: 2px solid transparent;
	background: radial-gradient(circle at 30% 25%, #1a56d8, #04123f 70%) padding-box, linear-gradient(135deg, #36c7ff, #063cbc) border-box;
	box-shadow: 0 0 0 8px rgb(54 199 255 / 8%), 0 18px 40px rgb(0 0 0 / 45%);
	transition: 0.4s all ease;
}
.open_programmes_scn .programme_wave .circle svg {
	width: 56px;
	height: 56px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.5;
	stroke-linecap: round;
	stroke-linejoin: round;
	transition: 0.4s transform ease;
}
.open_programmes_scn .programme_wave li:hover .circle {
	transform: translateY(-8px) scale(1.06);
	color: #36c7ff;
	box-shadow: 0 0 0 10px rgb(54 199 255 / 14%), 0 0 45px rgb(54 199 255 / 55%);
}
.open_programmes_scn .programme_wave li:hover .circle svg {transform:scale(1.1);}
.open_programmes_scn .programme_wave h3 {
	font-size: 18px;
	line-height: 23px;
	padding: 0 0 6px;
}
.open_programmes_scn .programme_wave p {
	font-size: 14px;
	line-height: 20px;
	padding: 0;
	color: rgb(255 255 255 / 72%);
}


/* 4. WHO SHOULD VISIT */

/* glass cards on the dark background */
.who_visit_scn .visitor_bx {
	background: rgb(255 255 255 / 4%);
	border: 1px solid rgb(54 199 255 / 20%);
	border-top: 3px solid #36c7ff;
}
.who_visit_scn .visitor_bx:before {background:radial-gradient(340px circle at var(--mx, 50%) var(--my, 0%), rgb(54 199 255 / 14%), transparent 60%);}
.who_visit_scn .visitor_bx:hover {border-color:#36c7ff; transform:translateY(-6px); box-shadow:0 22px 45px rgb(0 0 0 / 40%);}
.who_visit_scn .visitor_bx h3 {
	padding: 0 0 15px;
	margin: 0 0 15px;
	border-bottom: 1px solid rgb(255 255 255 / 12%);
}
.who_visit_scn .visitor_bx ul li {color:rgb(255 255 255 / 85%);}
.who_visit_scn .visitor_bx ul {list-style:none; padding:0; margin:0;}
.who_visit_scn .visitor_bx ul li {
	font-size: 15px;
	line-height: 22px;
	padding: 5px 0 5px 20px;
	position: relative;
}
.who_visit_scn .visitor_bx ul li:before {
	content: "";
	position: absolute;
	left: 0;
	top: 15px;
	width: 10px;
	height: 2px;
	background: #36c7ff;
	transition: 0.3s width ease;
}
.who_visit_scn .visitor_bx:hover ul li:before {width:14px;}


/* 5. YOUR EXPO EXPERIENCE (the .in_view class is added from the script below) */

.expo_experience_scn .experience_steps {
	display: flex;
	list-style: none;
	padding: 20px 0 0;
	margin: 0;
	position: relative;
	counter-reset: step;
}
.expo_experience_scn .experience_steps:before,
.expo_experience_scn .experience_steps:after {
	content: "";
	position: absolute;
	left: 10%;
	top: 51px;
	width: 80%;
	height: 2px;
	background: #d5dfeb;
}
.expo_experience_scn .experience_steps:after {
	background: linear-gradient(90deg, #36c7ff, #063cbc);
	box-shadow: 0 0 14px rgb(54 199 255 / 70%);
	transform: scaleX(0);
	transform-origin: left center;
	transition: 2s transform ease;
}
.expo_experience_scn .experience_steps.in_view:after {transform:scaleX(1);}
.expo_experience_scn .experience_steps li {
	flex: 1;
	padding: 0 15px;
	text-align: center;
	position: relative;
	z-index: 1;
	counter-increment: step;
	opacity: 0;
	transform: translateY(25px);
	transition: 0.7s opacity ease, 0.7s transform ease;
}
.expo_experience_scn .experience_steps.in_view li {opacity:1; transform:translateY(0);}
.expo_experience_scn .experience_steps.in_view li:nth-child(2) {transition-delay:0.35s;}
.expo_experience_scn .experience_steps.in_view li:nth-child(3) {transition-delay:0.7s;}
.expo_experience_scn .experience_steps.in_view li:nth-child(4) {transition-delay:1.05s;}
.expo_experience_scn .experience_steps.in_view li:nth-child(5) {transition-delay:1.4s;}
.expo_experience_scn .experience_steps li:before {
	content: "0" counter(step);
	display: flex;
	align-items: center;
	justify-content: center;
	width: 64px;
	height: 64px;
	margin: 0 auto 22px;
	border-radius: 50%;
	font-family: "Outfit", Helvetica, Arial, sans-serif;
	font-size: 20px;
	font-weight: 700;
	color: #fff;
	border: 2px solid transparent;
	background: linear-gradient(#010926, #010926) padding-box, linear-gradient(90deg, #36c7ff, #063cbc) border-box;
	box-shadow: 0 0 0 7px rgb(54 199 255 / 10%), 0 0 30px rgb(54 199 255 / 30%);
	transition: 0.4s all ease;
}
.expo_experience_scn .experience_steps li:hover:before {
	color: #010926;
	background: linear-gradient(135deg, #36c7ff, #7fdcff) padding-box, linear-gradient(90deg, #36c7ff, #063cbc) border-box;
	transform: scale(1.1);
}
.expo_experience_scn .experience_steps li b {
	display: block;
	font-family: "Outfit", Helvetica, Arial, sans-serif;
	font-size: 22px;
	line-height: 28px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #063cbc;
	padding: 0 0 6px;
}
.expo_experience_scn .experience_steps li span {
	display: block;
	font-size: 15px;
	line-height: 22px;
	color: #333;
}


/* 6. EXHIBITORS ON BOARD */

.visitor_exhibitors_scn .visitor_exhibitors_sl {
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
	mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}
.visitor_exhibitors_scn .exhibitor_logo {
	height: 150px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: #fff;
	border: 1px solid #dde6f0;
	border-radius: 16px;
	padding: 20px;
	margin: 8px 0;
	transition: 0.4s all ease;
}
.visitor_exhibitors_scn .exhibitor_logo:hover {border-color:#063cbc; box-shadow:0 12px 28px rgb(1 9 38 / 12%); transform:translateY(-4px);}
.visitor_exhibitors_scn .owl-carousel .owl-item .exhibitor_logo img {
	width: auto;
	max-width: 100%;
	max-height: 100px;
	display: inline-block;
	transition: 0.4s all ease;
}
.visitor_exhibitors_scn .btn_div {text-align:center; padding-top:20px;}


/* 7. FINAL VISITOR CTA */

.visitor_scn.visitor_cta_scn {
	padding: 110px 0 180px;
	background: #010926 url(../images/visitor-cta-bg.jpg) no-repeat center center;
	background-size: cover;
}
.visitor_cta_scn:before {
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	/* first layer hides the photo at the left and right sides, second one darkens it for the text */
	background: linear-gradient(90deg, #010926 12%, rgb(1 9 38 / 85%) 22%, rgb(1 9 38 / 45%) 32%, rgb(1 9 38 / 0%) 45%, rgb(1 9 38 / 0%) 55%, rgb(1 9 38 / 45%) 68%, rgb(1 9 38 / 85%) 78%, #010926 88%), linear-gradient(rgb(1 9 38 / 74%), rgb(1 9 38 / 40%));
}
.visitor_cta_scn:after {
	content: "";
	position: absolute;
	left: 50%;
	margin-left: -380px;
	bottom: -380px;
	width: 760px;
	height: 760px;
	border-radius: 50%;
	background: radial-gradient(circle, rgb(54 199 255 / 30%), transparent 62%);
	animation: cta_glow 5s ease-in-out infinite alternate;
	pointer-events: none;
}
@keyframes cta_glow {
	from {transform:scale(0.9); opacity:0.6;}
	to {transform:scale(1.1); opacity:1;}
}
.visitor_cta_scn h2 {font-size:56px; line-height:62px;}
.visitor_cta_scn .cta_meta {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	list-style: none;
	padding: 0 0 10px;
	margin: 0;
}
.visitor_cta_scn .cta_meta li {
	font-size: 19px;
	line-height: 26px;
	font-weight: 600;
	padding: 0 15px 10px;
}
.visitor_cta_scn .cta_meta li i {color:#36c7ff; margin-right:8px;}
.visitor_cta_scn .sub_btn {
	text-transform: uppercase;
	letter-spacing: 0.5px;
	padding: 15px 44px;
	box-shadow: 0 10px 35px rgb(54 199 255 / 35%) !important;
}


/* 8. EXPO HIGHLIGHTS VIDEO (last section, so no wave at the bottom) */

.visitor_scn.expo_video_scn {padding-bottom:100px;}
.expo_video_scn .video_frame {
	max-width: 960px;
	margin: 0 auto;
	position: relative;
	height: 0;
	padding-bottom: 54%;
	border-radius: 20px;
	overflow: hidden;
	background: #010926;
	box-shadow: 0 25px 60px rgb(1 9 38 / 18%);
}
.expo_video_scn .video_frame iframe {
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
}


@media(max-width:1199px) {
	.visitor_hero h1 {font-size:40px; line-height:46px;}
	.open_programmes_scn .programme_wave .circle {width:110px; height:110px;}
	.open_programmes_scn .programme_wave .circle svg {width:48px; height:48px;}
	.open_programmes_scn .programme_wave .wave_line {height:156px;}
	.open_programmes_scn .programme_wave h3 {font-size:16px; line-height:21px;}
	.expo_experience_scn .experience_steps li b {font-size:18px; letter-spacing:0.05em;}
}

@media(max-width:991px) {
	.visitor_scn {padding:80px 0 140px;}
	.visitor_scn h2 {font-size:36px; line-height:42px;}
	.scn_wave {height:60px;}
	.visitor_hero {min-height:0; padding:150px 0 150px;}
	.visitor_hero .hero_visual {width:100%; opacity:0.35; -webkit-mask-image:none; mask-image:none;}
	.why_visit_scn .benefit_strip {display:block; padding:10px 30px;}
	.why_visit_scn .benefit_strip .benefit {padding:28px 0; border-left:none; border-top:1px solid #dde6f0;}
	.why_visit_scn .benefit_strip .benefit:first-child {border-top:none;}
	.why_visit_scn .why_head {padding-bottom:40px;}
	.open_programmes_scn .programme_wave {flex-wrap:wrap; margin-top:40px; margin-bottom:-35px;}
	.open_programmes_scn .programme_wave .wave_line {display:none;}
	.open_programmes_scn .programme_wave li {flex:0 0 33.33%; max-width:33.33%; margin-bottom:35px;}
	.open_programmes_scn .programme_wave li:nth-of-type(even) {margin-top:0;}
	.visitor_scn.visitor_cta_scn {padding:90px 0 140px;}
	.visitor_scn.expo_video_scn {padding-bottom:80px;}
	.visitor_cta_scn h2 {font-size:42px; line-height:48px;}
}

@media(max-width:767px) {
	.visitor_scn {padding:60px 0 105px;}
	.visitor_scn h2 {font-size:30px; line-height:36px;}
	.visitor_scn .lead_tx {font-size:18px; line-height:27px;}
	.scn_wave {height:40px;}
	.visitor_hero {padding:130px 0 110px;}
	.visitor_hero .hero_visual {opacity:0.22;}
	.visitor_hero h1 {font-size:38px; line-height:44px;}
	.visitor_hero p {font-size:17px; line-height:26px;}
	.visitor_hero .hero_btns .sub_btn {margin:0;}
	.visitor_bx {padding:26px 20px;}
	.why_visit_scn .benefit_strip {padding:5px 22px;}
	.open_programmes_scn .programme_points {margin-top:40px;}
	.open_programmes_scn .programme_points li {font-size:14px; margin:0 8px 10px 0;}
	.open_programmes_scn .programme_wave li {flex:0 0 50%; max-width:50%;}
	.expo_experience_scn .experience_steps {display:block; padding-top:0;}
	.expo_experience_scn .experience_steps:before,
	.expo_experience_scn .experience_steps:after {left:31px; top:0; width:2px; height:100%;}
	.expo_experience_scn .experience_steps:after {transform:scaleY(0); transform-origin:center top;}
	.expo_experience_scn .experience_steps.in_view:after {transform:scaleY(1);}
	.expo_experience_scn .experience_steps li {
		text-align: left;
		padding: 0 0 28px 88px;
		min-height: 92px;
	}
	.expo_experience_scn .experience_steps li:last-child {padding-bottom:0; min-height:64px;}
	.expo_experience_scn .experience_steps li:before {position:absolute; left:0; top:0; margin:0;}
	.expo_experience_scn .experience_steps li b {padding-top:6px;}
	.visitor_exhibitors_scn .exhibitor_logo {height:100px;}
	.visitor_scn.visitor_cta_scn {padding:70px 0 105px;}
	.visitor_scn.expo_video_scn {padding-bottom:60px;}
	.expo_video_scn .video_frame {border-radius:12px;}
	.visitor_cta_scn h2 {font-size:32px; line-height:38px;}
	.visitor_cta_scn .cta_meta li {font-size:16px; line-height:24px;}
	.visitor_float_btn {right:12px; bottom:12px; padding:11px 20px; font-size:13px;}
}

@media (prefers-reduced-motion: reduce) {
	.grad_tx,
	.open_programmes_scn .open_tag, .open_programmes_scn .open_tag:before, .open_programmes_scn .programme_wave .wave_line path, .visitor_cta_scn:after {animation:none;}
	.visitor_hero .hero_slide, .expo_experience_scn .experience_steps li,
	.expo_experience_scn .experience_steps:after {transition:none;}
	.visitor_hero .hero_slide.active, .visitor_hero .hero_slide.prev {animation:none;}
}