/* Asia Cycling Tours v2.1 — final header, mobile navigation and custom footer. */

/* Header hierarchy */
.act-topbar {
	min-height: 34px;
	background: linear-gradient(90deg, #101833, #182044 52%, #202d60);
}
.act-topbar__inner { min-height: 34px; }
.act-topbar__tagline { color: rgba(255,255,255,.82); }
.act-topbar__links a { position: relative; font-weight: 700; }
.act-topbar__links a + a::before {
	position: absolute;
	top: 50%;
	left: -11px;
	width: 3px;
	height: 3px;
	border-radius: 50%;
	background: rgba(255,255,255,.42);
	content: "";
	transform: translateY(-50%);
}

#masthead,
body.home #masthead,
body.page-template-page-global-cycling-home #masthead {
	position: sticky !important;
	top: 0 !important;
	z-index: 10000;
	background: rgba(255,255,255,.97) !important;
	border-bottom: 1px solid rgba(39,52,105,.1) !important;
	box-shadow: 0 10px 34px rgba(24,32,68,.07) !important;
	-webkit-backdrop-filter: blur(15px) saturate(140%);
	backdrop-filter: blur(15px) saturate(140%);
}
body.admin-bar #masthead,
body.admin-bar.home #masthead,
body.admin-bar.page-template-page-global-cycling-home #masthead { top: 32px !important; }

#masthead .inside-header,
body.home #masthead .inside-header,
body.page-template-page-global-cycling-home #masthead .inside-header {
	width: min(1280px, calc(100% - 40px)) !important;
	min-height: 76px !important;
	gap: 22px !important;
	padding: 9px 0 !important;
}
#masthead .site-branding-container { margin-right: auto; }
#masthead .site-logo img,
#masthead .inside-header .site-logo img {
	max-width: 188px !important;
	height: 56px !important;
	max-height: 56px !important;
}
#masthead .main-title a {
	max-width: 205px !important;
	font-size: 14px !important;
	line-height: 1.12 !important;
	letter-spacing: .015em !important;
}

#site-navigation .main-nav > ul { gap: 3px; }
#site-navigation .main-nav > ul > li > a {
	min-height: 46px !important;
	padding: 11px 11px !important;
	border: 1px solid transparent !important;
	border-radius: 10px !important;
	font-size: 11.75px !important;
	letter-spacing: .035em !important;
	transition: color .2s ease, background-color .2s ease, border-color .2s ease, transform .2s ease !important;
}
#site-navigation .main-nav > ul > li:not(.menu-cta) > a::before {
	position: absolute;
	right: 12px;
	bottom: 5px;
	left: 12px;
	height: 2px;
	border-radius: 999px;
	background: linear-gradient(90deg, #d94f30, #e3a72f);
	content: "";
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .22s ease;
}
#site-navigation .main-nav > ul > li:not(.menu-cta):hover > a::before,
#site-navigation .main-nav > ul > li.current-menu-item:not(.menu-cta) > a::before,
#site-navigation .main-nav > ul > li.current-menu-ancestor:not(.menu-cta) > a::before { transform: scaleX(1); }

#site-navigation .main-nav > ul > li.menu-cta { margin-left: 8px; }
#site-navigation .main-nav > ul > li.menu-cta > a,
#site-navigation .main-nav > ul > #menu-item-39 > a {
	min-height: 48px !important;
	padding: 12px 19px !important;
	color: #fff !important;
	border-color: #d94f30 !important;
	border-radius: 10px !important;
	background: linear-gradient(135deg, #e85b38, #d94f30) !important;
	box-shadow: 0 12px 26px rgba(217,79,48,.24) !important;
}
#site-navigation .main-nav > ul > li.menu-cta > a:hover,
#site-navigation .main-nav > ul > #menu-item-39 > a:hover {
	color: #fff !important;
	border-color: #bc3e24 !important;
	background: #bc3e24 !important;
	transform: translateY(-2px);
}

#site-navigation .main-nav ul ul {
	min-width: 270px !important;
	padding: 11px !important;
	border: 1px solid rgba(39,52,105,.12) !important;
	border-top: 4px solid #e3a72f !important;
	border-radius: 16px !important;
	background: #fff !important;
	box-shadow: 0 24px 64px rgba(24,32,68,.16) !important;
}
#site-navigation .main-nav ul ul li > a {
	min-height: 44px !important;
	padding: 11px 13px !important;
	border-radius: 10px !important;
	font-size: 13.5px !important;
}
#site-navigation .main-nav ul ul li > a:hover,
#site-navigation .main-nav ul ul li.current-menu-item > a {
	padding-left: 17px !important;
	color: #d94f30 !important;
	background: #fff9f0 !important;
}

