2025-09-05 12:48:46 +05:30
import {
2025-10-03 19:55:00 +05:30
ArrowRight ,
Bed ,
BookOpen ,
Briefcase ,
Building ,
Calendar ,
Car ,
CheckCircle ,
ChevronDown ,
ChevronLeft ,
ChevronRight ,
ChevronUp ,
Coffee ,
Compass ,
Dumbbell ,
Heart ,
Home ,
Leaf ,
Mail ,
MapPin ,
Monitor ,
Network ,
Phone ,
Play ,
Settings ,
Shield ,
Star ,
Target ,
TreePine ,
TrendingUp ,
UserCheck ,
Users ,
Utensils ,
Wifi ,
X
2025-09-05 12:48:46 +05:30
} from 'lucide-react' ;
2025-09-30 17:35:32 +05:30
import { motion } from 'motion/react' ;
import React , { useEffect , useRef , useState } from 'react' ;
import kautilyaVirtualTourImage from '../assets/Kautilya.png' ;
import { BrandedTag } from './about/BrandedTag' ;
import { CTABannerSection } from './CTABannerSection' ;
import { ImageWithFallback } from './figma/ImageWithFallback' ;
import { PrimaryCTAButton } from './PrimaryCTAButton' ;
import { navigateTo } from './Router' ;
import { TestimonialsSection } from './TestimonialsSection' ;
import { Button } from './ui/button' ;
import { Card , CardContent } from './ui/card' ;
import { Input } from './ui/input' ;
import { Label } from './ui/label' ;
import { Select , SelectContent , SelectItem , SelectTrigger , SelectValue } from './ui/select' ;
import { Textarea } from './ui/textarea' ;
2025-09-05 12:48:46 +05:30
2025-10-03 19:55:00 +05:30
// Virtual Tour Data
const virtualTourStops = [
{
id : 'training-amphitheater' ,
title : 'Training Amphitheater' ,
description : 'Inspire your audience in our largest training space featuring tiered seating and state-of-the-art presentation technology.' ,
image : 'https://images.unsplash.com/photo-1526045004414-3e7ed02f9ca1?w=1080&h=720&fit=crop' ,
capacity : '80-120 attendees' ,
keyHighlight : 'Large-Scale Training Excellence' ,
zone : 1 ,
features : [
'Tiered amphitheater seating' ,
'Professional stage' ,
'Advanced acoustics' ,
'Multiple screens' ,
'Live streaming capability'
]
} ,
{
id : 'collaboration-suites' ,
title : 'Collaboration Suites' ,
description : 'Foster deep connections and intensive learning in our intimate spaces perfect for small group work and coaching sessions.' ,
image : 'https://images.unsplash.com/photo-1592565276431-c27e6ad5f46a?w=1080&h=720&fit=crop' ,
capacity : '4-8 participants' ,
keyHighlight : 'Intimate Learning Environment' ,
zone : 2 ,
features : [
'Comfortable seating' ,
'Natural light' ,
'Privacy glass' ,
'Dedicated workspace' ,
'Tea/coffee station'
]
} ,
{
id : 'outdoor-pavilion' ,
title : 'Outdoor Learning Pavilion' ,
description : 'Connect with nature while learning in our unique outdoor space that combines fresh air with professional learning environments.' ,
image : 'https://images.unsplash.com/photo-1571624436279-b272adf752b5?w=800&h=600&fit=crop' ,
capacity : '20-40 participants' ,
keyHighlight : 'Nature-Connected Learning' ,
zone : 3 ,
features : [
'Weather-protected pavilion' ,
'Garden views' ,
'Fresh air environment' ,
'Flexible seating' ,
'Natural acoustics'
]
} ,
{
id : 'residential-quarters' ,
title : 'Residential Quarters' ,
description : 'Extend your learning journey with comfortable accommodation for multi-day programs featuring hotel-standard amenities.' ,
image : 'https://images.unsplash.com/photo-1590490360182-c33d57733427?w=800&h=600&fit=crop' ,
capacity : '40 single occupancy rooms' ,
keyHighlight : 'Premium Residential Experience' ,
zone : 4 ,
features : [
'Private en-suite rooms' ,
'Work desk and chair' ,
'High-speed WiFi' ,
'Air conditioning' ,
'Garden/courtyard views'
]
} ,
{
id : 'executive-boardroom' ,
title : 'Executive Boardroom' ,
description : 'Host high-level strategic discussions in our sophisticated boardroom designed for executive leadership meetings.' ,
image : 'https://images.unsplash.com/photo-1497366216548-37526070297c?w=1080&h=720&fit=crop' ,
capacity : '12-16 executives' ,
keyHighlight : 'Strategic Leadership Hub' ,
zone : 5 ,
features : [
'Premium boardroom table' ,
'Executive seating' ,
'4K presentation displays' ,
'Secure video conferencing' ,
'Integrated sound system'
]
} ,
{
id : 'innovation-lab' ,
title : 'Innovation Lab' ,
description : 'Spark creativity and innovation in our flexible workspace designed for design thinking and collaborative problem-solving.' ,
image : 'https://images.unsplash.com/photo-1497366412874-3415097a27e7?w=1080&h=720&fit=crop' ,
capacity : '15-25 participants' ,
keyHighlight : 'Creative Collaboration Space' ,
zone : 6 ,
features : [
'Modular furniture setup' ,
'Whiteboard walls' ,
'Breakout alcoves' ,
'Technology integration' ,
'Flexible lighting'
]
} ,
{
id : 'wellness-retreat' ,
title : 'Wellness & Reflection Area' ,
description : 'Recharge and reflect in our tranquil wellness space designed for mindfulness and personal development sessions.' ,
image : 'https://images.unsplash.com/photo-1571019613454-1cb2f99b2d8b?w=1080&h=720&fit=crop' ,
capacity : '8-15 participants' ,
keyHighlight : 'Mindful Leadership Development' ,
zone : 7 ,
features : [
'Meditation seating area' ,
'Natural lighting' ,
'Acoustic privacy' ,
'Aromatherapy system' ,
'Garden views'
]
} ,
{
id : 'digital-learning-studio' ,
title : 'Digital Learning Studio' ,
description : 'Experience cutting-edge digital learning with our high-tech studio equipped for virtual reality and interactive sessions.' ,
image : 'https://images.unsplash.com/photo-1560472354-b33ff0c44a43?w=1080&h=720&fit=crop' ,
capacity : '10-20 participants' ,
keyHighlight : 'Future of Learning Technology' ,
zone : 8 ,
features : [
'VR/AR capabilities' ,
'Interactive displays' ,
'Recording equipment' ,
'Livestream setup' ,
'Digital collaboration tools'
]
}
] ;
const targetAudience = [
{
title : "Corporate Training Teams" ,
description : "Organizations seeking premium residential learning experiences for their leadership development programs" ,
icon : Building ,
challenges : [ "Facility booking complexity" , "Quality accommodation needs" , "Program logistics" , "Cost management" ]
} ,
{
title : "Leadership Development Providers" ,
description : "Training organizations and consultancies requiring world-class facilities for executive programs" ,
icon : Users ,
challenges : [ "Facility availability" , "Technology requirements" , "Catering quality" , "Professional environment" ]
} ,
{
title : "Executive Teams & Boards" ,
description : "Senior leadership teams planning strategic retreats and intensive development programs" ,
icon : Target ,
challenges : [ "Privacy requirements" , "Executive-level facilities" , "Strategic planning spaces" , "Convenience needs" ]
}
] ;
const useCases = [
{
title : "Leadership Residential Programs" ,
description : "When organizations need premium facilities for multi-day leadership development programs" ,
icon : Home ,
scenario : "Executive development programs requiring 2-7 day residential experiences"
} ,
{
title : "Strategic Planning Retreats" ,
description : "When leadership teams need focused environments for strategic planning and decision-making" ,
icon : Target ,
scenario : "Board meetings, strategic sessions, or executive team planning retreats"
} ,
{
title : "Learning & Development Events" ,
description : "When organizations require professional venues for training, workshops, and development events" ,
icon : BookOpen ,
scenario : "Corporate training programs, workshops, or learning conferences"
} ,
{
title : "Team Building & Culture Events" ,
description : "When teams need inspiring environments for team building and cultural development activities" ,
icon : Heart ,
scenario : "Team building events, culture workshops, or organizational celebrations"
}
] ;
2025-09-05 12:48:46 +05:30
const facilityFeatures = [
2025-10-03 19:55:00 +05:30
{
phase : "Premium Accommodations" ,
duration : "World-Class Comfort" ,
activities : [ "Luxury single and double rooms" , "Executive suites" , "24/7 concierge service" , "High-speed internet throughout" ] ,
deliverables : [ "Comfortable stay experience" , "Professional environment" , "Seamless connectivity" , "Executive-level service" ]
} ,
{
phase : "Learning & Meeting Spaces" ,
duration : "State-of-the-Art Facilities" ,
activities : [ "Modern conference rooms" , "Interactive learning spaces" , "Breakout areas" , "Outdoor meeting spaces" ] ,
deliverables : [ "Flexible learning environments" , "Technology-enabled spaces" , "Collaborative areas" , "Natural settings" ]
} ,
{
phase : "Dining & Recreation" ,
duration : "Complete Experience" ,
activities : [ "Gourmet dining options" , "Healthy meal programs" , "Recreation facilities" , "Wellness amenities" ] ,
deliverables : [ "Nutritious meal programs" , "Networking opportunities" , "Physical wellness" , "Stress relief activities" ]
}
2025-09-05 12:48:46 +05:30
] ;
2025-10-03 19:55:00 +05:30
const expectedOutcomes = [
{
metric : "96%" ,
description : "Client satisfaction with facility quality and service" ,
icon : Heart ,
category : "Satisfaction"
} ,
{
metric : "87%" ,
description : "Improvement in program engagement in residential setting" ,
icon : TrendingUp ,
category : "Engagement"
} ,
{
metric : "92%" ,
description : "Would recommend Kautilya Facility to other organizations" ,
icon : Star ,
category : "Recommendation"
} ,
{
metric : "78%" ,
description : "Return rate for repeat bookings and programs" ,
icon : Building ,
category : "Loyalty"
}
] ;
// Facility data for BookingModal
const facilities = [
{
id : 'learning-facility' ,
name : 'Learning Facility' ,
description : 'A purpose-built campus for immersive leadership learning. State-of-the-art facilities designed to foster transformation, collaboration, and growth.' ,
capacity : '80-120 people' ,
icon : Building ,
features : [
'State-of-the-art training halls' ,
'Advanced AV systems' ,
'Flexible seating arrangements' ,
'High-speed connectivity' ,
'Professional learning environment'
] ,
videoUrl : 'https://example.com/virtual-tour'
}
] ;
// Booking Form Data Interface for BookingModal
interface BookingFormData {
companyName : string ;
contactName : string ;
email : string ;
phone : string ;
role : string ;
teamSize : string ;
facilityType : string ;
preferredDate : string ;
additionalRequirements : string ;
}
export function LearningFacilityNew() {
// Deluxe Living & Recreation Carousel state and functionality
const [ currentSlide , setCurrentSlide ] = useState ( 0 ) ;
const carouselRef = useRef < HTMLDivElement > ( null ) ;
// Virtual Tour Carousel state and functionality
const [ currentTourSlide , setCurrentTourSlide ] = useState ( 0 ) ;
const tourCarouselRef = useRef < HTMLDivElement > ( null ) ;
// Hero Background Image Carousel state and functionality
const [ currentHeroBackground , setCurrentHeroBackground ] = useState ( 0 ) ;
// Booking Modal state
const [ isModalOpen , setIsModalOpen ] = useState ( false ) ;
const [ selectedFacility , setSelectedFacility ] = useState < typeof facilities [ 0 ] | null > ( null ) ;
// Conference/Classroom room background images array for hero section
const heroBackgroundImages = [
2025-09-05 12:48:46 +05:30
{
2025-10-03 19:55:00 +05:30
src : "https://images.unsplash.com/photo-1588865198054-c83788106132?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w3Nzg4Nzd8MHwxfHNlYXJjaHwxfHxtb2Rlcm4lMjBjb25mZXJlbmNlJTIwcm9vbSUyMGxhcmdlJTIwc3BhY2V8ZW58MXx8fHwxNzU2OTAyMzYyfDA&ixlib=rb-4.1.0&q=80&w=1080&utm_source=figma&utm_medium=referral" ,
alt : "Modern Conference Room"
2025-09-05 12:48:46 +05:30
} ,
{
2025-10-03 19:55:00 +05:30
src : "https://images.unsplash.com/photo-1613186145425-5bb4eca455d7?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w3Nzg4Nzd8MHwxfHNlYXJjaHwxfHxleGVjdXRpdmUlMjBib2FyZHJvb20lMjBtZWV0aW5nJTIwc3BhY2V8ZW58MXx8fHwxNzU2OTAyMzY2fDA&ixlib=rb-4.1.0&q=80&w=1080&utm_source=figma&utm_medium=referral" ,
alt : "Executive Boardroom"
2025-09-05 12:48:46 +05:30
} ,
{
2025-10-03 19:55:00 +05:30
src : "https://images.unsplash.com/photo-1752579664702-e6609516e21a?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w3Nzg4Nzd8MHwxfHNlYXJjaHwxfHxidXNpbmVzcyUyMHRyYWluaW5nJTIwY2xhc3Nyb29tJTIwbW9kZXJufGVufDF8fHx8MTc1NjkwMjM3MHww&ixlib=rb-4.1.0&q=80&w=1080&utm_source=figma&utm_medium=referral" ,
alt : "Business Training Classroom"
2025-09-05 12:48:46 +05:30
} ,
{
2025-10-03 19:55:00 +05:30
src : "https://images.unsplash.com/photo-1718224326658-489bbfbeb2ca?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w3Nzg4Nzd8MHwxfHNlYXJjaHwxfHxjb3Jwb3JhdGUlMjBzZW1pbmFyJTIwaGFsbCUyMGF1ZGl0b3JpdW18ZW58MXx8fHwxNzU2OTAyMzc2fDA&ixlib=rb-4.1.0&q=80&w=1080&utm_source=figma&utm_medium=referral" ,
alt : "Corporate Seminar Hall"
2025-09-05 12:48:46 +05:30
} ,
{
2025-10-03 19:55:00 +05:30
src : "https://images.unsplash.com/photo-1655392032233-c95aedd27ad4?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w3Nzg4Nzd8MHwxfHNlYXJjaHwxfHxwcm9mZXNzaW9uYWwlMjB3b3Jrc2hvcCUyMHZlbnVlJTIwc3BhY2V8ZW58MXx8fHwxNzU2OTAyMzc5fDA&ixlib=rb-4.1.0&q=80&w=1080&utm_source=figma&utm_medium=referral" ,
alt : "Professional Workshop Venue"
2025-09-05 12:48:46 +05:30
}
2025-10-03 19:55:00 +05:30
] ;
2025-09-05 12:48:46 +05:30
2025-10-03 19:55:00 +05:30
// Responsive carousel settings
const getCarouselSettings = ( ) = > {
if ( typeof window !== 'undefined' ) {
if ( window . innerWidth >= 1200 ) {
return { cardsPerView : 3 , cardWidth : 33.333 , slideWidth : 33.333 } ;
} else if ( window . innerWidth >= 768 ) {
return { cardsPerView : 2 , cardWidth : 50 , slideWidth : 50 } ;
} else {
return { cardsPerView : 1 , cardWidth : 100 , slideWidth : 100 } ;
}
2025-09-30 16:53:39 +05:30
}
2025-10-03 19:55:00 +05:30
return { cardsPerView : 3 , cardWidth : 33.333 , slideWidth : 33.333 } ;
} ;
2025-09-30 16:53:39 +05:30
2025-10-03 19:55:00 +05:30
// Virtual tour carousel settings
const getTourCarouselSettings = ( ) = > {
if ( typeof window !== 'undefined' ) {
if ( window . innerWidth >= 1200 ) {
return { cardsPerView : 5 , cardWidth : 20 , slideWidth : 20 } ;
} else if ( window . innerWidth >= 768 ) {
2025-09-05 12:48:46 +05:30
return { cardsPerView : 3 , cardWidth : 33.333 , slideWidth : 33.333 } ;
2025-10-03 19:55:00 +05:30
} else {
return { cardsPerView : 1 , cardWidth : 100 , slideWidth : 100 } ;
}
}
return { cardsPerView : 5 , cardWidth : 20 , slideWidth : 20 } ;
} ;
const [ carouselSettings , setCarouselSettings ] = useState ( getCarouselSettings ( ) ) ;
const [ tourCarouselSettings , setTourCarouselSettings ] = useState ( getTourCarouselSettings ( ) ) ;
const { cardsPerView , cardWidth , slideWidth } = carouselSettings ;
const { cardsPerView : tourCardsPerView , cardWidth : tourCardWidth , slideWidth : tourSlideWidth } = tourCarouselSettings ;
const maxSlide = Math . max ( 0 , facilityFeatures . length - cardsPerView ) ;
const maxTourSlide = Math . max ( 0 , virtualTourStops . length - tourCardsPerView ) ;
const [ expandedUseCase , setExpandedUseCase ] = useState < number | null > ( null ) ;
const [ expandedFeature , setExpandedFeature ] = useState < number | null > ( 0 ) ;
// Handle window resize
useEffect ( ( ) = > {
const handleResize = ( ) = > {
setCarouselSettings ( getCarouselSettings ( ) ) ;
setTourCarouselSettings ( getTourCarouselSettings ( ) ) ;
setCurrentSlide ( 0 ) ; // Reset to first slide on resize
setCurrentTourSlide ( 0 ) ; // Reset tour carousel on resize
2025-09-05 12:48:46 +05:30
} ;
2025-10-03 19:55:00 +05:30
window . addEventListener ( 'resize' , handleResize ) ;
return ( ) = > window . removeEventListener ( 'resize' , handleResize ) ;
} , [ ] ) ;
2025-09-05 12:48:46 +05:30
2025-10-03 19:55:00 +05:30
const scrollLeft = ( ) = > {
if ( currentSlide > 0 ) {
setCurrentSlide ( currentSlide - 1 ) ;
}
} ;
2025-09-05 12:48:46 +05:30
2025-10-03 19:55:00 +05:30
const scrollRight = ( ) = > {
if ( currentSlide < maxSlide ) {
setCurrentSlide ( currentSlide + 1 ) ;
}
} ;
2025-09-05 12:48:46 +05:30
2025-10-03 19:55:00 +05:30
// Virtual Tour Carousel navigation
const scrollTourLeft = ( ) = > {
if ( currentTourSlide > 0 ) {
setCurrentTourSlide ( currentTourSlide - 1 ) ;
}
} ;
2025-09-05 12:48:46 +05:30
2025-10-03 19:55:00 +05:30
const scrollTourRight = ( ) = > {
if ( currentTourSlide < maxTourSlide ) {
setCurrentTourSlide ( currentTourSlide + 1 ) ;
}
} ;
const [ currentTourStop , setCurrentTourStop ] = useState ( 0 ) ;
const [ isVirtualTourActive , setIsVirtualTourActive ] = useState ( false ) ;
const [ expandedTourCard , setExpandedTourCard ] = useState < string | null > ( null ) ;
useEffect ( ( ) = > {
console . log ( 'LearningFacility component mounted' ) ; // Debug log
window . scrollTo ( 0 , 0 ) ;
// Listen for custom booking modal event from CTAPopupModal
const handleOpenBookingModal = ( ) = > {
console . log ( 'Custom booking modal event received' ) ; // Debug log
handleBookNow ( ) ;
2025-09-05 12:48:46 +05:30
} ;
2025-10-03 19:55:00 +05:30
window . addEventListener ( 'openBookingModal' , handleOpenBookingModal ) ;
2025-09-05 12:48:46 +05:30
2025-10-03 19:55:00 +05:30
// Also check if we should auto-open the booking modal based on URL parameters
const urlParams = new URLSearchParams ( window . location . search ) ;
if ( urlParams . get ( 'autoBooking' ) === 'true' ) {
console . log ( 'Auto-opening booking modal from URL parameter' ) ; // Debug log
setTimeout ( ( ) = > handleBookNow ( ) , 100 ) ;
}
2025-09-05 12:48:46 +05:30
2025-10-03 19:55:00 +05:30
return ( ) = > {
window . removeEventListener ( 'openBookingModal' , handleOpenBookingModal ) ;
2025-09-05 12:48:46 +05:30
} ;
2025-10-03 19:55:00 +05:30
} , [ ] ) ;
2025-09-05 12:48:46 +05:30
2025-10-03 19:55:00 +05:30
// Hero background image carousel auto-rotation effect
useEffect ( ( ) = > {
const interval = setInterval ( ( ) = > {
setCurrentHeroBackground ( ( prev ) = > ( prev + 1 ) % heroBackgroundImages . length ) ;
} , 3000 ) ; // Change background image every 3 seconds
2025-09-05 12:48:46 +05:30
2025-10-03 19:55:00 +05:30
return ( ) = > clearInterval ( interval ) ;
} , [ heroBackgroundImages . length ] ) ;
2025-09-05 12:48:46 +05:30
2025-10-03 19:55:00 +05:30
const handleStartTour = ( ) = > {
setIsVirtualTourActive ( true ) ;
setCurrentTourStop ( 0 ) ;
} ;
2025-09-05 12:48:46 +05:30
2025-10-03 19:55:00 +05:30
const handleNextStop = ( ) = > {
if ( currentTourStop < virtualTourStops . length - 1 ) {
setCurrentTourStop ( currentTourStop + 1 ) ;
}
} ;
const handlePrevStop = ( ) = > {
if ( currentTourStop > 0 ) {
setCurrentTourStop ( currentTourStop - 1 ) ;
}
} ;
const handleJumpToStop = ( index : number ) = > {
setCurrentTourStop ( index ) ;
} ;
const handleBookNow = ( ) = > {
// Set the first facility as default for booking
setSelectedFacility ( facilities [ 0 ] ) ;
setIsModalOpen ( true ) ;
} ;
const handleCloseModal = ( ) = > {
setIsModalOpen ( false ) ;
setSelectedFacility ( null ) ;
} ;
return (
< div className = "min-h-screen" style = { { backgroundColor : '#F7F7FD' } } >
{ /* Hero Section */ }
{ /* Service-style hero: full-bleed rotating background images with dark gradient, centered content */ }
< section className = "relative min-h-[90vh] flex flex-col" style = { { backgroundColor : '#FFFFFF' } } >
{ /* Rotating Background images + overlay */ }
< div className = "absolute inset-0 z-0" >
{ heroBackgroundImages . map ( ( image , index ) = > (
< div
key = { index }
className = { ` absolute inset-0 transition-opacity duration-1000 ease-in-out ${ index === currentHeroBackground ? 'opacity-100' : 'opacity-0'
} ` }
>
< ImageWithFallback
src = { image . src }
alt = { image . alt }
className = "w-full h-full object-cover"
/ >
< / div >
) ) }
< div className = "absolute inset-0 bg-gradient-to-r from-black/80 via-black/70 to-black/60 z-10" > < / div >
< / div >
{ /* Centered content */ }
< div className = "relative z-20 flex-1 flex items-center" >
< div className = "container mx-auto section-margin-x" >
< div className = "text-center max-w-5xl mx-auto" >
< div className = "branded-tag-system-white mb-8 justify-center" >
< div className = "dot" > < / div >
< span className = "text" > World - Class Facility < / span >
< / div >
< h1 className = "text-h1-white mb-6" > Learning Facility < / h1 >
< p className = "text-body-lg-white mb-8 max-w-2xl mx-auto" >
A purpose - built campus for immersive leadership learning . State - of - the - art facilities
designed to foster transformation , collaboration , and growth .
< / p >
< div className = "flex flex-col sm:flex-row mb-12 justify-center items-center" style = { { gap : '30px' } } >
< PrimaryCTAButton
text = "Take Virtual Tour"
onClick = { handleStartTour }
ariaLabel = "Take virtual tour"
className = "primary-cta-button-blue cta-text-white"
/ >
< Button
variant = "outline"
onClick = { handleBookNow }
data - booking - trigger
className = "management-dev-glassmorphic-btn text-body px-8 py-4 min-h-[52px] border transition-all duration-300"
style = { {
fontFamily : 'var(--font-family-base)'
} }
aria - label = "Book facility"
>
< Calendar className = "w-5 h-5 mr-2" / >
Book Facility
< / Button >
< / div >
< / div >
< / div >
< / div >
{ /* Background Image Indicators */ }
< div className = "relative z-20 border-t border-white/20 backdrop-blur-sm bg-black/20" >
< div className = "container mx-auto section-margin-x py-6" >
< div className = "flex justify-center items-center space-x-4" >
{ /* Current Image Label */ }
< div className = "bg-white/10 backdrop-blur-sm rounded-lg px-4 py-2 border border-white/20" >
< p className = "text-small-white font-medium" > { heroBackgroundImages [ currentHeroBackground ] ? . alt } < / p >
< p className = "text-small-white" > KLC Learning Spaces < / p >
< / div >
{ /* Carousel Indicators */ }
< div className = "flex space-x-2" >
{ heroBackgroundImages . map ( ( _ , index ) = > (
< button
key = { index }
onClick = { ( ) = > setCurrentHeroBackground ( index ) }
className = { ` w-2 h-2 rounded-full transition-all duration-300 ${ index === currentHeroBackground
? 'bg-yellow-400 w-8'
: 'bg-white/40 hover:bg-white/60'
} ` }
aria - label = { ` Go to ${ heroBackgroundImages [ index ] ? . alt } ` }
/ >
) ) }
< / div >
< / div >
< / div >
< / div >
< / section >
{ /* 1. What Is This Service */ }
< section className = "py-24 lg:py-32" style = { { backgroundColor : '#FFFFFF' } } >
< div className = "section-margin-x" >
< div className = "max-w-6xl mx-auto" >
< div className = "text-center mb-12" >
< BrandedTag text = "What Is This Service?" / >
< h2 className = "text-h2 mb-8 text-[#26231A]" > Premium Learning Campus & Residential Programs < / h2 >
< div className = "max-w-4xl mx-auto space-y-6" >
< p className = "text-body-lg text-[#6F6F6F] leading-relaxed" >
Kautilya Facility is a world - class residential learning campus designed specifically for executive education and leadership development programs . Our premium facility combines luxury accommodations , state - of - the - art learning spaces , and comprehensive amenities to create an immersive environment that maximizes learning outcomes and program engagement .
< / p >
< div className = "bg-[#04045B]/5 border-l-4 border-[#04045B] p-6 rounded-lg" >
< p className = "text-body-lg text-[#26231A] leading-relaxed" >
< span className = "font-semibold text-[#04045B]" > The Business Problem It Solves : < / span > Many organizations struggle to find appropriate venues that combine professional learning environments with quality accommodations for residential programs . Standard hotels lack the specialized learning infrastructure , while conference centers often compromise on accommodation quality . Our facility eliminates these compromises by providing an integrated solution designed specifically for executive learning .
< / p >
< / div >
< / div >
< / div >
< div className = "grid grid-cols-1 md:grid-cols-3 gap-8" >
< div className = "group bg-white border border-gray-200 rounded-xl p-8 hover:border-[#04045B]/20 hover:shadow-lg transition-all duration-300" >
< div className = "flex flex-col items-center text-center" >
< div
className = "w-16 h-16 rounded-xl flex items-center justify-center mb-6 group-hover:scale-105 transition-transform duration-300"
style = { { backgroundColor : '#04045B' } }
>
< Building className = "w-8 h-8 text-white" / >
< / div >
< h4 className = "text-h4 mb-4 text-[#26231A] group-hover:text-[#04045B] transition-colors duration-300" >
Premium Campus
< / h4 >
< p className = "text-body text-[#6F6F6F] leading-relaxed" >
World - class residential learning campus with luxury amenities and sophisticated infrastructure
< / p >
< / div >
< / div >
< div className = "group bg-white border border-gray-200 rounded-xl p-8 hover:border-[#04045B]/20 hover:shadow-lg transition-all duration-300" >
< div className = "flex flex-col items-center text-center" >
< div
className = "w-16 h-16 rounded-xl flex items-center justify-center mb-6 group-hover:scale-105 transition-transform duration-300"
style = { { backgroundColor : '#04045B' } }
>
< BookOpen className = "w-8 h-8 text-white" / >
< / div >
< h4 className = "text-h4 mb-4 text-[#26231A] group-hover:text-[#04045B] transition-colors duration-300" >
Learning - Focused Design
< / h4 >
< p className = "text-body text-[#6F6F6F] leading-relaxed" >
Specialized spaces designed for optimal learning and development with cutting - edge technology
< / p >
< / div >
< / div >
< div className = "group bg-white border border-gray-200 rounded-xl p-8 hover:border-[#04045B]/20 hover:shadow-lg transition-all duration-300" >
< div className = "flex flex-col items-center text-center" >
< div
className = "w-16 h-16 rounded-xl flex items-center justify-center mb-6 group-hover:scale-105 transition-transform duration-300"
style = { { backgroundColor : '#04045B' } }
>
< Heart className = "w-8 h-8 text-white" / >
< / div >
< h4 className = "text-h4 mb-4 text-[#26231A] group-hover:text-[#04045B] transition-colors duration-300" >
96 % Satisfaction Rate
< / h4 >
< p className = "text-body text-[#6F6F6F] leading-relaxed" >
Exceptional client satisfaction with facility quality , service excellence , and learning outcomes
< / p >
< / div >
< / div >
< / div >
< / div >
< / div >
< / section >
{ /* 2. Who Is It For */ }
< section className = "py-24 lg:py-32" style = { { backgroundColor : '#F9F9F9' } } >
< div className = "section-margin-x" >
< div className = "max-w-6xl mx-auto" >
< div className = "text-center mb-16" >
< BrandedTag text = "Who Is It For?" / >
< h2 className = "text-h2 mb-8" > Target Audience < / h2 >
< p className = "text-body-lg text-muted max-w-3xl mx-auto" >
Designed for organizations and teams seeking premium residential learning and strategic planning experiences .
< / p >
< / div >
< div className = "grid grid-cols-1 lg:grid-cols-3 gap-8" >
{ targetAudience . map ( ( audience , index ) = > (
< Card key = { index } className = "h-full hover:shadow-lg transition-all duration-300" >
< CardContent className = "p-8" >
< div className = "flex items-center gap-4 mb-6" >
< div
className = "w-16 h-16 rounded-2xl flex items-center justify-center"
style = { { backgroundColor : 'var(--color-primary)' } }
>
< audience.icon className = "w-8 h-8 text-white" / >
< / div >
< / div >
< h3 className = "text-h4 mb-4" > { audience . title } < / h3 >
< p className = "text-body text-muted mb-6" > { audience . description } < / p >
< div >
< h4 className = "text-small font-semibold text-primary mb-3" > Common Challenges : < / h4 >
< ul className = "space-y-2" >
{ audience . challenges . map ( ( challenge , challengeIndex ) = > (
< li key = { challengeIndex } className = "text-small text-muted flex items-start gap-2" >
< div className = "w-1 h-1 bg-primary rounded-full mt-2 flex-shrink-0" > < / div >
{ challenge }
< / li >
) ) }
< / ul >
< / div >
< / CardContent >
< / Card >
) ) }
< / div >
< / div >
< / div >
< / section >
{ /* 3. When to Use It */ }
< section className = "py-24 lg:py-32" style = { { backgroundColor : '#FFFFFF' } } >
< div className = "section-margin-x" >
< div className = "max-w-6xl mx-auto" >
< div className = "text-center mb-16" >
< BrandedTag text = "When to Use It?" / >
< h2 className = "text-h2 mb-8" > When Organizations Need Premium Learning Facilities < / h2 >
< p className = "text-body-lg text-muted max-w-2xl mx-auto" >
Ideal for organizations seeking world - class residential learning experiences and strategic planning sessions .
< / p >
< / div >
< div className = "grid grid-cols-1 md:grid-cols-2 gap-8" >
{ useCases . map ( ( useCase , index ) = > (
< div
key = { index }
className = "bg-white rounded-xl border border-gray-200 p-6 hover:border-[#04045B] hover:shadow-lg transition-all duration-300"
>
{ /* Icon and Title */ }
< div className = "flex items-start gap-4 mb-4" >
< div
className = "w-12 h-12 rounded-lg flex items-center justify-center flex-shrink-0"
style = { { backgroundColor : '#04045B' } }
>
< useCase.icon className = "w-6 h-6 text-white" / >
< / div >
< div className = "flex-1" >
< h3 className = "text-h4 mb-2 text-[#26231A]" >
{ useCase . title }
< / h3 >
< p className = "text-body text-muted" >
{ useCase . description }
< / p >
< / div >
< / div >
{ /* Ideal For Indicator */ }
< div className = "flex items-center gap-2 text-small text-[#04045B] bg-[#04045B]/5 px-3 py-2 rounded-lg" >
< div className = "w-2 h-2 rounded-full bg-[#F8C301]" / >
< span className = "font-medium" >
{ useCase . scenario }
< / span >
< / div >
2025-09-05 12:48:46 +05:30
< / div >
2025-10-03 19:55:00 +05:30
) ) }
< / div >
< / div >
< / div >
< / section >
{ /* 4. Our Approach */ }
< section className = "py-24 lg:py-32" style = { { backgroundColor : '#F9F9F9' } } >
< div className = "section-margin-x" >
< div className = "w-full" >
< div className = "max-w-6xl mx-auto" >
< div className = "text-center mb-16" >
< BrandedTag text = "Our Approach" / >
< h2 className = "text-h2 mb-8 text-[#26231A]" > Integrated Learning Campus Experience < / h2 >
< p className = "text-body-lg text-[#6F6F6F] max-w-3xl mx-auto" >
Our comprehensive approach combines premium accommodations , state - of - the - art learning facilities , and exceptional service delivery .
< / p >
< / div >
{ /* Flowchart Container with Connecting Lines */ }
< div className = "relative mb-16 flex flex-col items-center" >
{ /* Desktop: Horizontal Flowchart */ }
< div className = "hidden lg:block w-full max-w-5xl" >
< div className = "relative" >
{ /* Row 1: Facilities, Services, Technology */ }
< div className = "grid grid-cols-3 gap-8 mb-12 relative w-full" >
{ /* Facilities */ }
< div className = "bg-white border-2 border-[#04045B] rounded-xl p-6 hover:shadow-lg transition-all duration-300 relative z-10" >
< div className = "w-12 h-12 bg-[#04045B] rounded-lg flex items-center justify-center mb-4" >
< Home className = "w-6 h-6 text-white" / >
< / div >
< h3 className = "text-h4 text-[#26231A] mb-3" > Premium Facilities < / h3 >
< p className = "text-body text-[#6F6F6F] mb-4" >
World - class accommodations and learning environments
< / p >
< div className = "space-y-2" >
< div className = "text-small text-[#6F6F6F] bg-gray-50 px-3 py-2 rounded-lg" >
Luxury Accommodations
< / div >
< div className = "text-small text-[#6F6F6F] bg-gray-50 px-3 py-2 rounded-lg" >
Learning Spaces
< / div >
< div className = "text-small text-[#6F6F6F] bg-gray-50 px-3 py-2 rounded-lg" >
Wellness Facilities
< / div >
< / div >
< / div >
{ /* Arrow 1→2 */ }
< div className = "absolute top-1/2 left-[calc(33.33%-2rem)] -translate-y-1/2 z-0 flex items-center" >
< div className = "w-16 h-0.5 bg-[#F8C301]" > < / div >
< ArrowRight className = "w-6 h-6 text-[#F8C301] -ml-1" / >
< / div >
{ /* Services */ }
< div className = "bg-white border-2 border-[#F8C301] rounded-xl p-6 hover:shadow-lg transition-all duration-300 relative z-10" >
< div className = "w-12 h-12 bg-[#F8C301] rounded-lg flex items-center justify-center mb-4" >
< Coffee className = "w-6 h-6 text-white" / >
< / div >
< h3 className = "text-h4 text-[#26231A] mb-3" > Service Excellence < / h3 >
< p className = "text-body text-[#6F6F6F] mb-4" >
Exceptional hospitality and dining experiences
< / p >
< div className = "space-y-2" >
< div className = "text-small text-[#6F6F6F] bg-gray-50 px-3 py-2 rounded-lg" >
Gourmet Catering
< / div >
< div className = "text-small text-[#6F6F6F] bg-gray-50 px-3 py-2 rounded-lg" >
24 / 7 Concierge
< / div >
< div className = "text-small text-[#6F6F6F] bg-gray-50 px-3 py-2 rounded-lg" >
Event Management
< / div >
< / div >
< / div >
{ /* Arrow 2→3 */ }
< div className = "absolute top-1/2 left-[calc(66.66%-2rem)] -translate-y-1/2 z-0 flex items-center" >
< div className = "w-16 h-0.5 bg-[#04045B]" > < / div >
< ArrowRight className = "w-6 h-6 text-[#04045B] -ml-1" / >
< / div >
{ /* Technology */ }
< div className = "bg-white border-2 border-[#04045B] rounded-xl p-6 hover:shadow-lg transition-all duration-300 relative z-10" >
< div className = "w-12 h-12 bg-[#04045B] rounded-lg flex items-center justify-center mb-4" >
< Wifi className = "w-6 h-6 text-white" / >
< / div >
< h3 className = "text-h4 text-[#26231A] mb-3" > Technology Infrastructure < / h3 >
< p className = "text-body text-[#6F6F6F] mb-4" >
Advanced technology for seamless learning delivery
< / p >
< div className = "space-y-2" >
< div className = "text-small text-[#6F6F6F] bg-gray-50 px-3 py-2 rounded-lg" >
High - Speed Internet
< / div >
< div className = "text-small text-[#6F6F6F] bg-gray-50 px-3 py-2 rounded-lg" >
AV Equipment
< / div >
< div className = "text-small text-[#6F6F6F] bg-gray-50 px-3 py-2 rounded-lg" >
Tech Support
< / div >
< / div >
< / div >
< / div >
{ /* Vertical Connector - Center Flow Down */ }
< div className = "flex justify-center mb-6" >
< div className = "flex flex-col items-center" >
< div className = "w-0.5 h-12 bg-[#F8C301]" > < / div >
< ArrowRight className = "w-6 h-6 text-[#F8C301] rotate-90" / >
< / div >
< / div >
2025-09-05 12:48:46 +05:30
2025-10-03 19:55:00 +05:30
{ /* Row 2: Customization, Support */ }
< div className = "grid grid-cols-2 gap-8 w-full max-w-3xl mx-auto mb-12 relative" >
{ /* Customization */ }
< div className = "bg-white border-2 border-[#F8C301] rounded-xl p-6 hover:shadow-lg transition-all duration-300 relative z-10" >
< div className = "w-12 h-12 bg-[#F8C301] rounded-lg flex items-center justify-center mb-4" >
< Settings className = "w-6 h-6 text-white" / >
2025-09-05 12:48:46 +05:30
< / div >
2025-10-03 19:55:00 +05:30
< h3 className = "text-h4 text-[#26231A] mb-3" > Flexible Customization < / h3 >
< p className = "text-body text-[#6F6F6F] mb-4" >
Adaptable spaces configured to your program needs
< / p >
< div className = "space-y-2" >
< div className = "text-small text-[#6F6F6F] bg-gray-50 px-3 py-2 rounded-lg" >
Room Configurations
< / div >
< div className = "text-small text-[#6F6F6F] bg-gray-50 px-3 py-2 rounded-lg" >
Custom Setups
< / div >
< div className = "text-small text-[#6F6F6F] bg-gray-50 px-3 py-2 rounded-lg" >
Branding Options
< / div >
< / div >
< / div >
{ /* Arrow 4→5 */ }
< div className = "absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 z-0 flex items-center" >
< div className = "w-16 h-0.5 bg-[#04045B]" > < / div >
< ArrowRight className = "w-6 h-6 text-[#04045B] -ml-1" / >
< / div >
{ /* Dedicated Support */ }
< div className = "bg-white border-2 border-[#04045B] rounded-xl p-6 hover:shadow-lg transition-all duration-300 relative z-10" >
< div className = "w-12 h-12 bg-[#04045B] rounded-lg flex items-center justify-center mb-4" >
< UserCheck className = "w-6 h-6 text-white" / >
< / div >
< h3 className = "text-h4 text-[#26231A] mb-3" > Dedicated Support < / h3 >
< p className = "text-body text-[#6F6F6F] mb-4" >
Expert team ensuring flawless program execution
< / p >
< div className = "space-y-2" >
< div className = "text-small text-[#6F6F6F] bg-gray-50 px-3 py-2 rounded-lg" >
Event Coordinators
< / div >
< div className = "text-small text-[#6F6F6F] bg-gray-50 px-3 py-2 rounded-lg" >
Facility Staff
< / div >
< div className = "text-small text-[#6F6F6F] bg-gray-50 px-3 py-2 rounded-lg" >
Technical Team
< / div >
< / div >
< / div >
< / div >
{ /* Final Vertical Connector - Center Flow Down to Outcome */ }
< div className = "flex justify-center mb-6" >
< div className = "flex flex-col items-center" >
< div className = "w-0.5 h-12 bg-[#04045B]" > < / div >
< ArrowRight className = "w-6 h-6 text-[#04045B] rotate-90" / >
< / div >
2025-09-05 12:48:46 +05:30
< / div >
2025-10-03 19:55:00 +05:30
{ /* Row 3: Expected Outcome - Centered */ }
< div className = "flex justify-center w-full" >
< div className = "bg-[#04045B] text-white rounded-xl p-8 w-full max-w-2xl border-4 border-[#F8C301] shadow-xl" >
< div className = "flex items-center gap-3 mb-4" >
< TrendingUp className = "w-10 h-10 text-[#F8C301]" / >
< h3 className = "text-h4 text-white" > Expected Outcome < / h3 >
< / div >
< p className = "text-body text-white mb-4" >
An immersive learning environment that enhances focus , engagement , and program effectiveness for transformational results .
< / p >
< div className = "flex items-center gap-2 text-[#F8C301]" >
< CheckCircle className = "w-6 h-6" / >
< span className = "text-body text-white" > Exceptional Learning Experience < / span >
2025-09-05 12:48:46 +05:30
< / div >
2025-10-03 19:55:00 +05:30
< / div >
2025-09-05 12:48:46 +05:30
< / div >
2025-10-03 19:55:00 +05:30
< / div >
2025-09-05 12:48:46 +05:30
< / div >
2025-10-03 19:55:00 +05:30
{ /* Tablet & Mobile: Vertical Flowchart */ }
< div className = "lg:hidden space-y-8" >
{ /* Facilities */ }
< div className = "relative" >
< div className = "bg-white border-2 border-[#04045B] rounded-xl p-6 hover:shadow-lg transition-all duration-300" >
< div className = "w-12 h-12 bg-[#04045B] rounded-lg flex items-center justify-center mb-4" >
< Home className = "w-6 h-6 text-white" / >
< / div >
< h3 className = "text-h4 text-[#26231A] mb-3" > Premium Facilities < / h3 >
< p className = "text-body text-[#6F6F6F] mb-4" >
World - class accommodations and learning environments
< / p >
< div className = "space-y-2" >
< div className = "text-small text-[#6F6F6F] bg-gray-50 px-3 py-2 rounded-lg" >
Luxury Accommodations
< / div >
< div className = "text-small text-[#6F6F6F] bg-gray-50 px-3 py-2 rounded-lg" >
Learning Spaces
< / div >
< div className = "text-small text-[#6F6F6F] bg-gray-50 px-3 py-2 rounded-lg" >
Wellness Facilities
< / div >
< / div >
< / div >
{ /* Connector Arrow */ }
< div className = "flex justify-center my-4" >
< ArrowRight className = "w-8 h-8 text-[#F8C301] rotate-90" / >
< / div >
< / div >
{ /* Services */ }
< div className = "relative" >
< div className = "bg-white border-2 border-[#F8C301] rounded-xl p-6 hover:shadow-lg transition-all duration-300" >
< div className = "w-12 h-12 bg-[#F8C301] rounded-lg flex items-center justify-center mb-4" >
< Coffee className = "w-6 h-6 text-white" / >
< / div >
< h3 className = "text-h4 text-[#26231A] mb-3" > Service Excellence < / h3 >
< p className = "text-body text-[#6F6F6F] mb-4" >
Exceptional hospitality and dining experiences
< / p >
< div className = "space-y-2" >
< div className = "text-small text-[#6F6F6F] bg-gray-50 px-3 py-2 rounded-lg" >
Gourmet Catering
< / div >
< div className = "text-small text-[#6F6F6F] bg-gray-50 px-3 py-2 rounded-lg" >
24 / 7 Concierge
< / div >
< div className = "text-small text-[#6F6F6F] bg-gray-50 px-3 py-2 rounded-lg" >
Event Management
< / div >
< / div >
< / div >
{ /* Connector Arrow */ }
< div className = "flex justify-center my-4" >
< ArrowRight className = "w-8 h-8 text-[#04045B] rotate-90" / >
< / div >
< / div >
{ /* Technology */ }
< div className = "relative" >
< div className = "bg-white border-2 border-[#04045B] rounded-xl p-6 hover:shadow-lg transition-all duration-300" >
< div className = "w-12 h-12 bg-[#04045B] rounded-lg flex items-center justify-center mb-4" >
< Wifi className = "w-6 h-6 text-white" / >
< / div >
< h3 className = "text-h4 text-[#26231A] mb-3" > Technology Infrastructure < / h3 >
< p className = "text-body text-[#6F6F6F] mb-4" >
Advanced technology for seamless learning delivery
< / p >
< div className = "space-y-2" >
< div className = "text-small text-[#6F6F6F] bg-gray-50 px-3 py-2 rounded-lg" >
High - Speed Internet
< / div >
< div className = "text-small text-[#6F6F6F] bg-gray-50 px-3 py-2 rounded-lg" >
AV Equipment
< / div >
< div className = "text-small text-[#6F6F6F] bg-gray-50 px-3 py-2 rounded-lg" >
Tech Support
2025-09-05 12:48:46 +05:30
< / div >
2025-10-03 19:55:00 +05:30
< / div >
< / div >
{ /* Connector Arrow */ }
< div className = "flex justify-center my-4" >
< ArrowRight className = "w-8 h-8 text-[#F8C301] rotate-90" / >
< / div >
< / div >
{ /* Customization */ }
< div className = "relative" >
< div className = "bg-white border-2 border-[#F8C301] rounded-xl p-6 hover:shadow-lg transition-all duration-300" >
< div className = "w-12 h-12 bg-[#F8C301] rounded-lg flex items-center justify-center mb-4" >
< Settings className = "w-6 h-6 text-white" / >
< / div >
< h3 className = "text-h4 text-[#26231A] mb-3" > Flexible Customization < / h3 >
< p className = "text-body text-[#6F6F6F] mb-4" >
Adaptable spaces configured to your program needs
< / p >
< div className = "space-y-2" >
< div className = "text-small text-[#6F6F6F] bg-gray-50 px-3 py-2 rounded-lg" >
Room Configurations
< / div >
< div className = "text-small text-[#6F6F6F] bg-gray-50 px-3 py-2 rounded-lg" >
Custom Setups
< / div >
< div className = "text-small text-[#6F6F6F] bg-gray-50 px-3 py-2 rounded-lg" >
Branding Options
< / div >
< / div >
< / div >
{ /* Connector Arrow */ }
< div className = "flex justify-center my-4" >
< ArrowRight className = "w-8 h-8 text-[#04045B] rotate-90" / >
< / div >
< / div >
{ /* Dedicated Support */ }
< div className = "relative" >
< div className = "bg-white border-2 border-[#04045B] rounded-xl p-6 hover:shadow-lg transition-all duration-300" >
< div className = "w-12 h-12 bg-[#04045B] rounded-lg flex items-center justify-center mb-4" >
< UserCheck className = "w-6 h-6 text-white" / >
< / div >
< h3 className = "text-h4 text-[#26231A] mb-3" > Dedicated Support < / h3 >
< p className = "text-body text-[#6F6F6F] mb-4" >
Expert team ensuring flawless program execution
< / p >
< div className = "space-y-2" >
< div className = "text-small text-[#6F6F6F] bg-gray-50 px-3 py-2 rounded-lg" >
Event Coordinators
< / div >
< div className = "text-small text-[#6F6F6F] bg-gray-50 px-3 py-2 rounded-lg" >
Facility Staff
< / div >
< div className = "text-small text-[#6F6F6F] bg-gray-50 px-3 py-2 rounded-lg" >
Technical Team
< / div >
< / div >
< / div >
{ /* Connector Arrow */ }
< div className = "flex justify-center my-4" >
< ArrowRight className = "w-8 h-8 text-[#F8C301] rotate-90" / >
< / div >
< / div >
2025-09-05 12:48:46 +05:30
2025-10-03 19:55:00 +05:30
{ /* Expected Outcome */ }
< div className = "bg-[#04045B] text-white rounded-xl p-8 border-4 border-[#F8C301] shadow-xl" >
< div className = "flex items-center gap-3 mb-4" >
< TrendingUp className = "w-10 h-10 text-[#F8C301]" / >
< h3 className = "text-h4 text-white" > Expected Outcome < / h3 >
2025-09-05 12:48:46 +05:30
< / div >
2025-10-03 19:55:00 +05:30
< p className = "text-body text-white mb-4" >
An immersive learning environment that enhances focus , engagement , and program effectiveness for transformational results .
< / p >
< div className = "flex items-center gap-2 text-[#F8C301]" >
< CheckCircle className = "w-6 h-6" / >
< span className = "text-body text-white" > Exceptional Learning Experience < / span >
< / div >
< / div >
< / div >
< / div >
{ /* Framework Effectiveness */ }
{ / * < d i v c l a s s N a m e = " b g - g r a y - 5 0 r o u n d e d - x l p - 8 " >
< div className = "text-center mb-8" >
< h3 className = "text-h3 text-[#26231A] mb-4" > Facility Excellence Metrics < / h3 >
< p className = "text-body text-[#6F6F6F] max-w-2xl mx-auto" >
Our integrated campus approach delivers superior learning outcomes through exceptional environments .
< / p >
2025-09-05 12:48:46 +05:30
< / div >
2025-10-03 19:55:00 +05:30
< div className = "grid grid-cols-1 md:grid-cols-3 gap-6" >
< div className = "text-center bg-white rounded-lg p-6" >
< div className = "w-14 h-14 bg-[#04045B] rounded-lg flex items-center justify-center mx-auto mb-3" >
< Target className = "w-7 h-7 text-white" / >
2025-09-05 12:48:46 +05:30
< / div >
2025-10-03 19:55:00 +05:30
< div className = "text-h2 text-[#04045B] mb-2" > 96 % < / div >
< p className = "text-body text-[#6F6F6F]" > Guest Satisfaction Rating < / p >
< / div >
2025-09-05 12:48:46 +05:30
2025-10-03 19:55:00 +05:30
< div className = "text-center bg-white rounded-lg p-6" >
< div className = "w-14 h-14 bg-[#F8C301] rounded-lg flex items-center justify-center mx-auto mb-3" >
< Users className = "w-7 h-7 text-white" / >
< / div >
< div className = "text-h2 text-[#04045B] mb-2" > 92 % < / div >
< p className = "text-body text-[#6F6F6F]" > Program Effectiveness Increase < / p >
< / div >
< div className = "text-center bg-white rounded-lg p-6" >
< div className = "w-14 h-14 bg-[#04045B] rounded-lg flex items-center justify-center mx-auto mb-3" >
< TrendingUp className = "w-7 h-7 text-white" / >
2025-09-05 12:48:46 +05:30
< / div >
2025-10-03 19:55:00 +05:30
< div className = "text-h2 text-[#04045B] mb-2" > 89 % < / div >
< p className = "text-body text-[#6F6F6F]" > Repeat Booking Rate < / p >
< / div >
2025-09-05 12:48:46 +05:30
< / div >
2025-10-03 19:55:00 +05:30
< / div > * / }
< / div >
< / div >
< / div >
< / section >
{ /* 5. Sample Program Format */ }
< section className = "py-24 lg:py-32" style = { { backgroundColor : '#FFFFFF' } } >
< div className = "section-margin-x" >
< div className = "max-w-6xl mx-auto" >
< div className = "text-center mb-16" >
< BrandedTag text = "Sample Program Format" / >
< h2 className = "text-h2 mb-8" > Complete Campus Experience < / h2 >
< p className = "text-body-lg text-muted max-w-3xl mx-auto" >
A comprehensive facility experience designed to maximize learning outcomes and participant satisfaction .
< / p >
< / div >
< div className = "space-y-8" >
{ facilityFeatures . map ( ( feature , index ) = > (
< Card
key = { index }
className = "border border-gray-200 hover:border-primary/20 transition-all duration-300 hover:shadow-lg"
>
< CardContent className = "p-0" >
< div
className = "flex items-center justify-between p-6 cursor-pointer"
onClick = { ( ) = > setExpandedFeature ( expandedFeature === index ? null : index ) }
>
< div className = "flex items-start gap-4 flex-1" >
< div
className = "w-12 h-12 rounded-xl flex items-center justify-center flex-shrink-0"
style = { { backgroundColor : 'var(--color-primary)' } }
>
< span className = "text-white font-semibold" > { index + 1 } < / span >
2025-09-05 12:48:46 +05:30
< / div >
2025-10-03 19:55:00 +05:30
< div className = "flex-1" >
< h3 className = "text-h4 mb-2" > { feature . phase } < / h3 >
< div className = "flex items-center gap-2 mb-3" >
< Building className = "w-4 h-4 text-muted" / >
< span className = "text-small text-muted" > { feature . duration } < / span >
< / div >
< / div >
< / div >
< div className = "ml-4" >
{ expandedFeature === index ? (
< ChevronUp className = "w-5 h-5 text-muted" / >
) : (
< ChevronDown className = "w-5 h-5 text-muted" / >
) }
< / div >
< / div >
2025-09-05 12:48:46 +05:30
2025-10-03 19:55:00 +05:30
{ expandedFeature === index && (
< div className = "px-6 pb-6 border-t border-gray-100" >
< div className = "pt-6 grid grid-cols-1 lg:grid-cols-2 gap-8" >
< div >
< h4 className = "text-h4 mb-4" > Available Features < / h4 >
< ul className = "space-y-3" >
{ feature . activities . map ( ( activity , activityIndex ) = > (
< li key = { activityIndex } className = "flex items-start gap-3" >
< CheckCircle className = "w-4 h-4 text-primary flex-shrink-0 mt-1" / >
< span className = "text-body text-muted" > { activity } < / span >
< / li >
) ) }
< / ul >
< / div >
< div >
< h4 className = "text-h4 mb-4" > Experience Benefits < / h4 >
< ul className = "space-y-3" >
{ feature . deliverables . map ( ( deliverable , deliverableIndex ) = > (
< li key = { deliverableIndex } className = "flex items-start gap-3" >
< Star className = "w-4 h-4 text-accent flex-shrink-0 mt-1" / >
< span className = "text-body text-muted" > { deliverable } < / span >
< / li >
) ) }
< / ul >
< / div >
2025-09-05 12:48:46 +05:30
< / div >
2025-10-03 19:55:00 +05:30
< / div >
) }
< / CardContent >
< / Card >
) ) }
< / div >
< / div >
< / div >
< / section >
{ /* 6. Impact You Can Expect */ }
< section className = "py-24 lg:py-32" style = { { backgroundColor : '#F9F9F9' } } >
< div className = "section-margin-x" >
< div className = "max-w-6xl mx-auto" >
< div className = "text-center mb-16" >
< BrandedTag text = "Impact You Can Expect" / >
< h2 className = "text-h2 mb-8" > Measurable Facility Outcomes < / h2 >
< p className = "text-body-lg text-muted max-w-3xl mx-auto" >
Organizations consistently report high satisfaction and improved program outcomes when using our premium facility .
< / p >
< / div >
{ /* Outcomes Grid */ }
< div className = "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-8" >
{ expectedOutcomes . map ( ( outcome , index ) = > (
< Card key = { index } className = "text-center bg-white hover:shadow-lg transition-all duration-300" >
< CardContent className = "p-8" >
< div
className = "w-16 h-16 rounded-2xl flex items-center justify-center mx-auto mb-6"
style = { { backgroundColor : 'var(--color-primary)' } }
>
< outcome.icon className = "w-8 h-8 text-white" / >
< / div >
{ / * < d i v c l a s s N a m e = " t e x t - 5 x l f o n t - m e d i u m m b - 4 " s t y l e = { { c o l o r : ' v a r ( - - c o l o r - p r i m a r y ) ' } } >
{ outcome . metric }
< / div > * / }
< p className = "text-xl mb-4 text-primary font-medium" > { outcome . category } < / p >
< p className = "text-body text-muted mb-2" > { outcome . description } < / p >
{ /* <p className="text-small text-primary font-medium">{outcome.category}</p> */ }
< / CardContent >
< / Card >
) ) }
< / div >
< div className = "mt-16 bg-white p-8 rounded-2xl shadow-lg" >
< h3 className = "text-h3 mb-6 text-center" > Additional Facility Benefits < / h3 >
< div className = "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6" >
< div className = "text-center" >
< Building className = "w-8 h-8 text-primary mx-auto mb-3" / >
< h4 className = "text-h4 mb-2" > Premium Environment < / h4 >
< p className = "text-small text-muted" > World - class facilities that enhance learning and networking < / p >
< / div >
< div className = "text-center" >
< Heart className = "w-8 h-8 text-primary mx-auto mb-3" / >
< h4 className = "text-h4 mb-2" > Exceptional Service < / h4 >
< p className = "text-small text-muted" > Dedicated support staff and personalized service excellence < / p >
< / div >
< div className = "text-center" >
< Compass className = "w-8 h-8 text-primary mx-auto mb-3" / >
< h4 className = "text-h4 mb-2" > Strategic Location < / h4 >
< p className = "text-small text-muted" > Convenient location with peaceful , focused learning environment < / p >
< / div >
< / div >
< / div >
< / div >
< / div >
< / section >
{ /* Booking Modal */ }
< BookingModal
facility = { selectedFacility }
isOpen = { isModalOpen }
onClose = { handleCloseModal }
/ >
{ /* Testimonials Section - Using home page testimonials with custom headers */ }
< TestimonialsSection
title = "Guest Experiences"
subtitle = "Hear from clients and partners who have experienced the transformational power of our purpose-built learning environment."
tagText = "Facility Excellence"
/ >
{ /* Facility Tour - How to Reach Us Section */ }
< section className = "py-12" style = { { backgroundColor : '#FFFFFF' } } >
< div className = "container mx-auto section-margin-x" >
< div className = "max-w-7xl mx-auto" >
{ /* Header */ }
< div className = "text-center mb-8" >
< div className = "branded-tag-system mb-4 justify-center" >
< div className = "dot" > < / div >
< span className = "text" > FACILITY TOUR < / span >
< / div >
< h2 className = "text-h2 mb-4" >
We Look Forward to Host You
< / h2 >
< p className = "text-body text-muted max-w-2xl mx-auto" >
Experience our world - class facility firsthand . Here ' s everything you need to know about reaching us and planning your visit .
< / p >
< / div >
{ /* Content Grid */ }
< div className = "grid grid-cols-1 lg:grid-cols-5 gap-8 items-start" >
{ /* Contact Information */ }
< div className = "lg:col-span-3 space-y-6" >
{ /* Venue Details */ }
< motion.div
initial = { { opacity : 0 , x : - 30 } }
whileInView = { { opacity : 1 , x : 0 } }
transition = { { duration : 0.6 } }
viewport = { { once : true } }
className = "bg-white border border-gray-200 rounded-xl p-4 shadow-sm"
>
< div className = "flex items-center gap-3 mb-3" >
< div className = "w-10 h-10 bg-blue-100 rounded-lg flex items-center justify-center" >
< MapPin className = "w-5 h-5 text-blue-600" / >
< / div >
< h3 className = "text-h4" > Venue Details < / h3 >
< / div >
< div className = "space-y-1 text-body text-gray-700" >
< p className = "font-medium text-black" > Kautilya Leadership Services < / p >
< p > R . S . No . 5 / 6 , Savaroli Kharpada Road , < / p >
< p > Dhamani Taluk , Khalapur , District Raigad – 410201 < / p >
< / div >
< / motion.div >
{ /* Corporate Booking & Distance in one row */ }
< div className = "grid grid-cols-1 md:grid-cols-2 gap-6" >
{ /* Corporate Booking */ }
< motion.div
initial = { { opacity : 0 , x : - 30 } }
whileInView = { { opacity : 1 , x : 0 } }
transition = { { duration : 0.6 , delay : 0.2 } }
viewport = { { once : true } }
className = "bg-white border border-gray-200 rounded-xl p-4 shadow-sm"
>
< div className = "flex items-center gap-3 mb-3" >
< div className = "w-10 h-10 bg-green-100 rounded-lg flex items-center justify-center" >
< Phone className = "w-5 h-5 text-green-600" / >
< / div >
< h3 className = "text-h4" > Corporate Booking < / h3 >
< / div >
< div className = "space-y-2" >
< p className = "text-body font-medium text-black" > Supriya Salvi < / p >
< div className = "flex items-center gap-2 text-small text-gray-700" >
< Phone className = "w-4 h-4" / >
< span > + 91 9819232703 / 9326091775 < / span >
< / div >
< div className = "flex items-center gap-2 text-small text-gray-700" >
< Mail className = "w-4 h-4" / >
< span > connect @kautilyaservices . in < / span >
< / div >
< / div >
< / motion.div >
{ /* Distance Information */ }
< motion.div
initial = { { opacity : 0 , x : - 30 } }
whileInView = { { opacity : 1 , x : 0 } }
transition = { { duration : 0.6 , delay : 0.4 } }
viewport = { { once : true } }
className = "bg-white border border-gray-200 rounded-xl p-4 shadow-sm"
>
< div className = "flex items-center gap-3 mb-3" >
< div className = "w-10 h-10 bg-purple-100 rounded-lg flex items-center justify-center" >
< MapPin className = "w-5 h-5 text-purple-600" / >
< / div >
< h3 className = "text-h4" > How to Reach Us < / h3 >
< / div >
< div className = "space-y-2" >
< div className = "flex justify-between items-center" >
< span className = "text-small text-gray-600" > From Lonavala : < / span >
< span className = "text-body font-medium text-blue-600" > 23 Km < / span >
< / div >
< div className = "flex justify-between items-center" >
< span className = "text-small text-gray-600" > From Mumbai Airport : < / span >
< span className = "text-body font-medium text-blue-600" > 82 Km < / span >
< / div >
< div className = "flex justify-between items-center" >
< span className = "text-small text-gray-600" > From Pune Airport : < / span >
< span className = "text-body font-medium text-blue-600" > 94 Km < / span >
< / div >
2025-09-05 12:48:46 +05:30
< / div >
2025-10-03 19:55:00 +05:30
< / motion.div >
< / div >
< / div >
{ /* Location Map */ }
< motion.div
initial = { { opacity : 0 , x : 30 } }
whileInView = { { opacity : 1 , x : 0 } }
transition = { { duration : 0.6 , delay : 0.3 } }
viewport = { { once : true } }
className = "lg:col-span-2 space-y-4"
>
< div className = "bg-white border border-gray-200 rounded-xl overflow-hidden shadow-sm" >
< div className = "relative h-64" >
< ImageWithFallback
src = "https://images.unsplash.com/photo-1587400873582-230980eb46eb?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w3Nzg4Nzd8MHwxfHNlYXJjaHwxfHxsb2NhdGlvbiUyMG1hcCUyMGZhY2lsaXR5JTIwZGlyZWN0aW9uc3xlbnwxfHx8fDE3NTY5MDA5MTF8MA&ixlib=rb-4.1.0&q=80&w=1080&utm_source=figma&utm_medium=referral"
alt = "Kautilya Leadership Services Location Map"
className = "w-full h-full object-cover"
/ >
< div className = "absolute inset-0 bg-gradient-to-t from-black/20 to-transparent" > < / div >
< div className = "absolute bottom-3 left-3 bg-white/90 backdrop-blur-sm rounded-lg px-3 py-1" >
< p className = "text-small font-medium text-black" > Kautilya Leadership Centre < / p >
< p className = "text-small text-gray-600" > Raigad , Maharashtra < / p >
< / div >
< / div >
2025-09-05 12:48:46 +05:30
< / div >
2025-10-03 19:55:00 +05:30
{ /* Quick Actions */ }
< div className = "flex justify-center" >
< Button
variant = "outline"
onClick = { handleBookNow }
className = "text-body px-4 py-2 border-2 border-blue-600 text-blue-600 hover:bg-blue-50 transition-colors w-full"
style = { {
fontFamily : 'var(--font-family-base)'
} }
>
< Calendar className = "w-4 h-4 mr-2" / >
Plan Your Visit
< / Button >
< / div >
< / motion.div >
< / div >
< / div >
2025-09-05 12:48:46 +05:30
< / div >
2025-10-03 19:55:00 +05:30
< / section >
{ /* CTA Section - Using standardized home page CTA */ }
< CTABannerSection / >
< / div >
) ;
2025-09-30 16:53:39 +05:30
}
// Utility functions for calendar
const getDaysInMonth = ( date : Date ) = > {
2025-10-03 19:55:00 +05:30
return new Date ( date . getFullYear ( ) , date . getMonth ( ) + 1 , 0 ) . getDate ( ) ;
2025-09-30 16:53:39 +05:30
} ;
const getFirstDayOfMonth = ( date : Date ) = > {
2025-10-03 19:55:00 +05:30
return new Date ( date . getFullYear ( ) , date . getMonth ( ) , 1 ) . getDay ( ) ;
2025-09-30 16:53:39 +05:30
} ;
const isDateAvailable = ( date : Date ) = > {
2025-10-03 19:55:00 +05:30
// Simple availability check - you can replace this with your actual logic
const today = new Date ( ) ;
today . setHours ( 0 , 0 , 0 , 0 ) ;
return date >= today ;
2025-09-30 16:53:39 +05:30
} ;
const formatDate = ( date : Date ) = > {
2025-10-03 19:55:00 +05:30
return date . toISOString ( ) . split ( 'T' ) [ 0 ] ;
2025-09-30 16:53:39 +05:30
} ;
// Modal Component for Virtual Tour and Booking
function BookingModal ( {
facility ,
isOpen ,
onClose
} : {
facility : typeof facilities [ 0 ] | null ;
isOpen : boolean ;
onClose : ( ) = > void ;
} ) {
const [ bookingForm , setBookingForm ] = useState < BookingFormData > ( {
companyName : '' ,
contactName : '' ,
email : '' ,
phone : '' ,
role : '' ,
teamSize : '' ,
facilityType : facility?.name || '' ,
preferredDate : '' ,
additionalRequirements : ''
} ) ;
// Calendar state
const [ currentMonth , setCurrentMonth ] = useState ( new Date ( ) ) ;
const [ selectedDate , setSelectedDate ] = useState < Date | null > ( null ) ;
// Lock body scroll when modal is open
React . useEffect ( ( ) = > {
if ( isOpen ) {
document . body . style . overflow = 'hidden' ;
document . body . style . paddingRight = '15px' ; // Prevent layout shift from scrollbar
} else {
document . body . style . overflow = '' ;
document . body . style . paddingRight = '' ;
}
// Cleanup on unmount or when modal closes
return ( ) = > {
document . body . style . overflow = '' ;
document . body . style . paddingRight = '' ;
} ;
} , [ isOpen ] ) ;
const handleFormSubmit = ( e : React.FormEvent ) = > {
e . preventDefault ( ) ;
console . log ( 'Booking form submitted:' , bookingForm ) ;
// Here you would typically send the form data to your backend
alert ( 'Booking request submitted successfully! We will contact you soon.' ) ;
onClose ( ) ;
} ;
const updateFormField = ( field : keyof BookingFormData , value : string ) = > {
setBookingForm ( prev = > ( { . . . prev , [ field ] : value } ) ) ;
} ;
// Calendar functions
const handleDateSelect = ( date : Date ) = > {
if ( isDateAvailable ( date ) ) {
setSelectedDate ( date ) ;
updateFormField ( 'preferredDate' , formatDate ( date ) ) ;
}
} ;
const navigateMonth = ( direction : 'prev' | 'next' ) = > {
setCurrentMonth ( prev = > {
const newMonth = new Date ( prev ) ;
if ( direction === 'prev' ) {
newMonth . setMonth ( prev . getMonth ( ) - 1 ) ;
} else {
newMonth . setMonth ( prev . getMonth ( ) + 1 ) ;
}
return newMonth ;
} ) ;
} ;
const renderCalendar = ( ) = > {
const daysInMonth = getDaysInMonth ( currentMonth ) ;
const firstDay = getFirstDayOfMonth ( currentMonth ) ;
const days = [ ] ;
const monthNames = [
'Jan' , 'Feb' , 'Mar' , 'Apr' , 'May' , 'Jun' ,
'Jul' , 'Aug' , 'Sep' , 'Oct' , 'Nov' , 'Dec'
] ;
const dayNames = [ 'S' , 'M' , 'T' , 'W' , 'T' , 'F' , 'S' ] ;
// Empty cells for days before the first day of the month
for ( let i = 0 ; i < firstDay ; i ++ ) {
days . push ( < div key = { ` empty- ${ i } ` } className = "h-6" / > ) ;
}
// Days of the month
for ( let day = 1 ; day <= daysInMonth ; day ++ ) {
const date = new Date ( currentMonth . getFullYear ( ) , currentMonth . getMonth ( ) , day ) ;
const isAvailable = isDateAvailable ( date ) ;
const isSelected = selectedDate &&
date . getFullYear ( ) === selectedDate . getFullYear ( ) &&
date . getMonth ( ) === selectedDate . getMonth ( ) &&
date . getDate ( ) === selectedDate . getDate ( ) ;
days . push (
< button
key = { day }
type = "button"
onClick = { ( ) = > handleDateSelect ( date ) }
disabled = { ! isAvailable }
className = { `
h - 6 w - 6 rounded text - xs font - medium transition - all duration - 200 flex items - center justify - center
$ { isSelected
? 'bg-primary text-white shadow-sm'
: isAvailable
? 'hover:bg-blue-50 hover:text-primary text-gray-700'
: 'text-gray-300 cursor-not-allowed'
}
` }
style = { {
backgroundColor : isSelected ? 'var(--color-primary)' : undefined ,
color : isSelected ? 'white' : undefined
} }
>
{ day }
< / button >
) ;
}
return (
< div className = "bg-white rounded-lg border border-gray-200 p-3" >
{ /* Calendar Header */ }
< div className = "flex items-center justify-between mb-3" >
< button
type = "button"
onClick = { ( ) = > navigateMonth ( 'prev' ) }
className = "p-1 rounded hover:bg-gray-100 transition-colors"
>
< ChevronLeft className = "w-3 h-3 text-gray-600" / >
< / button >
< h4 className = "text-sm font-semibold text-gray-900" >
{ monthNames [ currentMonth . getMonth ( ) ] } { currentMonth . getFullYear ( ) }
< / h4 >
< button
type = "button"
onClick = { ( ) = > navigateMonth ( 'next' ) }
className = "p-1 rounded hover:bg-gray-100 transition-colors"
>
< ChevronRight className = "w-3 h-3 text-gray-600" / >
< / button >
< / div >
{ /* Day Names */ }
< div className = "grid grid-cols-7 gap-1 mb-2" >
{ dayNames . map ( ( day , index ) = > (
< div key = { ` day- ${ index } ` } className = "h-6 flex items-center justify-center" >
< span className = "text-xs font-medium text-gray-500" > { day } < / span >
< / div >
) ) }
< / div >
{ /* Calendar Grid */ }
< div className = "grid grid-cols-7 gap-1 mb-3" >
{ days }
< / div >
< / div >
) ;
} ;
if ( ! isOpen || ! facility ) return null ;
return (
< div
className = "fixed inset-0 bg-black/60 flex items-center justify-center p-2 lg:p-4 z-popup-modal virtual-space-modal-overlay"
onClick = { onClose }
>
< div
className = "bg-white rounded-xl lg:rounded-2xl max-w-5xl w-full h-[85vh] overflow-hidden virtual-space-modal-container flex flex-col"
onClick = { ( e ) = > e . stopPropagation ( ) }
>
{ /* Modal Header - Compact */ }
< div
className = "flex items-center justify-between p-4 lg:p-6 border-b flex-shrink-0"
style = { { backgroundColor : 'rgba(4, 4, 91, 0.02)' } }
>
< div className = "flex items-center gap-3 lg:gap-4" >
< div
className = "w-10 h-10 lg:w-12 lg:h-12 rounded-lg flex items-center justify-center"
style = { { backgroundColor : 'var(--color-primary)' } }
>
< facility.icon className = "w-5 h-5 lg:w-6 lg:h-6 text-white" / >
< / div >
< div >
< h2 className = "text-body lg:text-subhead mb-1" >
Kautilya Leadership Centre
< / h2 >
< p className = "text-small text-muted" >
Capacity : { facility . capacity } people
< / p >
< / div >
< / div >
< Button
variant = "ghost"
size = "sm"
onClick = { onClose }
className = "rounded-full w-8 h-8 lg:w-10 lg:h-10 p-0 hover:bg-gray-100"
>
< X className = "w-4 h-4 lg:w-5 lg:h-5" / >
< / Button >
< / div >
{ /* Modal Content - Side by Side Layout No Scroll */ }
< div className = "grid grid-cols-1 lg:grid-cols-2 flex-1 min-h-0" >
{ /* Left Side - Virtual Tour */ }
< div className = "p-3 lg:p-6 border-r border-gray-100 flex flex-col min-h-0 overflow-y-auto" >
< div className = "flex flex-col h-full space-y-2 lg:space-y-3" >
{ /* Video Section - Compact */ }
< div className = "flex-shrink-0" >
< div className = "flex items-center gap-2 mb-2" >
< Play className = "w-4 h-4 text-primary" / >
< h3 className = "text-small lg:text-body font-semibold" > Virtual Tour < / h3 >
< / div >
{ /* Virtual Tour Container - Developer-Ready for 360 Viewer or Video */ }
< div className = "aspect-video rounded-lg overflow-hidden bg-gray-100 shadow-md relative" >
< div
id = { ` virtual-tour-container- ${ facility . id } ` }
className = "w-full h-full relative"
data - facility - id = { facility . id }
data - facility - name = { facility . name }
data - tour - type = "360-viewer"
>
< ImageWithFallback
src = { kautilyaVirtualTourImage }
alt = { ` ${ facility . name } Virtual Tour ` }
className = "w-full h-full object-cover"
/ >
< / div >
{ /* Interactive Controls Overlay (optional) */ }
< div className = "absolute bottom-2 left-2 right-2 flex justify-between items-center pointer-events-none" >
< div className = "bg-black/20 backdrop-blur-sm rounded px-2 py-1" >
< span className = "text-white text-xs" > 360 ° Virtual Tour < / span >
< / div >
< div className = "bg-black/20 backdrop-blur-sm rounded px-2 py-1" >
< span className = "text-white text-xs" > Click & Drag to Explore < / span >
< / div >
< / div >
< / div >
< / div >
{ /* Compact Info Section */ }
< div className = "flex-1 min-h-0 space-y-2 lg:space-y-3" >
{ /* About - Compact */ }
< div className = "bg-gray-50 rounded-lg p-2 lg:p-3" >
< h4 className = "text-small font-semibold mb-1" > About This Space < / h4 >
< p className = "text-xs lg:text-small text-muted leading-relaxed line-clamp-2" >
{ facility . description }
< / p >
< / div >
{ /* Features - Compact */ }
< div className = "bg-gray-50 rounded-lg p-2 lg:p-3" >
< h4 className = "text-small font-semibold mb-2" > Key Features < / h4 >
< div className = "space-y-1" >
{ facility . features . slice ( 0 , 3 ) . map ( ( feature , index ) = > (
< div key = { index } className = "flex items-center gap-2" >
< div
className = "w-1.5 h-1.5 rounded-full flex-shrink-0"
style = { { backgroundColor : 'var(--color-primary)' } }
/ >
< span className = "text-xs lg:text-small" > { feature } < / span >
< / div >
) ) }
< / div >
< / div >
{ /* Quick Stats - Compact */ }
< div className = "grid grid-cols-2 gap-2 p-2 lg:p-3 bg-blue-50 rounded-lg" >
< div className = "text-center" >
< div className = "text-xs lg:text-small font-semibold text-primary" > Capacity < / div >
< div className = "text-xs lg:text-small text-muted" > { facility . capacity } < / div >
< / div >
< div className = "text-center" >
< div className = "text-xs lg:text-small font-semibold text-primary" > Zone < / div >
< div className = "text-xs lg:text-small text-muted" > Premium < / div >
< / div >
< / div >
{ /* Action Button - Compact */ }
< Button
variant = "outline"
onClick = { ( ) = > navigateTo ( '/learning-facility' ) }
className = "w-full h-8 lg:h-10 text-xs lg:text-small"
>
< Building className = "w-3 h-3 lg:w-4 lg:h-4 mr-1" / >
View All Facilities
< / Button >
< / div >
< / div >
< / div >
{ /* Right Side - Booking Form */ }
< div className = "p-4 lg:p-6 flex flex-col min-h-0 overflow-y-auto" >
< form onSubmit = { handleFormSubmit } className = "flex flex-col h-full" >
{ /* Form Header */ }
< div className = "flex items-center gap-3 mb-4 flex-shrink-0" >
< Calendar className = "w-5 h-5 text-primary" / >
< h3 className = "text-subhead" > Book This Space < / h3 >
< / div >
{ /* Form Content with Compact Spacing */ }
< div className = "flex-1 min-h-0 space-y-4 overflow-y-auto pr-2 virtual-space-modal-scroll" >
{ /* Company Information Section */ }
< div className = "space-y-3" >
< div className = "space-y-1" >
< h4 className = "text-small font-medium text-primary" > Company Information < / h4 >
< div className = "w-10 h-0.5 bg-primary" > < / div >
< / div >
< div className = "space-y-2" >
< div className = "grid grid-cols-1 lg:grid-cols-2 gap-2" >
< div >
< Label htmlFor = "companyName" className = "text-xs font-normal text-black mb-1 block" >
Company Name *
< / Label >
< Input
id = "companyName"
required
value = { bookingForm . companyName }
onChange = { ( e ) = > updateFormField ( 'companyName' , e . target . value ) }
placeholder = "Company"
className = "h-8 text-sm border border-gray-300 rounded focus:border-primary focus:ring-1 focus:ring-primary/30 transition-all duration-200 placeholder:text-gray-400 placeholder:opacity-50"
/ >
< / div >
< div >
< Label htmlFor = "contactName" className = "text-xs font-normal text-black mb-1 block" >
Contact Person *
< / Label >
< Input
id = "contactName"
required
value = { bookingForm . contactName }
onChange = { ( e ) = > updateFormField ( 'contactName' , e . target . value ) }
placeholder = "Name"
className = "h-8 text-sm border border-gray-300 rounded focus:border-primary focus:ring-1 focus:ring-primary/30 transition-all duration-200 placeholder:text-gray-400 placeholder:opacity-50"
/ >
< / div >
< / div >
< div className = "grid grid-cols-1 lg:grid-cols-2 gap-2" >
< div >
< Label htmlFor = "email" className = "text-xs font-normal text-black mb-1 block" >
Email Address *
< / Label >
< Input
id = "email"
type = "email"
required
value = { bookingForm . email }
onChange = { ( e ) = > updateFormField ( 'email' , e . target . value ) }
placeholder = "email@company.com"
className = "h-8 text-sm border border-gray-300 rounded focus:border-primary focus:ring-1 focus:ring-primary/30 transition-all duration-200 placeholder:text-gray-400 placeholder:opacity-50"
/ >
< / div >
< div >
< Label htmlFor = "phone" className = "text-xs font-normal text-black mb-1 block" >
Phone Number *
< / Label >
< Input
id = "phone"
required
value = { bookingForm . phone }
onChange = { ( e ) = > updateFormField ( 'phone' , e . target . value ) }
placeholder = "+91 98765 43210"
className = "h-8 text-sm border border-gray-300 rounded focus:border-primary focus:ring-1 focus:ring-primary/30 transition-all duration-200 placeholder:text-gray-400 placeholder:opacity-50"
/ >
< / div >
< / div >
< div className = "grid grid-cols-1 lg:grid-cols-2 gap-2" >
< div >
< Label htmlFor = "role" className = "text-xs font-normal text-black mb-1 block" >
Your Role *
< / Label >
< Select value = { bookingForm . role } onValueChange = { ( value : string ) = > updateFormField ( 'role' , value ) } >
< SelectTrigger className = "h-8 text-sm border border-gray-300 rounded focus:border-primary focus:ring-1 focus:ring-primary/30 transition-all duration-200" >
< SelectValue placeholder = "Role" className = "text-gray-400 opacity-50" / >
< / SelectTrigger >
< SelectContent >
< SelectItem value = "ceo" > CEO / Founder < / SelectItem >
< SelectItem value = "hr-director" > HR Director < / SelectItem >
< SelectItem value = "training-manager" > Training Manager < / SelectItem >
< SelectItem value = "operations-manager" > Operations Manager < / SelectItem >
< SelectItem value = "executive-assistant" > Executive Assistant < / SelectItem >
< SelectItem value = "other" > Other < / SelectItem >
< / SelectContent >
< / Select >
< / div >
< div >
< Label htmlFor = "teamSize" className = "text-xs font-normal text-black mb-1 block" >
Expected Team Size *
< / Label >
< Select value = { bookingForm . teamSize } onValueChange = { ( value : string ) = > updateFormField ( 'teamSize' , value ) } >
< SelectTrigger className = "h-8 text-sm border border-gray-300 rounded focus:border-primary focus:ring-1 focus:ring-primary/30 transition-all duration-200" >
< SelectValue placeholder = "Size" className = "text-gray-400 opacity-50" / >
< / SelectTrigger >
< SelectContent >
< SelectItem value = "1-5" > 1 - 5 people < / SelectItem >
< SelectItem value = "6-15" > 6 - 15 people < / SelectItem >
< SelectItem value = "16-30" > 16 - 30 people < / SelectItem >
< SelectItem value = "31-50" > 31 - 50 people < / SelectItem >
< SelectItem value = "50+" > 50 + people < / SelectItem >
< / SelectContent >
< / Select >
< / div >
< / div >
< / div >
< / div >
{ /* Booking Details Section */ }
< div className = "space-y-3" >
< div className = "space-y-1" >
< h4 className = "text-small font-medium text-primary" > Select Your Date < / h4 >
< div className = "w-10 h-0.5 bg-primary" > < / div >
< / div >
< div className = "space-y-3" >
{ /* Calendar Date Selection */ }
< div className = "space-y-2" >
< Label className = "text-xs font-normal text-black" >
Choose Your Preferred Date *
< / Label >
{ renderCalendar ( ) }
{ selectedDate && (
< div className = "mt-2 p-2 bg-green-50 rounded border border-green-200" >
< div className = "flex items-center gap-2" >
< Calendar className = "w-3 h-3 text-green-600" / >
< span className = "text-xs font-medium text-green-800" >
Selected : { selectedDate . toLocaleDateString ( 'en-US' , {
month : 'short' ,
day : 'numeric' ,
year : 'numeric'
} ) }
< / span >
< / div >
< / div >
) }
< / div >
{ /* Additional Requirements */ }
< div >
< Label htmlFor = "additionalRequirements" className = "text-xs font-normal text-black mb-1 block" >
Additional Requirements
< / Label >
< Textarea
id = "additionalRequirements"
value = { bookingForm . additionalRequirements }
onChange = { ( e ) = > updateFormField ( 'additionalRequirements' , e . target . value ) }
placeholder = "Special setup, AV equipment, catering..."
rows = { 2 }
className = "text-sm border border-gray-300 rounded focus:border-primary focus:ring-1 focus:ring-primary/30 transition-all duration-200 placeholder:text-gray-400 placeholder:opacity-50 resize-none"
/ >
< / div >
< / div >
< / div >
< / div >
{ /* Form Actions */ }
< div className = "flex flex-col sm:flex-row gap-2 pt-3 border-t border-gray-200 mt-3 flex-shrink-0" >
< Button
type = "submit"
disabled = { ! selectedDate }
className = "flex-1 h-9 text-sm font-medium bg-primary hover:bg-primary/90 disabled:bg-gray-300 disabled:cursor-not-allowed text-white border-0 rounded shadow-sm hover:shadow-md transition-all duration-200"
style = { {
backgroundColor : selectedDate ? 'var(--color-primary)' : '#d1d5db' ,
color : 'white'
} }
>
< Calendar className = "w-3 h-3 mr-2" / >
{ selectedDate ? 'Submit Request' : 'Select Date First' }
< / Button >
< Button
type = "button"
variant = "outline"
onClick = { onClose }
className = "px-4 h-9 text-sm font-normal border border-gray-300 hover:border-gray-400 hover:bg-gray-50 rounded transition-all duration-200"
>
Cancel
< / Button >
< / div >
< / form >
< / div >
< / div >
< / div >
< / div >
) ;
2025-09-05 12:48:46 +05:30
}