/* ============================================================
   CARE DENTAL HOSPITAL — MASTER RESPONSIVE v2
   Unified mobile-first responsive overrides
   Covers: 320px → 480px → 768px → 1024px → 1280px+
   ============================================================ */

/* ── Root overrides & variables ── */
:root {
  --safe-bottom: env(safe-area-inset-bottom, 0px);
  --mobile-bar-h: 64px;
}

/* ── Universal Box Model ── */
*, *::before, *::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
}

body {
  overflow-x: hidden;
  width: 100%;
  max-width: 100vw;
}

img, video, iframe, canvas {
  max-width: 100%;
  height: auto;
}

/* ══════════════════════════════════════
   NAVBAR — Mobile-first
══════════════════════════════════════ */

.navbar {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1000;
  transition: background 0.3s ease, box-shadow 0.3s ease, padding 0.3s ease;
}

.nav-container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 20px;
  max-width: 1280px;
  margin: 0 auto;
  gap: 12px;
}

/* Hamburger button — always visible on mobile */
.hamburger {
  display: none;
  flex-direction: column;
  gap: 5px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 8px;
  border-radius: 8px;
  transition: background 0.2s;
  z-index: 1010;
  flex-shrink: 0;
}

.hamburger span {
  display: block;
  width: 24px;
  height: 2px;
  background: var(--text-1, #fff);
  border-radius: 2px;
  transition: all 0.3s ease;
}

.hamburger.active span:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}
.hamburger.active span:nth-child(2) {
  opacity: 0;
  transform: scaleX(0);
}
.hamburger.active span:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}

/* ══════════════════════════════════════
   LOGO — Always visible, all screen sizes
   Overrides display:none rules in other CSS
══════════════════════════════════════ */

/* Logo wrapper — always flex, never hidden */
.nav-logo {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  text-decoration: none !important;
  flex-shrink: 0 !important;
}

/* Logo image wrap — always visible */
.logo-img-wrap,
.logo-icon {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex-shrink: 0 !important;
  width: 46px !important;
  height: 46px !important;
  border-radius: 10px !important;
  overflow: hidden !important;
}

.logo-real-img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
}

/* Logo text column — always visible */
.logo-text {
  display: flex !important;
  flex-direction: column !important;
  line-height: 1.2 !important;
}