/* Mobile drawer */
body.act-menu-open { overflow: hidden; }
@media (max-width: 768px) {
	.act-topbar__inner { width: calc(100% - 24px); justify-content: center; }
	.act-topbar__tagline { display: none; }
	.act-topbar__links { gap: 18px; overflow-x: auto; scrollbar-width: none; }
	.act-topbar__links::-webkit-scrollbar { display: none; }

	#masthead,
	body.home #masthead,
	body.page-template-page-global-cycling-home #masthead { top: 0 !important; }
	body.admin-bar #masthead,
	body.admin-bar.home #masthead,
	body.admin-bar.page-template-page-global-cycling-home #masthead { top: 46px !important; }

	#masthead .inside-header,
	body.home #masthead .inside-header,
	body.page-template-page-global-cycling-home #masthead .inside-header {
		width: calc(100% - 22px) !important;
		min-height: 68px !important;
		padding: 8px 0 !important;
		border: 0 !important;
		border-radius: 0 !important;
		box-shadow: none !important;
	}
	#masthead .site-logo img,
	#masthead .inside-header .site-logo img { width: auto !important; max-width: 162px !important; height: 50px !important; }
	#mobile-menu-control-wrapper .menu-toggle {
		width: 48px !important;
		min-width: 48px !important;
		height: 48px !important;
		color: #fff !important;
		border: 1px solid #273469 !important;
		border-radius: 13px !important;
		background: #273469 !important;
		box-shadow: 0 10px 22px rgba(39,52,105,.22) !important;
	}
	#mobile-menu-control-wrapper .menu-toggle:hover,
	#mobile-menu-control-wrapper .menu-toggle[aria-expanded="true"] {
		color: #182044 !important;
		border-color: #e3a72f !important;
		background: #e3a72f !important;
	}
	#site-navigation.toggled .main-nav {
		top: calc(100% + 8px) !important;
		right: -1px !important;
		left: -1px !important;
		width: auto !important;
		max-height: calc(100dvh - 112px) !important;
		padding: 14px !important;
		border: 1px solid rgba(39,52,105,.12) !important;
		border-radius: 0 0 20px 20px !important;
		background: linear-gradient(180deg,#fff,#fff9f0) !important;
		box-shadow: 0 28px 70px rgba(24,32,68,.2) !important;
	}
	#site-navigation.toggled .main-nav::before {
		display: block;
		margin: 0 0 10px;
		padding: 11px 13px;
		color: #182044;
		border-radius: 12px;
		background: #f2f4fa;
		content: "Explore Asia by bike";
		font-family: Georgia,"Times New Roman",serif;
		font-size: 1rem;
		font-weight: 800;
	}
	#site-navigation.toggled .main-nav > ul > li + li { border-top-color: rgba(39,52,105,.08) !important; }
	#site-navigation.toggled .main-nav > ul > li > a {
		min-height: 50px !important;
		padding: 13px 14px !important;
		border-radius: 11px !important;
		font-size: 14px !important;
		letter-spacing: .02em !important;
	}
	#site-navigation.toggled .main-nav > ul > li.menu-cta { margin-top: 12px !important; }
	#site-navigation.toggled .main-nav > ul > li.menu-cta > a,
	#site-navigation.toggled .main-nav > ul > #menu-item-39 > a {
		justify-content: center !important;
		min-height: 52px !important;
		color: #fff !important;
		background: #d94f30 !important;
	}
	#site-navigation.toggled .main-nav ul ul,
	#site-navigation.toggled .main-nav ul ul ul {
		margin: 3px 8px 10px 12px !important;
		padding: 7px 7px 7px 10px !important;
		border-left: 3px solid #e3a72f !important;
		border-radius: 0 12px 12px 0 !important;
		background: #f2f4fa !important;
	}
}

