:root {
	/* Colors */
	--color-bg: #ffffff;
	--color-text: #0f1724;
	--color-muted: #6b7280;
	--color-primary: #0ea5a4;
	--color-accent: #ff7a59;
	--color-border: #e5e7eb;
	--color-card: #ffffff;
	--color-elev: #f8fafc;

	/* Typography */
	--font-sans: 'Inter', 'Manrope', system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
	--fs-xxl: clamp(28px, 4vw, 48px);
	--fs-xl: clamp(22px, 3vw, 32px);
	--fs-lg: 20px;
	--fs-md: 16px;
	--fs-sm: 14px;
	--fw-bold: 700;
	--fw-semi: 600;
	--fw-reg: 400;

	/* Spacing (8px grid) */
	--sp-1: 8px;
	--sp-2: 12px;
	--sp-3: 16px;
	--sp-4: 24px;
	--sp-5: 32px;
	--sp-6: 48px;
	--sp-7: 64px;
	--sp-8: 96px;

	/* Radii & Shadow */
	--radius-sm: 8px;
	--radius-md: 12px;
	--radius-lg: 16px;
	--shadow-sm: 0 2px 8px rgba(15, 23, 36, 0.06);
	--shadow-md: 0 10px 24px rgba(15, 23, 36, 0.10);

	/* Motion */
	--ease-smooth: cubic-bezier(.2,.9,.2,1);
	--dur-fast: 160ms;
	--dur-base: 220ms;
}

/* Base */
html, body { background: var(--color-bg); color: var(--color-text); font-family: var(--font-sans); font-size: var(--fs-md); }
.container { max-width: 1200px; padding: 0 var(--sp-3); margin: 0 auto; }
.section { margin: 0 0 var(--sp-7); }
.section h2 { font-size: var(--fs-xl); margin: 0 0 var(--sp-3) 0; font-weight: var(--fw-bold); }

