Compare commits
7 Commits
Author | SHA1 | Date | |
---|---|---|---|
afddd7755b | |||
2e9965f1fd | |||
75a9434399 | |||
d4faa3c99d | |||
2216ed20b6 | |||
229bd3f784 | |||
f629751031 |
@ -1,282 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
|
|
||||||
<head>
|
|
||||||
<meta charset="utf-8">
|
|
||||||
<meta content="width=device-width, initial-scale=1.0" name="viewport">
|
|
||||||
<title>404 - MediNest Bootstrap Template</title>
|
|
||||||
<meta name="description" content="">
|
|
||||||
<meta name="keywords" content="">
|
|
||||||
|
|
||||||
<!-- Favicons -->
|
|
||||||
<link href="assets/img/favicon.png" rel="icon">
|
|
||||||
<link href="assets/img/apple-touch-icon.png" rel="apple-touch-icon">
|
|
||||||
|
|
||||||
<!-- Fonts -->
|
|
||||||
<link href="https://fonts.googleapis.com" rel="preconnect">
|
|
||||||
<link href="https://fonts.gstatic.com" rel="preconnect" crossorigin>
|
|
||||||
<link href="https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&family=Ubuntu:ital,wght@0,300;0,400;0,500;0,700;1,300;1,400;1,500;1,700&display=swap" rel="stylesheet">
|
|
||||||
|
|
||||||
<!-- Vendor CSS Files -->
|
|
||||||
<link href="assets/vendor/bootstrap/css/bootstrap.min.css" rel="stylesheet">
|
|
||||||
<link href="assets/vendor/bootstrap-icons/bootstrap-icons.css" rel="stylesheet">
|
|
||||||
<link href="assets/vendor/aos/aos.css" rel="stylesheet">
|
|
||||||
<link href="assets/vendor/glightbox/css/glightbox.min.css" rel="stylesheet">
|
|
||||||
<link href="assets/vendor/fontawesome-free/css/all.min.css" rel="stylesheet">
|
|
||||||
<link href="assets/vendor/swiper/swiper-bundle.min.css" rel="stylesheet">
|
|
||||||
|
|
||||||
<!-- Main CSS File -->
|
|
||||||
<link href="assets/css/main.css" rel="stylesheet">
|
|
||||||
|
|
||||||
<!-- =======================================================
|
|
||||||
* Template Name: MediNest
|
|
||||||
* Template URL: https://bootstrapmade.com/medinest-bootstrap-hospital-template/
|
|
||||||
* Updated: Aug 11 2025 with Bootstrap v5.3.7
|
|
||||||
* Author: BootstrapMade.com
|
|
||||||
* License: https://bootstrapmade.com/license/
|
|
||||||
======================================================== -->
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body class="page-404">
|
|
||||||
|
|
||||||
<header id="header" class="header d-flex align-items-center fixed-top">
|
|
||||||
<div class="container position-relative d-flex align-items-center justify-content-between">
|
|
||||||
|
|
||||||
<a href="index.html" class="logo d-flex align-items-center me-auto me-xl-0">
|
|
||||||
<!-- Uncomment the line below if you also wish to use an image logo -->
|
|
||||||
<!-- <img src="assets/img/logo.webp" alt=""> -->
|
|
||||||
<h1 class="sitename">Medi<span>Nest</span></h1>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
<nav id="navmenu" class="navmenu">
|
|
||||||
<ul>
|
|
||||||
<li><a href="index.html">Home</a></li>
|
|
||||||
<li><a href="about.html">About</a></li>
|
|
||||||
<li><a href="departments.html">Departments</a></li>
|
|
||||||
<li><a href="services.html">Services</a></li>
|
|
||||||
<li><a href="doctors.html">Doctors</a></li>
|
|
||||||
<li class="dropdown"><a href="#"><span>More Pages</span> <i class="bi bi-chevron-down toggle-dropdown"></i></a>
|
|
||||||
<ul>
|
|
||||||
<li><a href="department-details.html">Department Details</a></li>
|
|
||||||
<li><a href="service-details.html">Service Details</a></li>
|
|
||||||
<li><a href="appointment.html">Appointment</a></li>
|
|
||||||
<li><a href="testimonials.html">Testimonials</a></li>
|
|
||||||
<li><a href="faq.html">Frequently Asked Questions</a></li>
|
|
||||||
<li><a href="gallery.html">Gallery</a></li>
|
|
||||||
<li><a href="terms.html">Terms</a></li>
|
|
||||||
<li><a href="privacy.html">Privacy</a></li>
|
|
||||||
<li><a href="404.html" class="active">404</a></li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
<li class="dropdown"><a href="#"><span>Dropdown</span> <i class="bi bi-chevron-down toggle-dropdown"></i></a>
|
|
||||||
<ul>
|
|
||||||
<li><a href="#">Dropdown 1</a></li>
|
|
||||||
<li class="dropdown"><a href="#"><span>Deep Dropdown</span> <i class="bi bi-chevron-down toggle-dropdown"></i></a>
|
|
||||||
<ul>
|
|
||||||
<li><a href="#">Deep Dropdown 1</a></li>
|
|
||||||
<li><a href="#">Deep Dropdown 2</a></li>
|
|
||||||
<li><a href="#">Deep Dropdown 3</a></li>
|
|
||||||
<li><a href="#">Deep Dropdown 4</a></li>
|
|
||||||
<li><a href="#">Deep Dropdown 5</a></li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
<li><a href="#">Dropdown 2</a></li>
|
|
||||||
<li><a href="#">Dropdown 3</a></li>
|
|
||||||
<li><a href="#">Dropdown 4</a></li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
<li><a href="contact.html">Contact</a></li>
|
|
||||||
</ul>
|
|
||||||
<i class="mobile-nav-toggle d-xl-none bi bi-list"></i>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
<a class="btn-getstarted" href="apointment.html">Apointment</a>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</header>
|
|
||||||
|
|
||||||
<main class="main">
|
|
||||||
|
|
||||||
<!-- Page Title -->
|
|
||||||
<div class="page-title">
|
|
||||||
<div class="heading">
|
|
||||||
<div class="container">
|
|
||||||
<div class="row d-flex justify-content-center text-center">
|
|
||||||
<div class="col-lg-8">
|
|
||||||
<h1 class="heading-title">404</h1>
|
|
||||||
<p class="mb-0">
|
|
||||||
Odio et unde deleniti. Deserunt numquam exercitationem. Officiis quo
|
|
||||||
odio sint voluptas consequatur ut a odio voluptatem. Sit dolorum
|
|
||||||
debitis veritatis natus dolores. Quasi ratione sint. Sit quaerat
|
|
||||||
ipsum dolorem.
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<nav class="breadcrumbs">
|
|
||||||
<div class="container">
|
|
||||||
<ol>
|
|
||||||
<li><a href="index.html">Home</a></li>
|
|
||||||
<li class="current">404</li>
|
|
||||||
</ol>
|
|
||||||
</div>
|
|
||||||
</nav>
|
|
||||||
</div><!-- End Page Title -->
|
|
||||||
|
|
||||||
<!-- Error 404 Section -->
|
|
||||||
<section id="error-404" class="error-404 section">
|
|
||||||
|
|
||||||
<div class="container" data-aos="fade-up" data-aos-delay="100">
|
|
||||||
|
|
||||||
<div class="error-wrapper">
|
|
||||||
<div class="row align-items-center">
|
|
||||||
<div class="col-lg-6" data-aos="fade-right" data-aos-delay="200">
|
|
||||||
<div class="error-illustration">
|
|
||||||
<i class="bi bi-exclamation-triangle-fill"></i>
|
|
||||||
<div class="circle circle-1"></div>
|
|
||||||
<div class="circle circle-2"></div>
|
|
||||||
<div class="circle circle-3"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="col-lg-6" data-aos="fade-left" data-aos-delay="300">
|
|
||||||
<div class="error-content">
|
|
||||||
<span class="error-badge" data-aos="zoom-in" data-aos-delay="400">Error</span>
|
|
||||||
<h1 class="error-code" data-aos="fade-up" data-aos-delay="500">404</h1>
|
|
||||||
<h2 class="error-title" data-aos="fade-up" data-aos-delay="600">Page Not Found</h2>
|
|
||||||
<p class="error-description" data-aos="fade-up" data-aos-delay="700">
|
|
||||||
The page you are looking for might have been removed, had its name changed, or is temporarily unavailable.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<div class="error-actions" data-aos="fade-up" data-aos-delay="800">
|
|
||||||
<a href="/" class="btn-home">
|
|
||||||
<i class="bi bi-house-door"></i> Back to Home
|
|
||||||
</a>
|
|
||||||
<a href="#" class="btn-help">
|
|
||||||
<i class="bi bi-question-circle"></i> Help Center
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="error-suggestions" data-aos="fade-up" data-aos-delay="900">
|
|
||||||
<h3>You might want to:</h3>
|
|
||||||
<ul>
|
|
||||||
<li><a href="#"><i class="bi bi-arrow-right-circle"></i> Check our sitemap</a></li>
|
|
||||||
<li><a href="#"><i class="bi bi-arrow-right-circle"></i> Contact support</a></li>
|
|
||||||
<li><a href="#"><i class="bi bi-arrow-right-circle"></i> Return to previous page</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</section><!-- /Error 404 Section -->
|
|
||||||
|
|
||||||
</main>
|
|
||||||
|
|
||||||
<footer id="footer" class="footer position-relative">
|
|
||||||
|
|
||||||
<div class="container footer-top">
|
|
||||||
<div class="row gy-4">
|
|
||||||
<div class="col-lg-4 col-md-6 footer-about">
|
|
||||||
<a href="index.html" class="logo d-flex align-items-center">
|
|
||||||
<span class="sitename">MediNest</span>
|
|
||||||
</a>
|
|
||||||
<div class="footer-contact pt-3">
|
|
||||||
<p>A108 Adam Street</p>
|
|
||||||
<p>New York, NY 535022</p>
|
|
||||||
<p class="mt-3"><strong>Phone:</strong> <span>+1 5589 55488 55</span></p>
|
|
||||||
<p><strong>Email:</strong> <span>info@example.com</span></p>
|
|
||||||
</div>
|
|
||||||
<div class="social-links d-flex mt-4">
|
|
||||||
<a href=""><i class="bi bi-twitter-x"></i></a>
|
|
||||||
<a href=""><i class="bi bi-facebook"></i></a>
|
|
||||||
<a href=""><i class="bi bi-instagram"></i></a>
|
|
||||||
<a href=""><i class="bi bi-linkedin"></i></a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-lg-2 col-md-3 footer-links">
|
|
||||||
<h4>Useful Links</h4>
|
|
||||||
<ul>
|
|
||||||
<li><a href="#">Home</a></li>
|
|
||||||
<li><a href="#">About us</a></li>
|
|
||||||
<li><a href="#">Services</a></li>
|
|
||||||
<li><a href="#">Terms of service</a></li>
|
|
||||||
<li><a href="#">Privacy policy</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-lg-2 col-md-3 footer-links">
|
|
||||||
<h4>Our Services</h4>
|
|
||||||
<ul>
|
|
||||||
<li><a href="#">Web Design</a></li>
|
|
||||||
<li><a href="#">Web Development</a></li>
|
|
||||||
<li><a href="#">Product Management</a></li>
|
|
||||||
<li><a href="#">Marketing</a></li>
|
|
||||||
<li><a href="#">Graphic Design</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-lg-2 col-md-3 footer-links">
|
|
||||||
<h4>Hic solutasetp</h4>
|
|
||||||
<ul>
|
|
||||||
<li><a href="#">Molestiae accusamus iure</a></li>
|
|
||||||
<li><a href="#">Excepturi dignissimos</a></li>
|
|
||||||
<li><a href="#">Suscipit distinctio</a></li>
|
|
||||||
<li><a href="#">Dilecta</a></li>
|
|
||||||
<li><a href="#">Sit quas consectetur</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-lg-2 col-md-3 footer-links">
|
|
||||||
<h4>Nobis illum</h4>
|
|
||||||
<ul>
|
|
||||||
<li><a href="#">Ipsam</a></li>
|
|
||||||
<li><a href="#">Laudantium dolorum</a></li>
|
|
||||||
<li><a href="#">Dinera</a></li>
|
|
||||||
<li><a href="#">Trodelas</a></li>
|
|
||||||
<li><a href="#">Flexo</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="container copyright text-center mt-4">
|
|
||||||
<p>© <span>Copyright</span> <strong>MediNest</strong> <span>All Rights Reserved</span></p>
|
|
||||||
<div class="credits">
|
|
||||||
<!-- All the links in the footer should remain intact. -->
|
|
||||||
<!-- You can delete the links only if you've purchased the pro version. -->
|
|
||||||
<!-- Licensing information: https://bootstrapmade.com/license/ -->
|
|
||||||
<!-- Purchase the pro version with working PHP/AJAX contact form: [buy-url] -->
|
|
||||||
Designed by <a href="https://bootstrapmade.com/">BootstrapMade</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</footer>
|
|
||||||
|
|
||||||
<!-- Scroll Top -->
|
|
||||||
<a href="#" id="scroll-top" class="scroll-top d-flex align-items-center justify-content-center"><i class="bi bi-arrow-up-short"></i></a>
|
|
||||||
|
|
||||||
<!-- Preloader -->
|
|
||||||
<div id="preloader"></div>
|
|
||||||
|
|
||||||
<!-- Vendor JS Files -->
|
|
||||||
<script src="assets/vendor/bootstrap/js/bootstrap.bundle.min.js"></script>
|
|
||||||
<script src="assets/vendor/php-email-form/validate.js"></script>
|
|
||||||
<script src="assets/vendor/aos/aos.js"></script>
|
|
||||||
<script src="assets/vendor/glightbox/js/glightbox.min.js"></script>
|
|
||||||
<script src="assets/vendor/purecounter/purecounter_vanilla.js"></script>
|
|
||||||
<script src="assets/vendor/imagesloaded/imagesloaded.pkgd.min.js"></script>
|
|
||||||
<script src="assets/vendor/isotope-layout/isotope.pkgd.min.js"></script>
|
|
||||||
<script src="assets/vendor/swiper/swiper-bundle.min.js"></script>
|
|
||||||
|
|
||||||
<!-- Main JS File -->
|
|
||||||
<script src="assets/js/main.js"></script>
|
|
||||||
|
|
||||||
</body>
|
|
||||||
|
|
||||||
</html>
|
|
@ -1,6 +0,0 @@
|
|||||||
Thanks for downloading this template!
|
|
||||||
|
|
||||||
Template Name: MediNest
|
|
||||||
Template URL: https://bootstrapmade.com/medinest-bootstrap-hospital-template/
|
|
||||||
Author: BootstrapMade.com
|
|
||||||
License: https://bootstrapmade.com/license/
|
|
@ -1,421 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
|
|
||||||
<head>
|
|
||||||
<meta charset="utf-8">
|
|
||||||
<meta content="width=device-width, initial-scale=1.0" name="viewport">
|
|
||||||
<title>About - MediNest Bootstrap Template</title>
|
|
||||||
<meta name="description" content="">
|
|
||||||
<meta name="keywords" content="">
|
|
||||||
|
|
||||||
<!-- Favicons -->
|
|
||||||
<link href="assets/img/favicon.png" rel="icon">
|
|
||||||
<link href="assets/img/apple-touch-icon.png" rel="apple-touch-icon">
|
|
||||||
|
|
||||||
<!-- Fonts -->
|
|
||||||
<link href="https://fonts.googleapis.com" rel="preconnect">
|
|
||||||
<link href="https://fonts.gstatic.com" rel="preconnect" crossorigin>
|
|
||||||
<link href="https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&family=Ubuntu:ital,wght@0,300;0,400;0,500;0,700;1,300;1,400;1,500;1,700&display=swap" rel="stylesheet">
|
|
||||||
|
|
||||||
<!-- Vendor CSS Files -->
|
|
||||||
<link href="assets/vendor/bootstrap/css/bootstrap.min.css" rel="stylesheet">
|
|
||||||
<link href="assets/vendor/bootstrap-icons/bootstrap-icons.css" rel="stylesheet">
|
|
||||||
<link href="assets/vendor/aos/aos.css" rel="stylesheet">
|
|
||||||
<link href="assets/vendor/glightbox/css/glightbox.min.css" rel="stylesheet">
|
|
||||||
<link href="assets/vendor/fontawesome-free/css/all.min.css" rel="stylesheet">
|
|
||||||
<link href="assets/vendor/swiper/swiper-bundle.min.css" rel="stylesheet">
|
|
||||||
|
|
||||||
<!-- Main CSS File -->
|
|
||||||
<link href="assets/css/main.css" rel="stylesheet">
|
|
||||||
|
|
||||||
<!-- =======================================================
|
|
||||||
* Template Name: MediNest
|
|
||||||
* Template URL: https://bootstrapmade.com/medinest-bootstrap-hospital-template/
|
|
||||||
* Updated: Aug 11 2025 with Bootstrap v5.3.7
|
|
||||||
* Author: BootstrapMade.com
|
|
||||||
* License: https://bootstrapmade.com/license/
|
|
||||||
======================================================== -->
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body class="about-page">
|
|
||||||
|
|
||||||
<header id="header" class="header d-flex align-items-center fixed-top">
|
|
||||||
<div class="container position-relative d-flex align-items-center justify-content-between">
|
|
||||||
|
|
||||||
<a href="index.html" class="logo d-flex align-items-center me-auto me-xl-0">
|
|
||||||
<!-- Uncomment the line below if you also wish to use an image logo -->
|
|
||||||
<!-- <img src="assets/img/logo.webp" alt=""> -->
|
|
||||||
<h1 class="sitename">Medi<span>Nest</span></h1>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
<nav id="navmenu" class="navmenu">
|
|
||||||
<ul>
|
|
||||||
<li><a href="index.html">Home</a></li>
|
|
||||||
<li><a href="about.html" class="active">About</a></li>
|
|
||||||
<li><a href="departments.html">Departments</a></li>
|
|
||||||
<li><a href="services.html">Services</a></li>
|
|
||||||
<li><a href="doctors.html">Doctors</a></li>
|
|
||||||
<li class="dropdown"><a href="#"><span>More Pages</span> <i class="bi bi-chevron-down toggle-dropdown"></i></a>
|
|
||||||
<ul>
|
|
||||||
<li><a href="department-details.html">Department Details</a></li>
|
|
||||||
<li><a href="service-details.html">Service Details</a></li>
|
|
||||||
<li><a href="appointment.html">Appointment</a></li>
|
|
||||||
<li><a href="testimonials.html">Testimonials</a></li>
|
|
||||||
<li><a href="faq.html">Frequently Asked Questions</a></li>
|
|
||||||
<li><a href="gallery.html">Gallery</a></li>
|
|
||||||
<li><a href="terms.html">Terms</a></li>
|
|
||||||
<li><a href="privacy.html">Privacy</a></li>
|
|
||||||
<li><a href="404.html">404</a></li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
<li class="dropdown"><a href="#"><span>Dropdown</span> <i class="bi bi-chevron-down toggle-dropdown"></i></a>
|
|
||||||
<ul>
|
|
||||||
<li><a href="#">Dropdown 1</a></li>
|
|
||||||
<li class="dropdown"><a href="#"><span>Deep Dropdown</span> <i class="bi bi-chevron-down toggle-dropdown"></i></a>
|
|
||||||
<ul>
|
|
||||||
<li><a href="#">Deep Dropdown 1</a></li>
|
|
||||||
<li><a href="#">Deep Dropdown 2</a></li>
|
|
||||||
<li><a href="#">Deep Dropdown 3</a></li>
|
|
||||||
<li><a href="#">Deep Dropdown 4</a></li>
|
|
||||||
<li><a href="#">Deep Dropdown 5</a></li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
<li><a href="#">Dropdown 2</a></li>
|
|
||||||
<li><a href="#">Dropdown 3</a></li>
|
|
||||||
<li><a href="#">Dropdown 4</a></li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
<li><a href="contact.html">Contact</a></li>
|
|
||||||
</ul>
|
|
||||||
<i class="mobile-nav-toggle d-xl-none bi bi-list"></i>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
<a class="btn-getstarted" href="apointment.html">Apointment</a>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</header>
|
|
||||||
|
|
||||||
<main class="main">
|
|
||||||
|
|
||||||
<!-- Page Title -->
|
|
||||||
<div class="page-title">
|
|
||||||
<div class="heading">
|
|
||||||
<div class="container">
|
|
||||||
<div class="row d-flex justify-content-center text-center">
|
|
||||||
<div class="col-lg-8">
|
|
||||||
<h1 class="heading-title">About</h1>
|
|
||||||
<p class="mb-0">
|
|
||||||
Odio et unde deleniti. Deserunt numquam exercitationem. Officiis quo
|
|
||||||
odio sint voluptas consequatur ut a odio voluptatem. Sit dolorum
|
|
||||||
debitis veritatis natus dolores. Quasi ratione sint. Sit quaerat
|
|
||||||
ipsum dolorem.
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<nav class="breadcrumbs">
|
|
||||||
<div class="container">
|
|
||||||
<ol>
|
|
||||||
<li><a href="index.html">Home</a></li>
|
|
||||||
<li class="current">About</li>
|
|
||||||
</ol>
|
|
||||||
</div>
|
|
||||||
</nav>
|
|
||||||
</div><!-- End Page Title -->
|
|
||||||
|
|
||||||
<!-- About Section -->
|
|
||||||
<section id="about" class="about section">
|
|
||||||
|
|
||||||
<div class="container" data-aos="fade-up" data-aos-delay="100">
|
|
||||||
|
|
||||||
<div class="intro-section">
|
|
||||||
<div class="row justify-content-center">
|
|
||||||
<div class="col-lg-8 text-center" data-aos="fade-up" data-aos-delay="100">
|
|
||||||
<h2>Excellence in Healthcare Since 1985</h2>
|
|
||||||
<p class="lead">We believe that exceptional medical care begins with understanding. Our dedicated team of professionals combines cutting-edge technology with compassionate, personalized treatment to ensure every patient receives the highest standard of care.</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="image-stats-section">
|
|
||||||
<div class="row align-items-center">
|
|
||||||
<div class="col-lg-7" data-aos="fade-right" data-aos-delay="200">
|
|
||||||
<div class="image-gallery">
|
|
||||||
<div class="main-image-container">
|
|
||||||
<img src="assets/img/health/facilities-3.webp" class="img-fluid main-image" alt="Medical facility">
|
|
||||||
</div>
|
|
||||||
<div class="secondary-images">
|
|
||||||
<img src="assets/img/health/staff-12.webp" class="img-fluid secondary-image" alt="Medical team" data-aos="zoom-in" data-aos-delay="400">
|
|
||||||
<img src="assets/img/health/consultation-4.webp" class="img-fluid secondary-image" alt="Patient consultation" data-aos="zoom-in" data-aos-delay="500">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-lg-5" data-aos="fade-left" data-aos-delay="300">
|
|
||||||
<div class="stats-content">
|
|
||||||
<h3>Trusted Healthcare Provider</h3>
|
|
||||||
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation.</p>
|
|
||||||
|
|
||||||
<div class="stats-list">
|
|
||||||
<div class="stat-row">
|
|
||||||
<div class="stat-number">
|
|
||||||
<span data-purecounter-start="0" data-purecounter-end="22000" data-purecounter-duration="0" class="purecounter">22000</span>
|
|
||||||
</div>
|
|
||||||
<div class="stat-info">
|
|
||||||
<h5>Successful Treatments</h5>
|
|
||||||
<p>Completed with excellent patient outcomes</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="stat-row">
|
|
||||||
<div class="stat-number">
|
|
||||||
<span data-purecounter-start="0" data-purecounter-end="95" data-purecounter-duration="0" class="purecounter">95</span><span>%</span>
|
|
||||||
</div>
|
|
||||||
<div class="stat-info">
|
|
||||||
<h5>Patient Satisfaction</h5>
|
|
||||||
<p>Based on comprehensive feedback surveys</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="stat-row">
|
|
||||||
<div class="stat-number">
|
|
||||||
<span data-purecounter-start="0" data-purecounter-end="85" data-purecounter-duration="0" class="purecounter">85</span>
|
|
||||||
</div>
|
|
||||||
<div class="stat-info">
|
|
||||||
<h5>Medical Professionals</h5>
|
|
||||||
<p>Specialists across various departments</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="mission-section" data-aos="fade-up" data-aos-delay="400">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-lg-4" data-aos="fade-up" data-aos-delay="100">
|
|
||||||
<div class="mission-item">
|
|
||||||
<div class="mission-icon">
|
|
||||||
<i class="bi bi-heart"></i>
|
|
||||||
</div>
|
|
||||||
<h4>Our Mission</h4>
|
|
||||||
<p>To provide comprehensive, patient-centered healthcare that combines medical excellence with genuine compassion, ensuring every individual receives personalized care tailored to their unique needs.</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-lg-4" data-aos="fade-up" data-aos-delay="200">
|
|
||||||
<div class="mission-item">
|
|
||||||
<div class="mission-icon">
|
|
||||||
<i class="bi bi-eye"></i>
|
|
||||||
</div>
|
|
||||||
<h4>Our Vision</h4>
|
|
||||||
<p>To be the leading healthcare provider in our region, recognized for innovative treatments, exceptional outcomes, and our unwavering commitment to improving lives in our community.</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-lg-4" data-aos="fade-up" data-aos-delay="300">
|
|
||||||
<div class="mission-item">
|
|
||||||
<div class="mission-icon">
|
|
||||||
<i class="bi bi-star"></i>
|
|
||||||
</div>
|
|
||||||
<h4>Our Promise</h4>
|
|
||||||
<p>Every patient will receive the highest quality care in a comfortable, supportive environment where their health, dignity, and well-being are our top priorities.</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="specialties-section" data-aos="fade-up" data-aos-delay="500">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-lg-12 text-center">
|
|
||||||
<h3>Areas of Excellence</h3>
|
|
||||||
<p class="section-description">Our specialized departments work together to provide comprehensive care across multiple medical disciplines</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-lg-2 col-md-4 col-sm-6" data-aos="fade-up" data-aos-delay="100">
|
|
||||||
<div class="specialty-item">
|
|
||||||
<i class="bi bi-activity"></i>
|
|
||||||
<span>Cardiology</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="col-lg-2 col-md-4 col-sm-6" data-aos="fade-up" data-aos-delay="150">
|
|
||||||
<div class="specialty-item">
|
|
||||||
<i class="bi bi-brain"></i>
|
|
||||||
<span>Neurology</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="col-lg-2 col-md-4 col-sm-6" data-aos="fade-up" data-aos-delay="200">
|
|
||||||
<div class="specialty-item">
|
|
||||||
<i class="bi bi-person-hearts"></i>
|
|
||||||
<span>Pediatrics</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="col-lg-2 col-md-4 col-sm-6" data-aos="fade-up" data-aos-delay="250">
|
|
||||||
<div class="specialty-item">
|
|
||||||
<i class="bi bi-scissors"></i>
|
|
||||||
<span>Surgery</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="col-lg-2 col-md-4 col-sm-6" data-aos="fade-up" data-aos-delay="300">
|
|
||||||
<div class="specialty-item">
|
|
||||||
<i class="bi bi-file-medical"></i>
|
|
||||||
<span>Oncology</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="col-lg-2 col-md-4 col-sm-6" data-aos="fade-up" data-aos-delay="350">
|
|
||||||
<div class="specialty-item">
|
|
||||||
<i class="bi bi-clipboard2-pulse"></i>
|
|
||||||
<span>Emergency</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="accreditation-section" data-aos="fade-up" data-aos-delay="600">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-lg-12 text-center">
|
|
||||||
<h3>Recognized Excellence</h3>
|
|
||||||
<p class="section-description">Our commitment to quality is validated by prestigious healthcare organizations</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="row justify-content-center">
|
|
||||||
<div class="col-lg-8">
|
|
||||||
<div class="accreditation-grid">
|
|
||||||
<div class="accreditation-item" data-aos="fade-up" data-aos-delay="100">
|
|
||||||
<img src="assets/img/clients/clients-6.webp" class="img-fluid" alt="Healthcare accreditation">
|
|
||||||
</div>
|
|
||||||
<div class="accreditation-item" data-aos="fade-up" data-aos-delay="150">
|
|
||||||
<img src="assets/img/clients/clients-7.webp" class="img-fluid" alt="Medical certification">
|
|
||||||
</div>
|
|
||||||
<div class="accreditation-item" data-aos="fade-up" data-aos-delay="200">
|
|
||||||
<img src="assets/img/clients/clients-8.webp" class="img-fluid" alt="Quality assurance">
|
|
||||||
</div>
|
|
||||||
<div class="accreditation-item" data-aos="fade-up" data-aos-delay="250">
|
|
||||||
<img src="assets/img/clients/clients-9.webp" class="img-fluid" alt="Healthcare excellence">
|
|
||||||
</div>
|
|
||||||
<div class="accreditation-item" data-aos="fade-up" data-aos-delay="300">
|
|
||||||
<img src="assets/img/clients/clients-10.webp" class="img-fluid" alt="Medical standards">
|
|
||||||
</div>
|
|
||||||
<div class="accreditation-item" data-aos="fade-up" data-aos-delay="350">
|
|
||||||
<img src="assets/img/clients/clients-11.webp" class="img-fluid" alt="Healthcare certification">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</section><!-- /About Section -->
|
|
||||||
|
|
||||||
</main>
|
|
||||||
|
|
||||||
<footer id="footer" class="footer position-relative">
|
|
||||||
|
|
||||||
<div class="container footer-top">
|
|
||||||
<div class="row gy-4">
|
|
||||||
<div class="col-lg-4 col-md-6 footer-about">
|
|
||||||
<a href="index.html" class="logo d-flex align-items-center">
|
|
||||||
<span class="sitename">MediNest</span>
|
|
||||||
</a>
|
|
||||||
<div class="footer-contact pt-3">
|
|
||||||
<p>A108 Adam Street</p>
|
|
||||||
<p>New York, NY 535022</p>
|
|
||||||
<p class="mt-3"><strong>Phone:</strong> <span>+1 5589 55488 55</span></p>
|
|
||||||
<p><strong>Email:</strong> <span>info@example.com</span></p>
|
|
||||||
</div>
|
|
||||||
<div class="social-links d-flex mt-4">
|
|
||||||
<a href=""><i class="bi bi-twitter-x"></i></a>
|
|
||||||
<a href=""><i class="bi bi-facebook"></i></a>
|
|
||||||
<a href=""><i class="bi bi-instagram"></i></a>
|
|
||||||
<a href=""><i class="bi bi-linkedin"></i></a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-lg-2 col-md-3 footer-links">
|
|
||||||
<h4>Useful Links</h4>
|
|
||||||
<ul>
|
|
||||||
<li><a href="#">Home</a></li>
|
|
||||||
<li><a href="#">About us</a></li>
|
|
||||||
<li><a href="#">Services</a></li>
|
|
||||||
<li><a href="#">Terms of service</a></li>
|
|
||||||
<li><a href="#">Privacy policy</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-lg-2 col-md-3 footer-links">
|
|
||||||
<h4>Our Services</h4>
|
|
||||||
<ul>
|
|
||||||
<li><a href="#">Web Design</a></li>
|
|
||||||
<li><a href="#">Web Development</a></li>
|
|
||||||
<li><a href="#">Product Management</a></li>
|
|
||||||
<li><a href="#">Marketing</a></li>
|
|
||||||
<li><a href="#">Graphic Design</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-lg-2 col-md-3 footer-links">
|
|
||||||
<h4>Hic solutasetp</h4>
|
|
||||||
<ul>
|
|
||||||
<li><a href="#">Molestiae accusamus iure</a></li>
|
|
||||||
<li><a href="#">Excepturi dignissimos</a></li>
|
|
||||||
<li><a href="#">Suscipit distinctio</a></li>
|
|
||||||
<li><a href="#">Dilecta</a></li>
|
|
||||||
<li><a href="#">Sit quas consectetur</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-lg-2 col-md-3 footer-links">
|
|
||||||
<h4>Nobis illum</h4>
|
|
||||||
<ul>
|
|
||||||
<li><a href="#">Ipsam</a></li>
|
|
||||||
<li><a href="#">Laudantium dolorum</a></li>
|
|
||||||
<li><a href="#">Dinera</a></li>
|
|
||||||
<li><a href="#">Trodelas</a></li>
|
|
||||||
<li><a href="#">Flexo</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="container copyright text-center mt-4">
|
|
||||||
<p>© <span>Copyright</span> <strong>MediNest</strong> <span>All Rights Reserved</span></p>
|
|
||||||
<div class="credits">
|
|
||||||
<!-- All the links in the footer should remain intact. -->
|
|
||||||
<!-- You can delete the links only if you've purchased the pro version. -->
|
|
||||||
<!-- Licensing information: https://bootstrapmade.com/license/ -->
|
|
||||||
<!-- Purchase the pro version with working PHP/AJAX contact form: [buy-url] -->
|
|
||||||
Designed by <a href="https://bootstrapmade.com/">BootstrapMade</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</footer>
|
|
||||||
|
|
||||||
<!-- Scroll Top -->
|
|
||||||
<a href="#" id="scroll-top" class="scroll-top d-flex align-items-center justify-content-center"><i class="bi bi-arrow-up-short"></i></a>
|
|
||||||
|
|
||||||
<!-- Preloader -->
|
|
||||||
<div id="preloader"></div>
|
|
||||||
|
|
||||||
<!-- Vendor JS Files -->
|
|
||||||
<script src="assets/vendor/bootstrap/js/bootstrap.bundle.min.js"></script>
|
|
||||||
<script src="assets/vendor/php-email-form/validate.js"></script>
|
|
||||||
<script src="assets/vendor/aos/aos.js"></script>
|
|
||||||
<script src="assets/vendor/glightbox/js/glightbox.min.js"></script>
|
|
||||||
<script src="assets/vendor/purecounter/purecounter_vanilla.js"></script>
|
|
||||||
<script src="assets/vendor/imagesloaded/imagesloaded.pkgd.min.js"></script>
|
|
||||||
<script src="assets/vendor/isotope-layout/isotope.pkgd.min.js"></script>
|
|
||||||
<script src="assets/vendor/swiper/swiper-bundle.min.js"></script>
|
|
||||||
|
|
||||||
<!-- Main JS File -->
|
|
||||||
<script src="assets/js/main.js"></script>
|
|
||||||
|
|
||||||
</body>
|
|
||||||
|
|
||||||
</html>
|
|
@ -1,408 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
|
|
||||||
<head>
|
|
||||||
<meta charset="utf-8">
|
|
||||||
<meta content="width=device-width, initial-scale=1.0" name="viewport">
|
|
||||||
<title>Appointment - MediNest Bootstrap Template</title>
|
|
||||||
<meta name="description" content="">
|
|
||||||
<meta name="keywords" content="">
|
|
||||||
|
|
||||||
<!-- Favicons -->
|
|
||||||
<link href="assets/img/favicon.png" rel="icon">
|
|
||||||
<link href="assets/img/apple-touch-icon.png" rel="apple-touch-icon">
|
|
||||||
|
|
||||||
<!-- Fonts -->
|
|
||||||
<link href="https://fonts.googleapis.com" rel="preconnect">
|
|
||||||
<link href="https://fonts.gstatic.com" rel="preconnect" crossorigin>
|
|
||||||
<link href="https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&family=Ubuntu:ital,wght@0,300;0,400;0,500;0,700;1,300;1,400;1,500;1,700&display=swap" rel="stylesheet">
|
|
||||||
|
|
||||||
<!-- Vendor CSS Files -->
|
|
||||||
<link href="assets/vendor/bootstrap/css/bootstrap.min.css" rel="stylesheet">
|
|
||||||
<link href="assets/vendor/bootstrap-icons/bootstrap-icons.css" rel="stylesheet">
|
|
||||||
<link href="assets/vendor/aos/aos.css" rel="stylesheet">
|
|
||||||
<link href="assets/vendor/glightbox/css/glightbox.min.css" rel="stylesheet">
|
|
||||||
<link href="assets/vendor/fontawesome-free/css/all.min.css" rel="stylesheet">
|
|
||||||
<link href="assets/vendor/swiper/swiper-bundle.min.css" rel="stylesheet">
|
|
||||||
|
|
||||||
<!-- Main CSS File -->
|
|
||||||
<link href="assets/css/main.css" rel="stylesheet">
|
|
||||||
|
|
||||||
<!-- =======================================================
|
|
||||||
* Template Name: MediNest
|
|
||||||
* Template URL: https://bootstrapmade.com/medinest-bootstrap-hospital-template/
|
|
||||||
* Updated: Aug 11 2025 with Bootstrap v5.3.7
|
|
||||||
* Author: BootstrapMade.com
|
|
||||||
* License: https://bootstrapmade.com/license/
|
|
||||||
======================================================== -->
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body class="appointment-page">
|
|
||||||
|
|
||||||
<header id="header" class="header d-flex align-items-center fixed-top">
|
|
||||||
<div class="container position-relative d-flex align-items-center justify-content-between">
|
|
||||||
|
|
||||||
<a href="index.html" class="logo d-flex align-items-center me-auto me-xl-0">
|
|
||||||
<!-- Uncomment the line below if you also wish to use an image logo -->
|
|
||||||
<!-- <img src="assets/img/logo.webp" alt=""> -->
|
|
||||||
<h1 class="sitename">Medi<span>Nest</span></h1>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
<nav id="navmenu" class="navmenu">
|
|
||||||
<ul>
|
|
||||||
<li><a href="index.html">Home</a></li>
|
|
||||||
<li><a href="about.html">About</a></li>
|
|
||||||
<li><a href="departments.html">Departments</a></li>
|
|
||||||
<li><a href="services.html">Services</a></li>
|
|
||||||
<li><a href="doctors.html">Doctors</a></li>
|
|
||||||
<li class="dropdown"><a href="#"><span>More Pages</span> <i class="bi bi-chevron-down toggle-dropdown"></i></a>
|
|
||||||
<ul>
|
|
||||||
<li><a href="department-details.html">Department Details</a></li>
|
|
||||||
<li><a href="service-details.html">Service Details</a></li>
|
|
||||||
<li><a href="appointment.html" class="active">Appointment</a></li>
|
|
||||||
<li><a href="testimonials.html">Testimonials</a></li>
|
|
||||||
<li><a href="faq.html">Frequently Asked Questions</a></li>
|
|
||||||
<li><a href="gallery.html">Gallery</a></li>
|
|
||||||
<li><a href="terms.html">Terms</a></li>
|
|
||||||
<li><a href="privacy.html">Privacy</a></li>
|
|
||||||
<li><a href="404.html">404</a></li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
<li class="dropdown"><a href="#"><span>Dropdown</span> <i class="bi bi-chevron-down toggle-dropdown"></i></a>
|
|
||||||
<ul>
|
|
||||||
<li><a href="#">Dropdown 1</a></li>
|
|
||||||
<li class="dropdown"><a href="#"><span>Deep Dropdown</span> <i class="bi bi-chevron-down toggle-dropdown"></i></a>
|
|
||||||
<ul>
|
|
||||||
<li><a href="#">Deep Dropdown 1</a></li>
|
|
||||||
<li><a href="#">Deep Dropdown 2</a></li>
|
|
||||||
<li><a href="#">Deep Dropdown 3</a></li>
|
|
||||||
<li><a href="#">Deep Dropdown 4</a></li>
|
|
||||||
<li><a href="#">Deep Dropdown 5</a></li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
<li><a href="#">Dropdown 2</a></li>
|
|
||||||
<li><a href="#">Dropdown 3</a></li>
|
|
||||||
<li><a href="#">Dropdown 4</a></li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
<li><a href="contact.html">Contact</a></li>
|
|
||||||
</ul>
|
|
||||||
<i class="mobile-nav-toggle d-xl-none bi bi-list"></i>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
<a class="btn-getstarted" href="apointment.html">Apointment</a>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</header>
|
|
||||||
|
|
||||||
<main class="main">
|
|
||||||
|
|
||||||
<!-- Page Title -->
|
|
||||||
<div class="page-title">
|
|
||||||
<div class="heading">
|
|
||||||
<div class="container">
|
|
||||||
<div class="row d-flex justify-content-center text-center">
|
|
||||||
<div class="col-lg-8">
|
|
||||||
<h1 class="heading-title">Appointment</h1>
|
|
||||||
<p class="mb-0">
|
|
||||||
Odio et unde deleniti. Deserunt numquam exercitationem. Officiis quo
|
|
||||||
odio sint voluptas consequatur ut a odio voluptatem. Sit dolorum
|
|
||||||
debitis veritatis natus dolores. Quasi ratione sint. Sit quaerat
|
|
||||||
ipsum dolorem.
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<nav class="breadcrumbs">
|
|
||||||
<div class="container">
|
|
||||||
<ol>
|
|
||||||
<li><a href="index.html">Home</a></li>
|
|
||||||
<li class="current">Appointment</li>
|
|
||||||
</ol>
|
|
||||||
</div>
|
|
||||||
</nav>
|
|
||||||
</div><!-- End Page Title -->
|
|
||||||
|
|
||||||
<!-- Appointmnet Section -->
|
|
||||||
<section id="appointmnet" class="appointmnet section">
|
|
||||||
|
|
||||||
<div class="container" data-aos="fade-up" data-aos-delay="100">
|
|
||||||
|
|
||||||
<div class="row gy-4">
|
|
||||||
|
|
||||||
<!-- Appointment Info -->
|
|
||||||
<div class="col-lg-6">
|
|
||||||
<div class="appointment-info">
|
|
||||||
<h3>Quick & Easy Online Booking</h3>
|
|
||||||
<p class="mb-4">Book your appointment in just a few simple steps. Our healthcare professionals are ready to provide you with the best medical care tailored to your needs.</p>
|
|
||||||
|
|
||||||
<div class="info-items">
|
|
||||||
<div class="info-item d-flex align-items-center mb-3" data-aos="fade-up" data-aos-delay="200">
|
|
||||||
<div class="icon-wrapper me-3">
|
|
||||||
<i class="bi bi-calendar-check"></i>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<h5>Flexible Scheduling</h5>
|
|
||||||
<p class="mb-0">Choose from available time slots that fit your busy schedule</p>
|
|
||||||
</div>
|
|
||||||
</div><!-- End Info Item -->
|
|
||||||
|
|
||||||
<div class="info-item d-flex align-items-center mb-3" data-aos="fade-up" data-aos-delay="250">
|
|
||||||
<div class="icon-wrapper me-3">
|
|
||||||
<i class="bi bi-stopwatch"></i>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<h5>Quick Response</h5>
|
|
||||||
<p class="mb-0">Get confirmation within 15 minutes of submitting your request</p>
|
|
||||||
</div>
|
|
||||||
</div><!-- End Info Item -->
|
|
||||||
|
|
||||||
<div class="info-item d-flex align-items-center mb-3" data-aos="fade-up" data-aos-delay="300">
|
|
||||||
<div class="icon-wrapper me-3">
|
|
||||||
<i class="bi bi-shield-check"></i>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<h5>Expert Medical Care</h5>
|
|
||||||
<p class="mb-0">Board-certified doctors and specialists at your service</p>
|
|
||||||
</div>
|
|
||||||
</div><!-- End Info Item -->
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="emergency-contact mt-4" data-aos="fade-up" data-aos-delay="350">
|
|
||||||
<div class="emergency-card p-3">
|
|
||||||
<h6 class="mb-2"><i class="bi bi-telephone-fill me-2"></i>Emergency Hotline</h6>
|
|
||||||
<p class="mb-0">Call <strong>+1 (555) 911-4567</strong> for urgent medical assistance</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div><!-- End Appointment Info -->
|
|
||||||
|
|
||||||
<!-- Appointment Form -->
|
|
||||||
<div class="col-lg-6">
|
|
||||||
<div class="appointment-form-wrapper" data-aos="fade-up" data-aos-delay="200">
|
|
||||||
<form action="forms/appointment.php" method="post" class="appointment-form php-email-form">
|
|
||||||
<div class="row gy-3">
|
|
||||||
|
|
||||||
<div class="col-md-6">
|
|
||||||
<input type="text" name="name" class="form-control" placeholder="Your Full Name" required="">
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-md-6">
|
|
||||||
<input type="email" name="email" class="form-control" placeholder="Your Email" required="">
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-md-6">
|
|
||||||
<input type="tel" name="phone" class="form-control" placeholder="Your Phone Number" required="">
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-md-6">
|
|
||||||
<select name="department" class="form-select" required="">
|
|
||||||
<option value="">Select Department</option>
|
|
||||||
<option value="cardiology">Cardiology</option>
|
|
||||||
<option value="neurology">Neurology</option>
|
|
||||||
<option value="orthopedics">Orthopedics</option>
|
|
||||||
<option value="pediatrics">Pediatrics</option>
|
|
||||||
<option value="dermatology">Dermatology</option>
|
|
||||||
<option value="general">General Medicine</option>
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-md-6">
|
|
||||||
<input type="date" name="date" class="form-control" required="">
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-md-6">
|
|
||||||
<select name="doctor" class="form-select" required="">
|
|
||||||
<option value="">Select Doctor</option>
|
|
||||||
<option value="dr-johnson">Dr. Sarah Johnson</option>
|
|
||||||
<option value="dr-martinez">Dr. Michael Martinez</option>
|
|
||||||
<option value="dr-chen">Dr. Lisa Chen</option>
|
|
||||||
<option value="dr-patel">Dr. Raj Patel</option>
|
|
||||||
<option value="dr-williams">Dr. Emily Williams</option>
|
|
||||||
<option value="dr-thompson">Dr. David Thompson</option>
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-12">
|
|
||||||
<textarea class="form-control" name="message" rows="5" placeholder="Please describe your symptoms or reason for visit (optional)"></textarea>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-12">
|
|
||||||
<div class="loading">Loading</div>
|
|
||||||
<div class="error-message"></div>
|
|
||||||
<div class="sent-message">Your appointment request has been sent successfully. We will contact you shortly!</div>
|
|
||||||
|
|
||||||
<button type="submit" class="btn btn-appointment w-100">
|
|
||||||
<i class="bi bi-calendar-plus me-2"></i>Book Appointment
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
</div><!-- End Appointment Form -->
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Process Steps -->
|
|
||||||
<div class="process-steps mt-5" data-aos="fade-up" data-aos-delay="300">
|
|
||||||
<div class="row text-center gy-4">
|
|
||||||
<div class="col-lg-3 col-md-6">
|
|
||||||
<div class="step-item">
|
|
||||||
<div class="step-number">1</div>
|
|
||||||
<div class="step-icon">
|
|
||||||
<i class="bi bi-person-fill"></i>
|
|
||||||
</div>
|
|
||||||
<h5>Fill Details</h5>
|
|
||||||
<p>Provide your personal information and select your preferred department</p>
|
|
||||||
</div>
|
|
||||||
</div><!-- End Step -->
|
|
||||||
|
|
||||||
<div class="col-lg-3 col-md-6">
|
|
||||||
<div class="step-item">
|
|
||||||
<div class="step-number">2</div>
|
|
||||||
<div class="step-icon">
|
|
||||||
<i class="bi bi-calendar-event"></i>
|
|
||||||
</div>
|
|
||||||
<h5>Choose Date</h5>
|
|
||||||
<p>Select your preferred date and time slot from available options</p>
|
|
||||||
</div>
|
|
||||||
</div><!-- End Step -->
|
|
||||||
|
|
||||||
<div class="col-lg-3 col-md-6">
|
|
||||||
<div class="step-item">
|
|
||||||
<div class="step-number">3</div>
|
|
||||||
<div class="step-icon">
|
|
||||||
<i class="bi bi-check-circle"></i>
|
|
||||||
</div>
|
|
||||||
<h5>Confirmation</h5>
|
|
||||||
<p>Receive instant confirmation and appointment details via email or SMS</p>
|
|
||||||
</div>
|
|
||||||
</div><!-- End Step -->
|
|
||||||
|
|
||||||
<div class="col-lg-3 col-md-6">
|
|
||||||
<div class="step-item">
|
|
||||||
<div class="step-number">4</div>
|
|
||||||
<div class="step-icon">
|
|
||||||
<i class="bi bi-heart-pulse"></i>
|
|
||||||
</div>
|
|
||||||
<h5>Get Treatment</h5>
|
|
||||||
<p>Visit our clinic at your scheduled time and receive quality healthcare</p>
|
|
||||||
</div>
|
|
||||||
</div><!-- End Step -->
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div><!-- End Process Steps -->
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</section><!-- /Appointmnet Section -->
|
|
||||||
|
|
||||||
</main>
|
|
||||||
|
|
||||||
<footer id="footer" class="footer position-relative">
|
|
||||||
|
|
||||||
<div class="container footer-top">
|
|
||||||
<div class="row gy-4">
|
|
||||||
<div class="col-lg-4 col-md-6 footer-about">
|
|
||||||
<a href="index.html" class="logo d-flex align-items-center">
|
|
||||||
<span class="sitename">MediNest</span>
|
|
||||||
</a>
|
|
||||||
<div class="footer-contact pt-3">
|
|
||||||
<p>A108 Adam Street</p>
|
|
||||||
<p>New York, NY 535022</p>
|
|
||||||
<p class="mt-3"><strong>Phone:</strong> <span>+1 5589 55488 55</span></p>
|
|
||||||
<p><strong>Email:</strong> <span>info@example.com</span></p>
|
|
||||||
</div>
|
|
||||||
<div class="social-links d-flex mt-4">
|
|
||||||
<a href=""><i class="bi bi-twitter-x"></i></a>
|
|
||||||
<a href=""><i class="bi bi-facebook"></i></a>
|
|
||||||
<a href=""><i class="bi bi-instagram"></i></a>
|
|
||||||
<a href=""><i class="bi bi-linkedin"></i></a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-lg-2 col-md-3 footer-links">
|
|
||||||
<h4>Useful Links</h4>
|
|
||||||
<ul>
|
|
||||||
<li><a href="#">Home</a></li>
|
|
||||||
<li><a href="#">About us</a></li>
|
|
||||||
<li><a href="#">Services</a></li>
|
|
||||||
<li><a href="#">Terms of service</a></li>
|
|
||||||
<li><a href="#">Privacy policy</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-lg-2 col-md-3 footer-links">
|
|
||||||
<h4>Our Services</h4>
|
|
||||||
<ul>
|
|
||||||
<li><a href="#">Web Design</a></li>
|
|
||||||
<li><a href="#">Web Development</a></li>
|
|
||||||
<li><a href="#">Product Management</a></li>
|
|
||||||
<li><a href="#">Marketing</a></li>
|
|
||||||
<li><a href="#">Graphic Design</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-lg-2 col-md-3 footer-links">
|
|
||||||
<h4>Hic solutasetp</h4>
|
|
||||||
<ul>
|
|
||||||
<li><a href="#">Molestiae accusamus iure</a></li>
|
|
||||||
<li><a href="#">Excepturi dignissimos</a></li>
|
|
||||||
<li><a href="#">Suscipit distinctio</a></li>
|
|
||||||
<li><a href="#">Dilecta</a></li>
|
|
||||||
<li><a href="#">Sit quas consectetur</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-lg-2 col-md-3 footer-links">
|
|
||||||
<h4>Nobis illum</h4>
|
|
||||||
<ul>
|
|
||||||
<li><a href="#">Ipsam</a></li>
|
|
||||||
<li><a href="#">Laudantium dolorum</a></li>
|
|
||||||
<li><a href="#">Dinera</a></li>
|
|
||||||
<li><a href="#">Trodelas</a></li>
|
|
||||||
<li><a href="#">Flexo</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="container copyright text-center mt-4">
|
|
||||||
<p>© <span>Copyright</span> <strong>MediNest</strong> <span>All Rights Reserved</span></p>
|
|
||||||
<div class="credits">
|
|
||||||
<!-- All the links in the footer should remain intact. -->
|
|
||||||
<!-- You can delete the links only if you've purchased the pro version. -->
|
|
||||||
<!-- Licensing information: https://bootstrapmade.com/license/ -->
|
|
||||||
<!-- Purchase the pro version with working PHP/AJAX contact form: [buy-url] -->
|
|
||||||
Designed by <a href="https://bootstrapmade.com/">BootstrapMade</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</footer>
|
|
||||||
|
|
||||||
<!-- Scroll Top -->
|
|
||||||
<a href="#" id="scroll-top" class="scroll-top d-flex align-items-center justify-content-center"><i class="bi bi-arrow-up-short"></i></a>
|
|
||||||
|
|
||||||
<!-- Preloader -->
|
|
||||||
<div id="preloader"></div>
|
|
||||||
|
|
||||||
<!-- Vendor JS Files -->
|
|
||||||
<script src="assets/vendor/bootstrap/js/bootstrap.bundle.min.js"></script>
|
|
||||||
<script src="assets/vendor/php-email-form/validate.js"></script>
|
|
||||||
<script src="assets/vendor/aos/aos.js"></script>
|
|
||||||
<script src="assets/vendor/glightbox/js/glightbox.min.js"></script>
|
|
||||||
<script src="assets/vendor/purecounter/purecounter_vanilla.js"></script>
|
|
||||||
<script src="assets/vendor/imagesloaded/imagesloaded.pkgd.min.js"></script>
|
|
||||||
<script src="assets/vendor/isotope-layout/isotope.pkgd.min.js"></script>
|
|
||||||
<script src="assets/vendor/swiper/swiper-bundle.min.js"></script>
|
|
||||||
|
|
||||||
<!-- Main JS File -->
|
|
||||||
<script src="assets/js/main.js"></script>
|
|
||||||
|
|
||||||
</body>
|
|
||||||
|
|
||||||
</html>
|
|
Before Width: | Height: | Size: 7.3 KiB |
Before Width: | Height: | Size: 6.7 KiB |
Before Width: | Height: | Size: 6.4 KiB |
Before Width: | Height: | Size: 3.5 KiB |
Before Width: | Height: | Size: 6.5 KiB |
Before Width: | Height: | Size: 7.5 KiB |
Before Width: | Height: | Size: 5.7 KiB |
Before Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 173 KiB |
Before Width: | Height: | Size: 110 KiB |
Before Width: | Height: | Size: 151 KiB |
Before Width: | Height: | Size: 112 KiB |
Before Width: | Height: | Size: 90 KiB |
Before Width: | Height: | Size: 130 KiB |
Before Width: | Height: | Size: 81 KiB |
Before Width: | Height: | Size: 54 KiB |
Before Width: | Height: | Size: 32 KiB |
Before Width: | Height: | Size: 27 KiB |
Before Width: | Height: | Size: 79 KiB |
Before Width: | Height: | Size: 49 KiB |
Before Width: | Height: | Size: 79 KiB |
Before Width: | Height: | Size: 50 KiB |
Before Width: | Height: | Size: 56 KiB |
Before Width: | Height: | Size: 47 KiB |
Before Width: | Height: | Size: 40 KiB |
Before Width: | Height: | Size: 68 KiB |
Before Width: | Height: | Size: 76 KiB |
Before Width: | Height: | Size: 39 KiB |
Before Width: | Height: | Size: 32 KiB |
Before Width: | Height: | Size: 51 KiB |
Before Width: | Height: | Size: 45 KiB |
Before Width: | Height: | Size: 142 KiB |
Before Width: | Height: | Size: 66 KiB |
Before Width: | Height: | Size: 48 KiB |
Before Width: | Height: | Size: 59 KiB |
Before Width: | Height: | Size: 58 KiB |
Before Width: | Height: | Size: 62 KiB |
Before Width: | Height: | Size: 49 KiB |
Before Width: | Height: | Size: 61 KiB |
Before Width: | Height: | Size: 57 KiB |
Before Width: | Height: | Size: 49 KiB |
Before Width: | Height: | Size: 60 KiB |
Before Width: | Height: | Size: 55 KiB |
Before Width: | Height: | Size: 43 KiB |
Before Width: | Height: | Size: 49 KiB |
Before Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 32 KiB |
Before Width: | Height: | Size: 45 KiB |
Before Width: | Height: | Size: 56 KiB |
Before Width: | Height: | Size: 29 KiB |
Before Width: | Height: | Size: 37 KiB |
Before Width: | Height: | Size: 32 KiB |
@ -1,180 +0,0 @@
|
|||||||
/**
|
|
||||||
* Template Name: MediNest
|
|
||||||
* Template URL: https://bootstrapmade.com/medinest-bootstrap-hospital-template/
|
|
||||||
* Updated: Aug 11 2025 with Bootstrap v5.3.7
|
|
||||||
* Author: BootstrapMade.com
|
|
||||||
* License: https://bootstrapmade.com/license/
|
|
||||||
*/
|
|
||||||
|
|
||||||
(function() {
|
|
||||||
"use strict";
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Apply .scrolled class to the body as the page is scrolled down
|
|
||||||
*/
|
|
||||||
function toggleScrolled() {
|
|
||||||
const selectBody = document.querySelector('body');
|
|
||||||
const selectHeader = document.querySelector('#header');
|
|
||||||
if (!selectHeader.classList.contains('scroll-up-sticky') && !selectHeader.classList.contains('sticky-top') && !selectHeader.classList.contains('fixed-top')) return;
|
|
||||||
window.scrollY > 100 ? selectBody.classList.add('scrolled') : selectBody.classList.remove('scrolled');
|
|
||||||
}
|
|
||||||
|
|
||||||
document.addEventListener('scroll', toggleScrolled);
|
|
||||||
window.addEventListener('load', toggleScrolled);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Mobile nav toggle
|
|
||||||
*/
|
|
||||||
const mobileNavToggleBtn = document.querySelector('.mobile-nav-toggle');
|
|
||||||
|
|
||||||
function mobileNavToogle() {
|
|
||||||
document.querySelector('body').classList.toggle('mobile-nav-active');
|
|
||||||
mobileNavToggleBtn.classList.toggle('bi-list');
|
|
||||||
mobileNavToggleBtn.classList.toggle('bi-x');
|
|
||||||
}
|
|
||||||
if (mobileNavToggleBtn) {
|
|
||||||
mobileNavToggleBtn.addEventListener('click', mobileNavToogle);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Hide mobile nav on same-page/hash links
|
|
||||||
*/
|
|
||||||
document.querySelectorAll('#navmenu a').forEach(navmenu => {
|
|
||||||
navmenu.addEventListener('click', () => {
|
|
||||||
if (document.querySelector('.mobile-nav-active')) {
|
|
||||||
mobileNavToogle();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Toggle mobile nav dropdowns
|
|
||||||
*/
|
|
||||||
document.querySelectorAll('.navmenu .toggle-dropdown').forEach(navmenu => {
|
|
||||||
navmenu.addEventListener('click', function(e) {
|
|
||||||
e.preventDefault();
|
|
||||||
this.parentNode.classList.toggle('active');
|
|
||||||
this.parentNode.nextElementSibling.classList.toggle('dropdown-active');
|
|
||||||
e.stopImmediatePropagation();
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Preloader
|
|
||||||
*/
|
|
||||||
const preloader = document.querySelector('#preloader');
|
|
||||||
if (preloader) {
|
|
||||||
window.addEventListener('load', () => {
|
|
||||||
preloader.remove();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Scroll top button
|
|
||||||
*/
|
|
||||||
let scrollTop = document.querySelector('.scroll-top');
|
|
||||||
|
|
||||||
function toggleScrollTop() {
|
|
||||||
if (scrollTop) {
|
|
||||||
window.scrollY > 100 ? scrollTop.classList.add('active') : scrollTop.classList.remove('active');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
scrollTop.addEventListener('click', (e) => {
|
|
||||||
e.preventDefault();
|
|
||||||
window.scrollTo({
|
|
||||||
top: 0,
|
|
||||||
behavior: 'smooth'
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
window.addEventListener('load', toggleScrollTop);
|
|
||||||
document.addEventListener('scroll', toggleScrollTop);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Animation on scroll function and init
|
|
||||||
*/
|
|
||||||
function aosInit() {
|
|
||||||
AOS.init({
|
|
||||||
duration: 600,
|
|
||||||
easing: 'ease-in-out',
|
|
||||||
once: true,
|
|
||||||
mirror: false
|
|
||||||
});
|
|
||||||
}
|
|
||||||
window.addEventListener('load', aosInit);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Initiate glightbox
|
|
||||||
*/
|
|
||||||
const glightbox = GLightbox({
|
|
||||||
selector: '.glightbox'
|
|
||||||
});
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Initiate Pure Counter
|
|
||||||
*/
|
|
||||||
new PureCounter();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Init isotope layout and filters
|
|
||||||
*/
|
|
||||||
document.querySelectorAll('.isotope-layout').forEach(function(isotopeItem) {
|
|
||||||
let layout = isotopeItem.getAttribute('data-layout') ?? 'masonry';
|
|
||||||
let filter = isotopeItem.getAttribute('data-default-filter') ?? '*';
|
|
||||||
let sort = isotopeItem.getAttribute('data-sort') ?? 'original-order';
|
|
||||||
|
|
||||||
let initIsotope;
|
|
||||||
imagesLoaded(isotopeItem.querySelector('.isotope-container'), function() {
|
|
||||||
initIsotope = new Isotope(isotopeItem.querySelector('.isotope-container'), {
|
|
||||||
itemSelector: '.isotope-item',
|
|
||||||
layoutMode: layout,
|
|
||||||
filter: filter,
|
|
||||||
sortBy: sort
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
isotopeItem.querySelectorAll('.isotope-filters li').forEach(function(filters) {
|
|
||||||
filters.addEventListener('click', function() {
|
|
||||||
isotopeItem.querySelector('.isotope-filters .filter-active').classList.remove('filter-active');
|
|
||||||
this.classList.add('filter-active');
|
|
||||||
initIsotope.arrange({
|
|
||||||
filter: this.getAttribute('data-filter')
|
|
||||||
});
|
|
||||||
if (typeof aosInit === 'function') {
|
|
||||||
aosInit();
|
|
||||||
}
|
|
||||||
}, false);
|
|
||||||
});
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Init swiper sliders
|
|
||||||
*/
|
|
||||||
function initSwiper() {
|
|
||||||
document.querySelectorAll(".init-swiper").forEach(function(swiperElement) {
|
|
||||||
let config = JSON.parse(
|
|
||||||
swiperElement.querySelector(".swiper-config").innerHTML.trim()
|
|
||||||
);
|
|
||||||
|
|
||||||
if (swiperElement.classList.contains("swiper-tab")) {
|
|
||||||
initSwiperWithCustomPagination(swiperElement, config);
|
|
||||||
} else {
|
|
||||||
new Swiper(swiperElement, config);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
window.addEventListener("load", initSwiper);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Frequently Asked Questions Toggle
|
|
||||||
*/
|
|
||||||
document.querySelectorAll('.faq-item h3, .faq-item .faq-toggle, .faq-item .faq-header').forEach((faqItem) => {
|
|
||||||
faqItem.addEventListener('click', () => {
|
|
||||||
faqItem.parentNode.classList.toggle('faq-active');
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
})();
|
|
@ -1,2 +0,0 @@
|
|||||||
The .scss (Sass) files are only available in the pro version.
|
|
||||||
You can buy it from: https://bootstrapmade.com/medinest-bootstrap-hospital-template/
|
|
@ -1,614 +0,0 @@
|
|||||||
'use strict';
|
|
||||||
|
|
||||||
function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
|
|
||||||
|
|
||||||
var throttle = _interopDefault(require('lodash.throttle'));
|
|
||||||
var debounce = _interopDefault(require('lodash.debounce'));
|
|
||||||
|
|
||||||
var callback = function callback() {};
|
|
||||||
|
|
||||||
function containsAOSNode(nodes) {
|
|
||||||
var i = void 0,
|
|
||||||
currentNode = void 0,
|
|
||||||
result = void 0;
|
|
||||||
|
|
||||||
for (i = 0; i < nodes.length; i += 1) {
|
|
||||||
currentNode = nodes[i];
|
|
||||||
|
|
||||||
if (currentNode.dataset && currentNode.dataset.aos) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
result = currentNode.children && containsAOSNode(currentNode.children);
|
|
||||||
|
|
||||||
if (result) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
function check(mutations) {
|
|
||||||
if (!mutations) return;
|
|
||||||
|
|
||||||
mutations.forEach(function (mutation) {
|
|
||||||
var addedNodes = Array.prototype.slice.call(mutation.addedNodes);
|
|
||||||
var removedNodes = Array.prototype.slice.call(mutation.removedNodes);
|
|
||||||
var allNodes = addedNodes.concat(removedNodes);
|
|
||||||
|
|
||||||
if (containsAOSNode(allNodes)) {
|
|
||||||
return callback();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function getMutationObserver() {
|
|
||||||
return window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver;
|
|
||||||
}
|
|
||||||
|
|
||||||
function isSupported() {
|
|
||||||
return !!getMutationObserver();
|
|
||||||
}
|
|
||||||
|
|
||||||
function ready(selector, fn) {
|
|
||||||
var doc = window.document;
|
|
||||||
var MutationObserver = getMutationObserver();
|
|
||||||
|
|
||||||
var observer = new MutationObserver(check);
|
|
||||||
callback = fn;
|
|
||||||
|
|
||||||
observer.observe(doc.documentElement, {
|
|
||||||
childList: true,
|
|
||||||
subtree: true,
|
|
||||||
removedNodes: true
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
var observer = { isSupported: isSupported, ready: ready };
|
|
||||||
|
|
||||||
var classCallCheck = function (instance, Constructor) {
|
|
||||||
if (!(instance instanceof Constructor)) {
|
|
||||||
throw new TypeError("Cannot call a class as a function");
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
var createClass = function () {
|
|
||||||
function defineProperties(target, props) {
|
|
||||||
for (var i = 0; i < props.length; i++) {
|
|
||||||
var descriptor = props[i];
|
|
||||||
descriptor.enumerable = descriptor.enumerable || false;
|
|
||||||
descriptor.configurable = true;
|
|
||||||
if ("value" in descriptor) descriptor.writable = true;
|
|
||||||
Object.defineProperty(target, descriptor.key, descriptor);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return function (Constructor, protoProps, staticProps) {
|
|
||||||
if (protoProps) defineProperties(Constructor.prototype, protoProps);
|
|
||||||
if (staticProps) defineProperties(Constructor, staticProps);
|
|
||||||
return Constructor;
|
|
||||||
};
|
|
||||||
}();
|
|
||||||
|
|
||||||
var _extends = Object.assign || function (target) {
|
|
||||||
for (var i = 1; i < arguments.length; i++) {
|
|
||||||
var source = arguments[i];
|
|
||||||
|
|
||||||
for (var key in source) {
|
|
||||||
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
|
||||||
target[key] = source[key];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return target;
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Device detector
|
|
||||||
*/
|
|
||||||
|
|
||||||
var fullNameRe = /(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i;
|
|
||||||
var prefixRe = /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i;
|
|
||||||
var fullNameMobileRe = /(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i;
|
|
||||||
var prefixMobileRe = /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i;
|
|
||||||
|
|
||||||
function ua() {
|
|
||||||
return navigator.userAgent || navigator.vendor || window.opera || '';
|
|
||||||
}
|
|
||||||
|
|
||||||
var Detector = function () {
|
|
||||||
function Detector() {
|
|
||||||
classCallCheck(this, Detector);
|
|
||||||
}
|
|
||||||
|
|
||||||
createClass(Detector, [{
|
|
||||||
key: 'phone',
|
|
||||||
value: function phone() {
|
|
||||||
var a = ua();
|
|
||||||
return !!(fullNameRe.test(a) || prefixRe.test(a.substr(0, 4)));
|
|
||||||
}
|
|
||||||
}, {
|
|
||||||
key: 'mobile',
|
|
||||||
value: function mobile() {
|
|
||||||
var a = ua();
|
|
||||||
return !!(fullNameMobileRe.test(a) || prefixMobileRe.test(a.substr(0, 4)));
|
|
||||||
}
|
|
||||||
}, {
|
|
||||||
key: 'tablet',
|
|
||||||
value: function tablet() {
|
|
||||||
return this.mobile() && !this.phone();
|
|
||||||
}
|
|
||||||
|
|
||||||
// http://browserhacks.com/#hack-acea075d0ac6954f275a70023906050c
|
|
||||||
|
|
||||||
}, {
|
|
||||||
key: 'ie11',
|
|
||||||
value: function ie11() {
|
|
||||||
return '-ms-scroll-limit' in document.documentElement.style && '-ms-ime-align' in document.documentElement.style;
|
|
||||||
}
|
|
||||||
}]);
|
|
||||||
return Detector;
|
|
||||||
}();
|
|
||||||
|
|
||||||
var detect = new Detector();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Adds multiple classes on node
|
|
||||||
* @param {DOMNode} node
|
|
||||||
* @param {array} classes
|
|
||||||
*/
|
|
||||||
var addClasses = function addClasses(node, classes) {
|
|
||||||
return classes && classes.forEach(function (className) {
|
|
||||||
return node.classList.add(className);
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Removes multiple classes from node
|
|
||||||
* @param {DOMNode} node
|
|
||||||
* @param {array} classes
|
|
||||||
*/
|
|
||||||
var removeClasses = function removeClasses(node, classes) {
|
|
||||||
return classes && classes.forEach(function (className) {
|
|
||||||
return node.classList.remove(className);
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
var fireEvent = function fireEvent(eventName, data) {
|
|
||||||
var customEvent = void 0;
|
|
||||||
|
|
||||||
if (detect.ie11()) {
|
|
||||||
customEvent = document.createEvent('CustomEvent');
|
|
||||||
customEvent.initCustomEvent(eventName, true, true, { detail: data });
|
|
||||||
} else {
|
|
||||||
customEvent = new CustomEvent(eventName, {
|
|
||||||
detail: data
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
return document.dispatchEvent(customEvent);
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Set or remove aos-animate class
|
|
||||||
* @param {node} el element
|
|
||||||
* @param {int} top scrolled distance
|
|
||||||
*/
|
|
||||||
var applyClasses = function applyClasses(el, top) {
|
|
||||||
var options = el.options,
|
|
||||||
position = el.position,
|
|
||||||
node = el.node,
|
|
||||||
data = el.data;
|
|
||||||
|
|
||||||
|
|
||||||
var hide = function hide() {
|
|
||||||
if (!el.animated) return;
|
|
||||||
|
|
||||||
removeClasses(node, options.animatedClassNames);
|
|
||||||
fireEvent('aos:out', node);
|
|
||||||
|
|
||||||
if (el.options.id) {
|
|
||||||
fireEvent('aos:in:' + el.options.id, node);
|
|
||||||
}
|
|
||||||
|
|
||||||
el.animated = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
var show = function show() {
|
|
||||||
if (el.animated) return;
|
|
||||||
|
|
||||||
addClasses(node, options.animatedClassNames);
|
|
||||||
|
|
||||||
fireEvent('aos:in', node);
|
|
||||||
if (el.options.id) {
|
|
||||||
fireEvent('aos:in:' + el.options.id, node);
|
|
||||||
}
|
|
||||||
|
|
||||||
el.animated = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
if (options.mirror && top >= position.out && !options.once) {
|
|
||||||
hide();
|
|
||||||
} else if (top >= position.in) {
|
|
||||||
show();
|
|
||||||
} else if (el.animated && !options.once) {
|
|
||||||
hide();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Scroll logic - add or remove 'aos-animate' class on scroll
|
|
||||||
*
|
|
||||||
* @param {array} $elements array of elements nodes
|
|
||||||
* @return {void}
|
|
||||||
*/
|
|
||||||
var handleScroll = function handleScroll($elements) {
|
|
||||||
return $elements.forEach(function (el, i) {
|
|
||||||
return applyClasses(el, window.pageYOffset);
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get offset of DOM element
|
|
||||||
* like there were no transforms applied on it
|
|
||||||
*
|
|
||||||
* @param {Node} el [DOM element]
|
|
||||||
* @return {Object} [top and left offset]
|
|
||||||
*/
|
|
||||||
var offset = function offset(el) {
|
|
||||||
var _x = 0;
|
|
||||||
var _y = 0;
|
|
||||||
|
|
||||||
while (el && !isNaN(el.offsetLeft) && !isNaN(el.offsetTop)) {
|
|
||||||
_x += el.offsetLeft - (el.tagName != 'BODY' ? el.scrollLeft : 0);
|
|
||||||
_y += el.offsetTop - (el.tagName != 'BODY' ? el.scrollTop : 0);
|
|
||||||
el = el.offsetParent;
|
|
||||||
}
|
|
||||||
|
|
||||||
return {
|
|
||||||
top: _y,
|
|
||||||
left: _x
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get inline option with a fallback.
|
|
||||||
*
|
|
||||||
* @param {Node} el [Dom element]
|
|
||||||
* @param {String} key [Option key]
|
|
||||||
* @param {String} fallback [Default (fallback) value]
|
|
||||||
* @return {Mixed} [Option set with inline attributes or fallback value if not set]
|
|
||||||
*/
|
|
||||||
|
|
||||||
var getInlineOption = (function (el, key, fallback) {
|
|
||||||
var attr = el.getAttribute('data-aos-' + key);
|
|
||||||
|
|
||||||
if (typeof attr !== 'undefined') {
|
|
||||||
if (attr === 'true') {
|
|
||||||
return true;
|
|
||||||
} else if (attr === 'false') {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return attr || fallback;
|
|
||||||
});
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Calculate offset
|
|
||||||
* basing on element's settings like:
|
|
||||||
* - anchor
|
|
||||||
* - offset
|
|
||||||
*
|
|
||||||
* @param {Node} el [Dom element]
|
|
||||||
* @return {Integer} [Final offset that will be used to trigger animation in good position]
|
|
||||||
*/
|
|
||||||
|
|
||||||
var getPositionIn = function getPositionIn(el, defaultOffset, defaultAnchorPlacement) {
|
|
||||||
var windowHeight = window.innerHeight;
|
|
||||||
var anchor = getInlineOption(el, 'anchor');
|
|
||||||
var inlineAnchorPlacement = getInlineOption(el, 'anchor-placement');
|
|
||||||
var additionalOffset = Number(getInlineOption(el, 'offset', inlineAnchorPlacement ? 0 : defaultOffset));
|
|
||||||
var anchorPlacement = inlineAnchorPlacement || defaultAnchorPlacement;
|
|
||||||
var finalEl = el;
|
|
||||||
|
|
||||||
if (anchor && document.querySelectorAll(anchor)) {
|
|
||||||
finalEl = document.querySelectorAll(anchor)[0];
|
|
||||||
}
|
|
||||||
|
|
||||||
var triggerPoint = offset(finalEl).top - windowHeight;
|
|
||||||
|
|
||||||
switch (anchorPlacement) {
|
|
||||||
case 'top-bottom':
|
|
||||||
// Default offset
|
|
||||||
break;
|
|
||||||
case 'center-bottom':
|
|
||||||
triggerPoint += finalEl.offsetHeight / 2;
|
|
||||||
break;
|
|
||||||
case 'bottom-bottom':
|
|
||||||
triggerPoint += finalEl.offsetHeight;
|
|
||||||
break;
|
|
||||||
case 'top-center':
|
|
||||||
triggerPoint += windowHeight / 2;
|
|
||||||
break;
|
|
||||||
case 'center-center':
|
|
||||||
triggerPoint += windowHeight / 2 + finalEl.offsetHeight / 2;
|
|
||||||
break;
|
|
||||||
case 'bottom-center':
|
|
||||||
triggerPoint += windowHeight / 2 + finalEl.offsetHeight;
|
|
||||||
break;
|
|
||||||
case 'top-top':
|
|
||||||
triggerPoint += windowHeight;
|
|
||||||
break;
|
|
||||||
case 'bottom-top':
|
|
||||||
triggerPoint += windowHeight + finalEl.offsetHeight;
|
|
||||||
break;
|
|
||||||
case 'center-top':
|
|
||||||
triggerPoint += windowHeight + finalEl.offsetHeight / 2;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
return triggerPoint + additionalOffset;
|
|
||||||
};
|
|
||||||
|
|
||||||
var getPositionOut = function getPositionOut(el, defaultOffset) {
|
|
||||||
var windowHeight = window.innerHeight;
|
|
||||||
var anchor = getInlineOption(el, 'anchor');
|
|
||||||
var additionalOffset = getInlineOption(el, 'offset', defaultOffset);
|
|
||||||
var finalEl = el;
|
|
||||||
|
|
||||||
if (anchor && document.querySelectorAll(anchor)) {
|
|
||||||
finalEl = document.querySelectorAll(anchor)[0];
|
|
||||||
}
|
|
||||||
|
|
||||||
var elementOffsetTop = offset(finalEl).top;
|
|
||||||
|
|
||||||
return elementOffsetTop + finalEl.offsetHeight - additionalOffset;
|
|
||||||
};
|
|
||||||
|
|
||||||
/* Clearing variables */
|
|
||||||
|
|
||||||
var prepare = function prepare($elements, options) {
|
|
||||||
$elements.forEach(function (el, i) {
|
|
||||||
var mirror = getInlineOption(el.node, 'mirror', options.mirror);
|
|
||||||
var once = getInlineOption(el.node, 'once', options.once);
|
|
||||||
var id = getInlineOption(el.node, 'id');
|
|
||||||
var customClassNames = options.useClassNames && el.node.getAttribute('data-aos');
|
|
||||||
|
|
||||||
var animatedClassNames = [options.animatedClassName].concat(customClassNames ? customClassNames.split(' ') : []).filter(function (className) {
|
|
||||||
return typeof className === 'string';
|
|
||||||
});
|
|
||||||
|
|
||||||
if (options.initClassName) {
|
|
||||||
el.node.classList.add(options.initClassName);
|
|
||||||
}
|
|
||||||
|
|
||||||
el.position = {
|
|
||||||
in: getPositionIn(el.node, options.offset, options.anchorPlacement),
|
|
||||||
out: mirror && getPositionOut(el.node, options.offset)
|
|
||||||
};
|
|
||||||
|
|
||||||
el.options = {
|
|
||||||
once: once,
|
|
||||||
mirror: mirror,
|
|
||||||
animatedClassNames: animatedClassNames,
|
|
||||||
id: id
|
|
||||||
};
|
|
||||||
});
|
|
||||||
|
|
||||||
return $elements;
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Generate initial array with elements as objects
|
|
||||||
* This array will be extended later with elements attributes values
|
|
||||||
* like 'position'
|
|
||||||
*/
|
|
||||||
var elements = (function () {
|
|
||||||
var elements = document.querySelectorAll('[data-aos]');
|
|
||||||
return Array.prototype.map.call(elements, function (node) {
|
|
||||||
return { node: node };
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
/**
|
|
||||||
* *******************************************************
|
|
||||||
* AOS (Animate on scroll) - wowjs alternative
|
|
||||||
* made to animate elements on scroll in both directions
|
|
||||||
* *******************************************************
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Private variables
|
|
||||||
*/
|
|
||||||
var $aosElements = [];
|
|
||||||
var initialized = false;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Default options
|
|
||||||
*/
|
|
||||||
var options = {
|
|
||||||
offset: 120,
|
|
||||||
delay: 0,
|
|
||||||
easing: 'ease',
|
|
||||||
duration: 400,
|
|
||||||
disable: false,
|
|
||||||
once: false,
|
|
||||||
mirror: false,
|
|
||||||
anchorPlacement: 'top-bottom',
|
|
||||||
startEvent: 'DOMContentLoaded',
|
|
||||||
animatedClassName: 'aos-animate',
|
|
||||||
initClassName: 'aos-init',
|
|
||||||
useClassNames: false,
|
|
||||||
disableMutationObserver: false,
|
|
||||||
throttleDelay: 99,
|
|
||||||
debounceDelay: 50
|
|
||||||
};
|
|
||||||
|
|
||||||
// Detect not supported browsers (<=IE9)
|
|
||||||
// http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805
|
|
||||||
var isBrowserNotSupported = function isBrowserNotSupported() {
|
|
||||||
return document.all && !window.atob;
|
|
||||||
};
|
|
||||||
|
|
||||||
var initializeScroll = function initializeScroll() {
|
|
||||||
// Extend elements objects in $aosElements with their positions
|
|
||||||
$aosElements = prepare($aosElements, options);
|
|
||||||
// Perform scroll event, to refresh view and show/hide elements
|
|
||||||
handleScroll($aosElements);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Handle scroll event to animate elements on scroll
|
|
||||||
*/
|
|
||||||
window.addEventListener('scroll', throttle(function () {
|
|
||||||
handleScroll($aosElements, options.once);
|
|
||||||
}, options.throttleDelay));
|
|
||||||
|
|
||||||
return $aosElements;
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Refresh AOS
|
|
||||||
*/
|
|
||||||
var refresh = function refresh() {
|
|
||||||
var initialize = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
|
||||||
|
|
||||||
// Allow refresh only when it was first initialized on startEvent
|
|
||||||
if (initialize) initialized = true;
|
|
||||||
if (initialized) initializeScroll();
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Hard refresh
|
|
||||||
* create array with new elements and trigger refresh
|
|
||||||
*/
|
|
||||||
var refreshHard = function refreshHard() {
|
|
||||||
$aosElements = elements();
|
|
||||||
|
|
||||||
if (isDisabled(options.disable) || isBrowserNotSupported()) {
|
|
||||||
return disable();
|
|
||||||
}
|
|
||||||
|
|
||||||
refresh();
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Disable AOS
|
|
||||||
* Remove all attributes to reset applied styles
|
|
||||||
*/
|
|
||||||
var disable = function disable() {
|
|
||||||
$aosElements.forEach(function (el, i) {
|
|
||||||
el.node.removeAttribute('data-aos');
|
|
||||||
el.node.removeAttribute('data-aos-easing');
|
|
||||||
el.node.removeAttribute('data-aos-duration');
|
|
||||||
el.node.removeAttribute('data-aos-delay');
|
|
||||||
|
|
||||||
if (options.initClassName) {
|
|
||||||
el.node.classList.remove(options.initClassName);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (options.animatedClassName) {
|
|
||||||
el.node.classList.remove(options.animatedClassName);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Check if AOS should be disabled based on provided setting
|
|
||||||
*/
|
|
||||||
var isDisabled = function isDisabled(optionDisable) {
|
|
||||||
return optionDisable === true || optionDisable === 'mobile' && detect.mobile() || optionDisable === 'phone' && detect.phone() || optionDisable === 'tablet' && detect.tablet() || typeof optionDisable === 'function' && optionDisable() === true;
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Initializing AOS
|
|
||||||
* - Create options merging defaults with user defined options
|
|
||||||
* - Set attributes on <body> as global setting - css relies on it
|
|
||||||
* - Attach preparing elements to options.startEvent,
|
|
||||||
* window resize and orientation change
|
|
||||||
* - Attach function that handle scroll and everything connected to it
|
|
||||||
* to window scroll event and fire once document is ready to set initial state
|
|
||||||
*/
|
|
||||||
var init = function init(settings) {
|
|
||||||
options = _extends(options, settings);
|
|
||||||
|
|
||||||
// Create initial array with elements -> to be fullfilled later with prepare()
|
|
||||||
$aosElements = elements();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Disable mutation observing if not supported
|
|
||||||
*/
|
|
||||||
if (!options.disableMutationObserver && !observer.isSupported()) {
|
|
||||||
console.info('\n aos: MutationObserver is not supported on this browser,\n code mutations observing has been disabled.\n You may have to call "refreshHard()" by yourself.\n ');
|
|
||||||
options.disableMutationObserver = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Observe [aos] elements
|
|
||||||
* If something is loaded by AJAX
|
|
||||||
* it'll refresh plugin automatically
|
|
||||||
*/
|
|
||||||
if (!options.disableMutationObserver) {
|
|
||||||
observer.ready('[data-aos]', refreshHard);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Don't init plugin if option `disable` is set
|
|
||||||
* or when browser is not supported
|
|
||||||
*/
|
|
||||||
if (isDisabled(options.disable) || isBrowserNotSupported()) {
|
|
||||||
return disable();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Set global settings on body, based on options
|
|
||||||
* so CSS can use it
|
|
||||||
*/
|
|
||||||
document.querySelector('body').setAttribute('data-aos-easing', options.easing);
|
|
||||||
|
|
||||||
document.querySelector('body').setAttribute('data-aos-duration', options.duration);
|
|
||||||
|
|
||||||
document.querySelector('body').setAttribute('data-aos-delay', options.delay);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Handle initializing
|
|
||||||
*/
|
|
||||||
if (['DOMContentLoaded', 'load'].indexOf(options.startEvent) === -1) {
|
|
||||||
// Listen to options.startEvent and initialize AOS
|
|
||||||
document.addEventListener(options.startEvent, function () {
|
|
||||||
refresh(true);
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
window.addEventListener('load', function () {
|
|
||||||
refresh(true);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
if (options.startEvent === 'DOMContentLoaded' && ['complete', 'interactive'].indexOf(document.readyState) > -1) {
|
|
||||||
// Initialize AOS if default startEvent was already fired
|
|
||||||
refresh(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Refresh plugin on window resize or orientation change
|
|
||||||
*/
|
|
||||||
window.addEventListener('resize', debounce(refresh, options.debounceDelay, true));
|
|
||||||
|
|
||||||
window.addEventListener('orientationchange', debounce(refresh, options.debounceDelay, true));
|
|
||||||
|
|
||||||
return $aosElements;
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Export Public API
|
|
||||||
*/
|
|
||||||
|
|
||||||
var aos = {
|
|
||||||
init: init,
|
|
||||||
refresh: refresh,
|
|
||||||
refreshHard: refreshHard
|
|
||||||
};
|
|
||||||
|
|
||||||
module.exports = aos;
|
|
@ -1,610 +0,0 @@
|
|||||||
import throttle from 'lodash.throttle';
|
|
||||||
import debounce from 'lodash.debounce';
|
|
||||||
|
|
||||||
var callback = function callback() {};
|
|
||||||
|
|
||||||
function containsAOSNode(nodes) {
|
|
||||||
var i = void 0,
|
|
||||||
currentNode = void 0,
|
|
||||||
result = void 0;
|
|
||||||
|
|
||||||
for (i = 0; i < nodes.length; i += 1) {
|
|
||||||
currentNode = nodes[i];
|
|
||||||
|
|
||||||
if (currentNode.dataset && currentNode.dataset.aos) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
result = currentNode.children && containsAOSNode(currentNode.children);
|
|
||||||
|
|
||||||
if (result) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
function check(mutations) {
|
|
||||||
if (!mutations) return;
|
|
||||||
|
|
||||||
mutations.forEach(function (mutation) {
|
|
||||||
var addedNodes = Array.prototype.slice.call(mutation.addedNodes);
|
|
||||||
var removedNodes = Array.prototype.slice.call(mutation.removedNodes);
|
|
||||||
var allNodes = addedNodes.concat(removedNodes);
|
|
||||||
|
|
||||||
if (containsAOSNode(allNodes)) {
|
|
||||||
return callback();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function getMutationObserver() {
|
|
||||||
return window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver;
|
|
||||||
}
|
|
||||||
|
|
||||||
function isSupported() {
|
|
||||||
return !!getMutationObserver();
|
|
||||||
}
|
|
||||||
|
|
||||||
function ready(selector, fn) {
|
|
||||||
var doc = window.document;
|
|
||||||
var MutationObserver = getMutationObserver();
|
|
||||||
|
|
||||||
var observer = new MutationObserver(check);
|
|
||||||
callback = fn;
|
|
||||||
|
|
||||||
observer.observe(doc.documentElement, {
|
|
||||||
childList: true,
|
|
||||||
subtree: true,
|
|
||||||
removedNodes: true
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
var observer = { isSupported: isSupported, ready: ready };
|
|
||||||
|
|
||||||
var classCallCheck = function (instance, Constructor) {
|
|
||||||
if (!(instance instanceof Constructor)) {
|
|
||||||
throw new TypeError("Cannot call a class as a function");
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
var createClass = function () {
|
|
||||||
function defineProperties(target, props) {
|
|
||||||
for (var i = 0; i < props.length; i++) {
|
|
||||||
var descriptor = props[i];
|
|
||||||
descriptor.enumerable = descriptor.enumerable || false;
|
|
||||||
descriptor.configurable = true;
|
|
||||||
if ("value" in descriptor) descriptor.writable = true;
|
|
||||||
Object.defineProperty(target, descriptor.key, descriptor);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return function (Constructor, protoProps, staticProps) {
|
|
||||||
if (protoProps) defineProperties(Constructor.prototype, protoProps);
|
|
||||||
if (staticProps) defineProperties(Constructor, staticProps);
|
|
||||||
return Constructor;
|
|
||||||
};
|
|
||||||
}();
|
|
||||||
|
|
||||||
var _extends = Object.assign || function (target) {
|
|
||||||
for (var i = 1; i < arguments.length; i++) {
|
|
||||||
var source = arguments[i];
|
|
||||||
|
|
||||||
for (var key in source) {
|
|
||||||
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
|
||||||
target[key] = source[key];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return target;
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Device detector
|
|
||||||
*/
|
|
||||||
|
|
||||||
var fullNameRe = /(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i;
|
|
||||||
var prefixRe = /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i;
|
|
||||||
var fullNameMobileRe = /(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i;
|
|
||||||
var prefixMobileRe = /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i;
|
|
||||||
|
|
||||||
function ua() {
|
|
||||||
return navigator.userAgent || navigator.vendor || window.opera || '';
|
|
||||||
}
|
|
||||||
|
|
||||||
var Detector = function () {
|
|
||||||
function Detector() {
|
|
||||||
classCallCheck(this, Detector);
|
|
||||||
}
|
|
||||||
|
|
||||||
createClass(Detector, [{
|
|
||||||
key: 'phone',
|
|
||||||
value: function phone() {
|
|
||||||
var a = ua();
|
|
||||||
return !!(fullNameRe.test(a) || prefixRe.test(a.substr(0, 4)));
|
|
||||||
}
|
|
||||||
}, {
|
|
||||||
key: 'mobile',
|
|
||||||
value: function mobile() {
|
|
||||||
var a = ua();
|
|
||||||
return !!(fullNameMobileRe.test(a) || prefixMobileRe.test(a.substr(0, 4)));
|
|
||||||
}
|
|
||||||
}, {
|
|
||||||
key: 'tablet',
|
|
||||||
value: function tablet() {
|
|
||||||
return this.mobile() && !this.phone();
|
|
||||||
}
|
|
||||||
|
|
||||||
// http://browserhacks.com/#hack-acea075d0ac6954f275a70023906050c
|
|
||||||
|
|
||||||
}, {
|
|
||||||
key: 'ie11',
|
|
||||||
value: function ie11() {
|
|
||||||
return '-ms-scroll-limit' in document.documentElement.style && '-ms-ime-align' in document.documentElement.style;
|
|
||||||
}
|
|
||||||
}]);
|
|
||||||
return Detector;
|
|
||||||
}();
|
|
||||||
|
|
||||||
var detect = new Detector();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Adds multiple classes on node
|
|
||||||
* @param {DOMNode} node
|
|
||||||
* @param {array} classes
|
|
||||||
*/
|
|
||||||
var addClasses = function addClasses(node, classes) {
|
|
||||||
return classes && classes.forEach(function (className) {
|
|
||||||
return node.classList.add(className);
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Removes multiple classes from node
|
|
||||||
* @param {DOMNode} node
|
|
||||||
* @param {array} classes
|
|
||||||
*/
|
|
||||||
var removeClasses = function removeClasses(node, classes) {
|
|
||||||
return classes && classes.forEach(function (className) {
|
|
||||||
return node.classList.remove(className);
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
var fireEvent = function fireEvent(eventName, data) {
|
|
||||||
var customEvent = void 0;
|
|
||||||
|
|
||||||
if (detect.ie11()) {
|
|
||||||
customEvent = document.createEvent('CustomEvent');
|
|
||||||
customEvent.initCustomEvent(eventName, true, true, { detail: data });
|
|
||||||
} else {
|
|
||||||
customEvent = new CustomEvent(eventName, {
|
|
||||||
detail: data
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
return document.dispatchEvent(customEvent);
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Set or remove aos-animate class
|
|
||||||
* @param {node} el element
|
|
||||||
* @param {int} top scrolled distance
|
|
||||||
*/
|
|
||||||
var applyClasses = function applyClasses(el, top) {
|
|
||||||
var options = el.options,
|
|
||||||
position = el.position,
|
|
||||||
node = el.node,
|
|
||||||
data = el.data;
|
|
||||||
|
|
||||||
|
|
||||||
var hide = function hide() {
|
|
||||||
if (!el.animated) return;
|
|
||||||
|
|
||||||
removeClasses(node, options.animatedClassNames);
|
|
||||||
fireEvent('aos:out', node);
|
|
||||||
|
|
||||||
if (el.options.id) {
|
|
||||||
fireEvent('aos:in:' + el.options.id, node);
|
|
||||||
}
|
|
||||||
|
|
||||||
el.animated = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
var show = function show() {
|
|
||||||
if (el.animated) return;
|
|
||||||
|
|
||||||
addClasses(node, options.animatedClassNames);
|
|
||||||
|
|
||||||
fireEvent('aos:in', node);
|
|
||||||
if (el.options.id) {
|
|
||||||
fireEvent('aos:in:' + el.options.id, node);
|
|
||||||
}
|
|
||||||
|
|
||||||
el.animated = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
if (options.mirror && top >= position.out && !options.once) {
|
|
||||||
hide();
|
|
||||||
} else if (top >= position.in) {
|
|
||||||
show();
|
|
||||||
} else if (el.animated && !options.once) {
|
|
||||||
hide();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Scroll logic - add or remove 'aos-animate' class on scroll
|
|
||||||
*
|
|
||||||
* @param {array} $elements array of elements nodes
|
|
||||||
* @return {void}
|
|
||||||
*/
|
|
||||||
var handleScroll = function handleScroll($elements) {
|
|
||||||
return $elements.forEach(function (el, i) {
|
|
||||||
return applyClasses(el, window.pageYOffset);
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get offset of DOM element
|
|
||||||
* like there were no transforms applied on it
|
|
||||||
*
|
|
||||||
* @param {Node} el [DOM element]
|
|
||||||
* @return {Object} [top and left offset]
|
|
||||||
*/
|
|
||||||
var offset = function offset(el) {
|
|
||||||
var _x = 0;
|
|
||||||
var _y = 0;
|
|
||||||
|
|
||||||
while (el && !isNaN(el.offsetLeft) && !isNaN(el.offsetTop)) {
|
|
||||||
_x += el.offsetLeft - (el.tagName != 'BODY' ? el.scrollLeft : 0);
|
|
||||||
_y += el.offsetTop - (el.tagName != 'BODY' ? el.scrollTop : 0);
|
|
||||||
el = el.offsetParent;
|
|
||||||
}
|
|
||||||
|
|
||||||
return {
|
|
||||||
top: _y,
|
|
||||||
left: _x
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get inline option with a fallback.
|
|
||||||
*
|
|
||||||
* @param {Node} el [Dom element]
|
|
||||||
* @param {String} key [Option key]
|
|
||||||
* @param {String} fallback [Default (fallback) value]
|
|
||||||
* @return {Mixed} [Option set with inline attributes or fallback value if not set]
|
|
||||||
*/
|
|
||||||
|
|
||||||
var getInlineOption = (function (el, key, fallback) {
|
|
||||||
var attr = el.getAttribute('data-aos-' + key);
|
|
||||||
|
|
||||||
if (typeof attr !== 'undefined') {
|
|
||||||
if (attr === 'true') {
|
|
||||||
return true;
|
|
||||||
} else if (attr === 'false') {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return attr || fallback;
|
|
||||||
});
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Calculate offset
|
|
||||||
* basing on element's settings like:
|
|
||||||
* - anchor
|
|
||||||
* - offset
|
|
||||||
*
|
|
||||||
* @param {Node} el [Dom element]
|
|
||||||
* @return {Integer} [Final offset that will be used to trigger animation in good position]
|
|
||||||
*/
|
|
||||||
|
|
||||||
var getPositionIn = function getPositionIn(el, defaultOffset, defaultAnchorPlacement) {
|
|
||||||
var windowHeight = window.innerHeight;
|
|
||||||
var anchor = getInlineOption(el, 'anchor');
|
|
||||||
var inlineAnchorPlacement = getInlineOption(el, 'anchor-placement');
|
|
||||||
var additionalOffset = Number(getInlineOption(el, 'offset', inlineAnchorPlacement ? 0 : defaultOffset));
|
|
||||||
var anchorPlacement = inlineAnchorPlacement || defaultAnchorPlacement;
|
|
||||||
var finalEl = el;
|
|
||||||
|
|
||||||
if (anchor && document.querySelectorAll(anchor)) {
|
|
||||||
finalEl = document.querySelectorAll(anchor)[0];
|
|
||||||
}
|
|
||||||
|
|
||||||
var triggerPoint = offset(finalEl).top - windowHeight;
|
|
||||||
|
|
||||||
switch (anchorPlacement) {
|
|
||||||
case 'top-bottom':
|
|
||||||
// Default offset
|
|
||||||
break;
|
|
||||||
case 'center-bottom':
|
|
||||||
triggerPoint += finalEl.offsetHeight / 2;
|
|
||||||
break;
|
|
||||||
case 'bottom-bottom':
|
|
||||||
triggerPoint += finalEl.offsetHeight;
|
|
||||||
break;
|
|
||||||
case 'top-center':
|
|
||||||
triggerPoint += windowHeight / 2;
|
|
||||||
break;
|
|
||||||
case 'center-center':
|
|
||||||
triggerPoint += windowHeight / 2 + finalEl.offsetHeight / 2;
|
|
||||||
break;
|
|
||||||
case 'bottom-center':
|
|
||||||
triggerPoint += windowHeight / 2 + finalEl.offsetHeight;
|
|
||||||
break;
|
|
||||||
case 'top-top':
|
|
||||||
triggerPoint += windowHeight;
|
|
||||||
break;
|
|
||||||
case 'bottom-top':
|
|
||||||
triggerPoint += windowHeight + finalEl.offsetHeight;
|
|
||||||
break;
|
|
||||||
case 'center-top':
|
|
||||||
triggerPoint += windowHeight + finalEl.offsetHeight / 2;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
return triggerPoint + additionalOffset;
|
|
||||||
};
|
|
||||||
|
|
||||||
var getPositionOut = function getPositionOut(el, defaultOffset) {
|
|
||||||
var windowHeight = window.innerHeight;
|
|
||||||
var anchor = getInlineOption(el, 'anchor');
|
|
||||||
var additionalOffset = getInlineOption(el, 'offset', defaultOffset);
|
|
||||||
var finalEl = el;
|
|
||||||
|
|
||||||
if (anchor && document.querySelectorAll(anchor)) {
|
|
||||||
finalEl = document.querySelectorAll(anchor)[0];
|
|
||||||
}
|
|
||||||
|
|
||||||
var elementOffsetTop = offset(finalEl).top;
|
|
||||||
|
|
||||||
return elementOffsetTop + finalEl.offsetHeight - additionalOffset;
|
|
||||||
};
|
|
||||||
|
|
||||||
/* Clearing variables */
|
|
||||||
|
|
||||||
var prepare = function prepare($elements, options) {
|
|
||||||
$elements.forEach(function (el, i) {
|
|
||||||
var mirror = getInlineOption(el.node, 'mirror', options.mirror);
|
|
||||||
var once = getInlineOption(el.node, 'once', options.once);
|
|
||||||
var id = getInlineOption(el.node, 'id');
|
|
||||||
var customClassNames = options.useClassNames && el.node.getAttribute('data-aos');
|
|
||||||
|
|
||||||
var animatedClassNames = [options.animatedClassName].concat(customClassNames ? customClassNames.split(' ') : []).filter(function (className) {
|
|
||||||
return typeof className === 'string';
|
|
||||||
});
|
|
||||||
|
|
||||||
if (options.initClassName) {
|
|
||||||
el.node.classList.add(options.initClassName);
|
|
||||||
}
|
|
||||||
|
|
||||||
el.position = {
|
|
||||||
in: getPositionIn(el.node, options.offset, options.anchorPlacement),
|
|
||||||
out: mirror && getPositionOut(el.node, options.offset)
|
|
||||||
};
|
|
||||||
|
|
||||||
el.options = {
|
|
||||||
once: once,
|
|
||||||
mirror: mirror,
|
|
||||||
animatedClassNames: animatedClassNames,
|
|
||||||
id: id
|
|
||||||
};
|
|
||||||
});
|
|
||||||
|
|
||||||
return $elements;
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Generate initial array with elements as objects
|
|
||||||
* This array will be extended later with elements attributes values
|
|
||||||
* like 'position'
|
|
||||||
*/
|
|
||||||
var elements = (function () {
|
|
||||||
var elements = document.querySelectorAll('[data-aos]');
|
|
||||||
return Array.prototype.map.call(elements, function (node) {
|
|
||||||
return { node: node };
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
/**
|
|
||||||
* *******************************************************
|
|
||||||
* AOS (Animate on scroll) - wowjs alternative
|
|
||||||
* made to animate elements on scroll in both directions
|
|
||||||
* *******************************************************
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Private variables
|
|
||||||
*/
|
|
||||||
var $aosElements = [];
|
|
||||||
var initialized = false;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Default options
|
|
||||||
*/
|
|
||||||
var options = {
|
|
||||||
offset: 120,
|
|
||||||
delay: 0,
|
|
||||||
easing: 'ease',
|
|
||||||
duration: 400,
|
|
||||||
disable: false,
|
|
||||||
once: false,
|
|
||||||
mirror: false,
|
|
||||||
anchorPlacement: 'top-bottom',
|
|
||||||
startEvent: 'DOMContentLoaded',
|
|
||||||
animatedClassName: 'aos-animate',
|
|
||||||
initClassName: 'aos-init',
|
|
||||||
useClassNames: false,
|
|
||||||
disableMutationObserver: false,
|
|
||||||
throttleDelay: 99,
|
|
||||||
debounceDelay: 50
|
|
||||||
};
|
|
||||||
|
|
||||||
// Detect not supported browsers (<=IE9)
|
|
||||||
// http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805
|
|
||||||
var isBrowserNotSupported = function isBrowserNotSupported() {
|
|
||||||
return document.all && !window.atob;
|
|
||||||
};
|
|
||||||
|
|
||||||
var initializeScroll = function initializeScroll() {
|
|
||||||
// Extend elements objects in $aosElements with their positions
|
|
||||||
$aosElements = prepare($aosElements, options);
|
|
||||||
// Perform scroll event, to refresh view and show/hide elements
|
|
||||||
handleScroll($aosElements);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Handle scroll event to animate elements on scroll
|
|
||||||
*/
|
|
||||||
window.addEventListener('scroll', throttle(function () {
|
|
||||||
handleScroll($aosElements, options.once);
|
|
||||||
}, options.throttleDelay));
|
|
||||||
|
|
||||||
return $aosElements;
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Refresh AOS
|
|
||||||
*/
|
|
||||||
var refresh = function refresh() {
|
|
||||||
var initialize = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
|
||||||
|
|
||||||
// Allow refresh only when it was first initialized on startEvent
|
|
||||||
if (initialize) initialized = true;
|
|
||||||
if (initialized) initializeScroll();
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Hard refresh
|
|
||||||
* create array with new elements and trigger refresh
|
|
||||||
*/
|
|
||||||
var refreshHard = function refreshHard() {
|
|
||||||
$aosElements = elements();
|
|
||||||
|
|
||||||
if (isDisabled(options.disable) || isBrowserNotSupported()) {
|
|
||||||
return disable();
|
|
||||||
}
|
|
||||||
|
|
||||||
refresh();
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Disable AOS
|
|
||||||
* Remove all attributes to reset applied styles
|
|
||||||
*/
|
|
||||||
var disable = function disable() {
|
|
||||||
$aosElements.forEach(function (el, i) {
|
|
||||||
el.node.removeAttribute('data-aos');
|
|
||||||
el.node.removeAttribute('data-aos-easing');
|
|
||||||
el.node.removeAttribute('data-aos-duration');
|
|
||||||
el.node.removeAttribute('data-aos-delay');
|
|
||||||
|
|
||||||
if (options.initClassName) {
|
|
||||||
el.node.classList.remove(options.initClassName);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (options.animatedClassName) {
|
|
||||||
el.node.classList.remove(options.animatedClassName);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Check if AOS should be disabled based on provided setting
|
|
||||||
*/
|
|
||||||
var isDisabled = function isDisabled(optionDisable) {
|
|
||||||
return optionDisable === true || optionDisable === 'mobile' && detect.mobile() || optionDisable === 'phone' && detect.phone() || optionDisable === 'tablet' && detect.tablet() || typeof optionDisable === 'function' && optionDisable() === true;
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Initializing AOS
|
|
||||||
* - Create options merging defaults with user defined options
|
|
||||||
* - Set attributes on <body> as global setting - css relies on it
|
|
||||||
* - Attach preparing elements to options.startEvent,
|
|
||||||
* window resize and orientation change
|
|
||||||
* - Attach function that handle scroll and everything connected to it
|
|
||||||
* to window scroll event and fire once document is ready to set initial state
|
|
||||||
*/
|
|
||||||
var init = function init(settings) {
|
|
||||||
options = _extends(options, settings);
|
|
||||||
|
|
||||||
// Create initial array with elements -> to be fullfilled later with prepare()
|
|
||||||
$aosElements = elements();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Disable mutation observing if not supported
|
|
||||||
*/
|
|
||||||
if (!options.disableMutationObserver && !observer.isSupported()) {
|
|
||||||
console.info('\n aos: MutationObserver is not supported on this browser,\n code mutations observing has been disabled.\n You may have to call "refreshHard()" by yourself.\n ');
|
|
||||||
options.disableMutationObserver = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Observe [aos] elements
|
|
||||||
* If something is loaded by AJAX
|
|
||||||
* it'll refresh plugin automatically
|
|
||||||
*/
|
|
||||||
if (!options.disableMutationObserver) {
|
|
||||||
observer.ready('[data-aos]', refreshHard);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Don't init plugin if option `disable` is set
|
|
||||||
* or when browser is not supported
|
|
||||||
*/
|
|
||||||
if (isDisabled(options.disable) || isBrowserNotSupported()) {
|
|
||||||
return disable();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Set global settings on body, based on options
|
|
||||||
* so CSS can use it
|
|
||||||
*/
|
|
||||||
document.querySelector('body').setAttribute('data-aos-easing', options.easing);
|
|
||||||
|
|
||||||
document.querySelector('body').setAttribute('data-aos-duration', options.duration);
|
|
||||||
|
|
||||||
document.querySelector('body').setAttribute('data-aos-delay', options.delay);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Handle initializing
|
|
||||||
*/
|
|
||||||
if (['DOMContentLoaded', 'load'].indexOf(options.startEvent) === -1) {
|
|
||||||
// Listen to options.startEvent and initialize AOS
|
|
||||||
document.addEventListener(options.startEvent, function () {
|
|
||||||
refresh(true);
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
window.addEventListener('load', function () {
|
|
||||||
refresh(true);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
if (options.startEvent === 'DOMContentLoaded' && ['complete', 'interactive'].indexOf(document.readyState) > -1) {
|
|
||||||
// Initialize AOS if default startEvent was already fired
|
|
||||||
refresh(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Refresh plugin on window resize or orientation change
|
|
||||||
*/
|
|
||||||
window.addEventListener('resize', debounce(refresh, options.debounceDelay, true));
|
|
||||||
|
|
||||||
window.addEventListener('orientationchange', debounce(refresh, options.debounceDelay, true));
|
|
||||||
|
|
||||||
return $aosElements;
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Export Public API
|
|
||||||
*/
|
|
||||||
|
|
||||||
var aos = {
|
|
||||||
init: init,
|
|
||||||
refresh: refresh,
|
|
||||||
refreshHard: refreshHard
|
|
||||||
};
|
|
||||||
|
|
||||||
export default aos;
|
|
@ -1,597 +0,0 @@
|
|||||||
/*!
|
|
||||||
* Bootstrap Reboot v5.3.7 (https://getbootstrap.com/)
|
|
||||||
* Copyright 2011-2025 The Bootstrap Authors
|
|
||||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
|
||||||
*/
|
|
||||||
:root,
|
|
||||||
[data-bs-theme=light] {
|
|
||||||
--bs-blue: #0d6efd;
|
|
||||||
--bs-indigo: #6610f2;
|
|
||||||
--bs-purple: #6f42c1;
|
|
||||||
--bs-pink: #d63384;
|
|
||||||
--bs-red: #dc3545;
|
|
||||||
--bs-orange: #fd7e14;
|
|
||||||
--bs-yellow: #ffc107;
|
|
||||||
--bs-green: #198754;
|
|
||||||
--bs-teal: #20c997;
|
|
||||||
--bs-cyan: #0dcaf0;
|
|
||||||
--bs-black: #000;
|
|
||||||
--bs-white: #fff;
|
|
||||||
--bs-gray: #6c757d;
|
|
||||||
--bs-gray-dark: #343a40;
|
|
||||||
--bs-gray-100: #f8f9fa;
|
|
||||||
--bs-gray-200: #e9ecef;
|
|
||||||
--bs-gray-300: #dee2e6;
|
|
||||||
--bs-gray-400: #ced4da;
|
|
||||||
--bs-gray-500: #adb5bd;
|
|
||||||
--bs-gray-600: #6c757d;
|
|
||||||
--bs-gray-700: #495057;
|
|
||||||
--bs-gray-800: #343a40;
|
|
||||||
--bs-gray-900: #212529;
|
|
||||||
--bs-primary: #0d6efd;
|
|
||||||
--bs-secondary: #6c757d;
|
|
||||||
--bs-success: #198754;
|
|
||||||
--bs-info: #0dcaf0;
|
|
||||||
--bs-warning: #ffc107;
|
|
||||||
--bs-danger: #dc3545;
|
|
||||||
--bs-light: #f8f9fa;
|
|
||||||
--bs-dark: #212529;
|
|
||||||
--bs-primary-rgb: 13, 110, 253;
|
|
||||||
--bs-secondary-rgb: 108, 117, 125;
|
|
||||||
--bs-success-rgb: 25, 135, 84;
|
|
||||||
--bs-info-rgb: 13, 202, 240;
|
|
||||||
--bs-warning-rgb: 255, 193, 7;
|
|
||||||
--bs-danger-rgb: 220, 53, 69;
|
|
||||||
--bs-light-rgb: 248, 249, 250;
|
|
||||||
--bs-dark-rgb: 33, 37, 41;
|
|
||||||
--bs-primary-text-emphasis: #052c65;
|
|
||||||
--bs-secondary-text-emphasis: #2b2f32;
|
|
||||||
--bs-success-text-emphasis: #0a3622;
|
|
||||||
--bs-info-text-emphasis: #055160;
|
|
||||||
--bs-warning-text-emphasis: #664d03;
|
|
||||||
--bs-danger-text-emphasis: #58151c;
|
|
||||||
--bs-light-text-emphasis: #495057;
|
|
||||||
--bs-dark-text-emphasis: #495057;
|
|
||||||
--bs-primary-bg-subtle: #cfe2ff;
|
|
||||||
--bs-secondary-bg-subtle: #e2e3e5;
|
|
||||||
--bs-success-bg-subtle: #d1e7dd;
|
|
||||||
--bs-info-bg-subtle: #cff4fc;
|
|
||||||
--bs-warning-bg-subtle: #fff3cd;
|
|
||||||
--bs-danger-bg-subtle: #f8d7da;
|
|
||||||
--bs-light-bg-subtle: #fcfcfd;
|
|
||||||
--bs-dark-bg-subtle: #ced4da;
|
|
||||||
--bs-primary-border-subtle: #9ec5fe;
|
|
||||||
--bs-secondary-border-subtle: #c4c8cb;
|
|
||||||
--bs-success-border-subtle: #a3cfbb;
|
|
||||||
--bs-info-border-subtle: #9eeaf9;
|
|
||||||
--bs-warning-border-subtle: #ffe69c;
|
|
||||||
--bs-danger-border-subtle: #f1aeb5;
|
|
||||||
--bs-light-border-subtle: #e9ecef;
|
|
||||||
--bs-dark-border-subtle: #adb5bd;
|
|
||||||
--bs-white-rgb: 255, 255, 255;
|
|
||||||
--bs-black-rgb: 0, 0, 0;
|
|
||||||
--bs-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
|
|
||||||
--bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
|
|
||||||
--bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));
|
|
||||||
--bs-body-font-family: var(--bs-font-sans-serif);
|
|
||||||
--bs-body-font-size: 1rem;
|
|
||||||
--bs-body-font-weight: 400;
|
|
||||||
--bs-body-line-height: 1.5;
|
|
||||||
--bs-body-color: #212529;
|
|
||||||
--bs-body-color-rgb: 33, 37, 41;
|
|
||||||
--bs-body-bg: #fff;
|
|
||||||
--bs-body-bg-rgb: 255, 255, 255;
|
|
||||||
--bs-emphasis-color: #000;
|
|
||||||
--bs-emphasis-color-rgb: 0, 0, 0;
|
|
||||||
--bs-secondary-color: rgba(33, 37, 41, 0.75);
|
|
||||||
--bs-secondary-color-rgb: 33, 37, 41;
|
|
||||||
--bs-secondary-bg: #e9ecef;
|
|
||||||
--bs-secondary-bg-rgb: 233, 236, 239;
|
|
||||||
--bs-tertiary-color: rgba(33, 37, 41, 0.5);
|
|
||||||
--bs-tertiary-color-rgb: 33, 37, 41;
|
|
||||||
--bs-tertiary-bg: #f8f9fa;
|
|
||||||
--bs-tertiary-bg-rgb: 248, 249, 250;
|
|
||||||
--bs-heading-color: inherit;
|
|
||||||
--bs-link-color: #0d6efd;
|
|
||||||
--bs-link-color-rgb: 13, 110, 253;
|
|
||||||
--bs-link-decoration: underline;
|
|
||||||
--bs-link-hover-color: #0a58ca;
|
|
||||||
--bs-link-hover-color-rgb: 10, 88, 202;
|
|
||||||
--bs-code-color: #d63384;
|
|
||||||
--bs-highlight-color: #212529;
|
|
||||||
--bs-highlight-bg: #fff3cd;
|
|
||||||
--bs-border-width: 1px;
|
|
||||||
--bs-border-style: solid;
|
|
||||||
--bs-border-color: #dee2e6;
|
|
||||||
--bs-border-color-translucent: rgba(0, 0, 0, 0.175);
|
|
||||||
--bs-border-radius: 0.375rem;
|
|
||||||
--bs-border-radius-sm: 0.25rem;
|
|
||||||
--bs-border-radius-lg: 0.5rem;
|
|
||||||
--bs-border-radius-xl: 1rem;
|
|
||||||
--bs-border-radius-xxl: 2rem;
|
|
||||||
--bs-border-radius-2xl: var(--bs-border-radius-xxl);
|
|
||||||
--bs-border-radius-pill: 50rem;
|
|
||||||
--bs-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
|
|
||||||
--bs-box-shadow-sm: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);
|
|
||||||
--bs-box-shadow-lg: 0 1rem 3rem rgba(0, 0, 0, 0.175);
|
|
||||||
--bs-box-shadow-inset: inset 0 1px 2px rgba(0, 0, 0, 0.075);
|
|
||||||
--bs-focus-ring-width: 0.25rem;
|
|
||||||
--bs-focus-ring-opacity: 0.25;
|
|
||||||
--bs-focus-ring-color: rgba(13, 110, 253, 0.25);
|
|
||||||
--bs-form-valid-color: #198754;
|
|
||||||
--bs-form-valid-border-color: #198754;
|
|
||||||
--bs-form-invalid-color: #dc3545;
|
|
||||||
--bs-form-invalid-border-color: #dc3545;
|
|
||||||
}
|
|
||||||
|
|
||||||
[data-bs-theme=dark] {
|
|
||||||
color-scheme: dark;
|
|
||||||
--bs-body-color: #dee2e6;
|
|
||||||
--bs-body-color-rgb: 222, 226, 230;
|
|
||||||
--bs-body-bg: #212529;
|
|
||||||
--bs-body-bg-rgb: 33, 37, 41;
|
|
||||||
--bs-emphasis-color: #fff;
|
|
||||||
--bs-emphasis-color-rgb: 255, 255, 255;
|
|
||||||
--bs-secondary-color: rgba(222, 226, 230, 0.75);
|
|
||||||
--bs-secondary-color-rgb: 222, 226, 230;
|
|
||||||
--bs-secondary-bg: #343a40;
|
|
||||||
--bs-secondary-bg-rgb: 52, 58, 64;
|
|
||||||
--bs-tertiary-color: rgba(222, 226, 230, 0.5);
|
|
||||||
--bs-tertiary-color-rgb: 222, 226, 230;
|
|
||||||
--bs-tertiary-bg: #2b3035;
|
|
||||||
--bs-tertiary-bg-rgb: 43, 48, 53;
|
|
||||||
--bs-primary-text-emphasis: #6ea8fe;
|
|
||||||
--bs-secondary-text-emphasis: #a7acb1;
|
|
||||||
--bs-success-text-emphasis: #75b798;
|
|
||||||
--bs-info-text-emphasis: #6edff6;
|
|
||||||
--bs-warning-text-emphasis: #ffda6a;
|
|
||||||
--bs-danger-text-emphasis: #ea868f;
|
|
||||||
--bs-light-text-emphasis: #f8f9fa;
|
|
||||||
--bs-dark-text-emphasis: #dee2e6;
|
|
||||||
--bs-primary-bg-subtle: #031633;
|
|
||||||
--bs-secondary-bg-subtle: #161719;
|
|
||||||
--bs-success-bg-subtle: #051b11;
|
|
||||||
--bs-info-bg-subtle: #032830;
|
|
||||||
--bs-warning-bg-subtle: #332701;
|
|
||||||
--bs-danger-bg-subtle: #2c0b0e;
|
|
||||||
--bs-light-bg-subtle: #343a40;
|
|
||||||
--bs-dark-bg-subtle: #1a1d20;
|
|
||||||
--bs-primary-border-subtle: #084298;
|
|
||||||
--bs-secondary-border-subtle: #41464b;
|
|
||||||
--bs-success-border-subtle: #0f5132;
|
|
||||||
--bs-info-border-subtle: #087990;
|
|
||||||
--bs-warning-border-subtle: #997404;
|
|
||||||
--bs-danger-border-subtle: #842029;
|
|
||||||
--bs-light-border-subtle: #495057;
|
|
||||||
--bs-dark-border-subtle: #343a40;
|
|
||||||
--bs-heading-color: inherit;
|
|
||||||
--bs-link-color: #6ea8fe;
|
|
||||||
--bs-link-hover-color: #8bb9fe;
|
|
||||||
--bs-link-color-rgb: 110, 168, 254;
|
|
||||||
--bs-link-hover-color-rgb: 139, 185, 254;
|
|
||||||
--bs-code-color: #e685b5;
|
|
||||||
--bs-highlight-color: #dee2e6;
|
|
||||||
--bs-highlight-bg: #664d03;
|
|
||||||
--bs-border-color: #495057;
|
|
||||||
--bs-border-color-translucent: rgba(255, 255, 255, 0.15);
|
|
||||||
--bs-form-valid-color: #75b798;
|
|
||||||
--bs-form-valid-border-color: #75b798;
|
|
||||||
--bs-form-invalid-color: #ea868f;
|
|
||||||
--bs-form-invalid-border-color: #ea868f;
|
|
||||||
}
|
|
||||||
|
|
||||||
*,
|
|
||||||
*::before,
|
|
||||||
*::after {
|
|
||||||
box-sizing: border-box;
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (prefers-reduced-motion: no-preference) {
|
|
||||||
:root {
|
|
||||||
scroll-behavior: smooth;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
body {
|
|
||||||
margin: 0;
|
|
||||||
font-family: var(--bs-body-font-family);
|
|
||||||
font-size: var(--bs-body-font-size);
|
|
||||||
font-weight: var(--bs-body-font-weight);
|
|
||||||
line-height: var(--bs-body-line-height);
|
|
||||||
color: var(--bs-body-color);
|
|
||||||
text-align: var(--bs-body-text-align);
|
|
||||||
background-color: var(--bs-body-bg);
|
|
||||||
-webkit-text-size-adjust: 100%;
|
|
||||||
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
hr {
|
|
||||||
margin: 1rem 0;
|
|
||||||
color: inherit;
|
|
||||||
border: 0;
|
|
||||||
border-top: var(--bs-border-width) solid;
|
|
||||||
opacity: 0.25;
|
|
||||||
}
|
|
||||||
|
|
||||||
h6, h5, h4, h3, h2, h1 {
|
|
||||||
margin-top: 0;
|
|
||||||
margin-bottom: 0.5rem;
|
|
||||||
font-weight: 500;
|
|
||||||
line-height: 1.2;
|
|
||||||
color: var(--bs-heading-color);
|
|
||||||
}
|
|
||||||
|
|
||||||
h1 {
|
|
||||||
font-size: calc(1.375rem + 1.5vw);
|
|
||||||
}
|
|
||||||
@media (min-width: 1200px) {
|
|
||||||
h1 {
|
|
||||||
font-size: 2.5rem;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
h2 {
|
|
||||||
font-size: calc(1.325rem + 0.9vw);
|
|
||||||
}
|
|
||||||
@media (min-width: 1200px) {
|
|
||||||
h2 {
|
|
||||||
font-size: 2rem;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
h3 {
|
|
||||||
font-size: calc(1.3rem + 0.6vw);
|
|
||||||
}
|
|
||||||
@media (min-width: 1200px) {
|
|
||||||
h3 {
|
|
||||||
font-size: 1.75rem;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
h4 {
|
|
||||||
font-size: calc(1.275rem + 0.3vw);
|
|
||||||
}
|
|
||||||
@media (min-width: 1200px) {
|
|
||||||
h4 {
|
|
||||||
font-size: 1.5rem;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
h5 {
|
|
||||||
font-size: 1.25rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
h6 {
|
|
||||||
font-size: 1rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
p {
|
|
||||||
margin-top: 0;
|
|
||||||
margin-bottom: 1rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
abbr[title] {
|
|
||||||
-webkit-text-decoration: underline dotted;
|
|
||||||
text-decoration: underline dotted;
|
|
||||||
cursor: help;
|
|
||||||
-webkit-text-decoration-skip-ink: none;
|
|
||||||
text-decoration-skip-ink: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
address {
|
|
||||||
margin-bottom: 1rem;
|
|
||||||
font-style: normal;
|
|
||||||
line-height: inherit;
|
|
||||||
}
|
|
||||||
|
|
||||||
ol,
|
|
||||||
ul {
|
|
||||||
padding-left: 2rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
ol,
|
|
||||||
ul,
|
|
||||||
dl {
|
|
||||||
margin-top: 0;
|
|
||||||
margin-bottom: 1rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
ol ol,
|
|
||||||
ul ul,
|
|
||||||
ol ul,
|
|
||||||
ul ol {
|
|
||||||
margin-bottom: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
dt {
|
|
||||||
font-weight: 700;
|
|
||||||
}
|
|
||||||
|
|
||||||
dd {
|
|
||||||
margin-bottom: 0.5rem;
|
|
||||||
margin-left: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
blockquote {
|
|
||||||
margin: 0 0 1rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
b,
|
|
||||||
strong {
|
|
||||||
font-weight: bolder;
|
|
||||||
}
|
|
||||||
|
|
||||||
small {
|
|
||||||
font-size: 0.875em;
|
|
||||||
}
|
|
||||||
|
|
||||||
mark {
|
|
||||||
padding: 0.1875em;
|
|
||||||
color: var(--bs-highlight-color);
|
|
||||||
background-color: var(--bs-highlight-bg);
|
|
||||||
}
|
|
||||||
|
|
||||||
sub,
|
|
||||||
sup {
|
|
||||||
position: relative;
|
|
||||||
font-size: 0.75em;
|
|
||||||
line-height: 0;
|
|
||||||
vertical-align: baseline;
|
|
||||||
}
|
|
||||||
|
|
||||||
sub {
|
|
||||||
bottom: -0.25em;
|
|
||||||
}
|
|
||||||
|
|
||||||
sup {
|
|
||||||
top: -0.5em;
|
|
||||||
}
|
|
||||||
|
|
||||||
a {
|
|
||||||
color: rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 1));
|
|
||||||
text-decoration: underline;
|
|
||||||
}
|
|
||||||
a:hover {
|
|
||||||
--bs-link-color-rgb: var(--bs-link-hover-color-rgb);
|
|
||||||
}
|
|
||||||
|
|
||||||
a:not([href]):not([class]), a:not([href]):not([class]):hover {
|
|
||||||
color: inherit;
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
pre,
|
|
||||||
code,
|
|
||||||
kbd,
|
|
||||||
samp {
|
|
||||||
font-family: var(--bs-font-monospace);
|
|
||||||
font-size: 1em;
|
|
||||||
}
|
|
||||||
|
|
||||||
pre {
|
|
||||||
display: block;
|
|
||||||
margin-top: 0;
|
|
||||||
margin-bottom: 1rem;
|
|
||||||
overflow: auto;
|
|
||||||
font-size: 0.875em;
|
|
||||||
}
|
|
||||||
pre code {
|
|
||||||
font-size: inherit;
|
|
||||||
color: inherit;
|
|
||||||
word-break: normal;
|
|
||||||
}
|
|
||||||
|
|
||||||
code {
|
|
||||||
font-size: 0.875em;
|
|
||||||
color: var(--bs-code-color);
|
|
||||||
word-wrap: break-word;
|
|
||||||
}
|
|
||||||
a > code {
|
|
||||||
color: inherit;
|
|
||||||
}
|
|
||||||
|
|
||||||
kbd {
|
|
||||||
padding: 0.1875rem 0.375rem;
|
|
||||||
font-size: 0.875em;
|
|
||||||
color: var(--bs-body-bg);
|
|
||||||
background-color: var(--bs-body-color);
|
|
||||||
border-radius: 0.25rem;
|
|
||||||
}
|
|
||||||
kbd kbd {
|
|
||||||
padding: 0;
|
|
||||||
font-size: 1em;
|
|
||||||
}
|
|
||||||
|
|
||||||
figure {
|
|
||||||
margin: 0 0 1rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
img,
|
|
||||||
svg {
|
|
||||||
vertical-align: middle;
|
|
||||||
}
|
|
||||||
|
|
||||||
table {
|
|
||||||
caption-side: bottom;
|
|
||||||
border-collapse: collapse;
|
|
||||||
}
|
|
||||||
|
|
||||||
caption {
|
|
||||||
padding-top: 0.5rem;
|
|
||||||
padding-bottom: 0.5rem;
|
|
||||||
color: var(--bs-secondary-color);
|
|
||||||
text-align: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
th {
|
|
||||||
text-align: inherit;
|
|
||||||
text-align: -webkit-match-parent;
|
|
||||||
}
|
|
||||||
|
|
||||||
thead,
|
|
||||||
tbody,
|
|
||||||
tfoot,
|
|
||||||
tr,
|
|
||||||
td,
|
|
||||||
th {
|
|
||||||
border-color: inherit;
|
|
||||||
border-style: solid;
|
|
||||||
border-width: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
label {
|
|
||||||
display: inline-block;
|
|
||||||
}
|
|
||||||
|
|
||||||
button {
|
|
||||||
border-radius: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
button:focus:not(:focus-visible) {
|
|
||||||
outline: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
input,
|
|
||||||
button,
|
|
||||||
select,
|
|
||||||
optgroup,
|
|
||||||
textarea {
|
|
||||||
margin: 0;
|
|
||||||
font-family: inherit;
|
|
||||||
font-size: inherit;
|
|
||||||
line-height: inherit;
|
|
||||||
}
|
|
||||||
|
|
||||||
button,
|
|
||||||
select {
|
|
||||||
text-transform: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
[role=button] {
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
|
|
||||||
select {
|
|
||||||
word-wrap: normal;
|
|
||||||
}
|
|
||||||
select:disabled {
|
|
||||||
opacity: 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
[list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator {
|
|
||||||
display: none !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
button,
|
|
||||||
[type=button],
|
|
||||||
[type=reset],
|
|
||||||
[type=submit] {
|
|
||||||
-webkit-appearance: button;
|
|
||||||
}
|
|
||||||
button:not(:disabled),
|
|
||||||
[type=button]:not(:disabled),
|
|
||||||
[type=reset]:not(:disabled),
|
|
||||||
[type=submit]:not(:disabled) {
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
|
|
||||||
::-moz-focus-inner {
|
|
||||||
padding: 0;
|
|
||||||
border-style: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
textarea {
|
|
||||||
resize: vertical;
|
|
||||||
}
|
|
||||||
|
|
||||||
fieldset {
|
|
||||||
min-width: 0;
|
|
||||||
padding: 0;
|
|
||||||
margin: 0;
|
|
||||||
border: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
legend {
|
|
||||||
float: left;
|
|
||||||
width: 100%;
|
|
||||||
padding: 0;
|
|
||||||
margin-bottom: 0.5rem;
|
|
||||||
line-height: inherit;
|
|
||||||
font-size: calc(1.275rem + 0.3vw);
|
|
||||||
}
|
|
||||||
@media (min-width: 1200px) {
|
|
||||||
legend {
|
|
||||||
font-size: 1.5rem;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
legend + * {
|
|
||||||
clear: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
::-webkit-datetime-edit-fields-wrapper,
|
|
||||||
::-webkit-datetime-edit-text,
|
|
||||||
::-webkit-datetime-edit-minute,
|
|
||||||
::-webkit-datetime-edit-hour-field,
|
|
||||||
::-webkit-datetime-edit-day-field,
|
|
||||||
::-webkit-datetime-edit-month-field,
|
|
||||||
::-webkit-datetime-edit-year-field {
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
::-webkit-inner-spin-button {
|
|
||||||
height: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
[type=search] {
|
|
||||||
-webkit-appearance: textfield;
|
|
||||||
outline-offset: -2px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* rtl:raw:
|
|
||||||
[type="tel"],
|
|
||||||
[type="url"],
|
|
||||||
[type="email"],
|
|
||||||
[type="number"] {
|
|
||||||
direction: ltr;
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
::-webkit-search-decoration {
|
|
||||||
-webkit-appearance: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
::-webkit-color-swatch-wrapper {
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
::-webkit-file-upload-button {
|
|
||||||
font: inherit;
|
|
||||||
-webkit-appearance: button;
|
|
||||||
}
|
|
||||||
|
|
||||||
::file-selector-button {
|
|
||||||
font: inherit;
|
|
||||||
-webkit-appearance: button;
|
|
||||||
}
|
|
||||||
|
|
||||||
output {
|
|
||||||
display: inline-block;
|
|
||||||
}
|
|
||||||
|
|
||||||
iframe {
|
|
||||||
border: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
summary {
|
|
||||||
display: list-item;
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
|
|
||||||
progress {
|
|
||||||
vertical-align: baseline;
|
|
||||||
}
|
|
||||||
|
|
||||||
[hidden] {
|
|
||||||
display: none !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*# sourceMappingURL=bootstrap-reboot.css.map */
|
|
@ -1,594 +0,0 @@
|
|||||||
/*!
|
|
||||||
* Bootstrap Reboot v5.3.7 (https://getbootstrap.com/)
|
|
||||||
* Copyright 2011-2025 The Bootstrap Authors
|
|
||||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
|
||||||
*/
|
|
||||||
:root,
|
|
||||||
[data-bs-theme=light] {
|
|
||||||
--bs-blue: #0d6efd;
|
|
||||||
--bs-indigo: #6610f2;
|
|
||||||
--bs-purple: #6f42c1;
|
|
||||||
--bs-pink: #d63384;
|
|
||||||
--bs-red: #dc3545;
|
|
||||||
--bs-orange: #fd7e14;
|
|
||||||
--bs-yellow: #ffc107;
|
|
||||||
--bs-green: #198754;
|
|
||||||
--bs-teal: #20c997;
|
|
||||||
--bs-cyan: #0dcaf0;
|
|
||||||
--bs-black: #000;
|
|
||||||
--bs-white: #fff;
|
|
||||||
--bs-gray: #6c757d;
|
|
||||||
--bs-gray-dark: #343a40;
|
|
||||||
--bs-gray-100: #f8f9fa;
|
|
||||||
--bs-gray-200: #e9ecef;
|
|
||||||
--bs-gray-300: #dee2e6;
|
|
||||||
--bs-gray-400: #ced4da;
|
|
||||||
--bs-gray-500: #adb5bd;
|
|
||||||
--bs-gray-600: #6c757d;
|
|
||||||
--bs-gray-700: #495057;
|
|
||||||
--bs-gray-800: #343a40;
|
|
||||||
--bs-gray-900: #212529;
|
|
||||||
--bs-primary: #0d6efd;
|
|
||||||
--bs-secondary: #6c757d;
|
|
||||||
--bs-success: #198754;
|
|
||||||
--bs-info: #0dcaf0;
|
|
||||||
--bs-warning: #ffc107;
|
|
||||||
--bs-danger: #dc3545;
|
|
||||||
--bs-light: #f8f9fa;
|
|
||||||
--bs-dark: #212529;
|
|
||||||
--bs-primary-rgb: 13, 110, 253;
|
|
||||||
--bs-secondary-rgb: 108, 117, 125;
|
|
||||||
--bs-success-rgb: 25, 135, 84;
|
|
||||||
--bs-info-rgb: 13, 202, 240;
|
|
||||||
--bs-warning-rgb: 255, 193, 7;
|
|
||||||
--bs-danger-rgb: 220, 53, 69;
|
|
||||||
--bs-light-rgb: 248, 249, 250;
|
|
||||||
--bs-dark-rgb: 33, 37, 41;
|
|
||||||
--bs-primary-text-emphasis: #052c65;
|
|
||||||
--bs-secondary-text-emphasis: #2b2f32;
|
|
||||||
--bs-success-text-emphasis: #0a3622;
|
|
||||||
--bs-info-text-emphasis: #055160;
|
|
||||||
--bs-warning-text-emphasis: #664d03;
|
|
||||||
--bs-danger-text-emphasis: #58151c;
|
|
||||||
--bs-light-text-emphasis: #495057;
|
|
||||||
--bs-dark-text-emphasis: #495057;
|
|
||||||
--bs-primary-bg-subtle: #cfe2ff;
|
|
||||||
--bs-secondary-bg-subtle: #e2e3e5;
|
|
||||||
--bs-success-bg-subtle: #d1e7dd;
|
|
||||||
--bs-info-bg-subtle: #cff4fc;
|
|
||||||
--bs-warning-bg-subtle: #fff3cd;
|
|
||||||
--bs-danger-bg-subtle: #f8d7da;
|
|
||||||
--bs-light-bg-subtle: #fcfcfd;
|
|
||||||
--bs-dark-bg-subtle: #ced4da;
|
|
||||||
--bs-primary-border-subtle: #9ec5fe;
|
|
||||||
--bs-secondary-border-subtle: #c4c8cb;
|
|
||||||
--bs-success-border-subtle: #a3cfbb;
|
|
||||||
--bs-info-border-subtle: #9eeaf9;
|
|
||||||
--bs-warning-border-subtle: #ffe69c;
|
|
||||||
--bs-danger-border-subtle: #f1aeb5;
|
|
||||||
--bs-light-border-subtle: #e9ecef;
|
|
||||||
--bs-dark-border-subtle: #adb5bd;
|
|
||||||
--bs-white-rgb: 255, 255, 255;
|
|
||||||
--bs-black-rgb: 0, 0, 0;
|
|
||||||
--bs-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
|
|
||||||
--bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
|
|
||||||
--bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));
|
|
||||||
--bs-body-font-family: var(--bs-font-sans-serif);
|
|
||||||
--bs-body-font-size: 1rem;
|
|
||||||
--bs-body-font-weight: 400;
|
|
||||||
--bs-body-line-height: 1.5;
|
|
||||||
--bs-body-color: #212529;
|
|
||||||
--bs-body-color-rgb: 33, 37, 41;
|
|
||||||
--bs-body-bg: #fff;
|
|
||||||
--bs-body-bg-rgb: 255, 255, 255;
|
|
||||||
--bs-emphasis-color: #000;
|
|
||||||
--bs-emphasis-color-rgb: 0, 0, 0;
|
|
||||||
--bs-secondary-color: rgba(33, 37, 41, 0.75);
|
|
||||||
--bs-secondary-color-rgb: 33, 37, 41;
|
|
||||||
--bs-secondary-bg: #e9ecef;
|
|
||||||
--bs-secondary-bg-rgb: 233, 236, 239;
|
|
||||||
--bs-tertiary-color: rgba(33, 37, 41, 0.5);
|
|
||||||
--bs-tertiary-color-rgb: 33, 37, 41;
|
|
||||||
--bs-tertiary-bg: #f8f9fa;
|
|
||||||
--bs-tertiary-bg-rgb: 248, 249, 250;
|
|
||||||
--bs-heading-color: inherit;
|
|
||||||
--bs-link-color: #0d6efd;
|
|
||||||
--bs-link-color-rgb: 13, 110, 253;
|
|
||||||
--bs-link-decoration: underline;
|
|
||||||
--bs-link-hover-color: #0a58ca;
|
|
||||||
--bs-link-hover-color-rgb: 10, 88, 202;
|
|
||||||
--bs-code-color: #d63384;
|
|
||||||
--bs-highlight-color: #212529;
|
|
||||||
--bs-highlight-bg: #fff3cd;
|
|
||||||
--bs-border-width: 1px;
|
|
||||||
--bs-border-style: solid;
|
|
||||||
--bs-border-color: #dee2e6;
|
|
||||||
--bs-border-color-translucent: rgba(0, 0, 0, 0.175);
|
|
||||||
--bs-border-radius: 0.375rem;
|
|
||||||
--bs-border-radius-sm: 0.25rem;
|
|
||||||
--bs-border-radius-lg: 0.5rem;
|
|
||||||
--bs-border-radius-xl: 1rem;
|
|
||||||
--bs-border-radius-xxl: 2rem;
|
|
||||||
--bs-border-radius-2xl: var(--bs-border-radius-xxl);
|
|
||||||
--bs-border-radius-pill: 50rem;
|
|
||||||
--bs-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
|
|
||||||
--bs-box-shadow-sm: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);
|
|
||||||
--bs-box-shadow-lg: 0 1rem 3rem rgba(0, 0, 0, 0.175);
|
|
||||||
--bs-box-shadow-inset: inset 0 1px 2px rgba(0, 0, 0, 0.075);
|
|
||||||
--bs-focus-ring-width: 0.25rem;
|
|
||||||
--bs-focus-ring-opacity: 0.25;
|
|
||||||
--bs-focus-ring-color: rgba(13, 110, 253, 0.25);
|
|
||||||
--bs-form-valid-color: #198754;
|
|
||||||
--bs-form-valid-border-color: #198754;
|
|
||||||
--bs-form-invalid-color: #dc3545;
|
|
||||||
--bs-form-invalid-border-color: #dc3545;
|
|
||||||
}
|
|
||||||
|
|
||||||
[data-bs-theme=dark] {
|
|
||||||
color-scheme: dark;
|
|
||||||
--bs-body-color: #dee2e6;
|
|
||||||
--bs-body-color-rgb: 222, 226, 230;
|
|
||||||
--bs-body-bg: #212529;
|
|
||||||
--bs-body-bg-rgb: 33, 37, 41;
|
|
||||||
--bs-emphasis-color: #fff;
|
|
||||||
--bs-emphasis-color-rgb: 255, 255, 255;
|
|
||||||
--bs-secondary-color: rgba(222, 226, 230, 0.75);
|
|
||||||
--bs-secondary-color-rgb: 222, 226, 230;
|
|
||||||
--bs-secondary-bg: #343a40;
|
|
||||||
--bs-secondary-bg-rgb: 52, 58, 64;
|
|
||||||
--bs-tertiary-color: rgba(222, 226, 230, 0.5);
|
|
||||||
--bs-tertiary-color-rgb: 222, 226, 230;
|
|
||||||
--bs-tertiary-bg: #2b3035;
|
|
||||||
--bs-tertiary-bg-rgb: 43, 48, 53;
|
|
||||||
--bs-primary-text-emphasis: #6ea8fe;
|
|
||||||
--bs-secondary-text-emphasis: #a7acb1;
|
|
||||||
--bs-success-text-emphasis: #75b798;
|
|
||||||
--bs-info-text-emphasis: #6edff6;
|
|
||||||
--bs-warning-text-emphasis: #ffda6a;
|
|
||||||
--bs-danger-text-emphasis: #ea868f;
|
|
||||||
--bs-light-text-emphasis: #f8f9fa;
|
|
||||||
--bs-dark-text-emphasis: #dee2e6;
|
|
||||||
--bs-primary-bg-subtle: #031633;
|
|
||||||
--bs-secondary-bg-subtle: #161719;
|
|
||||||
--bs-success-bg-subtle: #051b11;
|
|
||||||
--bs-info-bg-subtle: #032830;
|
|
||||||
--bs-warning-bg-subtle: #332701;
|
|
||||||
--bs-danger-bg-subtle: #2c0b0e;
|
|
||||||
--bs-light-bg-subtle: #343a40;
|
|
||||||
--bs-dark-bg-subtle: #1a1d20;
|
|
||||||
--bs-primary-border-subtle: #084298;
|
|
||||||
--bs-secondary-border-subtle: #41464b;
|
|
||||||
--bs-success-border-subtle: #0f5132;
|
|
||||||
--bs-info-border-subtle: #087990;
|
|
||||||
--bs-warning-border-subtle: #997404;
|
|
||||||
--bs-danger-border-subtle: #842029;
|
|
||||||
--bs-light-border-subtle: #495057;
|
|
||||||
--bs-dark-border-subtle: #343a40;
|
|
||||||
--bs-heading-color: inherit;
|
|
||||||
--bs-link-color: #6ea8fe;
|
|
||||||
--bs-link-hover-color: #8bb9fe;
|
|
||||||
--bs-link-color-rgb: 110, 168, 254;
|
|
||||||
--bs-link-hover-color-rgb: 139, 185, 254;
|
|
||||||
--bs-code-color: #e685b5;
|
|
||||||
--bs-highlight-color: #dee2e6;
|
|
||||||
--bs-highlight-bg: #664d03;
|
|
||||||
--bs-border-color: #495057;
|
|
||||||
--bs-border-color-translucent: rgba(255, 255, 255, 0.15);
|
|
||||||
--bs-form-valid-color: #75b798;
|
|
||||||
--bs-form-valid-border-color: #75b798;
|
|
||||||
--bs-form-invalid-color: #ea868f;
|
|
||||||
--bs-form-invalid-border-color: #ea868f;
|
|
||||||
}
|
|
||||||
|
|
||||||
*,
|
|
||||||
*::before,
|
|
||||||
*::after {
|
|
||||||
box-sizing: border-box;
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (prefers-reduced-motion: no-preference) {
|
|
||||||
:root {
|
|
||||||
scroll-behavior: smooth;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
body {
|
|
||||||
margin: 0;
|
|
||||||
font-family: var(--bs-body-font-family);
|
|
||||||
font-size: var(--bs-body-font-size);
|
|
||||||
font-weight: var(--bs-body-font-weight);
|
|
||||||
line-height: var(--bs-body-line-height);
|
|
||||||
color: var(--bs-body-color);
|
|
||||||
text-align: var(--bs-body-text-align);
|
|
||||||
background-color: var(--bs-body-bg);
|
|
||||||
-webkit-text-size-adjust: 100%;
|
|
||||||
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
hr {
|
|
||||||
margin: 1rem 0;
|
|
||||||
color: inherit;
|
|
||||||
border: 0;
|
|
||||||
border-top: var(--bs-border-width) solid;
|
|
||||||
opacity: 0.25;
|
|
||||||
}
|
|
||||||
|
|
||||||
h6, h5, h4, h3, h2, h1 {
|
|
||||||
margin-top: 0;
|
|
||||||
margin-bottom: 0.5rem;
|
|
||||||
font-weight: 500;
|
|
||||||
line-height: 1.2;
|
|
||||||
color: var(--bs-heading-color);
|
|
||||||
}
|
|
||||||
|
|
||||||
h1 {
|
|
||||||
font-size: calc(1.375rem + 1.5vw);
|
|
||||||
}
|
|
||||||
@media (min-width: 1200px) {
|
|
||||||
h1 {
|
|
||||||
font-size: 2.5rem;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
h2 {
|
|
||||||
font-size: calc(1.325rem + 0.9vw);
|
|
||||||
}
|
|
||||||
@media (min-width: 1200px) {
|
|
||||||
h2 {
|
|
||||||
font-size: 2rem;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
h3 {
|
|
||||||
font-size: calc(1.3rem + 0.6vw);
|
|
||||||
}
|
|
||||||
@media (min-width: 1200px) {
|
|
||||||
h3 {
|
|
||||||
font-size: 1.75rem;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
h4 {
|
|
||||||
font-size: calc(1.275rem + 0.3vw);
|
|
||||||
}
|
|
||||||
@media (min-width: 1200px) {
|
|
||||||
h4 {
|
|
||||||
font-size: 1.5rem;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
h5 {
|
|
||||||
font-size: 1.25rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
h6 {
|
|
||||||
font-size: 1rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
p {
|
|
||||||
margin-top: 0;
|
|
||||||
margin-bottom: 1rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
abbr[title] {
|
|
||||||
-webkit-text-decoration: underline dotted;
|
|
||||||
text-decoration: underline dotted;
|
|
||||||
cursor: help;
|
|
||||||
-webkit-text-decoration-skip-ink: none;
|
|
||||||
text-decoration-skip-ink: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
address {
|
|
||||||
margin-bottom: 1rem;
|
|
||||||
font-style: normal;
|
|
||||||
line-height: inherit;
|
|
||||||
}
|
|
||||||
|
|
||||||
ol,
|
|
||||||
ul {
|
|
||||||
padding-right: 2rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
ol,
|
|
||||||
ul,
|
|
||||||
dl {
|
|
||||||
margin-top: 0;
|
|
||||||
margin-bottom: 1rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
ol ol,
|
|
||||||
ul ul,
|
|
||||||
ol ul,
|
|
||||||
ul ol {
|
|
||||||
margin-bottom: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
dt {
|
|
||||||
font-weight: 700;
|
|
||||||
}
|
|
||||||
|
|
||||||
dd {
|
|
||||||
margin-bottom: 0.5rem;
|
|
||||||
margin-right: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
blockquote {
|
|
||||||
margin: 0 0 1rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
b,
|
|
||||||
strong {
|
|
||||||
font-weight: bolder;
|
|
||||||
}
|
|
||||||
|
|
||||||
small {
|
|
||||||
font-size: 0.875em;
|
|
||||||
}
|
|
||||||
|
|
||||||
mark {
|
|
||||||
padding: 0.1875em;
|
|
||||||
color: var(--bs-highlight-color);
|
|
||||||
background-color: var(--bs-highlight-bg);
|
|
||||||
}
|
|
||||||
|
|
||||||
sub,
|
|
||||||
sup {
|
|
||||||
position: relative;
|
|
||||||
font-size: 0.75em;
|
|
||||||
line-height: 0;
|
|
||||||
vertical-align: baseline;
|
|
||||||
}
|
|
||||||
|
|
||||||
sub {
|
|
||||||
bottom: -0.25em;
|
|
||||||
}
|
|
||||||
|
|
||||||
sup {
|
|
||||||
top: -0.5em;
|
|
||||||
}
|
|
||||||
|
|
||||||
a {
|
|
||||||
color: rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 1));
|
|
||||||
text-decoration: underline;
|
|
||||||
}
|
|
||||||
a:hover {
|
|
||||||
--bs-link-color-rgb: var(--bs-link-hover-color-rgb);
|
|
||||||
}
|
|
||||||
|
|
||||||
a:not([href]):not([class]), a:not([href]):not([class]):hover {
|
|
||||||
color: inherit;
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
pre,
|
|
||||||
code,
|
|
||||||
kbd,
|
|
||||||
samp {
|
|
||||||
font-family: var(--bs-font-monospace);
|
|
||||||
font-size: 1em;
|
|
||||||
}
|
|
||||||
|
|
||||||
pre {
|
|
||||||
display: block;
|
|
||||||
margin-top: 0;
|
|
||||||
margin-bottom: 1rem;
|
|
||||||
overflow: auto;
|
|
||||||
font-size: 0.875em;
|
|
||||||
}
|
|
||||||
pre code {
|
|
||||||
font-size: inherit;
|
|
||||||
color: inherit;
|
|
||||||
word-break: normal;
|
|
||||||
}
|
|
||||||
|
|
||||||
code {
|
|
||||||
font-size: 0.875em;
|
|
||||||
color: var(--bs-code-color);
|
|
||||||
word-wrap: break-word;
|
|
||||||
}
|
|
||||||
a > code {
|
|
||||||
color: inherit;
|
|
||||||
}
|
|
||||||
|
|
||||||
kbd {
|
|
||||||
padding: 0.1875rem 0.375rem;
|
|
||||||
font-size: 0.875em;
|
|
||||||
color: var(--bs-body-bg);
|
|
||||||
background-color: var(--bs-body-color);
|
|
||||||
border-radius: 0.25rem;
|
|
||||||
}
|
|
||||||
kbd kbd {
|
|
||||||
padding: 0;
|
|
||||||
font-size: 1em;
|
|
||||||
}
|
|
||||||
|
|
||||||
figure {
|
|
||||||
margin: 0 0 1rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
img,
|
|
||||||
svg {
|
|
||||||
vertical-align: middle;
|
|
||||||
}
|
|
||||||
|
|
||||||
table {
|
|
||||||
caption-side: bottom;
|
|
||||||
border-collapse: collapse;
|
|
||||||
}
|
|
||||||
|
|
||||||
caption {
|
|
||||||
padding-top: 0.5rem;
|
|
||||||
padding-bottom: 0.5rem;
|
|
||||||
color: var(--bs-secondary-color);
|
|
||||||
text-align: right;
|
|
||||||
}
|
|
||||||
|
|
||||||
th {
|
|
||||||
text-align: inherit;
|
|
||||||
text-align: -webkit-match-parent;
|
|
||||||
}
|
|
||||||
|
|
||||||
thead,
|
|
||||||
tbody,
|
|
||||||
tfoot,
|
|
||||||
tr,
|
|
||||||
td,
|
|
||||||
th {
|
|
||||||
border-color: inherit;
|
|
||||||
border-style: solid;
|
|
||||||
border-width: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
label {
|
|
||||||
display: inline-block;
|
|
||||||
}
|
|
||||||
|
|
||||||
button {
|
|
||||||
border-radius: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
button:focus:not(:focus-visible) {
|
|
||||||
outline: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
input,
|
|
||||||
button,
|
|
||||||
select,
|
|
||||||
optgroup,
|
|
||||||
textarea {
|
|
||||||
margin: 0;
|
|
||||||
font-family: inherit;
|
|
||||||
font-size: inherit;
|
|
||||||
line-height: inherit;
|
|
||||||
}
|
|
||||||
|
|
||||||
button,
|
|
||||||
select {
|
|
||||||
text-transform: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
[role=button] {
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
|
|
||||||
select {
|
|
||||||
word-wrap: normal;
|
|
||||||
}
|
|
||||||
select:disabled {
|
|
||||||
opacity: 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
[list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator {
|
|
||||||
display: none !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
button,
|
|
||||||
[type=button],
|
|
||||||
[type=reset],
|
|
||||||
[type=submit] {
|
|
||||||
-webkit-appearance: button;
|
|
||||||
}
|
|
||||||
button:not(:disabled),
|
|
||||||
[type=button]:not(:disabled),
|
|
||||||
[type=reset]:not(:disabled),
|
|
||||||
[type=submit]:not(:disabled) {
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
|
|
||||||
::-moz-focus-inner {
|
|
||||||
padding: 0;
|
|
||||||
border-style: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
textarea {
|
|
||||||
resize: vertical;
|
|
||||||
}
|
|
||||||
|
|
||||||
fieldset {
|
|
||||||
min-width: 0;
|
|
||||||
padding: 0;
|
|
||||||
margin: 0;
|
|
||||||
border: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
legend {
|
|
||||||
float: right;
|
|
||||||
width: 100%;
|
|
||||||
padding: 0;
|
|
||||||
margin-bottom: 0.5rem;
|
|
||||||
line-height: inherit;
|
|
||||||
font-size: calc(1.275rem + 0.3vw);
|
|
||||||
}
|
|
||||||
@media (min-width: 1200px) {
|
|
||||||
legend {
|
|
||||||
font-size: 1.5rem;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
legend + * {
|
|
||||||
clear: right;
|
|
||||||
}
|
|
||||||
|
|
||||||
::-webkit-datetime-edit-fields-wrapper,
|
|
||||||
::-webkit-datetime-edit-text,
|
|
||||||
::-webkit-datetime-edit-minute,
|
|
||||||
::-webkit-datetime-edit-hour-field,
|
|
||||||
::-webkit-datetime-edit-day-field,
|
|
||||||
::-webkit-datetime-edit-month-field,
|
|
||||||
::-webkit-datetime-edit-year-field {
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
::-webkit-inner-spin-button {
|
|
||||||
height: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
[type=search] {
|
|
||||||
-webkit-appearance: textfield;
|
|
||||||
outline-offset: -2px;
|
|
||||||
}
|
|
||||||
|
|
||||||
[type="tel"],
|
|
||||||
[type="url"],
|
|
||||||
[type="email"],
|
|
||||||
[type="number"] {
|
|
||||||
direction: ltr;
|
|
||||||
}
|
|
||||||
::-webkit-search-decoration {
|
|
||||||
-webkit-appearance: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
::-webkit-color-swatch-wrapper {
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
::-webkit-file-upload-button {
|
|
||||||
font: inherit;
|
|
||||||
-webkit-appearance: button;
|
|
||||||
}
|
|
||||||
|
|
||||||
::file-selector-button {
|
|
||||||
font: inherit;
|
|
||||||
-webkit-appearance: button;
|
|
||||||
}
|
|
||||||
|
|
||||||
output {
|
|
||||||
display: inline-block;
|
|
||||||
}
|
|
||||||
|
|
||||||
iframe {
|
|
||||||
border: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
summary {
|
|
||||||
display: list-item;
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
|
|
||||||
progress {
|
|
||||||
vertical-align: baseline;
|
|
||||||
}
|
|
||||||
|
|
||||||
[hidden] {
|
|
||||||
display: none !important;
|
|
||||||
}
|
|
||||||
/*# sourceMappingURL=bootstrap-reboot.rtl.css.map */
|
|