/* --- VARIABLES & RESET --- */
:root {
--primary-green: #208044;
--dark-green: #1a4a28;
--accent-blue: #3b71fe;
--text-dark: #1f2937;
--text-grey: #6b7280;
--bg-light: #f9fbfc;
}
/* Scoped Main Wrapper instead of Body to be WP Friendly */
.med-main-wrapper {
margin: 0;
font-family: 'Poppins', sans-serif;
box-sizing: border-box;
overflow-x: hidden;
width: 100%;
background-color: #fff;
line-height: 1.5;
}
.med-main-wrapper *, .med-main-wrapper *::before, .med-main-wrapper *::after { box-sizing: border-box; }
.med-main-wrapper a { text-decoration: none; }
.med-main-wrapper ul { list-style: none; margin: 0; padding: 0; }
.med-container {
max-width: 1200px;
margin: 0 auto;
padding: 0 20px;
}
/* --- 1. TOP BAR --- */
.med-top-bar {
background-color: var(--dark-green);
color: white;
font-size: 13px;
padding: 12px 0;
}
.med-top-bar-inner { display: flex; justify-content: space-between; align-items: center; }
.med-contact-info { display: flex; flex-wrap: wrap; gap: 20px; }
.med-contact-info i { margin-right: 6px; color: #4caf50; }
.med-social-icons a { color: white; margin-left: 15px; transition: 0.3s; }
.med-social-icons a:hover { color: var(--accent-blue); transform: translateY(-2px); }
/* --- 2. HEADER --- */
.med-main-header {
background: rgba(255, 255, 255, 0.95);
backdrop-filter: blur(10px);
box-shadow: 0 4px 20px rgba(0,0,0,0.04);
padding: 15px 0;
position: sticky;
top: 0;
z-index: 999;
}
.med-nav-inner { display: flex; justify-content: space-between; align-items: center; }
.med-logo {
font-weight: 700;
font-size: 24px;
color: var(--dark-green);
display: flex;
align-items: center;
}
/* --- MENU ANIMATION --- */
.med-main-menu { display: flex; align-items: center; gap: 20px; }
.med-main-menu a.med-nav-link {
color: var(--text-dark);
font-weight: 500;
font-size: 14px;
text-transform: uppercase;
position: relative;
padding: 8px 15px;
transition: color 0.3s;
}
.med-main-menu a.med-nav-link:hover { color: var(--primary-green); }
.med-main-menu a.med-nav-link::before, .med-main-menu a.med-nav-link::after {
content: ''; position: absolute; width: 0; height: 2px;
background-color: var(--primary-green); transition: width 0.4s ease;
}
.med-main-menu a.med-nav-link span::before, .med-main-menu a.med-nav-link span::after {
content: ''; position: absolute; width: 2px; height: 0;
background-color: var(--primary-green); transition: height 0.4s ease;
}
.med-main-menu a.med-nav-link::before { top: 0; left: 0; }
.med-main-menu a.med-nav-link::after { bottom: 0; right: 0; }
.med-main-menu a.med-nav-link span::before { bottom: 0; left: 0; }
.med-main-menu a.med-nav-link span::after { top: 0; right: 0; }
.med-main-menu a.med-nav-link:hover::before, .med-main-menu a.med-nav-link:hover::after { width: 100%; }
.med-main-menu a.med-nav-link:hover span::before, .med-main-menu a.med-nav-link:hover span::after { height: 100%; }
.med-btn-appointment {
background: linear-gradient(90deg, var(--primary-green), #4CAF50);
color: white !important;
padding: 12px 28px;
border-radius: 50px;
font-weight: 600;
font-size: 14px;
box-shadow: 0 5px 0 #14522b, 0 10px 10px rgba(0,0,0,0.15);
transition: all 0.1s ease;
transform: translateY(0);
margin-left: 10px;
position: relative;
overflow: hidden;
display: inline-block;
}
.med-btn-shine::before {
content: ''; position: absolute; top: 0; left: -100%; width: 100%; height: 100%;
background: linear-gradient(90deg, transparent, rgba(255,255,255,0.4), transparent);
transition: 0.5s; transform: skewX(-20deg);
}
.med-btn-shine:hover::before { left: 100%; }
.med-mobile-toggle { display: none; font-size: 26px; color: var(--dark-green); cursor: pointer; }
/* --- 3. HERO SECTION --- */
.med-hero-section {
padding: 100px 0;
background: var(--bg-light);
position: relative;
overflow: hidden;
perspective: 1200px;
}
.med-hero-inner {
display: flex;
align-items: center;
transform-style: preserve-3d;
}
.med-hero-text {
flex: 1;
padding-right: 40px;
z-index: 5;
transform: translateZ(20px);
}
/* SVG ANIMATIONS */
.med-bg-ecg-line {
position: absolute; top: 40%; left: 0; width: 100%; height: 150px;
z-index: 0; opacity: 0.5; pointer-events: none;
}
.med-ecg-path {
stroke: var(--primary-green); stroke-width: 2; fill: none;
stroke-dasharray: 1000; stroke-dashoffset: 1000;
animation: drawLine 5s linear infinite;
}
@keyframes drawLine { to { stroke-dashoffset: 0; } }
.med-morph-blob-svg {
position: absolute; bottom: -50px; right: -20px; width: 600px; height: 600px;
z-index: 0; opacity: 0.4; transform: translateZ(-30px);
fill: var(--accent-blue);
}
.med-particle {
position: absolute; border-radius: 50%;
background: rgba(32, 128, 68, 0.6);
animation: floatUp 10s infinite linear; z-index: 1;
}
.p1 { width: 20px; height: 20px; left: 10%; bottom: -20px; animation-duration: 7s; }
.p2 { width: 30px; height: 30px; left: 40%; bottom: -30px; animation-duration: 12s; animation-delay: 2s; }
.p3 { width: 15px; height: 15px; left: 70%; bottom: -10px; animation-duration: 9s; animation-delay: 1s; background: rgba(59, 113, 254, 0.2); }
@keyframes floatUp {
0% { transform: translateY(0) rotate(0deg); opacity: 0; }
50% { opacity: 1; }
100% { transform: translateY(-800px) rotate(360deg); opacity: 0; }
}
/* TEXT ENTRANCE */
@keyframes dropIn3D {
0% { opacity: 0; transform: translateY(-100px) rotateX(-45deg); }
100% { opacity: 1; transform: translateY(0) rotateX(0); }
}
.med-animate-drop { opacity: 0; animation: dropIn3D 1s cubic-bezier(0.175, 0.885, 0.32, 1.275) forwards; }
.delay-1 { animation-delay: 0.2s; }
.delay-2 { animation-delay: 0.4s; }
.delay-3 { animation-delay: 0.6s; }
.delay-4 { animation-delay: 0.8s; }
.med-hero-image-entrance {
flex: 1; opacity: 0;
animation: dropIn3D 1s cubic-bezier(0.175, 0.885, 0.32, 1.275) forwards;
animation-delay: 0.5s;
}
.med-hero-image-wrapper {
position: relative; display: flex; justify-content: center; align-items: flex-end;
transform-style: preserve-3d; transition: transform 0.1s ease-out;
}
.med-sub-title {
color: var(--primary-green); font-weight: 600; margin-bottom: 15px;
display: inline-block; background: #e8f5e9; padding: 8px 15px;
border-radius: 20px; font-size: 13px; box-shadow: 2px 2px 5px rgba(0,0,0,0.05);
}
.med-hero-text h1 {
font-size: 4rem; line-height: 1.15; color: #0d1b3e;
margin: 15px 0 25px 0; font-weight: 700;
text-shadow: 0 10px 30px rgba(13, 27, 62, 0.1);
}
.med-highlight-text { color: var(--primary-green); position: relative; display: inline-block; }
.med-highlight-text::after {
content: ''; position: absolute; width: 100%; height: 12px;
bottom: 5px; left: 0; background: rgba(32, 128, 68, 0.2);
z-index: -1; transform: skewX(-15deg);
}
.med-hero-text p {
color: var(--text-grey); font-size: 17px; line-height: 1.7;
margin-bottom: 35px; max-width: 550px;
}
.med-hero-btns { display: flex; gap: 20px; padding-bottom: 10px;}
.med-btn {
padding: 15px 35px; border-radius: 50px; font-weight: 600;
text-transform: uppercase; font-size: 14px; border: none;
cursor: pointer; color: white; transition: all 0.1s;
position: relative; overflow: hidden;
}
.med-btn-green { background: linear-gradient(90deg, #1e5631, #2e7d32); box-shadow: 0 6px 0 #143d22, 0 10px 10px rgba(0,0,0,0.2); }
.med-btn-green:active { box-shadow: 0 2px 0 #143d22, 0 5px 5px rgba(0,0,0,0.2); transform: translateY(4px); }
.med-btn-blue { background: linear-gradient(90deg, #3b71fe, #6592ff); box-shadow: 0 6px 0 #254db3, 0 10px 10px rgba(0,0,0,0.2); }
.med-btn-blue:active { box-shadow: 0 2px 0 #254db3, 0 5px 5px rgba(0,0,0,0.2); transform: translateY(4px); }
/* --- DOCTOR ANIMATIONS ("SAY HI" EFFECT) --- */
@keyframes waveHi {
0% { transform: translateY(50px) rotate(-10deg); opacity: 0; }
30% { transform: translateY(0) rotate(8deg); opacity: 1; } /* Swing right (Wave) */
60% { transform: translateY(0) rotate(-5deg); } /* Swing left */
100% { transform: translateY(0) rotate(0deg); } /* Settle center */
}
@keyframes floatImage {
0%, 100% { transform: translateY(0); }
50% { transform: translateY(-15px); }
}
.med-doctor-img {
max-width: 90%;
height: auto;
position: relative;
filter: drop-shadow(0 15px 15px rgba(0,0,0,0.3));
/* Combine animations: waveHi runs once, then floatImage loops */
animation:
waveHi 1.8s ease-out forwards,
floatImage 4s ease-in-out infinite 1.8s;
transform-origin: bottom center;
}
.med-doctor-img:hover {
filter: drop-shadow(0 0 20px rgba(32, 128, 68, 0.6)) brightness(1.05);
}
.med-green-outline {
position: absolute; width: 500px; height: 500px;
border: 2px dashed #208044; border-radius: 50%;
right: -80px; bottom: -100px; transform: translateZ(-60px);
}
.med-floating-icon {
position: absolute; color: var(--primary-green);
display: flex; justify-content: center; align-items: center;
opacity: 0.9; background: rgba(255,255,255,0.95);
width: 50px; height: 50px; border-radius: 50%;
box-shadow: 0 10px 20px rgba(0,0,0,0.1);
z-index: 2;
}
.icon-1 { top: 10%; left: 50%; font-size: 20px; transform: translateZ(80px); }
.icon-2 { bottom: 15%; left: -20px; font-size: 24px; color: #3b71fe; transform: translateZ(40px); }
.icon-3 { top: 5%; right: 5%; font-size: 30px; color: #e0f2f1; transform: translateZ(-50px); background: transparent; box-shadow: none; }
.icon-4 { top: 40%; right: 45%; font-size: 18px; color: #ffca28; transform: translateZ(20px); }
.med-mouse-scroll {
position: absolute; bottom: 30px; left: 50%;
transform: translateX(-50%); width: 24px; height: 40px;
border: 2px solid var(--text-grey); border-radius: 15px;
opacity: 0.6; animation: fadeMouse 2s infinite;
}
.med-mouse-wheel {
position: absolute; top: 8px; left: 50%;
transform: translateX(-50%); width: 4px; height: 4px;
background: var(--primary-green); border-radius: 50%;
animation: scrollWheel 1.5s infinite;
}
@keyframes scrollWheel { 0% { opacity: 1; top: 8px; } 100% { opacity: 0; top: 25px; } }
@keyframes fadeMouse { 0%, 100% { opacity: 0.6; } 50% { opacity: 0.3; } }
/* --- RESPONSIVE --- */
@media (max-width: 992px) {
.med-mobile-toggle { display: block; }
.med-main-menu {
position: absolute; top: 100%; left: 0; width: 100%;
background: white; flex-direction: column; padding: 30px 0; gap: 20px;
box-shadow: 0 10px 20px rgba(0,0,0,0.1);
visibility: hidden; opacity: 0; transform: translateY(-20px); transition: 0.3s;
z-index: 1000;
}
.med-main-menu.active { visibility: visible; opacity: 1; transform: translateY(0); }
.med-hero-inner { flex-direction: column; text-align: center; }
.med-hero-text { padding-right: 0; margin-bottom: 50px; transform: none; }
.med-hero-image-entrance, .med-hero-image-wrapper { transform: none !important; }
.med-hero-btns { justify-content: center; }
.med-morph-blob-svg { width: 300px; height: 300px; right: 50%; transform: translateX(50%); }
}
@media (max-width: 576px) {
.med-top-bar { display: none; }
.med-hero-text h1 { font-size: 2.2rem; }
.med-hero-btns { flex-direction: column; width: 100%; }
.med-btn { width: 100%; }
}
(03523) -244028
nirupanhealthcare@gmail.com
Raiganj, Uttar Dinajpur
We Deliver Top-Notch Medical Care
Providing prevention before intervention with our Excellent Medical Healthcare System to protect the patients from severe health problems.
READ MORE
SEE ALL SERVICES
function toggleMenu() {
const menu = document.getElementById('navMenu');
menu.classList.toggle('active');
const icon = document.querySelector('.med-mobile-toggle i');
menu.classList.contains('active') ? icon.classList.replace('fa-bars', 'fa-times') : icon.classList.replace('fa-times', 'fa-bars');
}
const heroSection = document.getElementById('heroSection');
const tiltElement = document.getElementById('tiltElement');
heroSection.addEventListener('mousemove', (e) => {
if(window.innerWidth > 992) {
const x = e.clientX / window.innerWidth;
const y = e.clientY / window.innerHeight;
const rotateX = (0.5 - y) * 20;
const rotateY = (x - 0.5) * 20;
tiltElement.style.transform = `rotateX(${rotateX}deg) rotateY(${rotateY}deg)`;
}
});
heroSection.addEventListener('mouseleave', () => {
tiltElement.style.transform = `rotateX(0deg) rotateY(0deg)`;
});