/* "Care Dental" — always shown */
.logo-main {
  display: block !important;
  font-size: 1.1rem !important;
  font-weight: 700 !important;
  color: var(--text-1, #fff) !important;
  white-space: nowrap !important;
}

.logo-main strong {
  color: var(--blue-1, #00cfff) !important;
}

/* "Multi Speciality Hospital" — ALWAYS visible, never hidden */
.logo-sub,
.nav-logo .logo-sub {
  display: block !important;
  font-size: 0.6rem !important;
  color: var(--text-3, rgba(255,255,255,0.45)) !important;
  letter-spacing: 0.5px !important;
  text-transform: uppercase !important;
  white-space: nowrap !important;
}

/* ── Mobile sizing (≤ 768px): compact but fully visible ── */
@media (max-width: 768px) {
  .logo-img-wrap,
  .logo-icon {
    width: 38px !important;
    height: 38px !important;
  }

  .logo-main {
    font-size: 1rem !important;
  }

  .logo-sub,
  .nav-logo .logo-sub {
    font-size: 0.55rem !important;
    letter-spacing: 0.4px !important;
  }
}

/* ── Extra small (≤ 400px): slightly more compact ── */
@media (max-width: 400px) {
  .logo-img-wrap,
  .logo-icon {
    width: 34px !important;
    height: 34px !important;
  }

  .logo-main {
    font-size: 0.9rem !important;
  }

  .logo-sub,
  .nav-logo .logo-sub {
    font-size: 0.5rem !important;
  }
}

/* ══════════════════════════════════════
   5-COLOR STARS & TEETH INTERACTIVE CURSOR
══════════════════════════════════════ */

@media (min-width: 901px) {
  .custom-cursor {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    position: fixed !important;
    width: 42px !important;
    height: 42px !important;
    pointer-events: none !important;
    z-index: 999999 !important;
    top: 0 !important;
    left: 0 !important;
    will-change: transform !important;
    background: transparent !important;
    border: none !important;
    transition: opacity 0.25s ease !important;
    opacity: 0;
  }

  /* Main Tooth Icon with 5-Color Cycling Glow */
  .custom-cursor::before {
    content: "🦷";
    font-size: 26px;
    display: block;
    filter: drop-shadow(0 0 10px rgba(0, 207, 255, 0.95))
            drop-shadow(0 0 20px rgba(168, 85, 247, 0.6))
            drop-shadow(0 0 30px rgba(236, 72, 153, 0.4));
    animation: toothGlowSpin 3s ease-in-out infinite;
    transition: transform 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  }

  /* 5-Color Orbiting Star */
  .custom-cursor::after {
    content: "✨";
    font-size: 14px;
    position: absolute;
    top: -2px;
    right: -2px;
    animation: star5ColorOrbit 2.2s linear infinite;
    pointer-events: none;
  }

  /* Interactive Hover State on Links / Buttons */
  .custom-cursor.cursor-hover::before {
    transform: scale(1.35) rotate(12deg);
    filter: drop-shadow(0 0 15px rgba(251, 191, 36, 1))
            drop-shadow(0 0 30px rgba(236, 72, 153, 0.9))
            drop-shadow(0 0 45px rgba(0, 207, 255, 0.8));
  }

  .custom-cursor.cursor-hover::after {
    font-size: 18px;
    animation-duration: 1.2s;
  }

  /* 5-Color Floating Star & Teeth Trail Particles */
  .cursor-star-particle {
    position: fixed !important;
    pointer-events: none !important;
    z-index: 999998 !important;
    font-size: 14px;
    user-select: none !important;
    will-change: transform, opacity;
    animation: starFloatFade 0.75s cubic-bezier(0.16, 1, 0.3, 1) forwards !important;
  }

  .cursor-star-particle.color-cyan {
    color: #00cfff;
    filter: drop-shadow(0 0 8px #00cfff) drop-shadow(0 0 16px rgba(0, 207, 255, 0.8));
  }

  .cursor-star-particle.color-gold {
    color: #fbbf24;
    filter: drop-shadow(0 0 8px #fbbf24) drop-shadow(0 0 16px rgba(245, 158, 11, 0.8));
  }

  .cursor-star-particle.color-pink {
    color: #ec4899;
    filter: drop-shadow(0 0 8px #ec4899) drop-shadow(0 0 16px rgba(236, 72, 153, 0.8));
  }

  .cursor-star-particle.color-purple {
    color: #a855f7;
    filter: drop-shadow(0 0 8px #a855f7) drop-shadow(0 0 16px rgba(168, 85, 247, 0.8));
  }

  .cursor-star-particle.color-green {
    color: #10b981;
    filter: drop-shadow(0 0 8px #10b981) drop-shadow(0 0 16px rgba(16, 185, 129, 0.8));
  }

  /* Click burst explosion particles */
  .cursor-burst-particle {
    position: fixed !important;
    pointer-events: none !important;
    z-index: 999998 !important;
    font-size: 16px;
    user-select: none !important;
    will-change: transform, opacity;
    animation: starBurstFade 0.85s cubic-bezier(0.12, 0.8, 0.32, 1) forwards !important;
  }
}

@keyframes toothGlowSpin {
  0% {
    transform: rotate(-6deg) scale(1);
    filter: drop-shadow(0 0 10px rgba(0, 207, 255, 0.95)) drop-shadow(0 0 20px rgba(0, 91, 255, 0.6));
  }
  20% {
    transform: rotate(6deg) scale(1.1);
    filter: drop-shadow(0 0 12px rgba(251, 191, 36, 0.95)) drop-shadow(0 0 22px rgba(245, 158, 11, 0.6));
  }
  40% {
    transform: rotate(-4deg) scale(1.05);
    filter: drop-shadow(0 0 12px rgba(236, 72, 153, 0.95)) drop-shadow(0 0 22px rgba(190, 24, 93, 0.6));
  }
  60% {
    transform: rotate(8deg) scale(1.12);
    filter: drop-shadow(0 0 12px rgba(168, 85, 247, 0.95)) drop-shadow(0 0 22px rgba(124, 58, 237, 0.6));
  }
  80% {
    transform: rotate(-2deg) scale(1.03);
    filter: drop-shadow(0 0 12px rgba(16, 185, 129, 0.95)) drop-shadow(0 0 22px rgba(5, 150, 105, 0.6));
  }
  100% {
    transform: rotate(-6deg) scale(1);
    filter: drop-shadow(0 0 10px rgba(0, 207, 255, 0.95)) drop-shadow(0 0 20px rgba(0, 91, 255, 0.6));
  }
}

@keyframes star5ColorOrbit {
  0% {
    transform: rotate(0deg) translateX(16px) rotate(0deg) scale(0.6);
    opacity: 0.2;
    filter: drop-shadow(0 0 6px #00cfff);
  }
  25% {
    opacity: 1;
    filter: drop-shadow(0 0 8px #fbbf24);
  }
  50% {
    transform: rotate(180deg) translateX(16px) rotate(-180deg) scale(1.1);
    opacity: 1;
    filter: drop-shadow(0 0 8px #ec4899);
  }
  75% {
    opacity: 1;
    filter: drop-shadow(0 0 8px #a855f7);
  }
  100% {
    transform: rotate(360deg) translateX(16px) rotate(-360deg) scale(0.6);
    opacity: 0.2;
    filter: drop-shadow(0 0 6px #10b981);
  }
}

@keyframes starFloatFade {
  0% {
    opacity: 1;
    transform: translate(0, 0) scale(1) rotate(0deg);
  }
  100% {
    opacity: 0;
    transform: translate(var(--tx, 0px), var(--ty, -35px)) scale(0.2) rotate(var(--tr, 45deg));
  }
}

@keyframes starBurstFade {
  0% {
    opacity: 1;
    transform: translate(0, 0) scale(1.2) rotate(0deg);
  }
  100% {
    opacity: 0;
    transform: translate(var(--bx, 0px), var(--by, 0px)) scale(0.1) rotate(var(--br, 180deg));
  }
}

@media (max-width: 900px), (hover: none) {
  .custom-cursor,
  .cursor-star-particle,
  .cursor-burst-particle,
  .cursor-follower {
    display: none !important;
  }
}

/* ── Desktop nav links ── */
.nav-links {
  display: flex;
  align-items: center;
  list-style: none;
  gap: 4px;
  margin: 0;
  padding: 0;
}

.nav-link {
  padding: 8px 14px;
  border-radius: 8px;
  font-size: 0.9rem;
  font-weight: 500;
  color: var(--text-2, rgba(255,255,255,0.8));
  text-decoration: none;
  transition: all 0.2s;
  white-space: nowrap;
}

.nav-link:hover,
.nav-link.active {
  color: var(--blue-1, #00cfff);
  background: rgba(0, 207, 255, 0.1);
}

.nav-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}

/* ══════════════════════════════════════
   HERO — Responsive
══════════════════════════════════════ */

.hero {
  min-height: 100vh;
  padding-top: 80px;
}

.hero-centered-wrapper {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 40px;
  padding: 40px 20px 20px;
}

.hero-content-centered {
  text-align: center;
  max-width: 800px;
  width: 100%;
}

.hero-title-centered {
  font-size: clamp(1.8rem, 5vw, 3.5rem);
  line-height: 1.15;
}

.hero-desc-centered {
  font-size: clamp(0.9rem, 2.2vw, 1.1rem);
  line-height: 1.7;
}

.hero-pills-centered {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
}

.hero-actions-centered {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px;
}

.hero-centered-showcase {
  width: 100%;
  max-width: 900px;
}

.hero-duo-frame {
  position: relative;
  border-radius: 20px;
  overflow: hidden;
}

.hero-duo-img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
}

/* ══════════════════════════════════════
   STAT STRIP
══════════════════════════════════════ */

.hero-stats-strip {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
}

.stat-strip-divider {
  display: block;
}

/* ══════════════════════════════════════
   SECTIONS — Base
══════════════════════════════════════ */

.container {
  width: 100%;
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 20px;
}

section {
  padding: 80px 0;
  position: relative;
  overflow: hidden;
  scroll-margin-top: 80px;
}

section[id] {
  scroll-margin-top: 80px;
}

.section-title {
  font-size: clamp(1.6rem, 4vw, 2.8rem);
}

.section-sub {
  font-size: clamp(0.88rem, 2vw, 1.05rem);
  line-height: 1.7;
}

/* ══════════════════════════════════════
   SERVICES GRID
══════════════════════════════════════ */

.services-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 20px;
}

/* ══════════════════════════════════════
   DOCTORS GRID
══════════════════════════════════════ */

.doctors-grid.two-col {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
}

/* ══════════════════════════════════════
   ABOUT GRID
══════════════════════════════════════ */

.about-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 50px;
  align-items: center;
}

/* ══════════════════════════════════════
   TECH GRID
══════════════════════════════════════ */

.tech-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}

/* ══════════════════════════════════════
   EXPLORER GRID
══════════════════════════════════════ */

.explorer-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
}

/* ══════════════════════════════════════
   WHY SECTION GRID
══════════════════════════════════════ */

.why-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  align-items: start;
}

/* ══════════════════════════════════════
   JOURNEY TIMELINE
══════════════════════════════════════ */

.journey-timeline {
  display: flex;
  flex-direction: column;
  gap: 0;
  position: relative;
  max-width: 800px;
  margin: 0 auto;
}

.journey-item {
  display: flex;
  gap: 20px;
  align-items: flex-start;
  padding-bottom: 32px;
  position: relative;
}

.journey-item::before {
  content: '';
  position: absolute;
  left: 28px;
  top: 56px;
  width: 2px;
  height: calc(100% - 56px);
  background: linear-gradient(to bottom, rgba(0,207,255,0.3), transparent);
}

.journey-item:last-child::before {
  display: none;
}

.journey-node {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.3rem;
  color: white;
  flex-shrink: 0;
  box-shadow: 0 8px 25px rgba(0,0,0,0.3);
}

/* ══════════════════════════════════════
   CONTACT GRID
══════════════════════════════════════ */

.contact-grid {
  display: grid;
  grid-template-columns: 1fr 1.5fr;
  gap: 32px;
  align-items: start;
}

/* ══════════════════════════════════════
   APPOINTMENT GRID
══════════════════════════════════════ */

.appointment-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  align-items: start;
}

/* ══════════════════════════════════════
   FOOTER GRID
══════════════════════════════════════ */

.footer-grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1.5fr;
  gap: 40px;
}

/* ══════════════════════════════════════
   MOBILE QUICK BAR
══════════════════════════════════════ */

.mobile-quick-bar {
  display: none;
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 999;
  padding-bottom: var(--safe-bottom);
}

.bar-inner {
  display: flex;
  background: rgba(5, 12, 26, 0.97);
  backdrop-filter: blur(20px);
  border-top: 1px solid rgba(0,207,255,0.2);
}

.bar-btn {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  padding: 10px 4px;
  font-size: 0.65rem;
  font-weight: 600;
  color: rgba(255,255,255,0.7);
  text-decoration: none;
  transition: all 0.2s;
  letter-spacing: 0.3px;
}

.bar-btn i {
  font-size: 1.1rem;
}

.bar-btn.call-btn { color: #00cfff; }
.bar-btn.wa-btn { color: #25d366; }
.bar-btn.book-btn { color: var(--primary, #00cfff); }

/* ══════════════════════════════════════
   FLOATING ACTIONS & CHATBOT (Desktop / Laptop View)
══════════════════════════════════════ */

.floating-actions {
  position: fixed !important;
  right: 24px !important;
  bottom: 92px !important;
  z-index: 99998 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-end !important;
  gap: 12px !important;
  pointer-events: none !important;
  background: transparent !important;
  border: none !important;
  margin: 0 !important;
  padding: 0 !important;
  width: auto !important;
  height: auto !important;
  transform: none !important;
}

.floating-actions .fab-btn {
  pointer-events: auto !important;
  width: 50px !important;
  height: 50px !important;
  border-radius: 50% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: 1.2rem !important;
  border: none !important;
  cursor: pointer !important;
  position: relative !important;
}

.chatbot-wrapper {
  position: fixed !important;
  right: 24px !important;
  bottom: 24px !important;
  width: 56px !important;
  height: 56px !important;
  z-index: 99999 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  pointer-events: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  transform: none !important;
}


/* ══════════════════════════════════════
   SCROLL PROGRESS
══════════════════════════════════════ */

#scrollProgress {
  position: fixed;
  top: 0;
  left: 0;
  height: 3px;
  background: linear-gradient(90deg, #00cfff, #a855f7);
  z-index: 9999;
  width: 0%;
  transition: width 0.1s linear;
}

/* ══════════════════════════════════════
   TICKER STRIP
══════════════════════════════════════ */

.ticker-strip {
  overflow: hidden;
  white-space: nowrap;
  padding: 10px 0;
  background: rgba(0,207,255,0.08);
  border-top: 1px solid rgba(0,207,255,0.15);
  border-bottom: 1px solid rgba(0,207,255,0.15);
}

.ticker-inner {
  display: inline-flex;
  gap: 40px;
  animation: ticker-scroll 30s linear infinite;
  will-change: transform;
}

.ticker-inner span {
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--text-2, rgba(255,255,255,0.7));
  letter-spacing: 0.5px;
  white-space: nowrap;
}

@keyframes ticker-scroll {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

/* ══════════════════════════════════════
   TESTIMONIAL TRACK
══════════════════════════════════════ */

.testimonials-track-outer {
  overflow: hidden;
  position: relative;
}

.testimonial-track {
  display: flex;
  gap: 20px;
  transition: transform 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  will-change: transform;
}

.testimonial-card {
  flex-shrink: 0;
  width: calc(33.333% - 14px);
}

/* ══════════════════════════════════════
   FAQ ITEMS
══════════════════════════════════════ */

.faq-item {
  border-radius: 14px;
  overflow: hidden;
  margin-bottom: 10px;
}

.faq-question {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  padding: 18px 22px;
  background: none;
  border: none;
  cursor: pointer;
  text-align: left;
  gap: 16px;
}

.faq-answer {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.4s ease, padding 0.3s ease;
}

.faq-item.open .faq-answer {
  max-height: 500px;
}

/* ══════════════════════════════════════
   AWARDS GRID
══════════════════════════════════════ */

.awards-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
}

/* ══════════════════════════════════════
   LIVE STATUS BADGE
══════════════════════════════════════ */

.live-status-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 16px;
  border-radius: 50px;
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  transition: all 0.3s;
}

.live-status-badge.open {
  background: rgba(34, 197, 94, 0.15);
  border: 1px solid rgba(34, 197, 94, 0.4);
  color: #22c55e;
}

.live-status-badge.closed {
  background: rgba(239, 68, 68, 0.12);
  border: 1px solid rgba(239, 68, 68, 0.3);
  color: #ef4444;
}

.live-status-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
}

.live-status-badge.open .live-status-dot {
  background: #22c55e;
  box-shadow: 0 0 8px rgba(34, 197, 94, 0.8);
  animation: pulse-green 1.5s infinite;
}

.live-status-badge.closed .live-status-dot {
  background: #ef4444;
}

@keyframes pulse-green {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.6; transform: scale(0.8); }
}

/* ══════════════════════════════════════
   APPOINTMENT INQUIRY FORM
══════════════════════════════════════ */

.inquiry-form {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

.form-group {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.form-group label {
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--text-2, rgba(255,255,255,0.7));
  letter-spacing: 0.3px;
}

.form-group input,
.form-group select,
.form-group textarea {
  width: 100%;
  padding: 12px 16px;
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 10px;
  color: var(--text-1, #fff);
  font-family: inherit;
  font-size: 0.92rem;
  outline: none;
  transition: border-color 0.2s, background 0.2s, box-shadow 0.2s;
}

.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
  border-color: var(--blue-1, #00cfff);
  background: rgba(0, 207, 255, 0.05);
  box-shadow: 0 0 0 3px rgba(0, 207, 255, 0.1);
}

.form-group input.error,
.form-group select.error,
.form-group textarea.error {
  border-color: #ef4444;
  box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.1);
}

.form-group .field-error {
  font-size: 0.75rem;
  color: #ef4444;
  display: none;
}

.form-group.has-error .field-error {
  display: block;
}

.form-group select {
  appearance: none;
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='rgba(255,255,255,0.5)' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e");
  background-repeat: no-repeat;
  background-position: right 14px center;
  background-size: 14px;
  padding-right: 40px;
  cursor: pointer;
}

.form-group select option {
  background: #0a1628;
  color: #fff;
}

.form-group textarea {
  resize: vertical;
  min-height: 100px;
  line-height: 1.6;
}

.form-submit-btn {
  width: 100%;
  padding: 15px 24px;
  background: linear-gradient(135deg, var(--blue-1, #00cfff), var(--blue-2, #005bff));
  border: none;
  border-radius: 12px;
  color: white;
  font-size: 1rem;
  font-weight: 700;
  font-family: inherit;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  transition: all 0.3s;
  box-shadow: 0 8px 25px rgba(0, 207, 255, 0.3);
}

.form-submit-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 35px rgba(0, 207, 255, 0.45);
}

.form-submit-btn:active {
  transform: translateY(0);
}

.form-submit-btn:disabled {
  opacity: 0.7;
  cursor: not-allowed;
  transform: none;
}

.form-note {
  font-size: 0.78rem;
  color: var(--text-3, rgba(255,255,255,0.4));
  text-align: center;
  line-height: 1.5;
}

/* ══════════════════════════════════════
   FORM SUCCESS STATE
══════════════════════════════════════ */

.form-success-state {
  display: none;
  text-align: center;
  padding: 32px 20px;
  animation: fadeIn 0.5s ease;
}

.form-success-state.visible {
  display: block;
}

.form-success-icon {
  width: 70px;
  height: 70px;
  background: linear-gradient(135deg, #22c55e, #16a34a);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2rem;
  color: white;
  margin: 0 auto 20px;
  box-shadow: 0 0 40px rgba(34, 197, 94, 0.4);
  animation: pop-in 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
}

@keyframes pop-in {
  0% { transform: scale(0); opacity: 0; }
  100% { transform: scale(1); opacity: 1; }
}

/* ══════════════════════════════════════
   BREAKPOINTS
══════════════════════════════════════ */

/* ── Large Laptop: 1280px ── */
@media (max-width: 1280px) {
  .footer-grid {
    grid-template-columns: 1.5fr 1fr 1fr 1.5fr;
    gap: 28px;
  }

  .testimonial-card {
    width: calc(50% - 10px);
  }
}

/* ── Tablet/iPad: 1024px ── */
@media (max-width: 1024px) {
  .nav-links {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    gap: 8px;
    background: rgba(5, 12, 26, 0.98);
    backdrop-filter: blur(30px);
    -webkit-backdrop-filter: blur(30px);
    z-index: 99999;
    padding: calc(80px + var(--safe-top, 0px)) 24px calc(40px + var(--safe-bottom, 0px));
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }

  .nav-links.open {
    display: flex;
  }

  .nav-link {
    font-size: 1.05rem;
    padding: 12px 20px;
    width: 100%;
    text-align: left;
    border-radius: 12px;
    border-bottom: 1px solid rgba(0, 207, 255, 0.06);
  }

  .hamburger {
    display: flex;
    z-index: 1010;
    position: relative;
  }

  .nav-phone-chip {
    display: none !important;
  }

  .btn-nav span {
    display: none;
  }

  .btn-nav {
    padding: 10px 14px;
    border-radius: 10px;
    font-size: 0.85rem;
  }

  .about-grid {
    grid-template-columns: 1fr;
    gap: 30px;
  }

  .why-grid {
    grid-template-columns: 1fr;
    gap: 30px;
  }

  .doctors-grid.two-col {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .tech-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .explorer-grid {
    grid-template-columns: 1fr;
  }

  .contact-grid {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .appointment-grid {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .footer-grid {
    grid-template-columns: 1fr 1fr;
    gap: 28px;
  }

  .awards-grid {
    grid-template-columns: repeat(4, 1fr);
  }
}

/* ── Tablet: 768px ── */
@media (max-width: 768px) {
  section {
    padding: 60px 0;
  }

  .hero {
    padding-top: 70px;
    min-height: auto;
  }

  .hero-centered-wrapper {
    padding: 30px 16px 80px;
    gap: 28px;
  }

  .hero-stats-strip {
    grid-template-columns: repeat(2, 1fr);
  }

  .stat-strip-divider {
    display: none;
  }

  .hero-stats-strip .stat-strip-item:nth-child(odd) .stat-strip-divider {
    display: none;
  }

  .services-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 14px;
  }

  .tech-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
  }

  .awards-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 14px;
  }

  .doc-video-grid {
    grid-template-columns: repeat(2, 1fr) !important;
  }

  .testimonial-card {
    width: 100%;
  }

  .form-row {
    grid-template-columns: 1fr;
  }

  .mobile-quick-bar {
    display: block;
  }

  .floating-actions {
    position: fixed !important;
    left: 16px !important;
    right: auto !important;
    bottom: calc(var(--mobile-bar-h, 64px) + 14px + env(safe-area-inset-bottom, 0px)) !important;
    z-index: 99990 !important;
    pointer-events: none !important;
    width: auto !important;
    height: auto !important;
  }

  #waBtnFloat,
  #callBtnFloat,
  .floating-actions .fab-btn.whatsapp,
  .floating-actions .fab-btn.call {
    display: none !important;
  }

  .chatbot-wrapper {
    position: fixed !important;
    right: 16px !important;
    left: auto !important;
    bottom: calc(var(--mobile-bar-h, 64px) + 14px + env(safe-area-inset-bottom, 0px)) !important;
    z-index: 99990 !important;
  }

  /* Chatbot window above mobile bar */
  .chatbot-wrapper .chat-window {
    bottom: calc(var(--mobile-bar-h, 64px) + 70px + env(safe-area-inset-bottom, 0px)) !important;
  }

  .footer-grid {
    grid-template-columns: 1fr 1fr;
    gap: 20px;
  }

  .footer-brand {
    grid-column: 1 / -1;
  }

  .mv-grid {
    grid-template-columns: 1fr !important;
    gap: 16px;
  }

  .trust-links-grid {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 10px;
  }

  .symptom-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .quiz-options-grid {
    grid-template-columns: 1fr !important;
  }

  .team-banner-card {
    flex-direction: column !important;
    gap: 0 !important;
  }

  .comparison-slider {
    height: 300px !important;
  }
}

/* ── Mobile: 480px ── */
@media (max-width: 480px) {
  .container {
    padding: 0 14px;
  }

  .nav-container {
    padding: 12px 16px;
  }

  .hero-title-centered {
    font-size: 1.7rem;
  }

  .section-title {
    font-size: 1.5rem;
  }

  .hero-pills-centered {
    gap: 6px;
  }

  .hero-pill {
    font-size: 0.75rem;
    padding: 5px 12px;
  }

  .hero-actions-centered {
    flex-direction: column;
    width: 100%;
  }

  .hero-actions-centered .btn-primary,
  .hero-actions-centered .btn-ghost {
    width: 100%;
    justify-content: center;
  }

  .services-grid {
    grid-template-columns: 1fr;
  }

  .tech-grid {
    grid-template-columns: 1fr;
  }

  .awards-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .symptom-grid {
    grid-template-columns: 1fr;
  }

  .doc-video-grid {
    grid-template-columns: 1fr !important;
  }

  .duo-top-badges-bar {
    flex-direction: column !important;
    gap: 8px !important;
  }

  .duo-info-banner {
    flex-direction: column !important;
    gap: 10px !important;
    padding: 12px !important;
  }

  .duo-divider {
    display: none;
  }

  .hero-stats-strip {
    grid-template-columns: repeat(2, 1fr);
  }

  .stat-strip-divider {
    display: none;
  }

  .footer-grid {
    grid-template-columns: 1fr;
  }

  .carousel-controls {
    gap: 12px !important;
  }

  .floating-actions {
    left: 12px !important;
    right: auto !important;
    bottom: calc(var(--mobile-bar-h, 64px) + 12px + env(safe-area-inset-bottom, 0px)) !important;
  }

  .chatbot-wrapper {
    right: 12px !important;
    left: auto !important;
    bottom: calc(var(--mobile-bar-h, 64px) + 12px + env(safe-area-inset-bottom, 0px)) !important;
  }

  .chatbot-bubble {
    width: 52px !important;
    height: 52px !important;
    font-size: 1.2rem !important;
  }

  .chat-window {
    width: calc(100vw - 24px) !important;
    right: 12px !important;
    left: 12px !important;
  }

  .trust-links-grid {
    grid-template-columns: 1fr !important;
  }

  .appt-contact-list {
    gap: 10px;
  }

  .map-tab-btn {
    font-size: 0.78rem;
    padding: 10px 14px;
  }

  .comparison-slider {
    height: 220px !important;
  }
}

/* ── Tiny Mobile: 360px ── */
@media (max-width: 360px) {
  .hero-title-centered {
    font-size: 1.5rem;
  }

  .bar-btn {
    font-size: 0.6rem;
    padding: 8px 2px;
  }

  .bar-btn i {
    font-size: 1rem;
  }
}

/* ══════════════════════════════════════
   UTILITY ANIMATIONS
══════════════════════════════════════ */

@keyframes fadeIn {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes slideUp {
  from { opacity: 0; transform: translateY(20px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes pulse-ring {
  0% { transform: scale(1); opacity: 0.8; }
  100% { transform: scale(1.6); opacity: 0; }
}

/* ══════════════════════════════════════
   BODY PADDING FOR MOBILE BAR
══════════════════════════════════════ */

@media (max-width: 768px) {
  body {
    padding-bottom: calc(var(--mobile-bar-h) + var(--safe-bottom));
  }

  footer {
    padding-bottom: calc(var(--mobile-bar-h) + var(--safe-bottom) + 20px);
  }
}

/* ══════════════════════════════════════
   SCROLL-TO-TOP VISIBILITY
══════════════════════════════════════ */

#scrollTop {
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s, transform 0.3s;
  transform: translateY(10px);
}

#scrollTop.visible {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}

/* ══════════════════════════════════════
   PATIENT JOURNEY — Mobile Fix
   Complete rewrite for ≤ 768px
   Removes broken zigzag/absolute-node layout;
   replaces with a clean vertical step list.
══════════════════════════════════════ */

@media (max-width: 768px) {

  /* Kill the center vertical line on mobile */
  .journey-section .journey-timeline::before,
  #journeySection .journey-timeline::before,
  .journey-timeline::before {
    display: none !important;
  }

  /* Reset the timeline container */
  .journey-section .journey-timeline,
  #journeySection .journey-timeline,
  .journey-timeline {
    display: flex !important;
    flex-direction: column !important;
    gap: 16px !important;
    max-width: 100% !important;
    margin: 32px 0 0 !important;
    padding: 0 !important;
    align-items: stretch !important;
  }

  /* Every step — flat row, icon left, text right */
  .journey-item,
  .journey-item:nth-child(odd),
  .journey-item:nth-child(even) {
    display: flex !important;
    flex-direction: row !important;
    align-items: flex-start !important;
    gap: 14px !important;
    position: relative !important;
    width: 100% !important;
    margin-bottom: 0 !important;
    padding: 0 !important;
    transform: none !important;
    opacity: 1 !important;
    -webkit-backface-visibility: visible !important;
    backface-visibility: visible !important;
  }

  /* Hide the ::before connector from desktop layout */
  .journey-item::before,
  .journey-item:nth-child(odd)::before,
  .journey-item:nth-child(even)::before {
    display: none !important;
  }

  /* Step connector line between items */
  .journey-item:not(:last-child)::after {
    content: '' !important;
    position: absolute !important;
    left: 21px !important;
    top: 48px !important;
    width: 2px !important;
    height: calc(100% + 14px) !important;
    background: linear-gradient(to bottom, rgba(0,207,255,0.35), rgba(0,207,255,0.05)) !important;
    border-radius: 2px !important;
    z-index: 0 !important;
  }

  /* Node icon — static (non-absolute) circle on the left */
  .journey-node {
    position: relative !important;
    left: auto !important;
    top: auto !important;
    transform: none !important;
    flex-shrink: 0 !important;
    width: 44px !important;
    height: 44px !important;
    min-width: 44px !important;
    min-height: 44px !important;
    border-radius: 50% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 1rem !important;
    color: #fff !important;
    z-index: 1 !important;
    box-shadow: 0 4px 16px rgba(0,0,0,0.35), 0 0 0 3px rgba(9,19,41,0.9), 0 0 12px rgba(0,207,255,0.3) !important;
    margin-top: 2px !important;
  }

  /* Disable hover scale on node (touch devices) */
  .journey-item:hover .journey-node {
    transform: none !important;
  }

  /* Content card — fills the remaining width next to node */
  .journey-content,
  .journey-item:nth-child(odd) .journey-content,
  .journey-item:nth-child(even) .journey-content {
    flex: 1 1 0 !important;
    width: auto !important;
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding: 16px 16px 14px !important;
    border-radius: 14px !important;
    text-align: left !important;
    background: rgba(13,27,56,0.8) !important;
    border: 1px solid rgba(0,207,255,0.18) !important;
    box-shadow: 0 6px 20px rgba(0,0,0,0.25) !important;
    transform: none !important;
    word-break: break-word !important;
    overflow-wrap: break-word !important;
    hyphens: auto !important;
  }

  /* Hover effect — disabled on touch */
  .journey-content:hover {
    transform: none !important;
  }

  /* Step label */
  .journey-content .journey-step-num {
    font-size: 0.68rem !important;
    letter-spacing: 1.5px !important;
    margin-bottom: 4px !important;
    color: #00cfff !important;
  }

  /* Step heading */
  .journey-content h4 {
    font-size: 0.95rem !important;
    font-weight: 700 !important;
    line-height: 1.3 !important;
    margin-bottom: 6px !important;
    word-break: break-word !important;
    overflow-wrap: break-word !important;
  }

  /* Step description */
  .journey-content p {
    font-size: 0.82rem !important;
    line-height: 1.6 !important;
    margin-bottom: 10px !important;
    word-break: break-word !important;
    overflow-wrap: break-word !important;
  }

  /* Duration badge */
  .journey-duration {
    font-size: 0.72rem !important;
    padding: 4px 10px !important;
    white-space: normal !important;
    word-break: break-word !important;
    line-height: 1.4 !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 5px !important;
    flex-wrap: wrap !important;
  }

  /* Section padding */
  .journey-section {
    padding: 50px 0 !important;
  }

  /* CTA button at bottom of journey section */
  .journey-section .btn-primary {
    width: 100% !important;
    justify-content: center !important;
    padding: 14px 20px !important;
    font-size: 0.9rem !important;
  }
}

/* Extra-small screens (≤ 400px) */
@media (max-width: 400px) {
  .journey-node {
    width: 38px !important;
    height: 38px !important;
    min-width: 38px !important;
    min-height: 38px !important;
    font-size: 0.85rem !important;
  }

  .journey-content,
  .journey-item:nth-child(odd) .journey-content,
  .journey-item:nth-child(even) .journey-content {
    padding: 12px 12px 10px !important;
  }

  .journey-content h4 {
    font-size: 0.88rem !important;
  }

  .journey-content p {
    font-size: 0.78rem !important;
  }

  .journey-item:not(:last-child)::after {
    left: 18px !important;
  }
}

/* ══════════════════════════════════════
   EMERGENCY BANNER — Mobile
══════════════════════════════════════ */

.emergency-banner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 10px 20px;
  position: relative;
  z-index: 999;
  text-decoration: none;
}

@media (max-width: 480px) {
  .emergency-banner {
    flex-wrap: wrap;
    padding: 8px 14px;
    gap: 8px;
  }

  .emerg-text {
    font-size: 0.82rem;
  }
}
