Compare commits
No commits in common. "main" and "reformate" have entirely different histories.
132
.gitignore
vendored
132
.gitignore
vendored
@ -1,132 +0,0 @@
|
|||||||
# Logs
|
|
||||||
logs
|
|
||||||
*.log
|
|
||||||
npm-debug.log*
|
|
||||||
yarn-debug.log*
|
|
||||||
yarn-error.log*
|
|
||||||
lerna-debug.log*
|
|
||||||
.pnpm-debug.log*
|
|
||||||
|
|
||||||
# Diagnostic reports (https://nodejs.org/api/report.html)
|
|
||||||
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
|
|
||||||
|
|
||||||
# Runtime data
|
|
||||||
pids
|
|
||||||
*.pid
|
|
||||||
*.seed
|
|
||||||
*.pid.lock
|
|
||||||
|
|
||||||
# Directory for instrumented libs generated by jscoverage/JSCover
|
|
||||||
lib-cov
|
|
||||||
|
|
||||||
# Coverage directory used by tools like istanbul
|
|
||||||
coverage
|
|
||||||
*.lcov
|
|
||||||
|
|
||||||
# nyc test coverage
|
|
||||||
.nyc_output
|
|
||||||
|
|
||||||
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
|
|
||||||
.grunt
|
|
||||||
|
|
||||||
# Bower dependency directory (https://bower.io/)
|
|
||||||
bower_components
|
|
||||||
|
|
||||||
# node-waf configuration
|
|
||||||
.lock-wscript
|
|
||||||
|
|
||||||
# Compiled binary addons (https://nodejs.org/api/addons.html)
|
|
||||||
build/Release
|
|
||||||
|
|
||||||
# Dependency directories
|
|
||||||
node_modules/
|
|
||||||
jspm_packages/
|
|
||||||
|
|
||||||
# Snowpack dependency directory (https://snowpack.dev/)
|
|
||||||
web_modules/
|
|
||||||
|
|
||||||
# TypeScript cache
|
|
||||||
*.tsbuildinfo
|
|
||||||
|
|
||||||
# Optional npm cache directory
|
|
||||||
.npm
|
|
||||||
|
|
||||||
# Optional eslint cache
|
|
||||||
.eslintcache
|
|
||||||
|
|
||||||
# Optional stylelint cache
|
|
||||||
.stylelintcache
|
|
||||||
|
|
||||||
# Microbundle cache
|
|
||||||
.rpt2_cache/
|
|
||||||
.rts2_cache_cjs/
|
|
||||||
.rts2_cache_es/
|
|
||||||
.rts2_cache_umd/
|
|
||||||
|
|
||||||
# Optional REPL history
|
|
||||||
.node_repl_history
|
|
||||||
|
|
||||||
# Output of 'npm pack'
|
|
||||||
*.tgz
|
|
||||||
|
|
||||||
# Yarn Integrity file
|
|
||||||
.yarn-integrity
|
|
||||||
|
|
||||||
# dotenv environment variable files
|
|
||||||
.env
|
|
||||||
.env.development.local
|
|
||||||
.env.test.local
|
|
||||||
.env.production.local
|
|
||||||
.env.local
|
|
||||||
|
|
||||||
# parcel-bundler cache (https://parceljs.org/)
|
|
||||||
.cache
|
|
||||||
.parcel-cache
|
|
||||||
|
|
||||||
# Next.js build output
|
|
||||||
.next
|
|
||||||
out
|
|
||||||
|
|
||||||
# Nuxt.js build / generate output
|
|
||||||
.nuxt
|
|
||||||
dist
|
|
||||||
|
|
||||||
# Gatsby files
|
|
||||||
.cache/
|
|
||||||
# Comment in the public line in if your project uses Gatsby and not Next.js
|
|
||||||
# https://nextjs.org/blog/next-9-1#public-directory-support
|
|
||||||
# public
|
|
||||||
|
|
||||||
# vuepress build output
|
|
||||||
.vuepress/dist
|
|
||||||
|
|
||||||
# vuepress v2.x temp and cache directory
|
|
||||||
.temp
|
|
||||||
.cache
|
|
||||||
|
|
||||||
# Docusaurus cache and generated files
|
|
||||||
.docusaurus
|
|
||||||
|
|
||||||
# Serverless directories
|
|
||||||
.serverless/
|
|
||||||
|
|
||||||
# FuseBox cache
|
|
||||||
.fusebox/
|
|
||||||
|
|
||||||
# DynamoDB Local files
|
|
||||||
.dynamodb/
|
|
||||||
|
|
||||||
# TernJS port file
|
|
||||||
.tern-port
|
|
||||||
|
|
||||||
# Stores VSCode versions used for testing VSCode extensions
|
|
||||||
.vscode-test
|
|
||||||
|
|
||||||
# yarn v2
|
|
||||||
.yarn/cache
|
|
||||||
.yarn/unplugged
|
|
||||||
.yarn/build-state.yml
|
|
||||||
.yarn/install-state.gz
|
|
||||||
.pnp.*
|
|
||||||
|
|
||||||
package-lock.json
|
|
||||||
Binary file not shown.
130
index.html
130
index.html
@ -8,6 +8,7 @@
|
|||||||
<link rel="stylesheet" href="main.css">
|
<link rel="stylesheet" href="main.css">
|
||||||
<link rel="stylesheet" href="templateapi/main.css">
|
<link rel="stylesheet" href="templateapi/main.css">
|
||||||
<link rel="icon" type="image/x-icon" href="templateapi/assets/images/logo/favicon.ico">
|
<link rel="icon" type="image/x-icon" href="templateapi/assets/images/logo/favicon.ico">
|
||||||
|
<link rel="icon" type="image/x-icon" href="assets/images/logo/favicon.ico">
|
||||||
<style>
|
<style>
|
||||||
.center-container {
|
.center-container {
|
||||||
display: flex;
|
display: flex;
|
||||||
@ -162,9 +163,9 @@
|
|||||||
<div class="logo">KodePilot</div>
|
<div class="logo">KodePilot</div>
|
||||||
<input type="text" class="search" placeholder="Search Opportunities">
|
<input type="text" class="search" placeholder="Search Opportunities">
|
||||||
<div class="buttons">
|
<div class="buttons">
|
||||||
<button class="login_first" onclick="goToLogin()">Login</button>
|
<a href="/login">Log in</a>
|
||||||
<button class="business" onclick="getInTouch('https://wa.me/+919787466226?text=Hi%20KodePilot%20Team%2C%0A%0AI%20came%20across%20your%20website%20and%20would%20like%20to%20know%20more%20about%20your%20Career%20Guidance%20and%20Placement%20support%20services.%20Could%20you%20please%20share%20the%20details%3F%0A%0AThanks%21')">Let's Talk</button>
|
<button class="business" onclick="getInTouch()">Let's Talk</button>
|
||||||
<button class="login" onclick="getInZoho()">Request a call</button>
|
<button class="login" onclick="goToApplay()">Request a call</button>
|
||||||
</div>
|
</div>
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
@ -185,14 +186,14 @@
|
|||||||
</span>
|
</span>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="cards">
|
<div class="cards">
|
||||||
<div class="card green" onclick="getInZoho()">Internships<br><small>Gain Practical Experience</small></div>
|
<div class="card green">Internships<br><small>Gain Practical Experience</small></div>
|
||||||
<div class="card orange" onclick="getInZoho()">Mentorships<br><small>Guidance From Top Mentors</small></div>
|
<div class="card orange">Mentorships<br><small>Guidance From Top Mentors</small></div>
|
||||||
<div class="card blue" onclick="getInZoho()">Jobs<br><small>Explore Diverse Careers</small></div>
|
<div class="card blue">Jobs<br><small>Explore Diverse Careers</small></div>
|
||||||
<div class="card purple" onclick="getInZoho()">Practice<br><small>Refine Skills Daily</small></div>
|
<div class="card purple">Practice<br><small>Refine Skills Daily</small></div>
|
||||||
<div class="card yellow" onclick="getInZoho()">Competitions<br><small>Battle For Excellence</small></div>
|
<div class="card yellow">Competitions<br><small>Battle For Excellence</small></div>
|
||||||
<div class="card pink" onclick="getInZoho()">More<br><small>Explore More Options</small></div>
|
<div class="card pink">More<br><small>Explore More Options</small></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
@ -267,14 +268,14 @@
|
|||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section class="slider" id="slider">
|
<section id="slider">
|
||||||
<div class="slide1r-container">
|
<div class="slide1r-container">
|
||||||
<div class="slide1r-wrapper">
|
<div class="slide1r-wrapper">
|
||||||
<div class="slide1r-track" id="slide1rTrack">
|
<div class="slide1r-track" id="slide1rTrack">
|
||||||
|
|
||||||
<div class="slide1">
|
<div class="slide1">
|
||||||
<div class="slide1-box">
|
<div class="slide1-box">
|
||||||
<div class="image-container image-container1">
|
<div class="image-container">
|
||||||
<img src="templateapi/assets/images/hai1/qa.jpg" alt="Business Meeting">
|
<img src="templateapi/assets/images/hai1/qa.jpg" alt="Business Meeting">
|
||||||
<div class="image-overlay">
|
<div class="image-overlay">
|
||||||
<h4>QA & Testing</h4>
|
<h4>QA & Testing</h4>
|
||||||
@ -293,6 +294,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div class="slide1">
|
<div class="slide1">
|
||||||
<div class="slide1-box">
|
<div class="slide1-box">
|
||||||
<div class="image-container">
|
<div class="image-container">
|
||||||
@ -304,7 +306,7 @@
|
|||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="image-container image-container1">
|
<div class="image-container">
|
||||||
<img src="templateapi/assets/images/hai1/cyber.jpg" alt="Technology">
|
<img src="templateapi/assets/images/hai1/cyber.jpg" alt="Technology">
|
||||||
<div class="image-overlay">
|
<div class="image-overlay">
|
||||||
<h4>Cybersecurity</h4>
|
<h4>Cybersecurity</h4>
|
||||||
@ -324,7 +326,7 @@
|
|||||||
a successful performance report graph.</p>
|
a successful performance report graph.</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="image-container image-container1">
|
<div class="image-container">
|
||||||
<img src="templateapi/assets/images/hai1/cyber.jpg" alt="Technology">
|
<img src="templateapi/assets/images/hai1/cyber.jpg" alt="Technology">
|
||||||
<div class="image-overlay">
|
<div class="image-overlay">
|
||||||
<h4>Cybersecurity</h4>
|
<h4>Cybersecurity</h4>
|
||||||
@ -344,7 +346,7 @@
|
|||||||
split view showing the finished product on a mobile phone.</p>
|
split view showing the finished product on a mobile phone.</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="image-container image-container1">
|
<div class="image-container">
|
||||||
<img src="templateapi/assets/images/hai1/qa.jpg" alt="Technology">
|
<img src="templateapi/assets/images/hai1/qa.jpg" alt="Technology">
|
||||||
<div class="image-overlay">
|
<div class="image-overlay">
|
||||||
<h4>QA & Testing</h4>
|
<h4>QA & Testing</h4>
|
||||||
@ -365,7 +367,7 @@
|
|||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="image-container image-container1">
|
<div class="image-container">
|
||||||
<img src="templateapi/assets/images/hai1/aws..jpg" alt="Technology">
|
<img src="templateapi/assets/images/hai1/aws..jpg" alt="Technology">
|
||||||
<div class="image-overlay">
|
<div class="image-overlay">
|
||||||
<h4>Cloud & DevOps</h4>
|
<h4>Cloud & DevOps</h4>
|
||||||
@ -387,7 +389,7 @@
|
|||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="image-container image-container1">
|
<div class="image-container">
|
||||||
<img src="templateapi/assets/images/hai1/cyber.jpg" alt="Technology">
|
<img src="templateapi/assets/images/hai1/cyber.jpg" alt="Technology">
|
||||||
<div class="image-overlay">
|
<div class="image-overlay">
|
||||||
<h4>Cybersecurity</h4>
|
<h4>Cybersecurity</h4>
|
||||||
@ -408,7 +410,7 @@
|
|||||||
split view showing the finished product on a mobile phone.</p>
|
split view showing the finished product on a mobile phone.</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="image-container image-container1">
|
<div class="image-container">
|
||||||
<img src="templateapi/assets/images/hai1/aws..jpg" alt="Beach">
|
<img src="templateapi/assets/images/hai1/aws..jpg" alt="Beach">
|
||||||
<div class="image-overlay">
|
<div class="image-overlay">
|
||||||
<h4>Cloud & DevOps</h4>
|
<h4>Cloud & DevOps</h4>
|
||||||
@ -437,24 +439,23 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="cards-grid">
|
<div class="cards-grid">
|
||||||
<div class="card-add card-quizzes"
|
<div class="card-add card-quizzes">
|
||||||
onclick="getInTouch('https://wa.me/9787466226?text=Hi%20KodePilot%20Team%2C%20I%20would%20like%20to%20know%20more%20about%20the%20Quizzes%20opportunities%20you%20provide.%20Could%20you%20please%20share%20the%20details%3F%20Thanks!')">
|
</div>
|
||||||
</div>
|
|
||||||
<div class="card-add card-hackathons"
|
|
||||||
onclick="getInTouch('https://wa.me/9787466226?text=Hi%20KodePilot%20Team%2C%20I%20came%20across%20the%20Hackathons%20section%20on%20your%20website.%20Could%20you%20share%20more%20information%20about%20upcoming%20Hackathons%20and%20how%20to%20participate%3F%20Thanks!')">
|
|
||||||
</div>
|
|
||||||
<div class="card-add card-scholarships"
|
|
||||||
onclick="getInTouch('https://wa.me/9787466226?text=Hi%20KodePilot%20Team%2C%20I%E2%80%99m%20interested%20in%20learning%20more%20about%20the%20Scholarships%20you%20offer.%20Could%20you%20please%20provide%20the%20details%3F%20Thanks!')">
|
|
||||||
</div>
|
|
||||||
<div class="card-add card-conferences"
|
|
||||||
onclick="getInTouch('https://wa.me/9787466226?text=Hi%20KodePilot%20Team%2C%20I%E2%80%99d%20like%20to%20know%20more%20about%20the%20Conferences%20mentioned%20on%20your%20website.%20Could%20you%20please%20share%20the%20details%3F%20Thanks!')">
|
|
||||||
</div>
|
|
||||||
<div class="card-add card-festivals"
|
|
||||||
onclick="getInTouch('https://wa.me/9787466226?text=Hi%20KodePilot%20Team%2C%20I%20saw%20the%20Tech%20Fest%20section%20on%20your%20website%20and%20I%E2%80%99m%20interested%20in%20participating.%20Could%20you%20please%20provide%20more%20information%3F%20Thanks!')">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
|
<div class="card-add card-hackathons">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="card-add card-scholarships">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="card-add card-conferences">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="card-add card-festivals">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
<section class="move-slider-ruby">
|
<section class="move-slider-ruby">
|
||||||
<div class="move-slider-container">
|
<div class="move-slider-container">
|
||||||
<div class="move-slider-box-static">
|
<div class="move-slider-box-static">
|
||||||
@ -492,29 +493,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="move-slider-box">
|
|
||||||
<div class="slide-content">
|
|
||||||
<p class="slide-text-cot">
|
|
||||||
"
|
|
||||||
</p>
|
|
||||||
<p class="slide-text">
|
|
||||||
"The KodePilot curriculum gave me hands-on experience with networking and security. I
|
|
||||||
gained practical
|
|
||||||
skills and secured my position in network engineering with confidence."
|
|
||||||
</p>
|
|
||||||
<div class="slide-logo-box">
|
|
||||||
<div class="profile-box">
|
|
||||||
<img src="templateapi/assets/images/hai1/user-icon.svg" alt="Client Logo"
|
|
||||||
class="slide-logo">
|
|
||||||
<div class="profile-info">
|
|
||||||
<p class="slide-name">koushik</p>
|
|
||||||
<p class="slide-role">Network Engineer</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="move-slider-box">
|
<div class="move-slider-box">
|
||||||
<div class="slide-content">
|
<div class="slide-content">
|
||||||
<p class="slide-text-cot">
|
<p class="slide-text-cot">
|
||||||
@ -560,8 +538,8 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
<section>
|
||||||
|
|
||||||
<section class="practice-container-parent">
|
|
||||||
<div class="practice-container">
|
<div class="practice-container">
|
||||||
<div class="practice-container-box">
|
<div class="practice-container-box">
|
||||||
<div class="practice-container-text-box">
|
<div class="practice-container-text-box">
|
||||||
@ -640,8 +618,11 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<section class="card-simple">
|
<section class="card-simple">
|
||||||
<div class="card-easy">
|
<div class="card-easy">
|
||||||
<div class="card-easy-left">
|
<div class="card-easy-left">
|
||||||
@ -659,6 +640,15 @@
|
|||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
<section class="move-slider" style="display: none;">
|
||||||
|
<div class="container-slider">
|
||||||
|
<div class="container-slider-baby container-slider-1"></div>
|
||||||
|
<div class="container-slider-baby container-slider-2"></div>
|
||||||
|
<div class="container-slider-baby container-slider-3"></div>
|
||||||
|
<div class="container-slider-baby container-slider-4"></div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
<section class="our-numbers">
|
<section class="our-numbers">
|
||||||
<div class="stats-grid">
|
<div class="stats-grid">
|
||||||
<div class="stat-item">
|
<div class="stat-item">
|
||||||
@ -692,16 +682,9 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section class="corces-s">
|
<section class="corces-s">
|
||||||
<div class="corces"></div>
|
<div class="corces"></div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<div class="whatsapp-icon" onclick="WhatsgetInTouch()">
|
|
||||||
<img src="https://upload.wikimedia.org/wikipedia/commons/6/6b/WhatsApp.svg" alt="WhatsApp" />
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<footer class="footer">
|
<footer class="footer">
|
||||||
<div class="footer-container">
|
<div class="footer-container">
|
||||||
<div class="footer-section company-section">
|
<div class="footer-section company-section">
|
||||||
@ -802,12 +785,15 @@
|
|||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="footer-bottom">
|
<div class="footer-bottom">
|
||||||
<p>
|
<div style="max-width: 1200px; margin: 0 auto; padding: 0 20px;">
|
||||||
Copyright © 2025
|
<p style="margin-top: 20px 0px; padding: 10px 0px; font-size: 15px; margin-bottom : 30px">
|
||||||
<a href="https://kodepilot.in" target="_blank">KodePilot</a>
|
Copyright © 2025 <a href="#" style="color: #120ee2;">KodePilot</a> - All
|
||||||
- All rights reserved.
|
rights
|
||||||
</p>
|
reserved.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
429
main.css
429
main.css
@ -1,7 +1,6 @@
|
|||||||
:root {
|
:root {
|
||||||
--course-max-width: 1200px;
|
--course-max-width: 1200px;
|
||||||
--course-max-width-small: 1000px;
|
--course-max-width-small: 1000px;
|
||||||
--section-margin: 60px 20px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (max-width: 1360px) {
|
@media (max-width: 1360px) {
|
||||||
@ -43,9 +42,8 @@
|
|||||||
border-bottom: 1px solid #eee;
|
border-bottom: 1px solid #eee;
|
||||||
position: fixed;
|
position: fixed;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
top: 0;
|
height: 56px;
|
||||||
height: 60px;
|
z-index: 9999;
|
||||||
z-index: 20;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.logo {
|
.logo {
|
||||||
@ -80,7 +78,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.buttons button {
|
.buttons button {
|
||||||
margin-left: 15px;
|
margin-left: 2px;
|
||||||
padding: 8px 15px;
|
padding: 8px 15px;
|
||||||
border: none;
|
border: none;
|
||||||
border-radius: 20px;
|
border-radius: 20px;
|
||||||
@ -92,20 +90,18 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.business {
|
.business {
|
||||||
background: #FFD700;
|
background: #ffcc00;
|
||||||
color: #030101;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.login {
|
.login {
|
||||||
background: #1E90FF;
|
background: #007bff;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
}
|
}
|
||||||
|
|
||||||
.hero {
|
.hero {
|
||||||
text-align: start;
|
text-align: start;
|
||||||
margin: var(--section-margin);
|
padding: 50px 20px;
|
||||||
padding-top: 11px;
|
line-height: 20px;
|
||||||
line-height: 37px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.hero h1 {
|
.hero h1 {
|
||||||
@ -134,7 +130,6 @@
|
|||||||
margin: auto;
|
margin: auto;
|
||||||
padding: 20px;
|
padding: 20px;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
margin-top: 50px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.cards_box {
|
.cards_box {
|
||||||
@ -167,10 +162,8 @@
|
|||||||
|
|
||||||
.card small {
|
.card small {
|
||||||
display: block;
|
display: block;
|
||||||
margin-top: -2px;
|
margin-top: 10px;
|
||||||
font-weight: normal;
|
font-weight: normal;
|
||||||
max-width: 142px;
|
|
||||||
line-height: 23px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.green {
|
.green {
|
||||||
@ -182,16 +175,16 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.orange {
|
.orange {
|
||||||
background: #9bc9ff;
|
background: #fec192;
|
||||||
background-image: url('assets/images/unlockcarrer/mentorship.png');
|
background-image: url('assets/images/unlockcarrer/jobs.png');
|
||||||
background-size: 115px;
|
background-size: 115px;
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
background-position: bottom right;
|
background-position: bottom right;
|
||||||
}
|
}
|
||||||
|
|
||||||
.blue {
|
.blue {
|
||||||
background: #fec192;
|
background: #9bc9ff;
|
||||||
background-image: url('assets/images/unlockcarrer/jobs.png');
|
background-image: url('assets/images/unlockcarrer/mentorship.png');
|
||||||
background-size: 115px;
|
background-size: 115px;
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
background-position: bottom right;
|
background-position: bottom right;
|
||||||
@ -223,7 +216,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.users {
|
.users {
|
||||||
margin: var(--section-margin);
|
padding: 0px 20px;
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
@ -320,7 +313,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.mnc {
|
.mnc {
|
||||||
margin: var(--section-margin);
|
padding: 40px 20px;
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
@ -385,10 +378,8 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.our-numbers {
|
.our-numbers {
|
||||||
display: flex;
|
max-width: var(--course-max-width);
|
||||||
justify-content: center;
|
margin: 50px auto 50px auto;
|
||||||
align-items: center;
|
|
||||||
margin: var(--section-margin);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.our-numbers h2 {
|
.our-numbers h2 {
|
||||||
@ -402,16 +393,15 @@
|
|||||||
.stats-grid {
|
.stats-grid {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: repeat(6, 1fr);
|
grid-template-columns: repeat(6, 1fr);
|
||||||
min-width: var(--course-max-width);
|
|
||||||
gap: 20px;
|
gap: 20px;
|
||||||
justify-items: center;
|
justify-items: center;
|
||||||
align-items: stretch;
|
align-items: stretch;
|
||||||
min-width: var(--course-max-width);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.stat-item {
|
.stat-item {
|
||||||
background: HSL(0, 0%, 96.5%);
|
background: HSL(0, 0%, 96.5%);
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
padding: 20px 10px;
|
||||||
border-radius: 14px;
|
border-radius: 14px;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
@ -496,7 +486,7 @@
|
|||||||
|
|
||||||
.subtitle {
|
.subtitle {
|
||||||
color: #6b7280;
|
color: #6b7280;
|
||||||
line-height: 22px;
|
line-height: 0px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.arrow-icon {
|
.arrow-icon {
|
||||||
@ -511,7 +501,7 @@
|
|||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
max-width: var(--course-max-width);
|
min-width: 100px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.card-add {
|
.card-add {
|
||||||
@ -560,17 +550,6 @@
|
|||||||
color: #1f2937;
|
color: #1f2937;
|
||||||
}
|
}
|
||||||
|
|
||||||
.slider {
|
|
||||||
margin: var(--section-margin);
|
|
||||||
display: flex;
|
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.opportunity-section {
|
|
||||||
margin: var(--section-margin);
|
|
||||||
}
|
|
||||||
|
|
||||||
.hover-slider {
|
.hover-slider {
|
||||||
display: none;
|
display: none;
|
||||||
padding: 0 0 50px 0;
|
padding: 0 0 50px 0;
|
||||||
@ -592,10 +571,12 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.slide1r-container {
|
.slide1r-container {
|
||||||
|
margin: 0 auto;
|
||||||
max-width: var(--course-max-width-small);
|
max-width: var(--course-max-width-small);
|
||||||
width: 100%;
|
width: 100%;
|
||||||
position: relative;
|
position: relative;
|
||||||
border-radius: 20px;
|
border-radius: 20px;
|
||||||
|
padding: 25px;
|
||||||
font-family: 'Arial', sans-serif;
|
font-family: 'Arial', sans-serif;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -663,6 +644,10 @@
|
|||||||
transition: transform 0.3s ease;
|
transition: transform 0.3s ease;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.image-container:hover .image-overlay {
|
||||||
|
transform: translateY(0);
|
||||||
|
}
|
||||||
|
|
||||||
.image-overlay h4 {
|
.image-overlay h4 {
|
||||||
margin: 0 0 5px 0;
|
margin: 0 0 5px 0;
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
@ -693,7 +678,7 @@
|
|||||||
font-size: 20px;
|
font-size: 20px;
|
||||||
color: #333;
|
color: #333;
|
||||||
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
||||||
z-index: 1;
|
z-index: 10;
|
||||||
}
|
}
|
||||||
|
|
||||||
.nav-button:hover {
|
.nav-button:hover {
|
||||||
@ -805,25 +790,6 @@
|
|||||||
color: #ffffff;
|
color: #ffffff;
|
||||||
}
|
}
|
||||||
|
|
||||||
.footer-bottom {
|
|
||||||
border-top: 1px solid rgba(255, 255, 255, 0.2);
|
|
||||||
margin-top: 20px;
|
|
||||||
padding: 15px 0;
|
|
||||||
text-align: center;
|
|
||||||
font-size: 14px;
|
|
||||||
color: #ccc;
|
|
||||||
}
|
|
||||||
|
|
||||||
.footer-bottom a {
|
|
||||||
color: #fff;
|
|
||||||
text-decoration: none;
|
|
||||||
font-weight: 600;
|
|
||||||
}
|
|
||||||
|
|
||||||
.footer-bottom a:hover {
|
|
||||||
text-decoration: underline;
|
|
||||||
}
|
|
||||||
|
|
||||||
.company-section {
|
.company-section {
|
||||||
grid-column: 1;
|
grid-column: 1;
|
||||||
}
|
}
|
||||||
@ -961,6 +927,32 @@
|
|||||||
opacity: 0.9;
|
opacity: 0.9;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.footer-bottom {
|
||||||
|
border-top: 1px solid #475569;
|
||||||
|
margin-top: 40px;
|
||||||
|
padding-top: 20px;
|
||||||
|
font-size: 12px;
|
||||||
|
color: #94a3b8;
|
||||||
|
text-align: left;
|
||||||
|
background: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer-bottom-links {
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
gap: 20px;
|
||||||
|
margin-top: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer-bottom-links a {
|
||||||
|
color: #94a3b8;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer-bottom-links a:hover {
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
.hiring-badge {
|
.hiring-badge {
|
||||||
background-color: #10b981;
|
background-color: #10b981;
|
||||||
color: white;
|
color: white;
|
||||||
@ -972,14 +964,15 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.move-slider-ruby {
|
.move-slider-ruby {
|
||||||
width: auto;
|
width: 100%;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
background: #fff;
|
background: #fff;
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
gap: 20px;
|
gap: 20px;
|
||||||
margin: var(--section-margin);
|
margin-top: 76px;
|
||||||
|
padding-bottom: 40px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.move-slider-box-static {
|
.move-slider-box-static {
|
||||||
@ -987,6 +980,7 @@
|
|||||||
height: 350px;
|
height: 350px;
|
||||||
min-width: 350px;
|
min-width: 350px;
|
||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
|
padding: 24px;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
@ -1023,7 +1017,18 @@
|
|||||||
.move-slider-animation-box {
|
.move-slider-animation-box {
|
||||||
display: flex;
|
display: flex;
|
||||||
gap: 20px;
|
gap: 20px;
|
||||||
will-change: transform;
|
animation: scroll 20s linear infinite;
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes scroll {
|
||||||
|
from {
|
||||||
|
transform: translateX(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
to {
|
||||||
|
transform: translateX(-50%);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.move-slider-box {
|
.move-slider-box {
|
||||||
@ -1035,7 +1040,7 @@
|
|||||||
background: #fff;
|
background: #fff;
|
||||||
border-radius: 12px;
|
border-radius: 12px;
|
||||||
padding: 20px;
|
padding: 20px;
|
||||||
min-width: 200px;
|
min-width: 350px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.move-slider-box .slide-content>*:not(.slide-text) {
|
.move-slider-box .slide-content>*:not(.slide-text) {
|
||||||
@ -1045,11 +1050,6 @@
|
|||||||
.move-slider-box:hover .slide-content>*:not(.slide-text) {
|
.move-slider-box:hover .slide-content>*:not(.slide-text) {
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
pointer-events: none;
|
pointer-events: none;
|
||||||
transition-delay: 0s;
|
|
||||||
}
|
|
||||||
|
|
||||||
.move-slider-box .slide-content>*:not(.slide-text) {
|
|
||||||
transition: opacity 0.3s ease 1s;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.move-slider-box .slide-text {
|
.move-slider-box .slide-text {
|
||||||
@ -1059,10 +1059,9 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.move-slider-box:hover .slide-text {
|
.move-slider-box:hover .slide-text {
|
||||||
transform: translateY(80px) scale(1.1);
|
transform: translateY(100px) scale(1.1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.slide-content {
|
.slide-content {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
@ -1099,7 +1098,6 @@
|
|||||||
gap: 12px;
|
gap: 12px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.profile-info {
|
.profile-info {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
@ -1137,10 +1135,8 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.card-simple {
|
.card-simple {
|
||||||
margin: var(--section-margin);
|
max-width: var(--course-max-width);
|
||||||
display: flex;
|
margin: 70px auto 70px auto;
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.card-easy {
|
.card-easy {
|
||||||
@ -1148,7 +1144,7 @@
|
|||||||
background-color: #F6F8FA;
|
background-color: #F6F8FA;
|
||||||
border-radius: 20px;
|
border-radius: 20px;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
max-width: var(--course-max-width);
|
margin: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.card-easy-left {
|
.card-easy-left {
|
||||||
@ -1290,7 +1286,7 @@
|
|||||||
.course-category-title {
|
.course-category-title {
|
||||||
font-size: 22px;
|
font-size: 22px;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
padding-left: 14px;
|
margin-bottom: 15px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.course-slider {
|
.course-slider {
|
||||||
@ -1375,6 +1371,9 @@
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.practice-cards-container * {
|
.practice-cards-container * {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
@ -1391,8 +1390,11 @@
|
|||||||
align-items: flex-start;
|
align-items: flex-start;
|
||||||
}
|
}
|
||||||
|
|
||||||
.practice-container-parent {
|
.practice-container {
|
||||||
margin: var(--section-margin);
|
max-width: 1200px;
|
||||||
|
width: 100%;
|
||||||
|
margin: 0 auto;
|
||||||
|
padding: 0 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.practice-container-box {
|
.practice-container-box {
|
||||||
@ -1442,6 +1444,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.practice-cards-wrapper {
|
.practice-cards-wrapper {
|
||||||
|
margin: 30px 0;
|
||||||
display: flex;
|
display: flex;
|
||||||
height: 380px;
|
height: 380px;
|
||||||
border-radius: 12px;
|
border-radius: 12px;
|
||||||
@ -1538,6 +1541,7 @@
|
|||||||
justify-content: center;
|
justify-content: center;
|
||||||
transition: all 0.8s cubic-bezier(0.23, 1, 0.32, 1);
|
transition: all 0.8s cubic-bezier(0.23, 1, 0.32, 1);
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
|
padding: 20px;
|
||||||
background: transparent;
|
background: transparent;
|
||||||
flex-shrink: 0;
|
flex-shrink: 0;
|
||||||
}
|
}
|
||||||
@ -1644,10 +1648,10 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.practice-cta-btn {
|
.practice-cta-btn {
|
||||||
padding: 10px;
|
|
||||||
margin-top: 16px;
|
margin-top: 16px;
|
||||||
background-color: #111827;
|
background-color: #111827;
|
||||||
color: white;
|
color: white;
|
||||||
|
padding: 10px 16px;
|
||||||
border-radius: 8px;
|
border-radius: 8px;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
@ -1683,27 +1687,6 @@
|
|||||||
transform: translateY(-2px);
|
transform: translateY(-2px);
|
||||||
}
|
}
|
||||||
|
|
||||||
.mobile-slide-menu {
|
|
||||||
position: fixed;
|
|
||||||
top: 0;
|
|
||||||
right: -100%;
|
|
||||||
width: 300px;
|
|
||||||
height: 100vh;
|
|
||||||
background: linear-gradient(135deg, rgba(255, 255, 255, 0.95), rgba(240, 242, 247, 0.9));
|
|
||||||
backdrop-filter: blur(20px);
|
|
||||||
border-left: 1px solid rgba(255, 255, 255, 0.3);
|
|
||||||
z-index: 99;
|
|
||||||
transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
|
|
||||||
box-shadow: -20px 0 40px rgba(0, 0, 0, 0.15);
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
padding: 80px 0 40px 0;
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mobile-slide-menu.active {
|
|
||||||
right: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.practice-cards-wrapper:hover .practice-card:hover .practice-cta-btn {
|
.practice-cards-wrapper:hover .practice-card:hover .practice-cta-btn {
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
@ -1729,42 +1712,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.whatsapp-icon {
|
|
||||||
position: fixed;
|
|
||||||
bottom: 20px;
|
|
||||||
left: 20px;
|
|
||||||
width: 60px;
|
|
||||||
height: 60px;
|
|
||||||
cursor: pointer;
|
|
||||||
z-index: 1000;
|
|
||||||
border-radius: 50%;
|
|
||||||
overflow: hidden;
|
|
||||||
outline: greenyellow 1px solid;
|
|
||||||
transition: transform 0.2s;
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.whatsapp-icon::before {
|
|
||||||
content: "";
|
|
||||||
position: absolute;
|
|
||||||
inset: 0;
|
|
||||||
border-radius: 50%;
|
|
||||||
background: rgba(37, 211, 101, 0.209);
|
|
||||||
animation: pulse 2s infinite;
|
|
||||||
z-index: -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
.whatsapp-icon img {
|
|
||||||
width: 80%;
|
|
||||||
height: auto;
|
|
||||||
object-fit: contain;
|
|
||||||
}
|
|
||||||
|
|
||||||
.whatsapp-icon:hover {
|
|
||||||
transform: scale(1.1);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.practice-cards-wrapper .practice-card .practice-card-svg {
|
.practice-cards-wrapper .practice-card .practice-card-svg {
|
||||||
@ -1801,10 +1749,19 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
@media (max-width: 1024px) {
|
@media (max-width: 1024px) {
|
||||||
.stat-item {
|
.stats-grid {
|
||||||
min-height: 100px;
|
grid-template-columns: repeat(3, 1fr);
|
||||||
|
gap: 15px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.stat-item {
|
||||||
|
min-height: 100px;
|
||||||
|
padding: 15px 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.our-numbers {
|
||||||
|
padding: 40px 20px;
|
||||||
|
}
|
||||||
|
|
||||||
.our-numbers h2 {
|
.our-numbers h2 {
|
||||||
font-size: 2rem;
|
font-size: 2rem;
|
||||||
@ -1812,7 +1769,6 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.stats-grid {
|
.stats-grid {
|
||||||
min-width: var(--course-max-width);
|
|
||||||
grid-template-columns: repeat(2, 1fr);
|
grid-template-columns: repeat(2, 1fr);
|
||||||
gap: 30px;
|
gap: 30px;
|
||||||
}
|
}
|
||||||
@ -1823,6 +1779,7 @@
|
|||||||
|
|
||||||
.stat-item {
|
.stat-item {
|
||||||
min-height: 110px;
|
min-height: 110px;
|
||||||
|
padding: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.mnc h2 {
|
.mnc h2 {
|
||||||
@ -1838,21 +1795,19 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
@media (max-width: 768px) {
|
@media (max-width: 768px) {
|
||||||
.practice-container-parent {
|
.practice-container {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.stats-grid {
|
|
||||||
min-width: 90%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mnc-box {
|
.mnc-box {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
max-width: 90%;
|
max-width: 90%;
|
||||||
|
padding: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.slide1r-container {
|
.slide1r-container {
|
||||||
|
padding: 20px;
|
||||||
width: 90%;
|
width: 90%;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1862,27 +1817,23 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.container {
|
.container {
|
||||||
|
padding: 20px;
|
||||||
width: 90%;
|
width: 90%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.move-slider-container {
|
.move-slider-container {
|
||||||
width: 90%;
|
padding: 20px;
|
||||||
}
|
|
||||||
|
|
||||||
.move-slider-ruby {
|
|
||||||
width: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
.card-simple {
|
|
||||||
width: 90%;
|
width: 90%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.move-slider-animation-box {
|
.move-slider-animation-box {
|
||||||
margin-top: 393px;
|
margin-top: 393px;
|
||||||
|
margin-right: 0px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.move-slider-box-static {
|
.move-slider-box-static {
|
||||||
min-width: 100%;
|
padding: 20px;
|
||||||
|
min-width: 90%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.card-simple {
|
.card-simple {
|
||||||
@ -1947,6 +1898,10 @@
|
|||||||
max-height: 100%;
|
max-height: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.our-numbers {
|
||||||
|
margin: 0 auto 0 auto;
|
||||||
|
}
|
||||||
|
|
||||||
.corces-s {
|
.corces-s {
|
||||||
margin: 0px 0;
|
margin: 0px 0;
|
||||||
}
|
}
|
||||||
@ -1956,7 +1911,11 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.logo {
|
.logo {
|
||||||
margin-left: 15px;
|
margin-left: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.slide1r-container {
|
||||||
|
padding: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.slide1-box {
|
.slide1-box {
|
||||||
@ -2042,7 +2001,6 @@
|
|||||||
|
|
||||||
@media (max-width: 480px) {
|
@media (max-width: 480px) {
|
||||||
.stats-grid {
|
.stats-grid {
|
||||||
max-width: 90%;
|
|
||||||
grid-template-columns: 1fr;
|
grid-template-columns: 1fr;
|
||||||
gap: 25px;
|
gap: 25px;
|
||||||
}
|
}
|
||||||
@ -2073,165 +2031,6 @@
|
|||||||
.next-btn {
|
.next-btn {
|
||||||
right: -15px;
|
right: -15px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.card-add {
|
|
||||||
width: 95%;
|
|
||||||
height: 100%;
|
|
||||||
max-width: 100%;
|
|
||||||
min-height: 280px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.cards_box {
|
|
||||||
margin-top: 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.slide1 {
|
|
||||||
min-height: 50%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.image-container1 {
|
|
||||||
display: none !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.buttons {
|
|
||||||
display: none !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mobile-hamburger {
|
|
||||||
display: flex !important;
|
|
||||||
flex-direction: column;
|
|
||||||
cursor: pointer;
|
|
||||||
padding: 10px;
|
|
||||||
padding-right: 15px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mobile-hamburger:hover {
|
|
||||||
transform: scale(1.05);
|
|
||||||
background: linear-gradient(135deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0.1));
|
|
||||||
}
|
|
||||||
|
|
||||||
.hamburger-line {
|
|
||||||
width: 26px;
|
|
||||||
height: 3px;
|
|
||||||
background: linear-gradient(135deg, #667eea, #764ba2);
|
|
||||||
margin: 3px 0;
|
|
||||||
border-radius: 3px;
|
|
||||||
transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
|
|
||||||
box-shadow: 0 2px 4px rgba(102, 126, 234, 0.3);
|
|
||||||
}
|
|
||||||
|
|
||||||
.mobile-hamburger.active .hamburger-line:nth-child(1) {
|
|
||||||
transform: rotate(45deg) translate(6px, 6px);
|
|
||||||
background: linear-gradient(135deg, #ff6b6b, #ee5a24);
|
|
||||||
}
|
|
||||||
|
|
||||||
.mobile-hamburger.active .hamburger-line:nth-child(2) {
|
|
||||||
opacity: 0;
|
|
||||||
transform: translateX(20px);
|
|
||||||
}
|
|
||||||
|
|
||||||
.mobile-hamburger.active .hamburger-line:nth-child(3) {
|
|
||||||
transform: rotate(-45deg) translate(8px, -8px);
|
|
||||||
background: linear-gradient(135deg, #ff6b6b, #ee5a24);
|
|
||||||
}
|
|
||||||
|
|
||||||
.mobile-menu-overlay {
|
|
||||||
position: fixed;
|
|
||||||
top: 0;
|
|
||||||
left: 0;
|
|
||||||
width: 100vw;
|
|
||||||
height: 100vh;
|
|
||||||
background: rgba(0, 0, 0, 0.6);
|
|
||||||
backdrop-filter: blur(8px);
|
|
||||||
z-index: 20;
|
|
||||||
opacity: 0;
|
|
||||||
visibility: hidden;
|
|
||||||
transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
.mobile-menu-overlay.active {
|
|
||||||
opacity: 1;
|
|
||||||
visibility: visible;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mobile-menu-item {
|
|
||||||
padding: 20px 40px;
|
|
||||||
border: none;
|
|
||||||
background: none;
|
|
||||||
font-size: 18px;
|
|
||||||
font-weight: 600;
|
|
||||||
color: #2d3748;
|
|
||||||
cursor: pointer;
|
|
||||||
text-align: left;
|
|
||||||
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
|
||||||
border-bottom: 1px solid rgba(0, 0, 0, 0.05);
|
|
||||||
position: relative;
|
|
||||||
overflow: hidden;
|
|
||||||
opacity: 0;
|
|
||||||
transform: translateX(30px);
|
|
||||||
}
|
|
||||||
|
|
||||||
.mobile-slide-menu {
|
|
||||||
display: flex;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mobile-menu-item::before {
|
|
||||||
content: '';
|
|
||||||
position: absolute;
|
|
||||||
top: 0;
|
|
||||||
left: -100%;
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
background: linear-gradient(135deg, rgba(102, 126, 234, 0.1), rgba(118, 75, 162, 0.1));
|
|
||||||
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
.mobile-menu-item:hover::before {
|
|
||||||
left: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mobile-menu-item:hover {
|
|
||||||
color: #667eea;
|
|
||||||
transform: translateX(15px);
|
|
||||||
}
|
|
||||||
|
|
||||||
.mobile-menu-item:active {
|
|
||||||
transform: translateX(15px) scale(0.98);
|
|
||||||
}
|
|
||||||
|
|
||||||
.menu-close-btn {
|
|
||||||
position: absolute;
|
|
||||||
top: 20px;
|
|
||||||
right: 20px;
|
|
||||||
width: 40px;
|
|
||||||
height: 40px;
|
|
||||||
border: none;
|
|
||||||
background: linear-gradient(135deg, rgba(255, 255, 255, 0.2), rgba(255, 255, 255, 0.1));
|
|
||||||
backdrop-filter: blur(10px);
|
|
||||||
border-radius: 50%;
|
|
||||||
color: #718096;
|
|
||||||
font-size: 24px;
|
|
||||||
cursor: pointer;
|
|
||||||
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.menu-close-btn:hover {
|
|
||||||
background: linear-gradient(135deg, rgba(255, 255, 255, 0.3), rgba(255, 255, 255, 0.2));
|
|
||||||
transform: rotate(90deg) scale(1.1);
|
|
||||||
color: #ff6b6b;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mobile-hamburger {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hero_container {
|
|
||||||
padding-top: 0px;
|
|
||||||
margin-top: 0px;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@keyframes fadeInUp {
|
@keyframes fadeInUp {
|
||||||
|
|||||||
552
main.js
552
main.js
@ -1,179 +1,198 @@
|
|||||||
function goToLogin() {
|
|
||||||
window.location.href = "/login";
|
|
||||||
}
|
|
||||||
|
|
||||||
function goToApplay() {
|
function goToApplay() {
|
||||||
window.location.href = "/apply/";
|
window.location.href = "/apply/";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getInTouch() {
|
||||||
function getInTouch(vall) {
|
window.open("https://wa.me/+919787466226?text=Hi%20KodePilot%20Team%2C%0A%0AI%20came%20across%20your%20website%20and%20would%20like%20to%20know%20more%20about%20your%20Career%20Guidance%20and%20Placement%20support%20services.%20Could%20you%20please%20share%20the%20details%3F%0A%0AThanks%21", "_blank");
|
||||||
window.open(vall, "_blank");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
(function () {
|
||||||
function WhatsgetInTouch() {
|
if (window.Slide1rSliderLoaded) {
|
||||||
window.open(
|
return;
|
||||||
"https://wa.me/919787466226?text=Hi%20KodePilot%20Team%2C%0A%0AI%20came%20across%20your%20website%20and%20would%20like%20to%20know%20more%20about%20your%20Career%20Guidance%20and%20Placement%20support%20services.%20Could%20you%20please%20share%20the%20details%3F%0A%0AThanks%21",
|
|
||||||
"_blank"
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
function getInZoho() {
|
|
||||||
window.open("https://forms.zohopublic.in/krishnakode1/form/KodePilotRegistrationForm/formperma/A2L8xK6T13A9-s5Kxj8BqRTGsgmpKDHM0DDcZQWye5E");
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
class Slide1rSlider {
|
|
||||||
constructor({ trackId = 'slide1rTrack', prevId = 'prevBtn', nextId = 'nextBtn', autoPlayDuration = 5000, invert = true } = {}) {
|
|
||||||
this.trackId = trackId;
|
|
||||||
this.prevId = prevId;
|
|
||||||
this.nextId = nextId;
|
|
||||||
this.autoPlayDuration = autoPlayDuration;
|
|
||||||
this.invert = invert;
|
|
||||||
if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', () => this.initSlider());
|
|
||||||
else this.initSlider();
|
|
||||||
}
|
}
|
||||||
|
window.Slide1rSliderLoaded = true;
|
||||||
|
|
||||||
initSlider() {
|
class Slide1rSlider {
|
||||||
this.track = document.getElementById(this.trackId);
|
constructor() {
|
||||||
if (!this.track) return console.warn('slide track not found:', this.trackId);
|
setTimeout(() => {
|
||||||
|
this.initSlider();
|
||||||
this.originalSlides = Array.from(this.track.querySelectorAll('.slide1'));
|
}, 100);
|
||||||
if (this.originalSlides.length === 0) return console.warn('no .slide1 found');
|
|
||||||
|
|
||||||
this.prevBtn = document.getElementById(this.prevId);
|
|
||||||
this.nextBtn = document.getElementById(this.nextId);
|
|
||||||
|
|
||||||
this.setupStructure();
|
|
||||||
this.bindEvents();
|
|
||||||
|
|
||||||
this.currentIndex = 1;
|
|
||||||
this.updateSlider(false);
|
|
||||||
this.startAutoPlay();
|
|
||||||
}
|
|
||||||
|
|
||||||
setupStructure() {
|
|
||||||
this.track.style.display = 'flex';
|
|
||||||
this.track.style.transition = 'transform 0.5s ease';
|
|
||||||
this.track.querySelectorAll('.slide1').forEach(s => {
|
|
||||||
s.style.minWidth = '100%';
|
|
||||||
s.style.boxSizing = 'border-box';
|
|
||||||
});
|
|
||||||
|
|
||||||
const first = this.originalSlides[0].cloneNode(true);
|
|
||||||
const last = this.originalSlides[this.originalSlides.length - 1].cloneNode(true);
|
|
||||||
|
|
||||||
this.track.insertBefore(last, this.track.firstChild);
|
|
||||||
this.track.appendChild(first);
|
|
||||||
|
|
||||||
this.slides = Array.from(this.track.querySelectorAll('.slide1'));
|
|
||||||
this.totalSlides = this.slides.length;
|
|
||||||
}
|
|
||||||
|
|
||||||
updateSlider(animate = true) {
|
|
||||||
this.track.style.transition = animate ? 'transform 0.5s ease' : 'none';
|
|
||||||
this.track.style.transform = `translateX(-${this.currentIndex * 100}%)`;
|
|
||||||
}
|
|
||||||
|
|
||||||
nextSlide() {
|
|
||||||
if (this.invert) {
|
|
||||||
this.currentIndex--;
|
|
||||||
this.updateSlider(true);
|
|
||||||
if (this.currentIndex === 0) {
|
|
||||||
setTimeout(() => {
|
|
||||||
this.track.style.transition = 'none';
|
|
||||||
this.currentIndex = this.slides.length - 2;
|
|
||||||
this.updateSlider(false);
|
|
||||||
}, 500);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
this.currentIndex++;
|
|
||||||
this.updateSlider(true);
|
|
||||||
if (this.currentIndex === this.slides.length - 1) {
|
|
||||||
setTimeout(() => {
|
|
||||||
this.track.style.transition = 'none';
|
|
||||||
this.currentIndex = 1;
|
|
||||||
this.updateSlider(false);
|
|
||||||
}, 500);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
this.restartAutoPlay();
|
|
||||||
}
|
|
||||||
|
|
||||||
prevSlide() {
|
|
||||||
if (this.invert) {
|
|
||||||
this.currentIndex++;
|
|
||||||
this.updateSlider(true);
|
|
||||||
if (this.currentIndex === this.slides.length - 1) {
|
|
||||||
setTimeout(() => {
|
|
||||||
this.track.style.transition = 'none';
|
|
||||||
this.currentIndex = 1;
|
|
||||||
this.updateSlider(false);
|
|
||||||
}, 500);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
this.currentIndex--;
|
|
||||||
this.updateSlider(true);
|
|
||||||
if (this.currentIndex === 0) {
|
|
||||||
setTimeout(() => {
|
|
||||||
this.track.style.transition = 'none';
|
|
||||||
this.currentIndex = this.slides.length - 2;
|
|
||||||
this.updateSlider(false);
|
|
||||||
}, 500);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
this.restartAutoPlay();
|
|
||||||
}
|
|
||||||
|
|
||||||
startAutoPlay() {
|
|
||||||
this.stopAutoPlay();
|
|
||||||
this.autoPlayInterval = setInterval(() => this.nextSlide(), this.autoPlayDuration);
|
|
||||||
}
|
|
||||||
|
|
||||||
stopAutoPlay() {
|
|
||||||
if (this.autoPlayInterval) {
|
|
||||||
clearInterval(this.autoPlayInterval);
|
|
||||||
this.autoPlayInterval = null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
restartAutoPlay() {
|
|
||||||
this.stopAutoPlay();
|
|
||||||
this.startAutoPlay();
|
|
||||||
}
|
|
||||||
|
|
||||||
bindEvents() {
|
|
||||||
if (this.nextBtn) this.nextBtn.addEventListener('click', () => this.nextSlide());
|
|
||||||
if (this.prevBtn) this.prevBtn.addEventListener('click', () => this.prevSlide());
|
|
||||||
|
|
||||||
const container = this.track.closest('.slide1r-container') || this.track.parentElement;
|
|
||||||
if (container) {
|
|
||||||
container.addEventListener('mouseenter', () => this.stopAutoPlay());
|
|
||||||
container.addEventListener('mouseleave', () => this.startAutoPlay());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
let startX = 0, endX = 0;
|
initSlider() {
|
||||||
this.track.addEventListener('touchstart', (e) => { startX = e.touches[0].clientX; this.stopAutoPlay(); });
|
try {
|
||||||
this.track.addEventListener('touchmove', (e) => { endX = e.touches[0].clientX; });
|
this.track = document.getElementById('slide1rTrack');
|
||||||
this.track.addEventListener('touchend', () => {
|
this.slides = document.querySelectorAll('.slide1');
|
||||||
const delta = startX - endX;
|
this.prevBtn = document.getElementById('prevBtn');
|
||||||
if (Math.abs(delta) > 50) {
|
this.nextBtn = document.getElementById('nextBtn');
|
||||||
if (delta > 0) this.nextSlide(); else this.prevSlide();
|
|
||||||
|
if (!this.track || this.slides.length === 0) {
|
||||||
|
console.warn("Slider DOM elements not found. Retrying...");
|
||||||
|
setTimeout(() => this.initSlider(), 200);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.currentIndex = 0;
|
||||||
|
this.totalSlides = this.slides.length;
|
||||||
|
this.autoPlayDuration = 5000;
|
||||||
|
|
||||||
|
this.init();
|
||||||
|
} catch (err) {
|
||||||
|
console.error("Slider initialization failed:", err);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
init() {
|
||||||
|
try {
|
||||||
|
this.updateSlider();
|
||||||
|
this.bindEvents();
|
||||||
|
this.startAutoPlay();
|
||||||
|
this.bindKeyboardEvents();
|
||||||
|
} catch (err) {
|
||||||
|
console.error("Slider init error:", err);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
updateSlider() {
|
||||||
|
try {
|
||||||
|
const translateX = -this.currentIndex * 100;
|
||||||
|
this.track.style.transform = `translateX(${translateX}%)`;
|
||||||
|
|
||||||
|
} catch (err) {
|
||||||
|
console.error("Error updating slider:", err);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
nextSlide() {
|
||||||
|
try {
|
||||||
|
this.currentIndex = (this.currentIndex + 1) % this.totalSlides;
|
||||||
|
this.updateSlider();
|
||||||
|
this.restartAutoPlay();
|
||||||
|
} catch (err) {
|
||||||
|
console.error("Error going to next slide:", err);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
prevSlide() {
|
||||||
|
try {
|
||||||
|
this.currentIndex = this.currentIndex === 0 ? this.totalSlides - 1 : this.currentIndex - 1;
|
||||||
|
this.updateSlider();
|
||||||
|
this.restartAutoPlay();
|
||||||
|
} catch (err) {
|
||||||
|
console.error("Error going to previous slide:", err);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
goToSlide(index) {
|
||||||
|
try {
|
||||||
|
this.currentIndex = index;
|
||||||
|
this.updateSlider();
|
||||||
|
this.restartAutoPlay();
|
||||||
|
} catch (err) {
|
||||||
|
console.error("Error going to slide:", err);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
startAutoPlay() {
|
||||||
|
try {
|
||||||
|
this.stopAutoPlay();
|
||||||
|
|
||||||
|
this.autoPlayInterval = setInterval(() => {
|
||||||
|
this.nextSlide();
|
||||||
|
}, this.autoPlayDuration);
|
||||||
|
|
||||||
|
} catch (err) {
|
||||||
|
console.error("Error starting autoplay:", err);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
stopAutoPlay() {
|
||||||
|
if (this.autoPlayInterval) {
|
||||||
|
clearInterval(this.autoPlayInterval);
|
||||||
|
this.autoPlayInterval = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
restartAutoPlay() {
|
||||||
|
this.stopAutoPlay();
|
||||||
this.startAutoPlay();
|
this.startAutoPlay();
|
||||||
});
|
}
|
||||||
|
|
||||||
document.addEventListener('keydown', (e) => {
|
bindEvents() {
|
||||||
const containerEl = document.querySelector('.slide1r-container');
|
try {
|
||||||
if (!containerEl) return;
|
if (this.nextBtn) {
|
||||||
if (e.key === 'ArrowLeft') this.prevSlide();
|
this.nextBtn.addEventListener('click', () => this.nextSlide());
|
||||||
if (e.key === 'ArrowRight') this.nextSlide();
|
}
|
||||||
});
|
|
||||||
|
if (this.prevBtn) {
|
||||||
|
this.prevBtn.addEventListener('click', () => this.prevSlide());
|
||||||
|
}
|
||||||
|
|
||||||
|
const container = document.querySelector('.slide1r-container');
|
||||||
|
if (container) {
|
||||||
|
container.addEventListener('mouseenter', () => this.stopAutoPlay());
|
||||||
|
container.addEventListener('mouseleave', () => this.startAutoPlay());
|
||||||
|
}
|
||||||
|
|
||||||
|
let startX = 0;
|
||||||
|
let endX = 0;
|
||||||
|
|
||||||
|
if (this.track) {
|
||||||
|
this.track.addEventListener('touchstart', (e) => {
|
||||||
|
startX = e.touches[0].clientX;
|
||||||
|
this.stopAutoPlay();
|
||||||
|
});
|
||||||
|
|
||||||
|
this.track.addEventListener('touchmove', (e) => {
|
||||||
|
endX = e.touches[0].clientX;
|
||||||
|
});
|
||||||
|
|
||||||
|
this.track.addEventListener('touchend', () => {
|
||||||
|
const deltaX = startX - endX;
|
||||||
|
if (Math.abs(deltaX) > 50) {
|
||||||
|
if (deltaX > 0) {
|
||||||
|
this.nextSlide();
|
||||||
|
} else {
|
||||||
|
this.prevSlide();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.startAutoPlay();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
} catch (err) {
|
||||||
|
console.error("Error binding events:", err);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
bindKeyboardEvents() {
|
||||||
|
const keyHandler = (e) => {
|
||||||
|
const container = document.querySelector('.slide1r-container');
|
||||||
|
if (container && this.isElementInViewport(container)) {
|
||||||
|
if (e.key === 'ArrowLeft') {
|
||||||
|
this.prevSlide();
|
||||||
|
} else if (e.key === 'ArrowRight') {
|
||||||
|
this.nextSlide();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
document.addEventListener('keydown', keyHandler);
|
||||||
|
}
|
||||||
|
|
||||||
|
isElementInViewport(el) {
|
||||||
|
const rect = el.getBoundingClientRect();
|
||||||
|
return (
|
||||||
|
rect.top >= 0 &&
|
||||||
|
rect.left >= 0 &&
|
||||||
|
rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&
|
||||||
|
rect.right <= (window.innerWidth || document.documentElement.clientWidth)
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
new Slide1rSlider({ invert: true, autoPlayDuration: 4000 });
|
new Slide1rSlider();
|
||||||
|
})();
|
||||||
|
|
||||||
const statItems = document.querySelectorAll('.stat-item');
|
const statItems = document.querySelectorAll('.stat-item');
|
||||||
|
|
||||||
@ -287,19 +306,19 @@ function renderCourses(allCourses) {
|
|||||||
<div class="course-image" style="background-image: url(${course.image});"></div>
|
<div class="course-image" style="background-image: url(${course.image});"></div>
|
||||||
</a>
|
</a>
|
||||||
<div class="course-content">
|
<div class="course-content">
|
||||||
<a href="/apply" class="course-name" target="_blank">${course.name}</a>
|
<a href="${course.link}" class="course-name" target="_blank">${course.name}</a>
|
||||||
<div class="course-description">${course.description}</div>
|
<div class="course-description">${course.description}</div>
|
||||||
</div>
|
</div>
|
||||||
`;
|
`;
|
||||||
track.appendChild(courseDiv);
|
track.appendChild(courseDiv);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Button scrolling
|
||||||
const scrollAmount = 300;
|
const scrollAmount = 300;
|
||||||
prevBtn.addEventListener('click', () => track.scrollBy({ left: -scrollAmount, behavior: 'smooth' }));
|
prevBtn.addEventListener('click', () => track.scrollBy({ left: -scrollAmount, behavior: 'smooth' }));
|
||||||
nextBtn.addEventListener('click', () => track.scrollBy({ left: scrollAmount, behavior: 'smooth' }));
|
nextBtn.addEventListener('click', () => track.scrollBy({ left: scrollAmount, behavior: 'smooth' }));
|
||||||
|
|
||||||
|
// Touch swipe
|
||||||
let startX = 0;
|
let startX = 0;
|
||||||
let isDragging = false;
|
let isDragging = false;
|
||||||
|
|
||||||
@ -407,207 +426,4 @@ setInterval(() => {
|
|||||||
descEl1.classList.remove("fade-in");
|
descEl1.classList.remove("fade-in");
|
||||||
}, 500);
|
}, 500);
|
||||||
}, 500);
|
}, 500);
|
||||||
}, 5000);
|
}, 5000);
|
||||||
|
|
||||||
document.addEventListener("DOMContentLoaded", () => {
|
|
||||||
document.querySelectorAll(".footer a").forEach(link => {
|
|
||||||
link.setAttribute("href", "/apply");
|
|
||||||
});
|
|
||||||
|
|
||||||
document.querySelectorAll(".practice-container a").forEach(link => {
|
|
||||||
link.setAttribute("href", "/apply");
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
class ModernMobileMenu {
|
|
||||||
constructor() {
|
|
||||||
this.buttonsContainer = document.querySelector('.buttons');
|
|
||||||
this.hamburger = null;
|
|
||||||
this.mobileMenu = null;
|
|
||||||
this.overlay = null;
|
|
||||||
this.isMenuOpen = false;
|
|
||||||
|
|
||||||
this.init();
|
|
||||||
}
|
|
||||||
|
|
||||||
init() {
|
|
||||||
this.createMobileMenu();
|
|
||||||
this.bindEvents();
|
|
||||||
this.checkScreenSize();
|
|
||||||
|
|
||||||
|
|
||||||
window.addEventListener('resize', () => this.checkScreenSize());
|
|
||||||
}
|
|
||||||
createMobileMenu() {
|
|
||||||
|
|
||||||
this.hamburger = document.createElement('div');
|
|
||||||
this.hamburger.className = 'mobile-hamburger';
|
|
||||||
this.hamburger.innerHTML = `
|
|
||||||
<div class="hamburger-line"></div>
|
|
||||||
<div class="hamburger-line"></div>
|
|
||||||
<div class="hamburger-line"></div>
|
|
||||||
`;
|
|
||||||
|
|
||||||
|
|
||||||
this.overlay = document.createElement('div');
|
|
||||||
this.overlay.className = 'mobile-menu-overlay';
|
|
||||||
|
|
||||||
|
|
||||||
this.mobileMenu = document.createElement('div');
|
|
||||||
this.mobileMenu.className = 'mobile-slide-menu';
|
|
||||||
|
|
||||||
|
|
||||||
const originalButtons = this.buttonsContainer.querySelectorAll('button');
|
|
||||||
|
|
||||||
|
|
||||||
const closeBtn = document.createElement('button');
|
|
||||||
closeBtn.className = 'menu-close-btn';
|
|
||||||
closeBtn.innerHTML = '×';
|
|
||||||
this.mobileMenu.appendChild(closeBtn);
|
|
||||||
|
|
||||||
|
|
||||||
originalButtons.forEach(btn => {
|
|
||||||
const mobileBtn = document.createElement('button');
|
|
||||||
mobileBtn.className = 'mobile-menu-item';
|
|
||||||
mobileBtn.textContent = btn.textContent;
|
|
||||||
mobileBtn.onclick = () => {
|
|
||||||
btn.click();
|
|
||||||
this.closeMenu();
|
|
||||||
};
|
|
||||||
this.mobileMenu.appendChild(mobileBtn);
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
this.buttonsContainer.parentNode.insertBefore(this.hamburger, this.buttonsContainer.nextSibling);
|
|
||||||
document.body.appendChild(this.overlay);
|
|
||||||
document.body.appendChild(this.mobileMenu);
|
|
||||||
}
|
|
||||||
|
|
||||||
bindEvents() {
|
|
||||||
this.hamburger.addEventListener('click', () => this.toggleMenu());
|
|
||||||
this.overlay.addEventListener('click', () => this.closeMenu());
|
|
||||||
this.mobileMenu.querySelector('.menu-close-btn').addEventListener('click', () => this.closeMenu());
|
|
||||||
|
|
||||||
|
|
||||||
document.addEventListener('keydown', (e) => {
|
|
||||||
if (e.key === 'Escape' && this.isMenuOpen) {
|
|
||||||
this.closeMenu();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
toggleMenu() {
|
|
||||||
this.isMenuOpen ? this.closeMenu() : this.openMenu();
|
|
||||||
}
|
|
||||||
|
|
||||||
openMenu() {
|
|
||||||
this.isMenuOpen = true;
|
|
||||||
this.hamburger.classList.add('active');
|
|
||||||
this.overlay.classList.add('active');
|
|
||||||
this.mobileMenu.classList.add('active');
|
|
||||||
document.body.style.overflow = 'hidden';
|
|
||||||
|
|
||||||
|
|
||||||
const items = this.mobileMenu.querySelectorAll('.mobile-menu-item');
|
|
||||||
items.forEach((item, index) => {
|
|
||||||
setTimeout(() => {
|
|
||||||
item.style.opacity = '1';
|
|
||||||
item.style.transform = 'translateX(0)';
|
|
||||||
}, (index + 1) * 100);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
closeMenu() {
|
|
||||||
this.isMenuOpen = false;
|
|
||||||
this.hamburger.classList.remove('active');
|
|
||||||
this.overlay.classList.remove('active');
|
|
||||||
this.mobileMenu.classList.remove('active');
|
|
||||||
document.body.style.overflow = '';
|
|
||||||
|
|
||||||
|
|
||||||
const items = this.mobileMenu.querySelectorAll('.mobile-menu-item');
|
|
||||||
items.forEach(item => {
|
|
||||||
item.style.opacity = '0';
|
|
||||||
item.style.transform = 'translateX(30px)';
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
checkScreenSize() {
|
|
||||||
if (window.innerWidth <= 480) {
|
|
||||||
this.hamburger.style.display = 'flex';
|
|
||||||
} else {
|
|
||||||
this.hamburger.style.display = 'none';
|
|
||||||
this.closeMenu();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
if (document.readyState === 'loading') {
|
|
||||||
document.addEventListener('DOMContentLoaded', () => new ModernMobileMenu());
|
|
||||||
} else {
|
|
||||||
new ModernMobileMenu();
|
|
||||||
}
|
|
||||||
|
|
||||||
document.addEventListener("DOMContentLoaded", () => {
|
|
||||||
const counters = document.querySelectorAll(".stat-number");
|
|
||||||
|
|
||||||
const animateCounter = (el, target) => {
|
|
||||||
let current = 0;
|
|
||||||
const step = Math.ceil(target / 50);
|
|
||||||
const interval = setInterval(() => {
|
|
||||||
current += step;
|
|
||||||
if (current >= target) {
|
|
||||||
current = target;
|
|
||||||
clearInterval(interval);
|
|
||||||
}
|
|
||||||
el.innerHTML = current + "<span class='highlight'>+</span>";
|
|
||||||
}, 20);
|
|
||||||
};
|
|
||||||
|
|
||||||
const observer = new IntersectionObserver(entries => {
|
|
||||||
entries.forEach(entry => {
|
|
||||||
if (entry.isIntersecting) {
|
|
||||||
const el = entry.target;
|
|
||||||
const finalNumber = parseInt(el.textContent);
|
|
||||||
animateCounter(el, finalNumber);
|
|
||||||
observer.unobserve(el);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}, { threshold: 0.3 });
|
|
||||||
|
|
||||||
counters.forEach(counter => observer.observe(counter));
|
|
||||||
});
|
|
||||||
|
|
||||||
// i know it is a bad code but it works 😅
|
|
||||||
document.addEventListener("DOMContentLoaded", () => {
|
|
||||||
const track = document.querySelector(".move-slider-animation-box");
|
|
||||||
const container = document.querySelector(".container");
|
|
||||||
let pos = 0;
|
|
||||||
const normalSpeed = 1;
|
|
||||||
let speed = 20;
|
|
||||||
|
|
||||||
function animate() {
|
|
||||||
pos -= speed;
|
|
||||||
track.style.transform = `translateX(${pos}px)`;
|
|
||||||
|
|
||||||
if (pos <= -100 && speed !== normalSpeed) {
|
|
||||||
speed = normalSpeed;
|
|
||||||
}
|
|
||||||
|
|
||||||
const firstChild = track.firstElementChild;
|
|
||||||
const firstRect = firstChild.getBoundingClientRect();
|
|
||||||
const containerRect = container.getBoundingClientRect();
|
|
||||||
|
|
||||||
if (firstRect.right <= containerRect.left) {
|
|
||||||
track.appendChild(firstChild);
|
|
||||||
pos += firstChild.offsetWidth + 20;
|
|
||||||
track.style.transform = `translateX(${pos}px)`;
|
|
||||||
}
|
|
||||||
|
|
||||||
requestAnimationFrame(animate);
|
|
||||||
}
|
|
||||||
|
|
||||||
animate();
|
|
||||||
});
|
|
||||||
Loading…
Reference in New Issue
Block a user