/* Custom footer */
body.act-custom-footer-active .site-footer,
body.act-custom-footer-active .footer-widgets { display: none !important; }
.act-site-footer {
	position: relative;
	color: rgba(255,255,255,.76);
	background: #101833;
	overflow: hidden;
}
.act-site-footer::before {
	position: absolute;
	inset: 0;
	background: radial-gradient(circle at 82% 15%,rgba(227,167,47,.13),transparent 28%),radial-gradient(circle at 8% 78%,rgba(217,79,48,.11),transparent 30%);
	content: "";
	pointer-events: none;
}
.act-site-footer__route {
	position: absolute;
	top: 122px;
	right: 2vw;
	width: 240px;
	height: 120px;
	border-top: 2px dashed rgba(227,167,47,.28);
	border-right: 2px dashed rgba(227,167,47,.28);
	border-radius: 0 100% 0 0;
	transform: rotate(-8deg);
}
.act-site-footer__route span { position: absolute; width: 10px; height: 10px; border: 2px solid #e3a72f; border-radius: 50%; background: #101833; }
.act-site-footer__route span:nth-child(1){left:-4px;top:-6px}.act-site-footer__route span:nth-child(2){right:-5px;top:46px}.act-site-footer__route span:nth-child(3){right:44px;bottom:-4px}
.act-site-footer__cta-shell,
.act-site-footer__main,
.act-site-footer__bottom { position: relative; z-index: 1; }
.act-site-footer__cta-shell { width: min(1280px,calc(100% - 40px)); margin: 0 auto; padding-top: 68px; }
.act-site-footer__cta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 40px;
	padding: 34px 38px;
	border: 1px solid rgba(255,255,255,.13);
	border-radius: 24px;
	background: linear-gradient(135deg,rgba(39,52,105,.96),rgba(24,32,68,.92));
	box-shadow: 0 24px 70px rgba(4,9,24,.3);
}
.act-site-footer__cta p { margin: 0 0 7px; color: #e3a72f; font-size: .72rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.act-site-footer__cta h2 { margin: 0 0 9px; color: #fff; font-size: clamp(1.7rem,3vw,2.6rem); }
.act-site-footer__cta span { display: block; max-width: 700px; color: rgba(255,255,255,.76); }
.act-site-footer__cta-actions { display: flex; flex: 0 0 auto; gap: 10px; }
.act-footer-button { display: inline-flex; min-height: 50px; align-items: center; justify-content: center; padding: 12px 18px; border: 1px solid transparent; border-radius: 11px; font-size: .78rem; font-weight: 900; letter-spacing: .04em; text-decoration: none; text-transform: uppercase; }
.act-footer-button--primary { color: #fff !important; border-color: #d94f30; background: #d94f30; box-shadow: 0 12px 26px rgba(217,79,48,.25); }
.act-footer-button--primary:hover { color: #fff !important; border-color: #bc3e24; background: #bc3e24; transform: translateY(-2px); }
.act-footer-button--secondary { color: #fff !important; border-color: rgba(255,255,255,.42); background: rgba(255,255,255,.04); }
.act-footer-button--secondary:hover { color: #182044 !important; border-color: #fff; background: #fff; }

.act-site-footer__main { width: min(1280px,calc(100% - 40px)); margin: 0 auto; padding: 64px 0 48px; }
.act-site-footer__grid { display: grid; grid-template-columns: 1.45fr repeat(4,minmax(130px,.72fr)) 1.3fr; gap: 36px; align-items: start; }
.act-footer-brand__logo { display: inline-flex; align-items: center; gap: 12px; color: #fff !important; text-decoration: none; }
.act-footer-brand__logo img { display: block; width: auto; max-width: 190px; height: 58px; object-fit: contain; filter: brightness(0) invert(1); }
.act-footer-brand__mark { display: inline-flex; width: 54px; height: 54px; align-items: center; justify-content: center; border: 1px solid rgba(255,255,255,.25); border-radius: 16px; color: #182044; background: #e3a72f; font-weight: 950; }
.act-footer-brand__logo strong { color: #fff; font-family: Georgia,"Times New Roman",serif; font-size: 1rem; }
.act-footer-brand > p { max-width: 300px; margin: 20px 0; color: rgba(255,255,255,.68); font-size: .9rem; line-height: 1.7; }
.act-footer-trust { display: flex; flex-wrap: wrap; gap: 7px; }
.act-footer-trust span { padding: 6px 9px; border: 1px solid rgba(227,167,47,.22); border-radius: 999px; color: #f6d687; background: rgba(227,167,47,.07); font-size: .68rem; font-weight: 800; }
.act-footer-column h3,
.act-footer-inspiration h3 { margin: 0 0 18px; color: #fff; font-size: 1rem; }
.act-footer-column h3::after { display: block; width: 36px; height: 3px; margin-top: 10px; border-radius: 999px; background: linear-gradient(90deg,#d94f30,#e3a72f); content: ""; }
.act-footer-column ul { margin: 0; padding: 0; list-style: none; }
.act-footer-column li + li { margin-top: 9px; }
.act-footer-column a { display: inline-flex; position: relative; padding-left: 13px; color: rgba(255,255,255,.7) !important; font-size: .86rem; text-decoration: none; }
.act-footer-column a::before { position: absolute; top: .66em; left: 0; width: 4px; height: 4px; border-radius: 50%; background: #e3a72f; content: ""; transition: transform .2s ease; }
.act-footer-column a:hover { color: #fff !important; transform: translateX(3px); }
.act-footer-column a:hover::before { transform: scale(1.6); }
.act-footer-inspiration { padding: 24px; border: 1px solid rgba(255,255,255,.12); border-radius: 20px; background: rgba(255,255,255,.055); }
.act-footer-inspiration > p { margin: 0 0 8px; color: #e3a72f; font-size: .7rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.act-footer-inspiration h3 { font-size: 1.05rem; line-height: 1.45; }
.act-footer-inspiration > a { color: #fff !important; font-size: .75rem; font-weight: 900; text-transform: uppercase; }
.act-footer-inspiration__stats { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 22px; }
.act-footer-inspiration__stats span { display: flex; flex-direction: column; padding: 12px; border-radius: 13px; background: rgba(255,255,255,.06); font-size: .68rem; text-transform: uppercase; }
.act-footer-inspiration__stats strong { color: #e3a72f; font-family: Georgia,"Times New Roman",serif; font-size: 1.35rem; line-height: 1; }

.act-site-footer__bottom { display: flex; align-items: center; justify-content: space-between; gap: 24px; width: min(1280px,calc(100% - 40px)); min-height: 72px; margin: 0 auto; border-top: 1px solid rgba(255,255,255,.1); font-size: .76rem; }
.act-site-footer__bottom > div { display: flex; flex-wrap: wrap; gap: 8px 18px; }
.act-site-footer__bottom nav { display: flex; gap: 20px; }
.act-site-footer__bottom a { color: rgba(255,255,255,.68) !important; text-decoration: none; }
.act-site-footer__bottom a:hover { color: #e3a72f !important; }

@media (max-width: 1180px) {
	.act-site-footer__grid { grid-template-columns: 1.3fr repeat(3,1fr); }
	.act-footer-inspiration { grid-column: span 2; }
}
@media (max-width: 900px) {
	.act-site-footer__cta { display: block; padding: 30px; }
	.act-site-footer__cta-actions { margin-top: 24px; }
	.act-site-footer__grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
	.act-footer-brand,.act-footer-inspiration { grid-column: 1/-1; }
	.act-footer-brand > p { max-width: 560px; }
	.act-footer-inspiration { display: grid; grid-template-columns: 1fr auto; gap: 12px 30px; align-items: center; }
	.act-footer-inspiration__stats { grid-column: 2; grid-row: 1/4; margin-top: 0; }
}
@media (max-width: 640px) {
	.act-site-footer__route { display: none; }
	.act-site-footer__cta-shell,.act-site-footer__main,.act-site-footer__bottom { width: calc(100% - 28px); }
	.act-site-footer__cta-shell { padding-top: 48px; }
	.act-site-footer__cta { padding: 25px 20px; border-radius: 20px; }
	.act-site-footer__cta-actions { display: grid; grid-template-columns: 1fr; }
	.act-footer-button { width: 100%; }
	.act-site-footer__main { padding: 48px 0 38px; }
	.act-site-footer__grid { grid-template-columns: 1fr 1fr; gap: 34px 22px; }
	.act-footer-brand,.act-footer-inspiration { grid-column: 1/-1; }
	.act-footer-inspiration { display: block; }
	.act-footer-inspiration__stats { margin-top: 20px; }
	.act-site-footer__bottom { display: block; padding: 22px 0; line-height: 1.7; }
	.act-site-footer__bottom nav { flex-wrap: wrap; gap: 6px 18px; margin-top: 12px; }
}
@media (max-width: 420px) {
	.act-site-footer__grid { grid-template-columns: 1fr; }
	.act-footer-brand,.act-footer-inspiration { grid-column: auto; }
}
@media (prefers-reduced-motion: reduce) {
	.act-footer-button,#site-navigation a,.act-footer-column a { transition: none !important; }
}
