/*
Theme Name: Dr. Nazmul Hassan Mollah
Theme URI: https://www.drnazmulhassan.com/
Author: Dr. Nazmul Hassan Mollah
Author URI: https://www.drnazmulhassan.com/
Description: Professional Homeopathologist & Female Health Specialist – Dhaka, Bangladesh. Bilingual (EN/BN) medical website theme.
Version: 1.0.0
License: Private
License URI: https://www.drnazmulhassan.com/
Text Domain: dr-nazmul
Tags: medical, doctor, homeopathy, bilingual, bengali, responsive
*/

/* ===== CSS VARIABLES ===== */
:root {
  --navy: #1e3a5f;
  --navy-dark: #0f2040;
  --emerald: #10b981;
  --emerald-light: #34d399;
  --gold: #f59e0b;
  --cream: #f8f9fa;
  --text-dark: #0f2040;
  --text-mid: #3d5a80;
}

* { scroll-behavior: smooth; box-sizing: border-box; margin: 0; padding: 0; }
body { font-family: 'DM Sans', sans-serif; background: #f8f9fa; color: var(--text-dark); overflow-x: hidden; }
.font-bengali { font-family: 'Noto Serif Bengali', serif; }
.font-serif { font-family: 'Cormorant Garamond', serif; }

/* ===== NAVBAR ===== */
#navbar { backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); transition: all 0.3s ease; }
#navbar.scrolled { background: rgba(15,32,64,0.97) !important; box-shadow: 0 4px 30px rgba(0,0,0,0.3); }

/* ===== HERO ===== */
.hero-bg { background: linear-gradient(135deg, #0a1830 0%, #1e3a5f 50%, #0f2040 100%); position: relative; overflow: hidden; }
.hero-bg::before { content:''; position:absolute; inset:0; background: radial-gradient(ellipse at 60% 50%, rgba(16,185,129,0.12) 0%, transparent 70%); }
.hero-pattern { position:absolute; inset:0; opacity:0.03; background-image: repeating-linear-gradient(0deg, transparent, transparent 40px, #fff 40px, #fff 41px), repeating-linear-gradient(90deg, transparent, transparent 40px, #fff 40px, #fff 41px); }
.hero-photo-ring { position:relative; display:inline-block; }
.hero-photo-ring::before { content:''; position:absolute; inset:-6px; border-radius:50%; border:2px solid rgba(16,185,129,0.5); animation: ringPulse 3s ease-in-out infinite; }
.hero-photo-ring::after { content:''; position:absolute; inset:-14px; border-radius:50%; border:1px solid rgba(16,185,129,0.2); animation: ringPulse 3s ease-in-out infinite 0.5s; }
@keyframes ringPulse { 0%,100%{transform:scale(1);opacity:1} 50%{transform:scale(1.04);opacity:0.7} }

.doctor-photo { width:240px; height:240px; border-radius:50%; object-fit:cover; object-position:center top; border:4px solid rgba(16,185,129,0.6); }

/* ===== BADGES ===== */
.badge { display:inline-flex; align-items:center; gap:6px; background:rgba(16,185,129,0.12); border:1px solid rgba(16,185,129,0.3); border-radius:50px; padding:5px 14px; font-size:12px; color:#34d399; font-weight:500; }

/* ===== STAT CARDS ===== */
.stat-card { background:rgba(255,255,255,0.06); backdrop-filter:blur(10px); border:1px solid rgba(255,255,255,0.1); border-radius:16px; padding:20px 24px; text-align:center; transition:transform 0.3s ease; }
.stat-card:hover { transform:translateY(-4px); background:rgba(16,185,129,0.1); }

/* ===== SECTION TAGS ===== */
.section-tag { display:inline-flex; align-items:center; gap:8px; background:rgba(16,185,129,0.1); color:#059669; border:1px solid rgba(16,185,129,0.25); border-radius:50px; padding:6px 18px; font-size:13px; font-weight:600; letter-spacing:0.05em; text-transform:uppercase; }
.section-divider { width:60px; height:3px; background:linear-gradient(90deg,#10b981,#34d399); border-radius:2px; margin:16px 0; }

/* ===== SERVICE CARDS ===== */
.service-card { background:#fff; border-radius:20px; padding:32px 28px; border:1px solid #e8eef5; transition:all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275); position:relative; overflow:hidden; }
.service-card::before { content:''; position:absolute; inset:0; background:linear-gradient(135deg, rgba(16,185,129,0.05), rgba(30,58,95,0.05)); opacity:0; transition:opacity 0.3s; }
.service-card:hover { transform:translateY(-8px); box-shadow:0 24px 60px rgba(30,58,95,0.15); border-color:#10b981; }
.service-card:hover::before { opacity:1; }
.service-icon { width:56px; height:56px; border-radius:16px; background:linear-gradient(135deg,#1e3a5f,#3d5a80); display:flex; align-items:center; justify-content:center; margin-bottom:20px; font-size:24px; }

/* ===== ABOUT SECTION ===== */
.about-section { background:linear-gradient(160deg,#f0f7ff 0%,#e8f5f0 100%); }
.degree-chip { background:#fff; border:1px solid #d1e8e0; border-radius:12px; padding:12px 18px; display:flex; align-items:flex-start; gap:12px; transition:all 0.3s; }
.degree-chip:hover { border-color:#10b981; box-shadow:0 8px 24px rgba(16,185,129,0.12); transform:translateY(-2px); }

/* ===== SCHEDULE TABLE ===== */
.schedule-row:nth-child(even) { background:#f0f9f6; }
.schedule-row:hover { background:#e6f5ef; }

/* ===== DASHBOARD ===== */
.dashboard-section { background:linear-gradient(160deg,#0a1830,#1e3a5f); }
#patientResult { animation: fadeSlideUp 0.4s ease; }
@keyframes fadeSlideUp { from{opacity:0;transform:translateY(20px)} to{opacity:1;transform:translateY(0)} }

/* ===== FORMS ===== */
.form-input { width:100%; background:rgba(255,255,255,0.08); border:1px solid rgba(255,255,255,0.15); border-radius:12px; padding:14px 18px; color:#fff; font-size:15px; transition:all 0.3s; outline:none; }
.form-input::placeholder { color:rgba(255,255,255,0.4); }
.form-input:focus { border-color:#10b981; background:rgba(16,185,129,0.08); box-shadow:0 0 0 3px rgba(16,185,129,0.15); }
.form-label { display:block; font-size:13px; font-weight:600; color:rgba(255,255,255,0.7); margin-bottom:8px; letter-spacing:0.04em; text-transform:uppercase; }

.apt-form { background:#fff; border-radius:24px; padding:40px; box-shadow:0 20px 60px rgba(30,58,95,0.1); }
.apt-input { width:100%; border:1.5px solid #e2eaf5; border-radius:12px; padding:14px 18px; font-size:15px; transition:all 0.3s; outline:none; color:var(--text-dark); background:#fafbff; }
.apt-input:focus { border-color:#10b981; box-shadow:0 0 0 3px rgba(16,185,129,0.12); background:#fff; }
.apt-label { display:block; font-size:13px; font-weight:600; color:#3d5a80; margin-bottom:8px; letter-spacing:0.03em; text-transform:uppercase; }

/* ===== BUTTONS ===== */
.btn-primary { background:linear-gradient(135deg,#059669,#10b981); color:#fff; border:none; border-radius:12px; padding:14px 32px; font-weight:600; font-size:15px; cursor:pointer; transition:all 0.3s; display:inline-flex; align-items:center; gap:8px; text-decoration:none; }
.btn-primary:hover { transform:translateY(-2px); box-shadow:0 12px 30px rgba(16,185,129,0.35); color:#fff; }
.btn-whatsapp { background:linear-gradient(135deg,#25d366,#128c7e); color:#fff; border:none; border-radius:12px; padding:14px 32px; font-weight:600; font-size:15px; cursor:pointer; transition:all 0.3s; display:inline-flex; align-items:center; gap:10px; text-decoration:none; }
.btn-whatsapp:hover { transform:translateY(-2px); box-shadow:0 12px 30px rgba(37,211,102,0.35); color:#fff; }
.btn-navy { background:linear-gradient(135deg,#1e3a5f,#0f2040); color:#fff; border:none; border-radius:12px; padding:14px 32px; font-weight:600; font-size:15px; cursor:pointer; transition:all 0.3s; display:inline-flex; align-items:center; gap:8px; text-decoration:none; }
.btn-navy:hover { transform:translateY(-2px); box-shadow:0 12px 30px rgba(15,32,64,0.35); color:#fff; }

/* ===== LANG TOGGLE ===== */
#langToggle { background:rgba(16,185,129,0.15); border:1.5px solid rgba(16,185,129,0.4); color:#34d399; border-radius:50px; padding:7px 18px; font-size:13px; font-weight:600; cursor:pointer; transition:all 0.3s; letter-spacing:0.05em; }
#langToggle:hover { background:rgba(16,185,129,0.25); }

/* ===== TIMELINE ===== */
.timeline-item { position:relative; padding-left:28px; padding-bottom:20px; border-left:2px solid rgba(16,185,129,0.3); }
.timeline-item::before { content:''; position:absolute; left:-7px; top:4px; width:12px; height:12px; border-radius:50%; background:#10b981; }
.timeline-item:last-child { padding-bottom:0; border-left-color:transparent; }

/* ===== MOBILE MENU ===== */
#mobileMenu { transition:all 0.3s ease; }

/* ===== TESTIMONIAL ===== */
.testimonial-card { background:#fff; border-radius:20px; padding:32px; border:1px solid #e8eef5; }

/* ===== FOOTER ===== */
footer { background:linear-gradient(160deg,#060f1e,#0a1830); }

/* ===== SCROLL PROGRESS ===== */
#scrollProgress { position:fixed; top:0; left:0; height:3px; background:linear-gradient(90deg,#10b981,#34d399); z-index:9999; transition:width 0.1s; }

/* ===== ANIMATIONS ===== */
.fade-in { opacity:0; transform:translateY(30px); transition:opacity 0.7s ease, transform 0.7s ease; }
.fade-in.visible { opacity:1; transform:translateY(0); }
.delay-1 { transition-delay:0.1s; }
.delay-2 { transition-delay:0.2s; }
.delay-3 { transition-delay:0.3s; }
.delay-4 { transition-delay:0.4s; }

/* ===== TOAST ===== */
#toast { position:fixed; bottom:24px; right:24px; background:#10b981; color:#fff; padding:14px 24px; border-radius:12px; font-weight:600; z-index:9999; transform:translateY(100px); opacity:0; transition:all 0.4s ease; }
#toast.show { transform:translateY(0); opacity:1; }

/* ===== TAILWIND UTILITY OVERRIDES (for CDN compatibility) ===== */
.hidden { display:none !important; }
.flex { display:flex; }
.grid { display:grid; }
.items-center { align-items:center; }
.justify-center { justify-content:center; }
.justify-between { justify-content:space-between; }
.text-center { text-align:center; }
.relative { position:relative; }
.absolute { position:absolute; }
.fixed { position:fixed; }
.w-full { width:100%; }
.overflow-hidden { overflow:hidden; }
.min-h-screen { min-height:100vh; }
.max-w-7xl { max-width:80rem; }
.max-w-5xl { max-width:64rem; }
.max-w-2xl { max-width:42rem; }
.max-w-xl { max-width:36rem; }
.max-w-sm { max-width:24rem; }
.max-w-lg { max-width:32rem; }
.mx-auto { margin-left:auto; margin-right:auto; }
.py-24 { padding-top:6rem; padding-bottom:6rem; }
.px-6 { padding-left:1.5rem; padding-right:1.5rem; }
.pt-24 { padding-top:6rem; }
.pb-20 { padding-bottom:5rem; }
.py-16 { padding-top:4rem; padding-bottom:4rem; }
.pt-8 { padding-top:2rem; }
.p-8 { padding:2rem; }
.p-6 { padding:1.5rem; }
.p-5 { padding:1.25rem; }
.p-4 { padding:1rem; }
.mb-6 { margin-bottom:1.5rem; }
.mb-4 { margin-bottom:1rem; }
.mb-3 { margin-bottom:0.75rem; }
.mb-2 { margin-bottom:0.5rem; }
.mb-1 { margin-bottom:0.25rem; }
.mb-8 { margin-bottom:2rem; }
.mb-10 { margin-bottom:2.5rem; }
.mb-12 { margin-bottom:3rem; }
.mb-14 { margin-bottom:3.5rem; }
.mb-16 { margin-bottom:4rem; }
.mt-1 { margin-top:0.25rem; }
.mt-2 { margin-top:0.5rem; }
.mt-3 { margin-top:0.75rem; }
.mt-4 { margin-top:1rem; }
.mt-6 { margin-top:1.5rem; }
.mt-10 { margin-top:2.5rem; }
.gap-2 { gap:0.5rem; }
.gap-3 { gap:0.75rem; }
.gap-4 { gap:1rem; }
.gap-5 { gap:1.25rem; }
.gap-6 { gap:1.5rem; }
.gap-8 { gap:2rem; }
.gap-10 { gap:2.5rem; }
.gap-16 { gap:4rem; }
.leading-tight { line-height:1.25; }
.leading-relaxed { line-height:1.625; }
.rounded-full { border-radius:9999px; }
.rounded-xl { border-radius:0.75rem; }
.rounded-2xl { border-radius:1rem; }
.rounded-3xl { border-radius:1.5rem; }
.border { border-width:1px; }
.border-t { border-top-width:1px; }
.border-b { border-bottom-width:1px; }
.shadow-xl { box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1); }
.shadow-2xl { box-shadow:0 25px 50px -12px rgba(0,0,0,.25); }
.transition-colors { transition-property:color,background-color,border-color; transition-duration:0.15s; }
.font-bold { font-weight:700; }
.font-semibold { font-weight:600; }
.font-medium { font-weight:500; }
.italic { font-style:italic; }
.uppercase { text-transform:uppercase; }
.whitespace-nowrap { white-space:nowrap; }
.flex-1 { flex:1 1 0%; }
.flex-shrink-0 { flex-shrink:0; }
.flex-wrap { flex-wrap:wrap; }
.flex-col { flex-direction:column; }
.space-y-2 > * + * { margin-top:0.5rem; }
.space-y-3 > * + * { margin-top:0.75rem; }
.break-all { word-break:break-all; }
.animate-bounce { animation:bounce 1s infinite; }
@keyframes bounce { 0%,100%{transform:translateY(-25%);animation-timing-function:cubic-bezier(0.8,0,1,1)} 50%{transform:none;animation-timing-function:cubic-bezier(0,0,0.2,1)} }

/* Responsive */
@media(min-width:768px) {
  .md\:grid-cols-2 { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .md\:grid-cols-3 { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .md\:grid-cols-4 { grid-template-columns:repeat(4,minmax(0,1fr)); }
  .md\:col-span-2 { grid-column:span 2 / span 2; }
  .md\:hidden { display:none; }
  .md\:flex { display:flex; }
  .md\:text-6xl { font-size:3.75rem; line-height:1; }
}
@media(min-width:1024px) {
  .lg\:grid-cols-2 { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .lg\:grid-cols-3 { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .lg\:text-7xl { font-size:4.5rem; line-height:1; }
}

/* Colors */
.text-white { color:#fff; }
.text-white\/80 { color:rgba(255,255,255,0.8); }
.text-white\/70 { color:rgba(255,255,255,0.7); }
.text-white\/60 { color:rgba(255,255,255,0.6); }
.text-white\/50 { color:rgba(255,255,255,0.5); }
.text-white\/40 { color:rgba(255,255,255,0.4); }
.text-white\/30 { color:rgba(255,255,255,0.3); }
.text-emerald-400 { color:#34d399; }
.text-emerald-300 { color:#6ee7b7; }
.text-emerald-600 { color:#059669; }
.text-gray-400 { color:#9ca3af; }
.text-gray-500 { color:#6b7280; }
.text-gray-600 { color:#4b5563; }
.text-red-300 { color:#fca5a5; }
.text-amber-300 { color:#fcd34d; }
.text-yellow-400 { color:#facc15; }
.text-navy-700 { color:#1e3a5f; }
.text-amber-700 { color:#b45309; }
.bg-white { background-color:#fff; }
.bg-navy-900\/98 { background:rgba(6,15,30,0.98); }
.bg-white\/5 { background:rgba(255,255,255,0.05); }
.bg-white\/10 { background:rgba(255,255,255,0.1); }
.border-white\/10 { border-color:rgba(255,255,255,0.1); }
.border-white\/15 { border-color:rgba(255,255,255,0.15); }

/* Sizes */
.text-xs { font-size:0.75rem; line-height:1rem; }
.text-sm { font-size:0.875rem; line-height:1.25rem; }
.text-base { font-size:1rem; line-height:1.5rem; }
.text-lg { font-size:1.125rem; line-height:1.75rem; }
.text-xl { font-size:1.25rem; line-height:1.75rem; }
.text-2xl { font-size:1.5rem; line-height:2rem; }
.text-3xl { font-size:1.875rem; line-height:2.25rem; }
.text-4xl { font-size:2.25rem; line-height:2.5rem; }
.text-5xl { font-size:3rem; line-height:1; }
.w-4 { width:1rem; } .h-4 { height:1rem; }
.w-5 { width:1.25rem; } .h-5 { height:1.25rem; }
.w-6 { width:1.5rem; } .h-6 { height:1.5rem; }
.w-7 { width:1.75rem; } .h-7 { height:1.75rem; }
.w-10 { width:2.5rem; } .h-10 { height:2.5rem; }
.w-12 { width:3rem; } .h-12 { height:3rem; }
.w-14 { width:3.5rem; } .h-14 { height:3.5rem; }
.w-16 { width:4rem; } .h-16 { height:4rem; }
.p-2 { padding:0.5rem; }
.py-4 { padding-top:1rem; padding-bottom:1rem; }
.py-6 { padding-top:1.5rem; padding-bottom:1.5rem; }
.px-3 { padding-left:0.75rem; padding-right:0.75rem; }
.py-1 { padding-top:0.25rem; padding-bottom:0.25rem; }
.top-0 { top:0; } .left-0 { left:0; } .right-0 { right:0; } .bottom-0 { bottom:0; }
.bottom-6 { bottom:1.5rem; } .left-6 { left:1.5rem; } .right-24 { right:6rem; }
.bottom-8 { bottom:2rem; }
.bottom-24 { bottom:6rem; }
.z-50 { z-index:50; }
.z-10 { z-index:10; }
.inset-0 { inset:0; }
.-translate-x-1\/2 { transform:translateX(-50%); }
.left-1\/2 { left:50%; }
.opacity-0 { opacity:0; }
.opacity-70 { opacity:0.7; }
.object-cover { object-fit:cover; }
.object-position-top { object-position:center top; }
.overflow-x-hidden { overflow-x:hidden; }
.tracking-wider { letter-spacing:0.05em; }
.tracking-widest { letter-spacing:0.1em; }
.bg-green-500 { background-color:#22c55e; }
.hover\:bg-green-600:hover { background-color:#16a34a; }
.hover\:bg-red-600:hover { background-color:#dc2626; }
.hover\:bg-emerald-600:hover { background-color:#059669; }
.hover\:scale-110:hover { transform:scale(1.1); }
.hover\:text-emerald-400:hover { color:#34d399; }
.hover\:text-emerald-300:hover { color:#6ee7b7; }
.hover\:text-white\/80:hover { color:rgba(255,255,255,0.8); }
.scale-110 { transform:scale(1.1); }
.bg-gradient-to-br { background-image:linear-gradient(to bottom right, var(--tw-gradient-stops)); }
.from-emerald-400 { --tw-gradient-from:#34d399; --tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to,rgba(52,211,153,0)); }
.to-emerald-600 { --tw-gradient-to:#059669; }
.from-blue-400 { --tw-gradient-from:#60a5fa; --tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to,rgba(96,165,250,0)); }
.to-blue-600 { --tw-gradient-to:#2563eb; }
.from-purple-400 { --tw-gradient-from:#c084fc; --tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to,rgba(192,132,252,0)); }
.to-purple-600 { --tw-gradient-to:#9333ea; }
.from-navy-600 { --tw-gradient-from:#162d4e; --tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to,rgba(22,45,78,0)); }
.to-emerald-700 { --tw-gradient-to:#047857; }
.text-6xl { font-size:3.75rem; line-height:1; }
.font-serif-class { font-family:'Cormorant Garamond',serif; }
.text-navy-500 { color:#1e3a5f; }
.bg-emerald-50 { background:#ecfdf5; }
.bg-blue-50 { background:#eff6ff; }
.border-emerald-200 { border-color:#a7f3d0; }
.border-blue-200 { border-color:#bfdbfe; }
.border-gray-100 { border-color:#f3f4f6; }
.grid-cols-2 { grid-template-columns:repeat(2,minmax(0,1fr)); }
.grid-cols-3 { grid-template-columns:repeat(3,minmax(0,1fr)); }
.col-span-2 { grid-column:span 2/span 2; }
.flex-start { align-items:flex-start; }
.items-start { align-items:flex-start; }
.mt-0\.5 { margin-top:0.125rem; }
.py-2 { padding-top:0.5rem; padding-bottom:0.5rem; }
.px-4 { padding-left:1rem; padding-right:1rem; }
.px-8 { padding-left:2rem; padding-right:2rem; }
.bg-emerald-900\/30 { background:rgba(6,78,59,0.3); }
.border-emerald-700\/30 { border-color:rgba(4,120,87,0.3); }
.bg-emerald-600\/20 { background:rgba(5,150,105,0.2); }
.border-emerald-500\/30 { border-color:rgba(16,185,129,0.3); }
.bg-red-900\/40 { background:rgba(127,29,29,0.4); }
.border-red-500\/40 { border-color:rgba(239,68,68,0.4); }
.bg-amber-900\/40 { background:rgba(120,53,15,0.4); }
.border-amber-500\/40 { border-color:rgba(245,158,11,0.4); }
.text-emerald-300 { color:#6ee7b7; }
.bg-emerald-400 { background-color:#34d399; }
.to-emerald-600 { --tw-gradient-to:#059669; }
.backdrop-blur-xl { backdrop-filter:blur(24px); }
.px-5 { padding-left:1.25rem; padding-right:1.25rem; }
.py-3 { padding-top:0.75rem; padding-bottom:0.75rem; }
.rows-3 { grid-row:span 3/span 3; }
.bg-gradient-to-br.from-emerald-50.to-emerald-100 { background:linear-gradient(to bottom right,#ecfdf5,#d1fae5); }
.bg-gradient-to-br.from-blue-50.to-blue-100 { background:linear-gradient(to bottom right,#eff6ff,#dbeafe); }
.bg-gradient-to-br.from-amber-50.to-amber-100 { background:linear-gradient(to bottom right,#fffbeb,#fef3c7); }
.bg-gradient-to-br.from-purple-50.to-purple-100 { background:linear-gradient(to bottom right,#faf5ff,#f3e8ff); }
.border-amber-200 { border-color:#fde68a; }
.border-purple-200 { border-color:#e9d5ff; }
