Vamsi Agency - Explore the World with Premium Travel Experiences
:root {
--primary: #1a1a2e;
--secondary: #e94560;
--accent: #16213e;
--gold: #d4a853;
--gold-light: #f0d68a;
--cream: #faf6f0;
--white: #ffffff;
--dark: #0f0f1a;
--glass-bg: rgba(255, 255, 255, 0.08);
--glass-border: rgba(255, 255, 255, 0.18);
--shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
--shadow-lg: 0 40px 80px -20px rgba(0, 0, 0, 0.4);
--radius: 20px;
--radius-sm: 12px;
--font-heading: 'Playfair Display', serif;
--font-body: 'Inter', sans-serif;
--transition: 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; overflow-x: hidden; }
body {
font-family: var(--font-body);
background: var(--dark);
color: var(--white);
overflow-x: hidden;
-webkit-font-smoothing: antialiased;
}
::selection { background: var(--secondary); color: var(--white); }
::-webkit-scrollbar { width: 8px; }
::-webkit-scrollbar-track { background: var(--dark); }
::-webkit-scrollbar-thumb { background: var(--gold); border-radius: 4px; }
img { max-width: 100%; height: auto; display: block; }
a { text-decoration: none; color: inherit; }
.container {
max-width: 1280px;
margin: 0 auto;
padding: 0 24px;
}
.section {
padding: 120px 0;
position: relative;
}
.section-label {
font-family: var(--font-body);
font-size: 0.8rem;
font-weight: 600;
letter-spacing: 3px;
text-transform: uppercase;
color: var(--gold);
margin-bottom: 12px;
display: block;
}
.section-title {
font-family: var(--font-heading);
font-size: clamp(2.2rem, 5vw, 3.5rem);
font-weight: 700;
line-height: 1.15;
margin-bottom: 20px;
}
.section-title span { color: var(--gold); }
.section-sub {
font-size: 1.05rem;
color: rgba(255, 255, 255, 0.7);
max-width: 600px;
line-height: 1.7;
}
.btn {
display: inline-flex;
align-items: center;
gap: 10px;
padding: 16px 36px;
border-radius: 50px;
font-family: var(--font-body);
font-size: 0.95rem;
font-weight: 600;
border: none;
cursor: pointer;
transition: var(--transition);
position: relative;
overflow: hidden;
}
.btn-primary {
background: linear-gradient(135deg, var(--gold), var(--gold-light));
color: var(--dark);
}
.btn-primary:hover { transform: translateY(-3px); box-shadow: 0 20px 40px -10px rgba(212, 168, 83, 0.4); }
.btn-outline {
background: transparent;
color: var(--white);
border: 2px solid rgba(255, 255, 255, 0.3);
}
.btn-outline:hover { border-color: var(--gold); color: var(--gold); transform: translateY(-3px); }
.btn-whatsapp { background: #25D366; color: white; }
.btn-whatsapp:hover { background: #1da851; transform: translateY(-3px); box-shadow: 0 20px 40px -10px rgba(37, 211, 102, 0.4); }
.btn-phone { background: var(--secondary); color: white; }
.btn-phone:hover { background: #d63850; transform: translateY(-3px); }
.fade-up { opacity: 0; transform: translateY(40px); transition: opacity 0.8s ease, transform 0.8s ease; }
.fade-up.visible { opacity: 1; transform: translateY(0); }
/* ===== NAVIGATION ===== */
nav {
position: fixed;
top: 0;
left: 0;
right: 0;
z-index: 1000;
padding: 20px 40px;
display: flex;
align-items: center;
justify-content: space-between;
transition: var(--transition);
}
nav.scrolled {
background: rgba(15, 15, 26, 0.92);
backdrop-filter: blur(20px);
-webkit-backdrop-filter: blur(20px);
padding: 14px 40px;
box-shadow: 0 4px 30px rgba(0, 0, 0, 0.3);
}
.nav-logo {
font-family: var(--font-heading);
font-size: 1.6rem;
font-weight: 700;
color: var(--gold);
display: flex;
align-items: center;
gap: 10px;
}
.nav-logo i { font-size: 1.3rem; }
.nav-links { display: flex; align-items: center; gap: 32px; list-style: none; }
.nav-links a {
font-size: 0.85rem;
font-weight: 500;
color: rgba(255, 255, 255, 0.8);
transition: var(--transition);
position: relative;
}
.nav-links a::after {
content: '';
position: absolute;
bottom: -4px;
left: 0;
width: 0;
height: 2px;
background: var(--gold);
transition: var(--transition);
}
.nav-links a:hover::after { width: 100%; }
.nav-links a:hover { color: var(--gold); }
.nav-toggle {
display: none;
background: none;
border: none;
color: var(--white);
font-size: 1.5rem;
cursor: pointer;
}
.mobile-menu {
display: none;
position: fixed;
top: 0;
right: -100%;
width: 300px;
height: 100vh;
background: rgba(15, 15, 26, 0.98);
backdrop-filter: blur(20px);
padding: 100px 40px 40px;
transition: var(--transition);
z-index: 999;
list-style: none;
}
.mobile-menu.active { right: 0; }
.mobile-menu li { margin-bottom: 24px; }
.mobile-menu a {
font-size: 1.1rem;
color: rgba(255, 255, 255, 0.8);
transition: var(--transition);
}
.mobile-menu a:hover { color: var(--gold); }
.mobile-overlay {
display: none;
position: fixed;
inset: 0;
background: rgba(0, 0, 0, 0.5);
z-index: 998;
}
.mobile-overlay.active { display: block; }
/* ===== HERO ===== */
.hero {
position: relative;
height: 100vh;
min-height: 700px;
display: flex;
align-items: center;
overflow: hidden;
}
.hero-slider {
position: absolute;
inset: 0;
}
.hero-slide {
position: absolute;
inset: 0;
opacity: 0;
transition: opacity 1.5s ease;
background-size: cover;
background-position: center;
}
.hero-slide.active { opacity: 1; }
.hero-slide::after {
content: '';
position: absolute;
inset: 0;
background: linear-gradient(135deg,
rgba(15, 15, 26, 0.85) 0%,
rgba(15, 15, 26, 0.4) 50%,
rgba(15, 15, 26, 0.2) 100%
);
}
.hero-content {
position: relative;
z-index: 2;
max-width: 750px;
padding: 0 40px;
}
.hero-badge {
display: inline-flex;
align-items: center;
gap: 8px;
background: rgba(255, 255, 255, 0.1);
backdrop-filter: blur(10px);
border: 1px solid rgba(255, 255, 255, 0.15);
padding: 8px 20px;
border-radius: 50px;
font-size: 0.8rem;
color: var(--gold-light);
margin-bottom: 24px;
}
.hero h1 {
font-family: var(--font-heading);
font-size: clamp(2.8rem, 7vw, 5rem);
font-weight: 700;
line-height: 1.08;
margin-bottom: 20px;
}
.hero h1 span { color: var(--gold); }
.hero p {
font-size: clamp(1rem, 2vw, 1.2rem);
color: rgba(255, 255, 255, 0.8);
line-height: 1.7;
margin-bottom: 36px;
max-width: 560px;
}
.hero-btns { display: flex; gap: 16px; flex-wrap: wrap; }
.hero-indicators {
position: absolute;
bottom: 40px;
left: 50%;
transform: translateX(-50%);
display: flex;
gap: 10px;
z-index: 3;
}
.hero-indicators span {
width: 40px;
height: 3px;
background: rgba(255, 255, 255, 0.3);
border-radius: 2px;
cursor: pointer;
transition: var(--transition);
}
.hero-indicators span.active { background: var(--gold); width: 60px; }
.hero-scroll {
position: absolute;
bottom: 80px;
right: 40px;
z-index: 3;
display: flex;
flex-direction: column;
align-items: center;
gap: 8px;
color: rgba(255, 255, 255, 0.5);
font-size: 0.7rem;
letter-spacing: 2px;
text-transform: uppercase;
writing-mode: vertical-lr;
}
.hero-scroll .mouse {
width: 20px;
height: 32px;
border: 2px solid rgba(255, 255, 255, 0.3);
border-radius: 10px;
position: relative;
}
.hero-scroll .mouse::after {
content: '';
position: absolute;
top: 6px;
left: 50%;
transform: translateX(-50%);
width: 3px;
height: 8px;
background: var(--gold);
border-radius: 2px;
animation: scrollWheel 2s infinite;
}
@keyframes scrollWheel {
0% { opacity: 1; transform: translateX(-50%) translateY(0); }
100% { opacity: 0; transform: translateX(-50%) translateY(10px); }
}
/* ===== STATS ===== */
.stats {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 30px;
margin-top: -60px;
position: relative;
z-index: 5;
padding: 0 24px;
max-width: 1100px;
margin-left: auto;
margin-right: auto;
}
.stat-card {
background: rgba(255, 255, 255, 0.06);
backdrop-filter: blur(20px);
-webkit-backdrop-filter: blur(20px);
border: 1px solid rgba(255, 255, 255, 0.1);
border-radius: var(--radius);
padding: 32px 24px;
text-align: center;
transition: var(--transition);
}
.stat-card:hover { transform: translateY(-8px); background: rgba(255, 255, 255, 0.1); }
.stat-number {
font-family: var(--font-heading);
font-size: 2.4rem;
font-weight: 700;
color: var(--gold);
margin-bottom: 6px;
}
.stat-label { font-size: 0.9rem; color: rgba(255, 255, 255, 0.7); }
/* ===== PACKAGES ===== */
.packages-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
gap: 28px;
margin-top: 50px;
}
.package-card {
background: rgba(255, 255, 255, 0.04);
border-radius: var(--radius);
overflow: hidden;
border: 1px solid rgba(255, 255, 255, 0.06);
transition: var(--transition);
cursor: pointer;
position: relative;
}
.package-card:hover { transform: translateY(-10px); box-shadow: var(--shadow-lg); border-color: rgba(212, 168, 83, 0.3); }
.package-img {
height: 220px;
background-size: cover;
background-position: center;
position: relative;
}
.package-img .badge {
position: absolute;
top: 16px;
left: 16px;
background: var(--secondary);
padding: 6px 14px;
border-radius: 50px;
font-size: 0.75rem;
font-weight: 600;
}
.package-img .rating {
position: absolute;
top: 16px;
right: 16px;
background: rgba(0, 0, 0, 0.7);
backdrop-filter: blur(10px);
padding: 4px 12px;
border-radius: 50px;
font-size: 0.8rem;
color: var(--gold);
}
.package-body { padding: 24px; }
.package-body h3 {
font-family: var(--font-heading);
font-size: 1.2rem;
margin-bottom: 8px;
}
.package-meta {
display: flex;
gap: 16px;
font-size: 0.85rem;
color: rgba(255, 255, 255, 0.6);
margin-bottom: 12px;
}
.package-meta i { margin-right: 6px; color: var(--gold); }
.package-body p {
font-size: 0.9rem;
color: rgba(255, 255, 255, 0.65);
line-height: 1.6;
margin-bottom: 16px;
}
.package-footer {
display: flex;
align-items: center;
justify-content: space-between;
padding-top: 16px;
border-top: 1px solid rgba(255, 255, 255, 0.06);
}
.package-price {
font-family: var(--font-heading);
font-size: 1.3rem;
font-weight: 700;
color: var(--gold);
}
.package-price small {
font-family: var(--font-body);
font-size: 0.75rem;
font-weight: 400;
color: rgba(255, 255, 255, 0.5);
}
/* ===== WHY US ===== */
.why-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 28px;
margin-top: 50px;
}
.why-card {
background: rgba(255, 255, 255, 0.04);
border: 1px solid rgba(255, 255, 255, 0.06);
border-radius: var(--radius);
padding: 40px 32px;
text-align: center;
transition: var(--transition);
}
.why-card:hover { transform: translateY(-8px); background: rgba(255, 255, 255, 0.07); border-color: rgba(212, 168, 83, 0.2); }
.why-icon {
width: 70px;
height: 70px;
margin: 0 auto 20px;
display: flex;
align-items: center;
justify-content: center;
background: linear-gradient(135deg, rgba(212, 168, 83, 0.15), rgba(212, 168, 83, 0.05));
border-radius: 50%;
font-size: 1.8rem;
color: var(--gold);
}
.why-card h3 { font-family: var(--font-heading); font-size: 1.2rem; margin-bottom: 10px; }
.why-card p { font-size: 0.9rem; color: rgba(255, 255, 255, 0.6); line-height: 1.6; }
/* ===== GALLERY ===== */
.gallery-grid {
display: grid;
grid-template-columns: repeat(4, 1fr);
grid-auto-rows: 240px;
gap: 16px;
margin-top: 50px;
}
.gallery-item {
border-radius: var(--radius-sm);
overflow: hidden;
position: relative;
cursor: pointer;
transition: var(--transition);
}
.gallery-item:hover { transform: scale(1.03); }
.gallery-item img { width: 100%; height: 100%; object-fit: cover; transition: var(--transition); }
.gallery-item:hover img { transform: scale(1.1); }
.gallery-item .overlay {
position: absolute;
inset: 0;
background: linear-gradient(to top, rgba(0,0,0,0.7), transparent);
display: flex;
align-items: flex-end;
padding: 20px;
opacity: 0;
transition: var(--transition);
}
.gallery-item:hover .overlay { opacity: 1; }
.gallery-item .overlay span {
font-weight: 600;
font-size: 0.95rem;
}
.gallery-item:nth-child(1) { grid-column: span 2; grid-row: span 2; }
.gallery-item:nth-child(4) { grid-column: span 2; }
.gallery-item:nth-child(7) { grid-column: span 2; grid-row: span 2; }
/* ===== REVIEWS ===== */
.reviews-slider {
margin-top: 50px;
position: relative;
overflow: hidden;
}
.reviews-track {
display: flex;
gap: 28px;
transition: transform 0.5s ease;
}
.review-card {
min-width: calc(33.333% - 19px);
background: rgba(255, 255, 255, 0.04);
border: 1px solid rgba(255, 255, 255, 0.06);
border-radius: var(--radius);
padding: 32px;
flex-shrink: 0;
}
.review-stars { color: var(--gold); margin-bottom: 16px; font-size: 1.1rem; }
.review-card p {
font-size: 0.95rem;
color: rgba(255, 255, 255, 0.75);
line-height: 1.7;
margin-bottom: 20px;
font-style: italic;
}
.review-author { display: flex; align-items: center; gap: 14px; }
.review-author .avatar {
width: 48px;
height: 48px;
border-radius: 50%;
background: linear-gradient(135deg, var(--gold), var(--secondary));
display: flex;
align-items: center;
justify-content: center;
font-weight: 700;
font-size: 1.1rem;
}
.review-author h4 { font-size: 0.95rem; }
.review-author span { font-size: 0.8rem; color: rgba(255, 255, 255, 0.5); }
.review-nav {
display: flex;
justify-content: center;
gap: 12px;
margin-top: 32px;
}
.review-nav button {
width: 44px;
height: 44px;
border-radius: 50%;
border: 1px solid rgba(255, 255, 255, 0.15);
background: transparent;
color: var(--white);
cursor: pointer;
transition: var(--transition);
font-size: 1rem;
}
.review-nav button:hover { border-color: var(--gold); color: var(--gold); }
/* ===== ABOUT / CONTACT ===== */
.about-content {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 60px;
align-items: center;
margin-top: 40px;
}
.about-text p {
font-size: 1.05rem;
color: rgba(255, 255, 255, 0.7);
line-height: 1.8;
margin-bottom: 20px;
}
.about-image {
border-radius: var(--radius);
overflow: hidden;
height: 400px;
position: relative;
}
.about-image img { width: 100%; height: 100%; object-fit: cover; }
.about-image::after {
content: '';
position: absolute;
inset: 0;
border: 2px solid rgba(212, 168, 83, 0.2);
border-radius: var(--radius);
top: 12px; left: 12px; right: -12px; bottom: -12px;
z-index: -1;
}
/* Features marquee */
.features-marquee {
background: rgba(255, 255, 255, 0.03);
border-top: 1px solid rgba(255, 255, 255, 0.05);
border-bottom: 1px solid rgba(255, 255, 255, 0.05);
padding: 20px 0;
overflow: hidden;
white-space: nowrap;
}
.features-marquee-inner {
display: inline-flex;
gap: 60px;
animation: marquee 30s linear infinite;
}
.features-marquee-inner span {
font-size: 0.9rem;
color: rgba(255, 255, 255, 0.5);
letter-spacing: 1px;
}
.features-marquee-inner span i { color: var(--gold); margin-right: 8px; }
@keyframes marquee {
0% { transform: translateX(0); }
100% { transform: translateX(-50%); }
}
/* ===== CONTACT ===== */
.contact-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 60px;
margin-top: 50px;
}
.contact-form {
background: rgba(255, 255, 255, 0.04);
border: 1px solid rgba(255, 255, 255, 0.06);
border-radius: var(--radius);
padding: 40px;
}
.form-group { margin-bottom: 20px; }
.form-group label {
display: block;
font-size: 0.85rem;
font-weight: 500;
margin-bottom: 6px;
color: rgba(255, 255, 255, 0.7);
}
.form-group input,
.form-group select,
.form-group textarea {
width: 100%;
padding: 14px 18px;
background: rgba(255, 255, 255, 0.06);
border: 1px solid rgba(255, 255, 255, 0.1);
border-radius: var(--radius-sm);
color: var(--white);
font-family: var(--font-body);
font-size: 0.95rem;
transition: var(--transition);
outline: none;
}
.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus { border-color: var(--gold); background: rgba(255, 255, 255, 0.1); }
.form-group input::placeholder,
.form-group textarea::placeholder { color: rgba(255, 255, 255, 0.3); }
.form-group select { cursor: pointer; }
.form-group select option { background: var(--dark); color: var(--white); }
.form-group textarea { resize: vertical; min-height: 100px; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.contact-info { display: flex; flex-direction: column; gap: 24px; justify-content: center; }
.contact-info-item {
display: flex;
align-items: center;
gap: 16px;
}
.contact-info-item .icon {
width: 50px;
height: 50px;
border-radius: 50%;
background: rgba(212, 168, 83, 0.1);
display: flex;
align-items: center;
justify-content: center;
color: var(--gold);
font-size: 1.2rem;
flex-shrink: 0;
}
.contact-info-item h4 { font-size: 1rem; margin-bottom: 4px; }
.contact-info-item p { font-size: 0.9rem; color: rgba(255, 255, 255, 0.6); }
.contact-btns {
display: flex;
gap: 14px;
flex-wrap: wrap;
margin-top: 16px;
}
.contact-btns .btn { flex: 1; min-width: 140px; justify-content: center; }
/* ===== FOOTER ===== */
footer {
background: rgba(255, 255, 255, 0.02);
border-top: 1px solid rgba(255, 255, 255, 0.06);
padding: 80px 0 0;
}
.footer-grid {
display: grid;
grid-template-columns: 2fr 1fr 1fr 1.5fr;
gap: 40px;
}
.footer-brand h3 {
font-family: var(--font-heading);
font-size: 1.6rem;
color: var(--gold);
margin-bottom: 16px;
}
.footer-brand p {
font-size: 0.9rem;
color: rgba(255, 255, 255, 0.6);
line-height: 1.7;
margin-bottom: 20px;
}
.footer-social { display: flex; gap: 14px; }
.footer-social a {
width: 42px;
height: 42px;
border-radius: 50%;
border: 1px solid rgba(255, 255, 255, 0.1);
display: flex;
align-items: center;
justify-content: center;
color: rgba(255, 255, 255, 0.6);
transition: var(--transition);
}
.footer-social a:hover { border-color: var(--gold); color: var(--gold); transform: translateY(-3px); }
.footer-col h4 {
font-size: 0.95rem;
font-weight: 600;
margin-bottom: 20px;
color: var(--white);
}
.footer-col ul { list-style: none; }
.footer-col ul li { margin-bottom: 12px; }
.footer-col ul li a {
font-size: 0.88rem;
color: rgba(255, 255, 255, 0.5);
transition: var(--transition);
}
.footer-col ul li a:hover { color: var(--gold); padding-left: 4px; }
.footer-newsletter p {
font-size: 0.88rem;
color: rgba(255, 255, 255, 0.5);
margin-bottom: 16px;
line-height: 1.6;
}
.newsletter-form { display: flex; gap: 8px; }
.newsletter-form input {
flex: 1;
padding: 12px 16px;
background: rgba(255, 255, 255, 0.06);
border: 1px solid rgba(255, 255, 255, 0.1);
border-radius: 50px;
color: var(--white);
font-size: 0.85rem;
outline: none;
}
.newsletter-form input:focus { border-color: var(--gold); }
.newsletter-form button {
width: 46px;
height: 46px;
border-radius: 50%;
border: none;
background: var(--gold);
color: var(--dark);
cursor: pointer;
transition: var(--transition);
font-size: 1rem;
}
.newsletter-form button:hover { background: var(--gold-light); transform: scale(1.05); }
.footer-bottom {
margin-top: 60px;
padding: 24px 0;
border-top: 1px solid rgba(255, 255, 255, 0.06);
display: flex;
justify-content: space-between;
align-items: center;
flex-wrap: wrap;
gap: 16px;
font-size: 0.85rem;
color: rgba(255, 255, 255, 0.4);
}
/* ===== CHATBOT ===== */
.chatbot-toggle {
position: fixed;
bottom: 28px;
right: 28px;
width: 60px;
height: 60px;
border-radius: 50%;
background: linear-gradient(135deg, var(--gold), #b8893a);
border: none;
color: var(--dark);
font-size: 1.5rem;
cursor: pointer;
z-index: 100;
box-shadow: 0 8px 30px rgba(212, 168, 83, 0.4);
transition: var(--transition);
display: flex;
align-items: center;
justify-content: center;
}
.chatbot-toggle:hover { transform: scale(1.1); }
.chatbot-window {
position: fixed;
bottom: 100px;
right: 28px;
width: 360px;
max-height: 520px;
background: rgba(20, 20, 35, 0.98);
backdrop-filter: blur(20px);
border: 1px solid rgba(255, 255, 255, 0.1);
border-radius: 20px;
z-index: 100;
display: none;
flex-direction: column;
overflow: hidden;
box-shadow: 0 30px 60px rgba(0, 0, 0, 0.5);
}
.chatbot-window.open { display: flex; }
.chatbot-header {
background: linear-gradient(135deg, var(--gold), #b8893a);
padding: 18px 22px;
display: flex;
align-items: center;
justify-content: space-between;
}
.chatbot-header h4 { color: var(--dark); font-size: 1rem; }
.chatbot-close { background: none; border: none; color: var(--dark); cursor: pointer; font-size: 1.2rem; }
.chatbot-messages {
flex: 1;
padding: 20px;
overflow-y: auto;
display: flex;
flex-direction: column;
gap: 12px;
}
.chatbot-messages::-webkit-scrollbar { width: 4px; }
.chatbot-messages::-webkit-scrollbar-thumb { background: var(--gold); border-radius: 2px; }
.msg {
max-width: 80%;
padding: 12px 16px;
border-radius: 16px;
font-size: 0.85rem;
line-height: 1.5;
animation: msgIn 0.3s ease;
}
@keyframes msgIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }
.msg.bot {
background: rgba(255, 255, 255, 0.08);
align-self: flex-start;
border-bottom-left-radius: 4px;
}
.msg.user {
background: var(--gold);
color: var(--dark);
align-self: flex-end;
border-bottom-right-radius: 4px;
}
.chatbot-input {
display: flex;
gap: 8px;
padding: 14px 18px;
border-top: 1px solid rgba(255, 255, 255, 0.06);
}
.chatbot-input input {
flex: 1;
padding: 10px 14px;
border-radius: 50px;
border: 1px solid rgba(255, 255, 255, 0.1);
background: rgba(255, 255, 255, 0.06);
color: var(--white);
outline: none;
font-size: 0.85rem;
}
.chatbot-input input:focus { border-color: var(--gold); }
.chatbot-input button {
width: 40px;
height: 40px;
border-radius: 50%;
border: none;
background: var(--gold);
color: var(--dark);
cursor: pointer;
}
/* ===== DESTINATION MAP ===== */
.destinations-bar {
display: flex;
gap: 16px;
overflow-x: auto;
padding: 20px 0;
margin-top: 40px;
scrollbar-width: none;
-ms-overflow-style: none;
}
.destinations-bar::-webkit-scrollbar { display: none; }
.dest-chip {
flex-shrink: 0;
display: flex;
align-items: center;
gap: 10px;
padding: 12px 24px;
background: rgba(255, 255, 255, 0.04);
border: 1px solid rgba(255, 255, 255, 0.08);
border-radius: 50px;
font-size: 0.9rem;
transition: var(--transition);
cursor: pointer;
}
.dest-chip:hover { border-color: var(--gold); background: rgba(212, 168, 83, 0.1); color: var(--gold); }
.dest-chip img {
width: 28px;
height: 28px;
border-radius: 50%;
object-fit: cover;
}
/* ===== OFFERS ===== */
.offer-banner {
background: linear-gradient(135deg, rgba(212, 168, 83, 0.12), rgba(233, 69, 96, 0.08));
border: 1px solid rgba(212, 168, 83, 0.2);
border-radius: var(--radius);
padding: 50px 40px;
display: flex;
align-items: center;
justify-content: space-between;
gap: 30px;
flex-wrap: wrap;
margin-top: 50px;
}
.offer-banner h3 {
font-family: var(--font-heading);
font-size: 1.8rem;
}
.offer-banner h3 span { color: var(--gold); }
.offer-banner p { color: rgba(255, 255, 255, 0.7); margin-top: 8px; }
.offer-timer {
display: flex;
gap: 20px;
}
.offer-timer div {
text-align: center;
}
.offer-timer .num {
font-family: var(--font-heading);
font-size: 2rem;
color: var(--gold);
font-weight: 700;
}
.offer-timer .label {
font-size: 0.7rem;
color: rgba(255, 255, 255, 0.5);
text-transform: uppercase;
letter-spacing: 1px;
}
/* ===== BACK TO TOP ===== */
.back-top {
position: fixed;
bottom: 100px;
left: 28px;
width: 44px;
height: 44px;
border-radius: 50%;
background: rgba(255, 255, 255, 0.08);
border: 1px solid rgba(255, 255, 255, 0.1);
color: var(--white);
cursor: pointer;
z-index: 99;
display: flex;
align-items: center;
justify-content: center;
opacity: 0;
transform: translateY(20px);
transition: var(--transition);
font-size: 1rem;
}
.back-top.visible { opacity: 1; transform: translateY(0); }
.back-top:hover { border-color: var(--gold); color: var(--gold); }
/* ===== RESPONSIVE ===== */
@media (max-width: 1024px) {
.why-grid { grid-template-columns: repeat(2, 1fr); }
.footer-grid { grid-template-columns: 1fr 1fr; }
.gallery-grid { grid-template-columns: repeat(2, 1fr); }
.gallery-item:nth-child(1) { grid-column: span 2; grid-row: span 1; }
.gallery-item:nth-child(7) { grid-column: span 2; grid-row: span 1; }
}
@media (max-width: 900px) {
.about-content { grid-template-columns: 1fr; }
.contact-grid { grid-template-columns: 1fr; }
.reviews-track .review-card { min-width: calc(50% - 14px); }
}
@media (max-width: 768px) {
.section { padding: 80px 0; }
nav { padding: 16px 20px; }
nav.scrolled { padding: 12px 20px; }
.nav-links { display: none; }
.nav-toggle { display: block; }
.mobile-menu { display: block; }
.stats { grid-template-columns: repeat(2, 1fr); gap: 16px; margin-top: -40px; }
.hero-content { padding: 0 20px; }
.hero-scroll { display: none; }
.why-grid { grid-template-columns: 1fr; }
.gallery-grid { grid-template-columns: 1fr; grid-auto-rows: 200px; }
.gallery-item:nth-child(1),
.gallery-item:nth-child(4),
.gallery-item:nth-child(7) { grid-column: auto; grid-row: auto; }
.footer-grid { grid-template-columns: 1fr; }
.packages-grid { grid-template-columns: 1fr; }
.reviews-track .review-card { min-width: 100%; }
.contact-form { padding: 24px; }
.form-row { grid-template-columns: 1fr; }
.offer-banner { flex-direction: column; text-align: center; padding: 30px 20px; }
.chatbot-window { width: calc(100% - 40px); right: 20px; bottom: 90px; }
.back-top { bottom: 100px; left: 16px; }
}
@media (max-width: 480px) {
.stats { grid-template-columns: 1fr 1fr; gap: 12px; }
.stat-card { padding: 20px 16px; }
.stat-number { font-size: 1.8rem; }
.hero-btns .btn { width: 100%; justify-content: center; }
.contact-btns .btn { min-width: 100%; }
}
/* ===== LOADER ===== */
.loader {
position: fixed;
inset: 0;
background: var(--dark);
display: flex;
align-items: center;
justify-content: center;
z-index: 9999;
transition: opacity 0.6s ease, visibility 0.6s ease;
}
.loader.hidden { opacity: 0; visibility: hidden; }
.loader-spinner {
width: 50px;
height: 50px;
border: 3px solid rgba(255, 255, 255, 0.05);
border-top-color: var(--gold);
border-radius: 50%;
animation: spin 0.8s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }
Vamsi Holidays
Award-Winning Travel Agency
Explore the World with Vamsi Holidays
Affordable Luxury Travel Experiences Across India and International Destinations
Best Price Guarantee
24/7 Travel Support
Trusted by Thousands
Custom Tour Planning
Easy Visa Assistance
Secure Online Booking
Premium Airlines
5-Star Accommodations
Best Price Guarantee
24/7 Travel Support
Trusted by Thousands
Custom Tour Planning
Easy Visa Assistance
Secure Online Booking
Premium Airlines
5-Star Accommodations
Explore the World
Popular International Packages
Handpicked premium international destinations with the best travel experiences at affordable prices.
Popular
4.8
Thailand Explorer
5D / 4N Meals
Flights + Hotel + Sightseeing. Visit Bangkok, Pattaya & Phuket.
Bestseller
4.9
Singapore Delight
6D / 5N Universal
Universal Studios, Marina Bay, Sentosa & City Tour included.
4.7
Malaysia Escape
5D / 4N Highlands
Kuala Lumpur, Genting Highlands, and cultural experiences.
4.6
China Discovery
7D / 6N Heritage
Beijing, Shanghai, Great Wall & modern city tours.
Luxury
4.9
Dubai Luxury Tour
5D / 4N City Tour
Desert Safari, Burj Khalifa, Dubai Mall &更多.
Honeymoon
4.8
Bali Paradise
6D / 5N Beach
Beaches, temples, resorts & adventure activities.
Premium
5.0
Switzerland Premium
8D / 7N Alps
Swiss Alps, scenic train tours, Lucerne & Interlaken.
Romantic
4.9
Maldives Honeymoon
4D / 3N Water Villa
Luxurious water villa stay, snorkeling & sunset cruises.
Thailand
Singapore
Malaysia
China
Dubai
Bali
Switzerland
Maldives
Kerala
Kashmir
Goa
Himachal
🎉 Early Bird Summer Special!
Book before June 30 & get up to 30% off on all international packages.
Discover India
India Tour Packages
Explore the most beautiful destinations across India with our affordable tour packages.
Popular
4.8
Kerala Backwaters
5D / 4N Houseboat
Backwater cruises, Munnar tea gardens & beach relaxation.
Romantic
4.9
Jammu & Kashmir Paradise
6D / 5N Snow
Shikara rides, Gulmarg skiing, and Mughal gardens.
Beach
4.7
Goa Beach Vacation
4D / 3N Beach
Sun, sand, sea & nightlife at India's party capital.
4.8
Himachal Adventure
6D / 5N Adventure
Manali, Shimla, Dharamshala & thrilling adventure sports.
Heritage
4.7
Rajasthan Heritage Tour
7D / 6N Forts
Jaipur, Jodhpur, Udaipur & desert safari experience.
Island
4.8
Andaman Island Escape
5D / 4N Beaches
Cellular Jail, Ross Island, water sports & beach resorts.
Why Choose Us
Why Vamsi Agency
We are committed to making your travel dreams come true with unmatched service and expertise.
Best Price Guarantee
We ensure you get the best prices on all tour packages with our price match guarantee.
24/7 Travel Support
Our dedicated support team is available round the clock to assist you during your travels.
Trusted by Thousands
With over 10,000 happy travelers, we are one of the most trusted travel agencies.
Custom Tour Planning
Get personalized itineraries tailored to your preferences, budget, and travel style.
Easy Visa Assistance
We provide hassle-free visa processing and documentation support for all destinations.
Secure Online Booking
Book with confidence with our encrypted payment gateway and secure booking system.
Travel Gallery
Beautiful Moments
A glimpse into the amazing experiences and memories created by our travelers.
Beach Paradise
Mountain Escape
Luxury Resorts
Global Landmarks
Adventure Sports
Family Vacations
Honeymoon Trips
City Tours
Testimonials
What Our Travelers Say
Real reviews from real travelers who explored the world with Vamsi Agency.
"Excellent service from Vamsi Agency. Our Thailand trip was perfectly organized. Every detail was taken care of, from flights to accommodations. Highly recommended!"
R
Rahul Sharma Thailand Explorer
"Very affordable packages and great support throughout our journey. The team was always available to help. Our Bali trip was absolutely amazing!"
P
Priya Patel Bali Paradise
"Our Kashmir trip was unforgettable. Highly recommended. The shikara ride on Dal Lake and the snow-capped mountains were breathtaking. Thank you Vamsi Agency!"
A
Arun Kumar Kashmir Paradise
"The Singapore package exceeded our expectations. Universal Studios was amazing and the city tour was well organized. Will book again!"
S
Sneha Gupta Singapore Delight
"Professional team and smooth booking process. Our Dubai trip was luxurious and well-planned. The desert safari was the highlight of our journey."
V
Vikram Singh Dubai Luxury Tour
About Us
Our Story
Vamsi Agency is a trusted travel company dedicated to creating unforgettable travel experiences. We specialize in domestic and international tour packages, customized vacations, honeymoon trips, family tours, and corporate travel solutions.
Founded with a vision to make luxury travel accessible to everyone, we have served over 10,000 happy travelers across 50+ countries. Our team of experienced travel professionals works tirelessly to craft the perfect itinerary for every customer.
From the serene backwaters of Kerala to the majestic Swiss Alps, from the vibrant streets of Bangkok to the pristine beaches of Maldives — we bring the world to your doorstep.
12+ Years Experience
50+ Countries Covered
10K+ Happy Travelers
👋 Hi! Welcome to Vamsi Agency! I'm your travel assistant. How can I help you today? You can ask about packages, destinations, or booking!
// ===== LOADER =====
window.addEventListener('load', () => {
document.getElementById('loader').classList.add('hidden');
});
// ===== NAV =====
const navbar = document.getElementById('navbar');
const navToggle = document.getElementById('navToggle');
const mobileMenu = document.getElementById('mobileMenu');
const mobileOverlay = document.getElementById('mobileOverlay');
window.addEventListener('scroll', () => {
navbar.classList.toggle('scrolled', window.scrollY > 60);
});
navToggle.addEventListener('click', () => {
mobileMenu.classList.toggle('active');
mobileOverlay.classList.toggle('active');
});
mobileOverlay.addEventListener('click', () => {
mobileMenu.classList.remove('active');
mobileOverlay.classList.remove('active');
});
document.querySelectorAll('.mobile-menu a').forEach(a => {
a.addEventListener('click', () => {
mobileMenu.classList.remove('active');
mobileOverlay.classList.remove('active');
});
});
// ===== HERO SLIDER =====
const slides = document.querySelectorAll('.hero-slide');
const indicatorsContainer = document.getElementById('heroIndicators');
let currentSlide = 0;
let slideInterval;
slides.forEach((_, i) => {
const dot = document.createElement('span');
if (i === 0) dot.classList.add('active');
dot.addEventListener('click', () => goToSlide(i));
indicatorsContainer.appendChild(dot);
});
function goToSlide(index) {
slides.forEach(s => s.classList.remove('active'));
document.querySelectorAll('.hero-indicators span').forEach(d => d.classList.remove('active'));
slides[index].classList.add('active');
document.querySelectorAll('.hero-indicators span')[index].classList.add('active');
currentSlide = index;
}
function nextSlide() {
goToSlide((currentSlide + 1) % slides.length);
}
slideInterval = setInterval(nextSlide, 5000);
// Pause on hover
document.querySelector('.hero').addEventListener('mouseenter', () => clearInterval(slideInterval));
document.querySelector('.hero').addEventListener('mouseleave', () => {
slideInterval = setInterval(nextSlide, 5000);
});
// ===== STATS COUNTER =====
function animateCounter(element) {
const target = parseInt(element.getAttribute('data-target'));
const suffix = target === 49 ? '.9' : '';
const duration = 2000;
const steps = 60;
const increment = target / steps;
let current = 0;
const timer = setInterval(() => {
current += increment;
if (current >= target) {
element.textContent = target + (suffix ? '.' + (element.getAttribute('data-target') === '49' ? '9' : '') : '+');
clearInterval(timer);
} else {
element.textContent = Math.floor(current) + '+';
}
}, duration / steps);
}
// ===== INTERSECTION OBSERVER =====
const observer = new IntersectionObserver((entries) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
entry.target.classList.add('visible');
// Stats animation
if (entry.target.id === 'stats') {
document.querySelectorAll('.stat-number').forEach(el => {
if (!el.dataset.animated) {
el.dataset.animated = 'true';
animateCounter(el);
}
});
}
}
});
}, { threshold: 0.15 });
document.querySelectorAll('.fade-up').forEach(el => observer.observe(el));
// ===== REVIEWS SLIDER =====
const track = document.getElementById('reviewsTrack');
const prevBtn = document.getElementById('reviewPrev');
const nextBtn = document.getElementById('reviewNext');
let reviewIndex = 0;
function updateReviews() {
const cards = track.querySelectorAll('.review-card');
const cardWidth = cards[0]?.offsetWidth || 0;
const gap = 28;
const visible = window.innerWidth > 900 ? 3 : window.innerWidth > 600 ? 2 : 1;
const maxIndex = cards.length - visible;
reviewIndex = Math.max(0, Math.min(reviewIndex, maxIndex));
track.style.transform = `translateX(-${reviewIndex * (cardWidth + gap)}px)`;
}
prevBtn.addEventListener('click', () => { reviewIndex--; updateReviews(); });
nextBtn.addEventListener('click', () => { reviewIndex++; updateReviews(); });
window.addEventListener('resize', updateReviews);
// ===== OFFER COUNTDOWN =====
function updateCountdown() {
const end = new Date('2026-06-30T23:59:59').getTime();
const now = new Date().getTime();
const diff = end - now;
if (diff {
backTop.classList.toggle('visible', window.scrollY > 500);
});
backTop.addEventListener('click', () => window.scrollTo({ top: 0, behavior: 'smooth' }));
// ===== CHATBOT =====
const chatbotToggle = document.getElementById('chatbotToggle');
const chatbotWindow = document.getElementById('chatbotWindow');
const chatbotClose = document.getElementById('chatbotClose');
const chatbotInput = document.getElementById('chatbotInput');
const chatbotSend = document.getElementById('chatbotSend');
const chatbotMessages = document.getElementById('chatbotMessages');
const botResponses = {
'hello': 'Hello! Welcome to Vamsi Agency! How can I assist you with your travel plans today?',
'hi': 'Hi there! Looking for a dream vacation? I can help you find the perfect package!',
'package': 'We have amazing packages! 🌍 International: Thailand (₹39,999), Dubai (₹54,999), Switzerland (₹1,99,999). India: Kerala (₹24,999), Kashmir (₹34,999), Goa (₹18,999). Which one interests you?',
'thailand': 'Thailand Explorer - 5D/4N starting at ₹39,999! 🇹🇭 Includes flights, hotels, sightseeing & meals. Want to book?',
'dubai': 'Dubai Luxury Tour - 5D/4N starting at ₹54,999! 🇦🇪 Desert Safari, Burj Khalifa & more. Interested?',
'switzerland': 'Switzerland Premium - 8D/7N starting at ₹1,99,999! 🇨🇭 Swiss Alps, scenic trains & luxury stays!',
'kerala': 'Kerala Backwaters - 5D/4N starting at ₹24,999! Houseboat cruises, tea gardens & beaches!',
'kashmir': 'Jammu & Kashmir Paradise - 6D/5N starting at ₹34,999! Shikara rides, snow & Mughal gardens!',
'goa': 'Goa Beach Vacation - 4D/3N starting at ₹18,999! Sun, sand & nightlife!',
'bali': 'Bali Paradise - 6D/5N starting at ₹64,999! Beaches, temples & adventure!',
'maldives': 'Maldives Honeymoon - 4D/3N starting at ₹89,999! Water villa stay & sunset cruises!',
'contact': 'You can reach us at 📞 +91 98765 43210, 📧 info@vamsiagency.com, or visit our office!',
'book': 'To book a package, please fill the inquiry form on our website, or contact us directly at +91 98765 43210!',
'price': 'Our packages start from as low as ₹18,999 for domestic and ₹39,999 for international! Great value for premium travel!',
'visa': 'We provide easy visa assistance for all international destinations. Our team handles the entire process!',
'thanks': "You're welcome! 😊 Feel free to ask if you have any other questions. Happy travels!",
'bye': 'Goodbye! 🛫 Thank you for choosing Vamsi Agency. Have a wonderful journey!'
};
function addMessage(text, type) {
const msg = document.createElement('div');
msg.className = `msg ${type}`;
msg.textContent = text;
chatbotMessages.appendChild(msg);
chatbotMessages.scrollTop = chatbotMessages.scrollHeight;
}
function getBotResponse(input) {
const lower = input.toLowerCase();
for (const [key, response] of Object.entries(botResponses)) {
if (lower.includes(key)) return response;
}
return "I'd be happy to help! 🌟 You can ask me about packages, destinations, pricing, booking, or anything travel-related. Or call us at +91 98765 43210!";
}
function handleChat() {
const text = chatbotInput.value.trim();
if (!text) return;
addMessage(text, 'user');
chatbotInput.value = '';
setTimeout(() => {
addMessage(getBotResponse(text), 'bot');
}, 600);
}
chatbotToggle.addEventListener('click', () => {
chatbotWindow.classList.toggle('open');
if (chatbotWindow.classList.contains('open')) {
chatbotInput.focus();
chatbotToggle.style.display = 'none';
}
});
chatbotClose.addEventListener('click', () => {
chatbotWindow.classList.remove('open');
chatbotToggle.style.display = 'flex';
});
chatbotSend.addEventListener('click', handleChat);
chatbotInput.addEventListener('keypress', (e) => {
if (e.key === 'Enter') handleChat();
});
// Live chat button in contact
document.getElementById('liveChatBtn').addEventListener('click', (e) => {
e.preventDefault();
chatbotWindow.classList.add('open');
chatbotToggle.style.display = 'none';
chatbotInput.focus();
});
// ===== CONTACT FORM =====
document.getElementById('contactForm').addEventListener('submit', function(e) {
e.preventDefault();
const btn = this.querySelector('button[type="submit"]');
const original = btn.innerHTML;
btn.innerHTML = '
Sending...';
btn.disabled = true;
setTimeout(() => {
btn.innerHTML = '
Inquiry Sent!';
setTimeout(() => {
btn.innerHTML = original;
btn.disabled = false;
this.reset();
}, 2000);
}, 1500);
});
// ===== SMOOTH SCROLL FOR NAV =====
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
anchor.addEventListener('click', function(e) {
const href = this.getAttribute('href');
if (href === '#') return;
e.preventDefault();
const target = document.querySelector(href);
if (target) {
target.scrollIntoView({ behavior: 'smooth', block: 'start' });
}
});
});
// ===== DESTINATION CHIP SCROLL =====
document.querySelectorAll('.dest-chip').forEach(chip => {
chip.addEventListener('click', () => {
chip.style.borderColor = 'var(--gold)';
chip.style.background = 'rgba(212,168,83,0.15)';
setTimeout(() => {
chip.style.borderColor = '';
chip.style.background = '';
}, 600);
});
});
// ===== PARALLAX ON HERO =====
window.addEventListener('scroll', () => {
const scrolled = window.scrollY;
const heroContent = document.querySelector('.hero-content');
if (heroContent && scrolled < window.innerHeight) {
heroContent.style.transform = `translateY(${scrolled * 0.3}px)`;
heroContent.style.opacity = 1 - (scrolled / window.innerHeight) * 0.5;
}
});
console.log('%c✈️ Vamsi Agency', 'font-size:24px;font-weight:bold;color:#d4a853;');
console.log('%cExplore the World with Premium Travel Experiences', 'font-size:14px;color:#f0d68a;');