/* Header */
.header { background: linear-gradient(180deg, rgba(14,165,164,0.12), rgba(255,122,89,0.06)); border-bottom: 1px solid var(--color-border); }
.header.header-hidden { transform: translateY(-100%); }
.header.header-elevated { background: rgba(255,255,255,0.95); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); box-shadow: 0 4px 16px rgba(15,23,36,0.06); border-bottom: 1px solid var(--color-border); }
.logo { color: var(--color-text); }
.nav a { color: var(--color-text); opacity: 0.8; transition: opacity var(--dur-fast) var(--ease-smooth); }
.nav a:hover, .nav a:focus { opacity: 1; }
.select { background: #fff; border: 1px solid var(--color-border); color: var(--color-text); border-radius: var(--radius-sm); }
.btn { border-radius: var(--radius-md); transition: transform var(--dur-fast) var(--ease-smooth), box-shadow var(--dur-fast) var(--ease-smooth), background var(--dur-fast) var(--ease-smooth); }
.btn:hover { transform: translateY(-2px); box-shadow: var(--shadow-sm); }
.btn.primary { background: var(--color-primary); border-color: var(--color-primary); color: #fff; }
.btn.ghost { background: transparent; border-color: var(--color-border); color: var(--color-text); }

/* Button link reset */
a.btn, a.btn:link, a.btn:visited { text-decoration: none; color: inherit; }
.btn.primary, a.btn.primary { color: #fff; }
.btn.ghost, a.btn.ghost { color: var(--color-text); }

/* Header responsive */
.burger-btn { display: none; align-items: center; justify-content: center; }
.desktop-only { display: inline-flex; gap: var(--sp-2); }
@media (max-width: 945px) {
	.nav { display: none; }
	.desktop-only { display: none; }
	.burger-btn { display: inline-flex; }
}

/* Mobile menu */
.mobile-menu { position: fixed; inset: 0; background: rgba(0,0,0,.48); display: none; z-index: 80; }
.mobile-menu[aria-hidden="false"] { display: block; }
.mobile-menu-inner { position: absolute; right: 0; top: 0; bottom: 0; width: min(86vw, 360px); background: #fff; color: var(--color-text); border-left: 1px solid var(--color-border); padding: var(--sp-4); display: flex; flex-direction: column; gap: var(--sp-4); box-shadow: -10px 0 24px rgba(15,23,36,.08); }
.mobile-top { display: flex; align-items: center; justify-content: space-between; }
.mobile-top .brand-text { font-weight: var(--fw-bold); font-size: var(--fs-lg); }
.mobile-close { width: 36px; height: 36px; border: 1px solid var(--color-border); border-radius: var(--radius-sm); background: #fff; cursor: pointer; }
.mobile-divider { height: 1px; background: var(--color-border); }
.mobile-nav { display: flex; flex-direction: column; gap: var(--sp-2); align-items: center; }
.mobile-nav a { color: var(--color-text); text-decoration: none; font-size: var(--fs-lg); text-align: center; width: 100%; padding: var(--sp-2) 0; }
.mobile-contacts { display: flex; flex-direction: column; gap: var(--sp-2); align-items: center; }
.mobile-contacts a { color: var(--color-text); text-decoration: none; font-weight: var(--fw-semi); }
.mobile-controls { display: flex; gap: var(--sp-2); align-items: center; justify-content: center; }
.mobile-controls .select { width: 55%; }
.mobile-controls .btn { width: auto; }

/* Hero - Full Width */
#hero { 
	padding-top: 0; 
	margin-top: 0; 
	margin-bottom: 0;
	width: 100vw;
	position: relative;
	left: 50%;
	right: 50%;
	margin-left: -50vw;
	margin-right: -50vw;
}
.hero-slide { position: relative; border-radius: 0; overflow: hidden; box-shadow: var(--shadow-md); background: var(--color-elev); }
.hero-media { width: 100%; height: clamp(240px, 40vw, 520px); object-fit: cover; display: block; }
.hero-overlay { position: absolute; inset: 0; display: flex; align-items: flex-end; background: linear-gradient(180deg, rgba(0,0,0,0) 30%, rgba(0,0,0,.45) 100%); }
.hero-content { padding: var(--sp-5); color: #fff; }
.hero-title { 
	font-size: var(--fs-xxl); 
	font-weight: var(--fw-bold); 
	margin: 0 0 var(--sp-3) 0; 
	color: #fec756;
	text-shadow: 
		2px 2px 0px #d4a043,
		4px 4px 0px #b88a35,
		6px 6px 0px #9c7227,
		8px 8px 0px #805a19,
		0 0 15px rgba(254, 199, 86, 0.6),
		0 0 30px rgba(254, 199, 86, 0.4);
	text-transform: none;
	letter-spacing: 1px;
	transform: perspective(500px) rotateX(15deg);
	background: linear-gradient(135deg, #fec756 0%, #ffd700 50%, #fec756 100%);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	position: relative;
	display: inline-block;
	padding: 20px 40px;
	border-radius: 50px 50px 0 0;
	background: linear-gradient(135deg, rgba(254, 199, 86, 0.9) 0%, rgba(255, 215, 0, 0.9) 50%, rgba(254, 199, 86, 0.9) 100%);
	-webkit-background-clip: initial;
	background-clip: initial;
	-webkit-text-fill-color: #fff;
	box-shadow: 
		0 8px 25px rgba(254, 199, 86, 0.3),
		inset 0 2px 10px rgba(255, 255, 255, 0.3),
		inset 0 -2px 10px rgba(0, 0, 0, 0.1);
	border: 2px solid rgba(255, 255, 255, 0.2);
}
.hero-cta { display: inline-flex; gap: var(--sp-2); }
.hero-cta .btn.primary { 
	background: linear-gradient(135deg, #fec756 0%, #ffd700 50%, #fec756 100%) !important; 
	border-color: #fec756 !important; 
	color: #fff !important; 
	text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
	box-shadow: 
		0 4px 15px rgba(254, 199, 86, 0.3),
		inset 0 1px 3px rgba(255, 255, 255, 0.3),
		inset 0 -1px 3px rgba(0, 0, 0, 0.1) !important;
}
.hero-cta .btn.primary:hover { 
	background: linear-gradient(135deg, #ffd700 0%, #fec756 50%, #ffd700 100%) !important;
	box-shadow: 
		0 6px 20px rgba(254, 199, 86, 0.4),
		inset 0 1px 3px rgba(255, 255, 255, 0.4),
		inset 0 -1px 3px rgba(0, 0, 0, 0.1) !important;
}

/* Sliders */
.slider { position: relative; }
.slider-track { gap: var(--sp-3); scroll-snap-type: x mandatory; }
.slide { scroll-snap-align: start; background: var(--color-card); border: 1px solid var(--color-border); border-radius: var(--radius-md); box-shadow: var(--shadow-sm); }
.slider-nav .btn { background: #fff; }

/* Ticker Marquee */
.ticker { overflow: hidden; }
.ticker-inner { position: relative; overflow: hidden; }
.ticker-rail { display: inline-flex; gap: var(--sp-5); white-space: nowrap; will-change: transform; animation: ticker-move 28s linear infinite; }
.ticker-item { color: var(--color-text); opacity: .8; text-decoration: none; font-weight: var(--fw-semi); }
.ticker-item:hover { opacity: 1; }
@keyframes ticker-move { 0% { transform: translateX(0); } 100% { transform: translateX(-50%); } }

/* Cards */
.grid-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--sp-3); }

/* Hide Popular Tours section temporarily */
#popular-tours {
	display: none;
}

/* Hide Articles section temporarily */
#articles {
	display: none;
}
.grid-cards + .grid-cards { margin-top: var(--sp-3); }
@media (max-width: 1030px) { .grid-cards { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .grid-cards { grid-template-columns: 1fr; } }
.tour-card { border: 1px solid var(--color-border); background: var(--color-card); border-radius: var(--radius-md); box-shadow: var(--shadow-sm); overflow: hidden; }
.tour-card .media { height: 220px; object-fit: cover; }
.tour-card .body { padding: var(--sp-3); }
.tour-card .title { font-weight: var(--fw-semi); font-size: var(--fs-lg); }
.tour-card .meta { color: var(--color-muted); font-size: var(--fs-sm); line-height: 1.4; margin-top: 2px; margin-bottom: var(--sp-2); }
.tour-card .price-row { display: flex; align-items: center; justify-content: space-between; gap: var(--sp-2); margin-top: var(--sp-2); flex-wrap: wrap; }
.tour-card .btn { white-space: nowrap; }
.tour-card .price-row .price { color: var(--color-text); font-weight: var(--fw-bold); }
.tour-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); }

/* Why Choose Us */
#whyGrid .article-card { border: 1px solid var(--color-border); border-radius: var(--radius-md); padding: var(--sp-4); box-shadow: var(--shadow-sm); }
#whyGrid .article-card div:first-child { font-size: 24px; }

/* Reviews */
.review-card { background:#fff; border:1px solid var(--color-border); border-radius: var(--radius-md); box-shadow: var(--shadow-sm); padding: var(--sp-4); display:flex; flex-direction:column; gap: 8px; transition: transform var(--dur-fast) var(--ease-smooth), box-shadow var(--dur-fast) var(--ease-smooth), border-color var(--dur-fast) var(--ease-smooth); }
.review-card:hover { transform: translateY(-2px); box-shadow: var(--shadow-md); border-color: rgba(14,165,164,.35); }
.review-meta { display:flex; align-items:center; justify-content:space-between; gap: 8px; }
.review-card .author { font-weight: var(--fw-semi); }
/* Reviews: stars */
.review-card .stars { color: #f59e0b; letter-spacing: 1px; }
.review-text { color: var(--color-muted); line-height: 1.6; }
.review-source { align-self:flex-start; font-size: 12px; color: var(--color-muted); padding: 4px 8px; border:1px solid var(--color-border); border-radius: 999px; background: var(--color-elev); }
.review-source.dg { align-self:flex-start; font-size: 12px; color: #19a974; padding: 4px 8px; border:1px solid rgba(25,169,116,.3); border-radius: 999px; background: rgba(25,169,116,.08); display:inline-flex; align-items:center; gap:6px; }
.review-source.dg svg { width:14px; height:14px; display:block; }
.review-more { align-self: flex-end; }

/* Review Modal */
#reviewModal { position: fixed; inset: 0; background: rgba(0,0,0,.8); display: none; z-index: 110; }
#reviewModal[aria-hidden="false"] { display: flex; }
#reviewModal .lightbox-inner { margin: auto; position: relative; width: min(92vw, 800px); }
#rvBody { background:#fff; color: var(--color-text); border-radius: var(--radius-md); padding: var(--sp-4); max-height: 80vh; overflow: auto; box-shadow: var(--shadow-md); }
#rvClose { position: absolute; top: -44px; right: 0; width: 40px; height: 40px; border-radius: var(--radius-sm); border: 1px solid rgba(255,255,255,.3); background: rgba(255,255,255,.15); color: #fff; cursor: pointer; }
@media (max-width: 640px){ #rvClose { top: -48px; } }

/* Team */
.team-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--sp-3); }
@media (max-width: 900px){ .team-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px){ .team-grid { grid-template-columns: 1fr; } }
.team-card { background:#fff; border:1px solid var(--color-border); border-radius:var(--radius-md); box-shadow:var(--shadow-sm); overflow:hidden; display:flex; flex-direction:column; }
.team-photo { position: relative; background:#fff; }
.team-photo img { width:100%; height: 240px; object-fit: contain; display:block; }
.team-photo .play-btn { position:absolute; left: var(--sp-3); bottom: var(--sp-3); width:44px; height:44px; border-radius:999px; background: rgba(15,23,36,.85); color:#fff; border:1px solid rgba(255,255,255,.25); box-shadow: var(--shadow-sm); }
.team-body { padding: var(--sp-3); display:flex; flex-direction:column; gap: var(--sp-2); flex: 1; }
.team-name { font-weight: var(--fw-bold); }
.team-role { color: var(--color-muted); font-size: var(--fs-sm); }
.team-card { transition: transform var(--dur-fast) var(--ease-smooth), box-shadow var(--dur-fast) var(--ease-smooth), border-color var(--dur-fast) var(--ease-smooth); }
.team-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-md); border-color: rgba(14,165,164,.35); }
.team-photo img { transition: transform var(--dur-fast) var(--ease-smooth); }
.team-card:hover .team-photo img { transform: scale(1.02); }
.team-chips { display:flex; flex-wrap:wrap; gap:6px; margin-top: 4px; }
.chip { display:inline-flex; align-items:center; padding: 4px 8px; font-size: 12px; border:1px solid var(--color-border); border-radius: 999px; background: var(--color-elev); color: var(--color-text); }
.team-actions { display:flex; gap: 8px; margin-top: 8px; }
.icon-btn { width:36px; height:36px; border-radius:999px; display:inline-flex; align-items:center; justify-content:center; border:1px solid var(--color-border); background:#fff; color: var(--color-text); box-shadow: var(--shadow-sm); transition: background var(--dur-fast) var(--ease-smooth), box-shadow var(--dur-fast) var(--ease-smooth), transform var(--dur-fast) var(--ease-smooth); }
.icon-btn:hover { background: var(--color-elev); box-shadow: var(--shadow-md); transform: translateY(-1px); }
.team-cta { display:flex; justify-content:flex-start; margin-top: auto; }

/* FAQ */
.faq-item { background: #fff; border: 1px solid var(--color-border); }
.faq-q { display: flex; justify-content: space-between; align-items: center; }
.faq-item.open .faq-q { background: var(--color-elev); }

/* Articles */
.article-card { background: #fff; border: 1px solid var(--color-border); border-radius: var(--radius-md); box-shadow: var(--shadow-sm); }

/* Forms */
.input { background: #fff; border: 1px solid var(--color-border); color: var(--color-text); border-radius: var(--radius-sm); }
.input:focus { outline: 2px solid color-mix(in srgb, var(--color-primary) 40%, transparent); outline-offset: 2px; }

/* Floating */
.floating-right .btn { box-shadow: var(--shadow-sm); }
.fixed-left-video { box-shadow: var(--shadow-sm); }

/* Floating FABs */
.floating-right { position: fixed; right: 16px; bottom: 16px; display: flex; flex-direction: column; gap: var(--sp-2); z-index: 90; }
.fab { width: 56px; height: 56px; border-radius: 999px; display: inline-flex; align-items: center; justify-content: center; color: #fff; text-decoration: none; box-shadow: var(--shadow-sm); border: 1px solid rgba(0,0,0,.06); transition: transform var(--dur-fast) var(--ease-smooth), filter var(--dur-fast) var(--ease-smooth); font-weight: var(--fw-semi); position: relative; }
.fab svg { width: 24px; height: 24px; display:block; }
.fab:hover { transform: translateY(-2px); filter: brightness(0.95); }
.fab-wa { background: #25D366; border-color: #25D366; --pulse-color: rgba(37,211,102,0.35); }
.fab-ig { background: #E1306C; border-color: #E1306C; --pulse-color: rgba(225,48,108,0.35); }
.fab.pulse::after { content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none; animation: fab-pulse 1.8s ease-out infinite; box-shadow: 0 0 0 0 var(--pulse-color); }
@keyframes fab-pulse { 0% { box-shadow: 0 0 0 0 var(--pulse-color);} 70% { box-shadow: 0 0 0 18px rgba(0,0,0,0);} 100% { box-shadow: 0 0 0 0 rgba(0,0,0,0);} }
@media (max-width: 420px){ .fab { width: 48px; height: 48px; } .fab svg { width: 20px; height: 20px; } }

/* Footer */
#siteFooter { background: linear-gradient(180deg, rgba(14,165,164,0.06), rgba(255,122,89,0.04)); border-top: 1px solid var(--color-border); color: #fff; }
#siteFooter a { color: inherit; }
.footer-note { color: inherit; }

/* Utilities */
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); border: 0; }

/* Simple Hero - Full Width */
.hero-simple { 
	position: relative; 
	border-radius: 0; 
	overflow: hidden; 
	box-shadow: var(--shadow-md);
	width: 100%;
}
.hero-simple img { 
	width: 100%; 
	height: clamp(300px, 50vw, 600px); 
	object-fit: cover; 
	object-position: center 10%;
	display: block;
}
.hero-simple .overlay { 
	position: absolute; 
	inset: 0; 
	background: linear-gradient(180deg, rgba(0,0,0,0) 35%, rgba(0,0,0,.5) 100%); 
	display: flex; 
	align-items: center; 
	justify-content: center; 
}
.hero-simple .content { padding: var(--sp-5); color: #fff; }
.hero-simple .title { 
	font-size: var(--fs-xxl); 
	font-weight: var(--fw-bold); 
	margin: 0 0 var(--sp-3) 0; 
	color: #fec756;
	text-shadow: 
		2px 2px 0px #d4a043,
		4px 4px 0px #b88a35,
		6px 6px 0px #9c7227,
		8px 8px 0px #805a19,
		0 0 15px rgba(254, 199, 86, 0.6),
		0 0 30px rgba(254, 199, 86, 0.4);
	text-transform: none;
	letter-spacing: 1px;
	transform: perspective(500px) rotateX(15deg);
	background: linear-gradient(135deg, rgba(254, 199, 86, 0.9) 0%, rgba(255, 215, 0, 0.9) 50%, rgba(254, 199, 86, 0.9) 100%);
	-webkit-text-fill-color: #fff;
	position: relative;
	display: inline-block;
	padding: 20px 40px;
	border-radius: 50px 50px 0 0;
	box-shadow: 
		0 8px 25px rgba(254, 199, 86, 0.3),
		inset 0 2px 10px rgba(255, 255, 255, 0.3),
		inset 0 -2px 10px rgba(0, 0, 0, 0.1);
	border: 2px solid rgba(255, 255, 255, 0.2);
}
.hero-simple .cta { display: inline-flex; }
.hero-simple .cta .btn.primary { 
	background: linear-gradient(135deg, #fec756 0%, #ffd700 50%, #fec756 100%) !important; 
	border-color: #fec756 !important; 
	color: #fff !important; 
	text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
	box-shadow: 
		0 4px 15px rgba(254, 199, 86, 0.3),
		inset 0 1px 3px rgba(255, 255, 255, 0.3),
		inset 0 -1px 3px rgba(0, 0, 0, 0.1) !important;
}
.hero-simple .cta .btn.primary:hover { 
	background: linear-gradient(135deg, #ffd700 0%, #fec756 50%, #ffd700 100%) !important;
	box-shadow: 
		0 6px 20px rgba(254, 199, 86, 0.4),
		inset 0 1px 3px rgba(255, 255, 255, 0.4),
		inset 0 -1px 3px rgba(0, 0, 0, 0.1) !important;
}

/* Hero Center Content */
.hero-center-content { 
	display: flex; 
	flex-direction: column; 
	align-items: center; 
	text-align: center; 
	color: #fff; 
	padding: var(--sp-4);
	max-width: 1000px;
	margin: 0 auto;
}
.hero-center-content .title { 
	font-size: var(--fs-xxl); 
	font-weight: var(--fw-bold); 
	margin: 0 0 var(--sp-4) 0; 
	color: #fec756;
	text-shadow: 
		2px 2px 0px #d4a043,
		4px 4px 0px #b88a35,
		6px 6px 0px #9c7227,
		8px 8px 0px #805a19,
		0 0 15px rgba(254, 199, 86, 0.6),
		0 0 30px rgba(254, 199, 86, 0.4);
	text-transform: none;
	letter-spacing: 1px;
	transform: perspective(500px) rotateX(15deg);
	background: linear-gradient(135deg, rgba(254, 199, 86, 0.9) 0%, rgba(255, 215, 0, 0.9) 50%, rgba(254, 199, 86, 0.9) 100%);
	-webkit-text-fill-color: #fff;
	position: relative;
	display: inline-block;
	padding: 20px 40px;
	border-radius: 50px 50px 0 0;
	box-shadow: 
		0 8px 25px rgba(254, 199, 86, 0.3),
		inset 0 2px 10px rgba(255, 255, 255, 0.3),
		inset 0 -2px 10px rgba(0, 0, 0, 0.1);
	border: 2px solid rgba(255, 255, 255, 0.2);
}
.hero-search-container { 
	width: auto;
	max-width: 800px;
	margin: 0 auto var(--sp-4) auto;
	background: transparent;
	border-radius: var(--radius-lg);
	padding: var(--sp-3);
	box-shadow: none;
	backdrop-filter: none;
	-webkit-backdrop-filter: none;
	overflow-x: auto;
	display: flex;
	flex-direction: column;
}
.hero-center-content .cta { 
	display: inline-flex; 
	margin-top: var(--sp-2);
}
.hero-center-content .cta .btn.primary { 
	background: linear-gradient(135deg, #fec756 0%, #ffd700 50%, #fec756 100%) !important; 
	border-color: #fec756 !important; 
	color: #fff !important; 
	text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
	box-shadow: 
		0 4px 15px rgba(254, 199, 86, 0.3),
		inset 0 1px 3px rgba(255, 255, 255, 0.3),
		inset 0 -1px 3px rgba(0, 0, 0, 0.1) !important;
}
.hero-center-content .cta .btn.primary:hover { 
	background: linear-gradient(135deg, #ffd700 0%, #fec756 50%, #ffd700 100%) !important;
	box-shadow: 
		0 6px 20px rgba(254, 199, 86, 0.4),
		inset 0 1px 3px rgba(255, 255, 255, 0.4),
		inset 0 -1px 3px rgba(0, 0, 0, 0.1) !important;
}

/* Tourvisor form styling */
.tv-search-form {
	width: 100%;
	min-width: 100%;
	overflow-x: auto;
}
.tv-search-form * {
	box-sizing: border-box;
}
.tv-search-form table {
	width: 100% !important;
	min-width: 600px;
}
.tv-search-form input,
.tv-search-form select {
	max-width: 100%;
}

/* Tour Search Page Styles */
.page-header {
	text-align: center;
	margin-bottom: var(--sp-6);
}

.page-header h1 {
	font-size: var(--fs-xxl);
	font-weight: var(--fw-bold);
	margin: 0 0 var(--sp-3) 0;
	color: var(--color-text);
}

.page-header p {
	font-size: var(--fs-lg);
	color: var(--color-muted);
	margin: 0;
}

.search-container {
	background: var(--color-elev);
	border-radius: var(--radius-lg);
	padding: var(--sp-6);
	box-shadow: var(--shadow-md);
	margin-bottom: var(--sp-6);
}

.search-header {
	text-align: center;
	margin-bottom: var(--sp-5);
}

.search-header h2 {
	font-size: var(--fs-xl);
	font-weight: var(--fw-bold);
	margin: 0 0 var(--sp-2) 0;
	color: var(--color-text);
}

.search-header p {
	font-size: var(--fs-base);
	color: var(--color-muted);
	margin: 0;
}

.info-cards {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
	gap: var(--sp-4);
	margin-top: var(--sp-6);
}

.info-card {
	background: var(--color-elev);
	border-radius: var(--radius-lg);
	padding: var(--sp-5);
	text-align: center;
	box-shadow: var(--shadow-sm);
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.info-card:hover {
	transform: translateY(-2px);
	box-shadow: var(--shadow-md);
}

.info-icon {
	width: 48px;
	height: 48px;
	margin: 0 auto var(--sp-3) auto;
	background: var(--color-primary);
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	color: white;
}

.info-icon svg {
	width: 24px;
	height: 24px;
}

.info-card h3 {
	font-size: var(--fs-lg);
	font-weight: var(--fw-semibold);
	margin: 0 0 var(--sp-2) 0;
	color: var(--color-text);
}

.info-card p {
	font-size: var(--fs-sm);
	color: var(--color-muted);
	margin: 0;
	line-height: 1.5;
}

/* Tourvisor Form Styling */
.tv-search-form {
	margin: var(--sp-4) 0;
}

@media (max-width: 768px) {
	/* Hero Full Width Mobile */
	#hero {
		width: 100vw;
		position: relative;
		left: 50%;
		right: 50%;
		margin-left: -50vw;
		margin-right: -50vw;
	}
	.hero-simple img {
		height: clamp(250px, 60vw, 400px);
		object-position: center 5%;
	}
	
	.hero-center-content { 
		padding: var(--sp-3);
		max-width: 95%;
	}
	.hero-center-content .title { 
		font-size: var(--fs-xl); 
		margin: 0 0 var(--sp-3) 0; 
		color: #fec756;
		text-shadow: 
			1px 1px 0px #d4a043,
			2px 2px 0px #b88a35,
			3px 3px 0px #9c7227,
			4px 4px 0px #805a19,
			0 0 10px rgba(254, 199, 86, 0.6),
			0 0 20px rgba(254, 199, 86, 0.4);
		text-transform: none;
		letter-spacing: 1px;
		transform: perspective(400px) rotateX(10deg);
		background: linear-gradient(135deg, rgba(254, 199, 86, 0.9) 0%, rgba(255, 215, 0, 0.9) 50%, rgba(254, 199, 86, 0.9) 100%);
		-webkit-text-fill-color: #fff;
		position: relative;
		display: inline-block;
		padding: 15px 30px;
		border-radius: 40px 40px 0 0;
		box-shadow: 
			0 6px 20px rgba(254, 199, 86, 0.3),
			inset 0 1px 8px rgba(255, 255, 255, 0.3),
			inset 0 -1px 8px rgba(0, 0, 0, 0.1);
		border: 2px solid rgba(255, 255, 255, 0.2);
	}
	.hero-search-container { 
		padding: var(--sp-2);
		margin: 0 auto var(--sp-3) auto;
		max-width: 95%;
	}
	.tv-search-form table {
		min-width: 500px;
	}
	.tv-search-form input,
	.tv-search-form select {
		font-size: 14px;
		padding: 8px;
	}
}

.logo.brand { display:inline-flex; align-items:center; gap: var(--sp-2); text-decoration:none; }
.logo .brand-text { color: var(--color-text); font-weight: var(--fw-bold); font-size: var(--fs-lg); }

@media (max-width: 420px) {
	.btn.phone { display: none; }
	
	/* Hero Full Width Small Mobile */
	.hero-simple img {
		height: clamp(200px, 70vw, 350px);
		object-position: center 0%;
	}
	.hero-center-content .title {
		font-size: clamp(20px, 6vw, 28px);
		color: #fec756;
		text-shadow: 
			1px 1px 0px #d4a043,
			2px 2px 0px #b88a35,
			3px 3px 0px #9c7227,
			0 0 8px rgba(254, 199, 86, 0.6),
			0 0 16px rgba(254, 199, 86, 0.4);
		text-transform: none;
		letter-spacing: 1px;
		transform: perspective(300px) rotateX(8deg);
		background: linear-gradient(135deg, rgba(254, 199, 86, 0.9) 0%, rgba(255, 215, 0, 0.9) 50%, rgba(254, 199, 86, 0.9) 100%);
		-webkit-text-fill-color: #fff;
		position: relative;
		display: inline-block;
		padding: 12px 24px;
		border-radius: 30px 30px 0 0;
		box-shadow: 
			0 4px 15px rgba(254, 199, 86, 0.3),
			inset 0 1px 6px rgba(255, 255, 255, 0.3),
			inset 0 -1px 6px rgba(0, 0, 0, 0.1);
		border: 2px solid rgba(255, 255, 255, 0.2);
	}
	
	/* Tour Search Page Mobile */
	.search-container {
		padding: var(--sp-4);
		margin: 0 16px var(--sp-4) 16px;
	}
	
	.info-cards {
		grid-template-columns: 1fr;
		margin: var(--sp-4) 16px 0 16px;
	}
	
	.info-card {
		padding: var(--sp-4);
	}
	
	.page-header {
		padding: 0 16px;
	}
}
.mobile-contacts { display: flex; flex-direction: column; gap: var(--sp-2); }
.mobile-contacts a { color: var(--color-text); text-decoration: none; font-weight: var(--fw-semi); }

/* Client Trips Mosaic */
.mosaic { display: grid; grid-template-columns: repeat(6, 1fr); height: var(--mosaic-h, 480px); grid-auto-rows: calc((var(--mosaic-h, 480px) - 1 * var(--sp-3)) / 2); gap: var(--sp-3); }
@media (max-width: 1024px) { .mosaic { grid-template-columns: repeat(6, 1fr); } }
@media (max-width: 640px) { .mosaic { grid-template-columns: repeat(4, 1fr); } }
.mosaic-item { position: relative; border-radius: var(--radius-md); overflow: hidden; box-shadow: var(--shadow-sm); background: #000; }
.mosaic-item video, .mosaic-item iframe { width: 100%; height: 100%; object-fit: cover; display: block; background: #000; }
.mosaic-item::after { content: ""; position:absolute; inset:0; box-shadow: inset 0 0 0 1px rgba(255,255,255,.06); pointer-events:none; }

/* Mosaic play button */
.mosaic-item .play-btn { position:absolute; left: var(--sp-3); bottom: var(--sp-3); display:inline-flex; align-items:center; justify-content:center; width: 44px; height: 44px; border-radius: 999px; background: rgba(15,23,36,.85); color: #fff; border:1px solid rgba(255,255,255,.25); box-shadow: var(--shadow-sm); cursor: pointer; transition: transform var(--dur-fast) var(--ease-smooth), background var(--dur-fast) var(--ease-smooth); }
.mosaic-item .play-btn:hover { transform: translateY(-2px); background: rgba(15,23,36,.95); }
.mosaic-item .play-icon { font-size: 16px; line-height: 1; margin-left: 2px; }

/* Mosaic slider */
.mosaic-slider { position: relative; }
.mosaic-viewport { overflow: hidden; }
.mosaic-nav { position: absolute; top: 50%; transform: translateY(-50%); display: none; z-index: 2; }
.mosaic-nav.prev { left: -8px; }
.mosaic-nav.next { right: -8px; }
@media (max-width: 640px){
	.mosaic-viewport { overflow-x: auto; -webkit-overflow-scrolling: touch; scroll-behavior: smooth; }
	.mosaic { grid-template-columns: repeat(6, 160px); width: calc(6 * 160px + 5 * var(--sp-3)); }
	.mosaic-nav { display: inline-flex; }
	
	/* Improve video display on mobile */
	.mosaic-item video { 
		background: #000; 
		min-height: 100%; 
		object-fit: cover; 
	}
	
	/* Ensure video loads properly on mobile */
	.mosaic-item video[poster] { 
		background-image: attr(poster); 
		background-size: cover; 
		background-position: center; 
	}
}

/* Lightbox */
#videoLightbox { position: fixed; inset: 0; background: rgba(0,0,0,.8); display: none; z-index: 100; }
#videoLightbox[aria-hidden="false"] { display: flex; }
.lightbox-inner { margin: auto; position: relative; width: min(92vw, 960px); }
#lbVideo { width: 100%; max-height: 80vh; background:#000; border-radius: var(--radius-md); }
#lbClose { position: absolute; top: -44px; right: 0; width: 40px; height: 40px; border-radius: var(--radius-sm); border: 1px solid rgba(255,255,255,.3); background: rgba(255,255,255,.15); color: #fff; cursor: pointer; }
@media (max-width: 640px){ #lbClose { top: -48px; } }

.mosaic-actions { display: flex; justify-content: flex-end; margin-top: var(--sp-3); gap: 15px; }
.btn.more { background: var(--color-primary); border-color: var(--color-primary); color: #fff; }
.btn.more:hover { filter: brightness(0.95); }

/* Hide horizontal scrollbars while allowing programmatic scroll */
.mosaic-viewport { -ms-overflow-style: none; scrollbar-width: none; }
.mosaic-viewport::-webkit-scrollbar { display: none; }
.slider-track { -ms-overflow-style: none; scrollbar-width: none; overflow-x: auto; overflow-y: hidden; }
.slider-track::-webkit-scrollbar { display: none; }

/* Consult Card */
.consult-card { background: linear-gradient(180deg, rgba(14,165,164,0.06), rgba(255,122,89,0.04)); border:1px solid var(--color-border); border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); padding: var(--sp-5); }
.consult-card h2 { margin-top: 0; margin-bottom: var(--sp-3); }
.consult-card .form { display:grid; grid-template-columns: 1fr 1fr auto; gap: var(--sp-3); }
@media (max-width: 768px){ .consult-card .form { grid-template-columns: 1fr; } }
.consult-card .input { padding: 12px 14px; border-radius: var(--radius-md); }
.consult-card .btn.primary { padding: 12px 16px; }
.consult-card .msg { margin-top: var(--sp-3); }

/* FAQ Card */
.faq-card { background: linear-gradient(180deg, rgba(14,165,164,0.06), rgba(255,122,89,0.04)); border:1px solid var(--color-border); border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); padding: var(--sp-5); max-width: 900px; margin: 0 auto; }
.faq-card h2 { text-align: center; margin-top: 0; margin-bottom: var(--sp-4); }
.faq-list { display:flex; flex-direction:column; gap: var(--sp-2); }
.faq-item { border-radius: var(--radius-md); background:#fff; border:1px solid var(--color-border); overflow:hidden; }
.faq-q { padding: var(--sp-3); font-weight: var(--fw-semi); cursor:pointer; display:flex; align-items:center; justify-content:space-between; }
.faq-q::after { content: '+'; color: var(--color-muted); }
.faq-item.open .faq-q::after { content: '−'; }
.faq-a { padding: 0 var(--sp-3) var(--sp-3); color: var(--color-muted); display:none; }
.faq-item.open .faq-a { display:block; }

/* Articles Grid */
.articles-grid { display:grid; grid-template-columns: repeat(3, 1fr); gap: var(--sp-3); }
@media (max-width: 900px){ .articles-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px){ .articles-grid { grid-template-columns: 1fr; } }
.article-card { background: #fff; border: 1px solid var(--color-border); border-radius: var(--radius-md); box-shadow: var(--shadow-sm); padding: var(--sp-4); display:flex; flex-direction:column; gap: var(--sp-2); transition: transform var(--dur-fast) var(--ease-smooth), box-shadow var(--dur-fast) var(--ease-smooth); }
.article-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); }
.article-title { font-weight: var(--fw-semi); font-size: var(--fs-lg); margin: 0; }
.article-actions { margin-top: auto; display:flex; justify-content: flex-end; }
.btn.ghost.chevron::after { content: '→'; margin-left: 8px; }

/* Footer layout */
#siteFooter { background: linear-gradient(180deg, rgba(14,165,164,0.06), rgba(255,122,89,0.04)); border-top: 1px solid var(--color-border); color: #fff; }
.footer-grid { display:grid; grid-template-columns: 2fr 1fr 2fr; gap: var(--sp-5); align-items:start; }
@media (max-width: 900px){ .footer-grid { grid-template-columns: 1fr; } }
.footer-col h4 { margin: 0 0 var(--sp-2) 0; font-size: var(--fs-lg); font-weight: var(--fw-bold); }
.footer-list { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap: 8px; }
.footer-list a { color: inherit; text-decoration: none; opacity:.95; }
.footer-list a:hover { opacity: 1; text-decoration: underline; }
.footer-actions { display:flex; gap: var(--sp-2); margin-top: var(--sp-2); }
.footer-actions .btn { padding: 8px 12px; }
.footer-actions .btn.ghost { color:#fff; border-color: rgba(255,255,255,.35); background: transparent; }
.footer-brand { display:flex; align-items:center; gap: var(--sp-2); font-weight: var(--fw-bold); font-size: var(--fs-lg); margin-bottom: var(--sp-2); }
.footer-brand .footer-logo { width: 28px; height: 28px; border-radius: 6px; background:#fff; padding: 2px; display:block; }
.contact-info { display:flex; flex-direction:column; gap: var(--sp-2); line-height: 1.6; }
.footer-note { margin-top: var(--sp-5); padding-top: var(--sp-3); border-top: 1px solid rgba(255,255,255,.18); text-align:center; color: inherit; }
.footer-map { border: 1px solid rgba(255,255,255,.18); border-radius: var(--radius-md); overflow: hidden; background:#fff; box-shadow: var(--shadow-sm); height: 240px; }
.footer-map iframe { width: 100%; height: 240px; border: 0; display:block; }
.footer-openmap { margin-top: var(--sp-2); display:inline-block; color: inherit; }

/* Floating video (bottom-right) */
.fixed-right-video { position: fixed; right: 16px; bottom: 96px; width: 280px; border-radius: var(--radius-md); overflow: hidden; background: #000; box-shadow: var(--shadow-md); z-index: 95; }
.fixed-right-video video { width: 100%; aspect-ratio: 16 / 9; display: block; object-fit: cover; }
@media (max-width: 768px){ .fixed-right-video { right: 8px; bottom: 128px; width: 180px; } }

/* Floating video (bottom-left) */
.fixed-left-video { position: fixed; left: 16px; bottom: 16px; width: 186px; border-radius: var(--radius-md); overflow: hidden; background: #000; box-shadow: var(--shadow-md); z-index: 95; }
.fixed-left-video video { width: 100%; aspect-ratio: 16 / 9; display: block; object-fit: cover; }
@media (max-width: 768px){ .fixed-left-video { left: 8px; bottom: 8px; width: 120px; } }

/* Shared header layout */
.header-row { display:flex; align-items:center; justify-content:space-between; gap: var(--sp-2); padding: var(--sp-2) 0; }
.nav { display:flex; align-items:center; gap: var(--sp-3); }
.nav a { text-decoration: none; color: var(--color-text); opacity: 0.8; transition: opacity var(--dur-fast) var(--ease-smooth); }
.nav a:hover, .nav a:focus { opacity: 1; }
.actions { display:flex; align-items:center; gap: var(--sp-2); }
.phone { display:inline-flex; align-items:center; gap: var(--sp-2); text-decoration: none; color: inherit; }

/* Contacts page: beautiful contact info grid */
.contact-info-grid { display: grid; grid-template-columns: 160px 1fr; gap: var(--sp-2) var(--sp-3); align-items: start; }
.contact-info-grid .label { color: var(--color-muted); font-weight: var(--fw-semi); }
.contact-info-grid .value { color: var(--color-text); }
.contact-info-grid .value a { color: var(--color-text); text-decoration: none; border-bottom: 1px dashed rgba(15,23,36,.25); }
.contact-info-grid .value a:hover { border-bottom-color: transparent; }
@media (max-width: 600px){ .contact-info-grid { grid-template-columns: 1fr; } .contact-info-grid .label { margin-top: var(--sp-2); } }

/* Ensure white text on "Смотреть больше" button in Client Trips */
.mosaic-actions a.btn.more, a.btn.more { color: #fff; }

/* City modal beautify */
.modal-backdrop { 
	position: fixed; 
	inset: 0; 
	background: rgba(15,23,36,.8); 
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	display: none; 
	align-items: center; 
	justify-content: center; 
	z-index: 100; 
	animation: modalFadeIn 0.3s ease-out;
}
@keyframes modalFadeIn {
	from { opacity: 0; }
	to { opacity: 1; }
}

.city-modal { 
	background: linear-gradient(135deg, #ffffff 0%, #f8fafc 100%);
	color: var(--color-text); 
	border-radius: var(--radius-lg); 
	border: 1px solid var(--color-border); 
	width: min(92vw, 400px); 
	box-shadow: 0 20px 60px rgba(15,23,36,0.15), 0 8px 32px rgba(15,23,36,0.1);
	overflow: hidden;
	animation: modalSlideIn 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
	position: relative;
	padding: var(--sp-6);
}
@keyframes modalSlideIn {
	from { 
		opacity: 0;
		transform: translateY(-20px) scale(0.95);
	}
	to { 
		opacity: 1;
		transform: translateY(0) scale(1);
	}
}

.city-modal-header {
	text-align: center;
	padding: var(--sp-6) var(--sp-5) var(--sp-4);
	background: linear-gradient(135deg, rgba(14,165,164,0.08) 0%, rgba(255,122,89,0.04) 100%);
	border-bottom: 1px solid var(--color-border);
}

.city-modal-icon {
	width: 64px;
	height: 64px;
	margin: 0 auto var(--sp-3);
	background: linear-gradient(135deg, var(--color-primary), var(--color-accent));
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	color: white;
	box-shadow: 0 8px 24px rgba(14,165,164,0.3);
}

.city-modal-icon svg {
	width: 28px;
	height: 28px;
}

.city-modal h3 { 
	margin: 0 0 var(--sp-2) 0; 
	font-size: var(--fs-xl); 
	font-weight: var(--fw-bold);
	color: var(--color-text);
}
.city-modal p { 
	margin: 0; 
	color: var(--color-muted); 
	font-size: var(--fs-md);
	line-height: 1.5;
}

.city-grid { 
	display: grid; 
	grid-template-columns: 1fr 1fr; 
	gap: var(--sp-4); 
	padding: 0;
}
@media (max-width: 420px){ 
	.city-grid { 
		grid-template-columns: 1fr; 
		padding: 0;
	} 
}

.city-btn { 
	display: flex; 
	align-items: center; 
	justify-content: center; 
	gap: var(--sp-2); 
	padding: var(--sp-4) var(--sp-3); 
	border-radius: var(--radius-lg); 
	border: 2px solid var(--color-border); 
	background: #fff; 
	cursor: pointer; 
	font-weight: var(--fw-semi); 
	font-size: var(--fs-md);
	box-shadow: var(--shadow-sm); 
	transition: all var(--dur-base) var(--ease-smooth);
	position: relative;
	overflow: hidden;
}
.city-btn::before {
	content: '';
	position: absolute;
	top: 0;
	left: -100%;
	width: 100%;
	height: 100%;
	background: linear-gradient(90deg, transparent, rgba(14,165,164,0.1), transparent);
	transition: left 0.5s ease;
}
.city-btn:hover::before {
	left: 100%;
}
.city-btn:hover { 
	transform: translateY(-3px); 
	box-shadow: 0 12px 32px rgba(14,165,164,0.15); 
	background: var(--color-elev);
	border-color: var(--color-primary);
	color: var(--color-primary);
}
.city-btn:active {
	transform: translateY(-1px);
}

.city-modal-footer {
	padding: var(--sp-4) var(--sp-5) var(--sp-5);
	background: var(--color-elev);
	border-top: 1px solid var(--color-border);
}

.city-modal-benefits {
	display: flex;
	justify-content: space-around;
	gap: var(--sp-3);
}

.benefit-item {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--sp-1);
	text-align: center;
	flex: 1;
}

.benefit-item svg {
	width: 20px;
	height: 20px;
	color: var(--color-primary);
}

.benefit-item span {
	font-size: var(--fs-sm);
	color: var(--color-muted);
	font-weight: var(--fw-semi);
	line-height: 1.3;
}

@media (max-width: 640px) {
	.city-modal-benefits {
		flex-direction: column;
		gap: var(--sp-2);
	}
	.benefit-item {
		flex-direction: row;
		justify-content: flex-start;
		text-align: left;
	}
	.benefit-item svg {
		flex-shrink: 0;
	}
}

.modal-backdrop[style*="display: flex"] { 
	display: flex; 
}

/* Why (About) cards */
.why-card { display:flex; gap: var(--sp-3); align-items:center; background: var(--color-card); border:1px solid var(--color-border); border-radius: var(--radius-lg); padding: var(--sp-4); box-shadow: var(--shadow-sm); transition: transform var(--dur-fast) var(--ease-smooth), box-shadow var(--dur-fast) var(--ease-smooth), border-color var(--dur-fast) var(--ease-smooth); }
.why-card:hover { transform: translateY(-2px); box-shadow: var(--shadow-md); border-color: rgba(14,165,164,.35); }
.why-icon { width: 36px; height: 36px; border-radius: 999px; background: var(--color-elev); color: var(--color-primary); display:flex; align-items:center; justify-content:center; font-weight: var(--fw-bold); box-shadow: var(--shadow-sm); flex: 0 0 auto; }
.why-icon img { width: 24px; height: 24px; object-fit: contain; }
.why-body { display:flex; flex-direction:column; gap: 6px; }
.why-title { font-weight: var(--fw-bold); font-size: var(--fs-md); }
.why-text { color: var(--color-muted); line-height: 1.55; }
@media (max-width: 640px){ .why-card { padding: var(--sp-3); align-items: center; } .why-icon { width:32px; height:32px; } .why-icon img { width: 20px; height: 20px; } }

.reviews-actions { display:flex; justify-content:flex-end; margin-top: 12px; }

/* Package Includes section */
.includes-grid { display:grid; grid-template-columns: repeat(3, 1fr); gap: var(--sp-3); }
@media (max-width: 1024px){ .includes-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px){ .includes-grid { grid-template-columns: 1fr; } }
.include-card { background:#fff; border:1px solid var(--color-border); border-radius: var(--radius-lg); padding: var(--sp-4); box-shadow: var(--shadow-sm); display:flex; gap: var(--sp-3); align-items:flex-start; transition: transform var(--dur-fast) var(--ease-smooth), box-shadow var(--dur-fast) var(--ease-smooth), border-color var(--dur-fast) var(--ease-smooth); }
.include-card:hover { transform: translateY(-2px); box-shadow: var(--shadow-md); border-color: rgba(14,165,164,.35); }
.include-icon { width: 40px; height: 40px; border-radius: 999px; background: var(--color-elev); color: var(--color-primary); display:flex; align-items:center; justify-content:center; box-shadow: var(--shadow-sm); flex: 0 0 auto; }
.include-body { display:flex; flex-direction:column; gap: 6px; }
.include-title { font-weight: var(--fw-bold); font-size: var(--fs-md); }
.include-text { color: var(--color-muted); line-height: 1.55; }
.include-num { width: 40px; height: 40px; border-radius: 12px; background: var(--color-elev); color: #0ea5a4; display:flex; align-items:center; justify-content:center; font-weight: var(--fw-bold); box-shadow: var(--shadow-sm); border: 1px solid rgba(14,165,164,.25); flex: 0 0 auto; }

/* Visa-free (isolated) */
.vf-grid { display:grid; grid-template-columns: repeat(3, 1fr); gap: var(--sp-3); }
@media (max-width: 1024px){ .vf-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px){ .vf-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 360px){ .vf-grid { grid-template-columns: repeat(2, 1fr); gap: var(--sp-2); } }
@media (max-width: 350px){ .vf-grid { grid-template-columns: repeat(2, 1fr); gap: var(--sp-2); } }
.vf-card { 
	background:#fff; 
	border:1px solid var(--color-border); 
	border-radius: var(--radius-lg); 
	box-shadow: var(--shadow-sm); 
	overflow:hidden; 
	display:flex; 
	flex-direction:column; 
	align-items:center; 
	text-align: center;
	transition: transform var(--dur-fast) var(--ease-smooth), box-shadow var(--dur-fast) var(--ease-smooth), border-color var(--dur-fast) var(--ease-smooth); 
}
.vf-card:hover { transform: translateY(-2px); box-shadow: var(--shadow-md); border-color: rgba(14,165,164,.35); }
.vf-flag { 
	width: 60px;
	height: 40px;
	margin-bottom: 12px;
	display: flex; 
	align-items: center; 
	justify-content: center; 
	background: var(--color-elev);
}
.vf-flag img { 
	width: 100%; 
	height: 100%; 
	object-fit: cover; 
	display: block;
}
.vf-body { padding: var(--sp-4); display:flex; flex-direction:column; gap: 8px; align-items: center; text-align: center; }
.vf-title { font-weight: var(--fw-bold); font-size: var(--fs-md); text-align: center; }
.vf-text { color: var(--color-muted); line-height: 1.55; }
.vf-actions { margin-top: 8px; display:flex; justify-content:center; }

/* Modal */
.vf-modal-backdrop { position: fixed; inset: 0; background: rgba(0,0,0,.7); display:none; align-items:center; justify-content:center; z-index: 9999; }
.vf-modal-backdrop[aria-hidden="false"] { display:flex; }
.vf-modal-inner { width: min(92vw, 760px); max-height: 88vh; overflow:auto; background:#fff !important; color: var(--color-text) !important; border:1px solid var(--color-border); border-radius: var(--radius-lg); box-shadow: var(--shadow-md); padding: var(--sp-5); position: relative; }
.vf-modal-inner::-webkit-scrollbar { width: 8px; }
.vf-modal-inner::-webkit-scrollbar-thumb { background: rgba(0,0,0,.15); border-radius: 8px; }
.vf-modal-close { position:absolute; top: 10px; right: 10px; border:1px solid var(--color-border); background:#fff; border-radius: 8px; width: 36px; height: 36px; cursor: pointer; }
.vf-modal-title { color: var(--color-text); }
.vf-modal-text { color: var(--color-text); line-height: 1.65; }
.vf-modal-img { width: 100%; height: 220px; object-fit: cover; border-radius: var(--radius-md); margin: 0 0 var(--sp-3) 0; background: var(--color-elev); display:block; }

/* Visa toggle buttons */
.visa-toggle { 
	display: flex; 
	justify-content: center; 
	margin: 20px 0 30px 0; 
	gap: 0; 
	background: #f8f9fa; 
	border-radius: 12px; 
	padding: 4px; 
	box-shadow: inset 0 2px 4px rgba(0,0,0,0.1);
}
.visa-toggle-btn { 
	background: transparent; 
	border: none; 
	padding: 12px 24px; 
	border-radius: 8px; 
	font-size: 16px; 
	font-weight: 600; 
	color: #6c757d; 
	cursor: pointer; 
	transition: all 0.3s ease; 
	flex: 1; 
	text-align: center;
}
.visa-toggle-btn:hover { 
	color: #495057; 
	background: rgba(255,255,255,0.5); 
}
.visa-toggle-btn.active { 
	background: white; 
	color: #2c3e50; 
	box-shadow: 0 2px 8px rgba(0,0,0,0.1); 
	transform: translateY(-1px);
}

/* Photo Reviews Gallery */
.photo-gallery-modal {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(0, 0, 0, 0.9);
	display: none;
	z-index: 10000;
	overflow: hidden;
}

.photo-gallery-modal[aria-hidden="false"] {
	display: flex;
}

.photo-gallery-overlay {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(0, 0, 0, 0.8);
}

.photo-gallery-container {
	position: relative;
	width: 100%;
	height: 100%;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: 20px;
}

.photo-gallery-close {
	position: absolute;
	top: 20px;
	right: 40px;
	background: rgba(255, 255, 255, 0.2);
	border: 2px solid white;
	color: white;
	width: 50px;
	height: 50px;
	border-radius: 50%;
	font-size: 24px;
	cursor: pointer;
	z-index: 10001;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: all 0.3s ease;
}

.photo-gallery-close:hover {
	background: rgba(255, 255, 255, 0.3);
	transform: scale(1.1);
}

.photo-gallery-slider {
	display: flex;
	align-items: center;
	gap: 20px;
	width: 100%;
	max-width: 1200px;
}

.photo-gallery-prev,
.photo-gallery-next {
	background: rgba(255, 255, 255, 0.2);
	border: 2px solid white;
	color: white;
	width: 60px;
	height: 60px;
	border-radius: 50%;
	font-size: 20px;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: all 0.3s ease;
	flex-shrink: 0;
}

.photo-gallery-prev:hover,
.photo-gallery-next:hover {
	background: rgba(255, 255, 255, 0.3);
	transform: scale(1.1);
}

.photo-gallery-viewport {
	flex: 1;
	overflow: hidden;
	border-radius: 12px;
	box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
}

.photo-gallery-track {
	display: flex;
	transition: transform 0.5s ease;
}

.photo-gallery-track img {
	width: 100%;
	height: auto;
	max-height: 70vh;
	object-fit: contain;
	cursor: pointer;
	transition: transform 0.3s ease;
}

.photo-gallery-track img:hover {
	transform: scale(1.02);
}

.photo-gallery-thumbnails {
	display: flex;
	gap: 10px;
	margin-top: 20px;
	max-width: 100%;
	overflow-x: auto;
	padding: 10px 0;
}

.photo-gallery-thumbnails img {
	width: 80px;
	height: 60px;
	object-fit: cover;
	border-radius: 8px;
	cursor: pointer;
	opacity: 0.7;
	transition: all 0.3s ease;
	border: 2px solid transparent;
}

.photo-gallery-thumbnails img:hover,
.photo-gallery-thumbnails img.active {
	opacity: 1;
	border-color: white;
	transform: scale(1.1);
}

/* Fullscreen Photo Modal */
.fullscreen-photo-modal {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(0, 0, 0, 0.95);
	display: none;
	z-index: 10001;
	align-items: center;
	justify-content: center;
}

.fullscreen-photo-modal[aria-hidden="false"] {
	display: flex;
}

.fullscreen-photo-overlay {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(0, 0, 0, 0.8);
}

.fullscreen-photo-container {
	position: relative;
	max-width: 90vw;
	max-height: 90vh;
	display: flex;
	align-items: center;
	justify-content: center;
}

.fullscreen-photo-close {
	position: absolute;
	top: -50px;
	right: 0;
	background: rgba(255, 255, 255, 0.2);
	border: 2px solid white;
	color: white;
	width: 50px;
	height: 50px;
	border-radius: 50%;
	font-size: 24px;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: all 0.3s ease;
}

.fullscreen-photo-close:hover {
	background: rgba(255, 255, 255, 0.3);
	transform: scale(1.1);
}

.fullscreen-photo-img {
	max-width: 100%;
	max-height: 100%;
	object-fit: contain;
	border-radius: 12px;
	box-shadow: 0 20px 60px rgba(0, 0, 0, 0.8);
}

/* Responsive */
@media (max-width: 768px) {
	.photo-gallery-container {
		padding: 10px;
	}
	
	.photo-gallery-close {
		top: 10px;
		right: 20px;
		width: 40px;
		height: 40px;
		font-size: 20px;
	}
	
	.photo-gallery-prev,
	.photo-gallery-next {
		width: 50px;
		height: 50px;
		font-size: 18px;
	}
	
	.photo-gallery-thumbnails img {
		width: 60px;
		height: 45px;
	}
	
	.fullscreen-photo-close {
		top: -40px;
		width: 40px;
		height: 40px;
		font-size: 20px;
	}
}

/* Force hero button colors - highest specificity */
.hero-slide .hero-cta .btn.primary,
.hero-simple .cta .btn.primary,
.hero-center-content .cta .btn.primary,
.hero-simple .btn.cta,
.hero-center-content .btn.cta,
.hero .btn.cta {
	background: linear-gradient(135deg, #fec756 0%, #ffd700 50%, #fec756 100%) !important;
	border-color: #fec756 !important;
	color: #fff !important;
}

.hero-slide .hero-cta .btn.primary:hover,
.hero-simple .cta .btn.primary:hover,
.hero-center-content .cta .btn.primary:hover,
.hero-simple .btn.cta:hover,
.hero-center-content .btn.cta:hover,
.hero .btn.cta:hover {
	background: linear-gradient(135deg, #ffd700 0%, #fec756 50%, #ffd700 100%) !important;
}

/* Additional catch-all for CTA buttons */
.btn.cta.primary,
.btn.primary.cta {
	background: linear-gradient(135deg, #fec756 0%, #ffd700 50%, #fec756 100%) !important;
	border-color: #fec756 !important;
	color: #fff !important;
}

.btn.cta.primary:hover,
.btn.primary.cta:hover {
	background: linear-gradient(135deg, #ffd700 0%, #fec756 50%, #ffd700 100%) !important;
}
