/* =========================================================
   PARAM DENTAL CLINIC - MASTER EFFECTS.CSS
   Full premium hover + animation + reveal + card effects
   Overwrite / strong version
========================================================= */

/* ------------------------------
   ROOT VARIABLES
------------------------------ */
:root{
  --primary:#0D6EFD;
  --secondary:#20C997;
  --accent:#FFC107;
  --white:#ffffff;
  --light:#F8F9FA;
  --dark:#212529;

  --shadow-xs:0 6px 18px rgba(0,0,0,.08);
  --shadow-sm:0 10px 28px rgba(13,110,253,.10);
  --shadow-md:0 18px 45px rgba(13,110,253,.14);
  --shadow-lg:0 24px 60px rgba(13,110,253,.18);
  --shadow-xl:0 32px 80px rgba(13,110,253,.24);

  --radius-sm:14px;
  --radius-md:20px;
  --radius-lg:28px;

  --ease:cubic-bezier(.2,.65,.2,1);
  --transition-fast:.25s ease;
  --transition:.38s var(--ease);
  --transition-slow:.65s var(--ease);
}

/* ------------------------------
   GLOBAL RESET FOR EFFECTS
------------------------------ */
html{
  scroll-behavior:smooth;
}

body{
  overflow-x:hidden;
}

/* Section breathing */
section{
  position:relative;
  z-index:1;
}

/* ------------------------------
   UNIVERSAL HOVER BASE
   (cards, boxes, wrappers)
------------------------------ */
.service-card,
.doctor-card,
.pricing-card,
.testimonial-card,
.feature-card,
.why-choose-card,
.contact-card,
.gallery-card,
.before-after-card,
.glass-card,
.about-card,
.mission-card,
.vision-card,
.why-card,
.process-step,
.info-box,
.contact-strip-box,
.form-card,
.appointment-form-wrap,
.map-placeholder,
.card,
.accordion-item,
footer .footer-box,
footer .footer-widget{
  position:relative;
  overflow:hidden;
  transition:
    transform .45s var(--ease),
    box-shadow .45s var(--ease),
    border-color .35s ease,
    background-color .35s ease !important;
  will-change:transform, box-shadow;
}

/* Premium shine layer */
.service-card::before,
.doctor-card::before,
.pricing-card::before,
.testimonial-card::before,
.feature-card::before,
.why-choose-card::before,
.contact-card::before,
.gallery-card::before,
.before-after-card::before,
.glass-card::before,
.about-card::before,
.mission-card::before,
.vision-card::before,
.why-card::before,
.process-step::before,
.info-box::before,
.contact-strip-box::before,
.form-card::before,
.appointment-form-wrap::before,
.map-placeholder::before,
.card::before,
.accordion-item::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at top right, rgba(13,110,253,.10), transparent 32%),
    radial-gradient(circle at bottom left, rgba(32,201,151,.08), transparent 28%);
  opacity:0;
  transition:opacity .45s ease;
  pointer-events:none;
  z-index:0;
}

.service-card:hover::before,
.doctor-card:hover::before,
.pricing-card:hover::before,
.testimonial-card:hover::before,
.feature-card:hover::before,
.why-choose-card:hover::before,
.contact-card:hover::before,
.gallery-card:hover::before,
.before-after-card:hover::before,
.glass-card:hover::before,
.about-card:hover::before,
.mission-card:hover::before,
.vision-card:hover::before,
.why-card:hover::before,
.process-step:hover::before,
.info-box:hover::before,
.contact-strip-box:hover::before,
.form-card:hover::before,
.appointment-form-wrap:hover::before,
.map-placeholder:hover::before,
.card:hover::before,
.accordion-item:hover::before{
  opacity:1;
}

.service-card > *,
.doctor-card > *,
.pricing-card > *,
.testimonial-card > *,
.feature-card > *,
.why-choose-card > *,
.contact-card > *,
.gallery-card > *,
.before-after-card > *,
.glass-card > *,
.about-card > *,
.mission-card > *,
.vision-card > *,
.why-card > *,
.process-step > *,
.info-box > *,
.contact-strip-box > *,
.form-card > *,
.appointment-form-wrap > *,
.map-placeholder > *,
.card > *,
.accordion-item > *{
  position:relative;
  z-index:1;
}

/* Universal hover for cards */
.service-card:hover,
.doctor-card:hover,
.pricing-card:hover,
.testimonial-card:hover,
.feature-card:hover,
.why-choose-card:hover,
.contact-card:hover,
.gallery-card:hover,
.before-after-card:hover,
.glass-card:hover,
.about-card:hover,
.mission-card:hover,
.vision-card:hover,
.why-card:hover,
.process-step:hover,
.info-box:hover,
.contact-strip-box:hover,
.form-card:hover,
.appointment-form-wrap:hover,
.map-placeholder:hover,
.card:hover,
.accordion-item:hover{
  transform:translateY(-12px);
  box-shadow:var(--shadow-lg) !important;
}

/* Stronger premium hover on service / pricing / doctor */
.service-card:hover,
.pricing-card:hover,
.doctor-card:hover{
  transform:translateY(-14px) scale(1.01);
  box-shadow:var(--shadow-xl) !important;
}

/* ------------------------------
   UNIVERSAL BUTTON EFFECTS
   Every button / CTA / anchor button
------------------------------ */
.btn,
button.btn,
a.btn,
.hero-btn,
.cta-btn,
.book-btn,
.call-btn,
.whatsapp-btn,
.navbar .btn,
.floating-btn,
.whatsapp-float,
.call-float,
.book-float,
.scroll-top{
  position:relative;
  overflow:hidden;
  transition:
    transform .35s ease,
    box-shadow .35s ease,
    background-color .35s ease,
    color .35s ease !important;
  will-change:transform, box-shadow;
}

/* universal button shine */
.btn::before,
button.btn::before,
a.btn::before,
.hero-btn::before,
.cta-btn::before,
.book-btn::before,
.call-btn::before,
.whatsapp-btn::before,
.floating-btn::before,
.whatsapp-float::before,
.call-float::before,
.book-float::before,
.scroll-top::before{
  content:"";
  position:absolute;
  top:0;
  left:-140%;
  width:80%;
  height:100%;
  background:linear-gradient(120deg, transparent, rgba(255,255,255,.48), transparent);
  transform:skewX(-25deg);
  pointer-events:none;
}

.btn:hover::before,
button.btn:hover::before,
a.btn:hover::before,
.hero-btn:hover::before,
.cta-btn:hover::before,
.book-btn:hover::before,
.call-btn:hover::before,
.whatsapp-btn:hover::before,
.floating-btn:hover::before,
.whatsapp-float:hover::before,
.call-float:hover::before,
.book-float:hover::before,
.scroll-top:hover::before{
  animation:btnShine .95s ease;
}

.btn:hover,
button.btn:hover,
a.btn:hover,
.hero-btn:hover,
.cta-btn:hover,
.book-btn:hover,
.call-btn:hover,
.whatsapp-btn:hover,
.floating-btn:hover,
.whatsapp-float:hover,
.call-float:hover,
.book-float:hover,
.scroll-top:hover{
  transform:translateY(-5px) scale(1.02) !important;
  box-shadow:0 16px 34px rgba(0,0,0,.18) !important;
}

/* Buttons press feel */
.btn:active,
button.btn:active,
a.btn:active{
  transform:translateY(-1px) scale(.985) !important;
}

/* outline buttons special */
.btn-outline-primary:hover,
.btn-outline-secondary:hover,
.btn-outline-dark:hover,
.btn-outline-success:hover,
.btn-outline-warning:hover{
  transform:translateY(-5px) scale(1.02);
}

/* ------------------------------
   NAVBAR EFFECTS
------------------------------ */
.navbar{
  transition:all .35s ease;
}

.navbar .nav-link{
  position:relative;
  transition:all .35s ease !important;
}

.navbar .nav-link::after{
  content:"";
  position:absolute;
  left:0;
  bottom:-4px;
  width:0;
  height:2px;
  background:linear-gradient(90deg,var(--primary),var(--secondary));
  transition:width .35s ease;
}

.navbar .nav-link:hover,
.navbar .nav-link.active{
  color:var(--primary) !important;
  transform:translateY(-2px);
}

.navbar .nav-link:hover::after,
.navbar .nav-link.active::after{
  width:100%;
}

.navbar .navbar-brand{
  transition:transform .35s ease;
}
.navbar .navbar-brand:hover{
  transform:scale(1.03);
}

.navbar-toggler{
  transition:all .35s ease;
}
.navbar-toggler:hover{
  transform:rotate(4deg) scale(1.05);
  box-shadow:var(--shadow-sm);
}

/* ------------------------------
   SECTION TITLE EFFECTS
------------------------------ */
.section-title,
.section-heading-wrap{
  position:relative;
}

.section-title h2,
.section-heading,
section h2.section-heading{
  position:relative;
  display:inline-block;
  transition:all .35s ease;
}

.section-title h2::after,
.section-heading::after,
section h2.section-heading::after{
  content:"";
  position:absolute;
  left:50%;
  transform:translateX(-50%);
  bottom:-12px;
  width:70px;
  height:4px;
  border-radius:999px;
  background:linear-gradient(90deg,var(--primary),var(--secondary),var(--accent));
  transition:width .4s ease;
}

.section-title:hover h2,
.section-heading-wrap:hover .section-heading{
  transform:translateY(-2px);
}

.section-title:hover h2::after,
.section-heading-wrap:hover .section-heading::after{
  width:120px;
}

/* subtitle / badge */
.section-title .badge,
.floating-badge{
  animation:badgeFloat 3.4s ease-in-out infinite;
}

/* ------------------------------
   SCROLL REVEAL SYSTEM
------------------------------ */
.reveal-section,
.reveal-up,
.reveal-left,
.reveal-right,
.reveal-zoom,
.reveal-rotate{
  opacity:0;
  will-change:transform, opacity;
  transition:all .9s cubic-bezier(.2,.65,.2,1);
}

.reveal-section,
.reveal-up{
  transform:translateY(55px);
}
.reveal-left{
  transform:translateX(-70px);
}
.reveal-right{
  transform:translateX(70px);
}
.reveal-zoom{
  transform:scale(.9);
}
.reveal-rotate{
  transform:translateY(40px) rotate(2deg);
}

.reveal-active{
  opacity:1 !important;
  transform:translate(0,0) scale(1) rotate(0) !important;
}

/* stagger feel */
.reveal-delay-1{ transition-delay:.08s; }
.reveal-delay-2{ transition-delay:.16s; }
.reveal-delay-3{ transition-delay:.24s; }
.reveal-delay-4{ transition-delay:.32s; }
.reveal-delay-5{ transition-delay:.40s; }

/* ------------------------------
   HERO SECTION EFFECTS
------------------------------ */
.hero-section,
.hero-banner{
  overflow:hidden;
  position:relative;
}

.hero-section::before,
.hero-banner::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 15% 20%, rgba(255,255,255,.20), transparent 25%),
    radial-gradient(circle at 80% 15%, rgba(32,201,151,.12), transparent 25%),
    radial-gradient(circle at 75% 80%, rgba(255,193,7,.10), transparent 20%);
  pointer-events:none;
  z-index:0;
}

.hero-content,
.hero-text,
.hero-image,
.hero-doctor,
.hero-card{
  position:relative;
  z-index:1;
}

.hero-image,
.hero-doctor{
  animation:floatY 4.5s ease-in-out infinite;
}

.hero-card{
  animation:floatY 5.2s ease-in-out infinite;
}

.hero-title,
.hero-section h1{
  animation:heroFadeUp 1s ease both;
}

.hero-subtitle,
.hero-section p{
  animation:heroFadeUp 1.2s ease both;
}

.hero-section .btn,
.hero-banner .btn{
  animation:heroFadeUp 1.35s ease both;
}

/* ------------------------------
   IMAGE EFFECTS
------------------------------ */
.image-hover-wrap,
.service-img-wrap,
.gallery-img-wrap,
.doctor-img-wrap,
.safety-image-wrap,
.about-img-wrap,
.clinic-img-wrap,
.before-after-wrap,
.hero-image-wrap{
  position:relative;
  overflow:hidden;
  border-radius:var(--radius-md);
}

.image-hover-wrap img,
.service-img-wrap img,
.gallery-img-wrap img,
.doctor-img-wrap img,
.safety-image-wrap img,
.about-img-wrap img,
.clinic-img-wrap img,
.before-after-wrap img,
.hero-image-wrap img,
.card img,
.gallery-card img,
.before-after-card img{
  width:100%;
  transition:
    transform .85s ease,
    filter .85s ease;
  will-change:transform;
}

/* universal image zoom */
.image-hover-wrap:hover img,
.service-img-wrap:hover img,
.gallery-img-wrap:hover img,
.doctor-img-wrap:hover img,
.safety-image-wrap:hover img,
.about-img-wrap:hover img,
.clinic-img-wrap:hover img,
.before-after-wrap:hover img,
.hero-image-wrap:hover img,
.card:hover img,
.gallery-card:hover img,
.before-after-card:hover img{
  transform:scale(1.08);
  filter:brightness(1.05) saturate(1.04);
}

/* image overlay effect */
.image-hover-wrap::after,
.service-img-wrap::after,
.gallery-img-wrap::after,
.doctor-img-wrap::after,
.safety-image-wrap::after,
.about-img-wrap::after,
.clinic-img-wrap::after,
.before-after-wrap::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(255,255,255,.02), rgba(0,0,0,.14));
  opacity:0;
  transition:opacity .45s ease;
  pointer-events:none;
}
.image-hover-wrap:hover::after,
.service-img-wrap:hover::after,
.gallery-img-wrap:hover::after,
.doctor-img-wrap:hover::after,
.safety-image-wrap:hover::after,
.about-img-wrap:hover::after,
.clinic-img-wrap:hover::after,
.before-after-wrap:hover::after{
  opacity:1;
}

/* ------------------------------
   ICON EFFECTS
------------------------------ */
.service-icon,
.icon,
.icon-circle,
.contact-icon,
.process-step .step-number,
.feature-icon,
.why-icon{
  transition:
    transform .4s ease,
    box-shadow .4s ease,
    background .4s ease !important;
  will-change:transform;
}

/* hover icon spin/bounce */
.service-card:hover .service-icon,
.card:hover .service-icon{
  transform:scale(1.12) rotate(8deg);
}

.feature-card:hover .icon,
.why-choose-card:hover .icon,
.contact-card:hover .contact-icon{
  transform:rotateY(180deg) scale(1.08);
}

.process-step:hover .step-number{
  transform:scale(1.1) rotate(10deg);
}

/* standalone icon wiggle */
.icon-wiggle:hover i,
.icon-wiggle:hover svg{
  animation:wiggle .45s ease-in-out;
}

/* ------------------------------
   EMERGENCY STRIP / TOP INFO
------------------------------ */
.emergency-strip .info-box,
.contact-strip-box{
  border-radius:20px;
}
.emergency-strip .info-box:hover,
.contact-strip-box:hover{
  transform:translateY(-10px);
  box-shadow:var(--shadow-lg);
}

/* ------------------------------
   ABOUT SECTION EFFECTS
------------------------------ */
.about-card,
.mission-card,
.vision-card,
.why-card{
  border-radius:24px;
  box-shadow:var(--shadow-sm);
}
.about-card:hover,
.mission-card:hover,
.vision-card:hover,
.why-card:hover{
  transform:translateY(-12px);
  box-shadow:var(--shadow-xl);
}

/* list items in about / why choose */
.about-list li,
.why-list li,
.service-list li,
.pricing-card ul li,
.contact-list li{
  transition:transform .3s ease, color .3s ease;
}
.about-list li:hover,
.why-list li:hover,
.service-list li:hover,
.pricing-card ul li:hover,
.contact-list li:hover{
  transform:translateX(8px);
  color:var(--primary);
}

/* ------------------------------
   SERVICE SECTION EFFECTS
------------------------------ */
.service-card{
  border:none !important;
  border-radius:26px !important;
  background:#fff;
  box-shadow:var(--shadow-sm);
}

.service-card:hover{
  transform:translateY(-15px) scale(1.015) !important;
  box-shadow:var(--shadow-xl) !important;
}

.service-card .service-icon{
  width:72px;
  height:72px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  background:linear-gradient(135deg,var(--primary),var(--secondary));
  color:#fff;
  font-size:28px;
  box-shadow:0 14px 34px rgba(13,110,253,.18);
  margin-bottom:1rem;
}

.service-card:hover .service-icon{
  animation:iconBounce .7s ease;
}

/* read more button on service card */
.service-card .btn:hover{
  letter-spacing:.2px;
}

/* ------------------------------
   WHY CHOOSE US SECTION EFFECTS
------------------------------ */
.feature-card,
.why-choose-card{
  border:none !important;
  border-radius:24px;
  background:#fff;
  box-shadow:var(--shadow-sm);
}

.feature-card .icon,
.why-choose-card .icon,
.icon-circle{
  width:72px;
  height:72px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  margin:0 auto 1rem;
  background:linear-gradient(135deg,var(--primary),var(--secondary));
  color:#fff;
  font-size:28px;
  box-shadow:0 14px 34px rgba(13,110,253,.16);
}

.feature-card:hover,
.why-choose-card:hover{
  transform:translateY(-14px);
  box-shadow:var(--shadow-xl);
}

.feature-card:hover .icon,
.why-choose-card:hover .icon{
  animation:iconBounce .75s ease;
}

/* ------------------------------
   DOCTOR SECTION EFFECTS
------------------------------ */
.doctor-card{
  border:none !important;
  border-radius:26px;
  background:#fff;
  box-shadow:var(--shadow-sm);
}

.doctor-card:hover{
  transform:translateY(-15px) scale(1.012);
  box-shadow:var(--shadow-xl);
}

.doctor-card .doctor-social a{
  width:42px;
  height:42px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  background:#eef4ff;
  color:var(--primary);
  transition:all .35s ease;
}

.doctor-card .doctor-social a:hover{
  transform:translateY(-5px) scale(1.08) rotate(8deg);
  background:var(--primary);
  color:#fff;
  box-shadow:0 10px 24px rgba(13,110,253,.22);
}

/* doctor image slight zoom */
.doctor-card:hover .doctor-img-wrap img{
  transform:scale(1.08);
}

/* ------------------------------
   TREATMENT PROCESS EFFECTS
------------------------------ */
.process-step{
  border-radius:24px;
  background:#fff;
  box-shadow:var(--shadow-sm);
  padding:1.5rem;
}

.process-step .step-number{
  width:74px;
  height:74px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  margin:0 auto 1rem;
  font-size:1.2rem;
  font-weight:700;
  color:#fff;
  background:linear-gradient(135deg,var(--primary),var(--secondary));
  box-shadow:0 14px 34px rgba(13,110,253,.18);
}

.process-step:hover{
  transform:translateY(-12px);
  box-shadow:var(--shadow-xl);
}

/* dashed connector look if using separate line */
.process-arrow,
.process-line{
  animation:arrowFloat 2.2s ease-in-out infinite;
}

/* ------------------------------
   BEFORE / AFTER + GALLERY
------------------------------ */
.gallery-card,
.before-after-card{
  border-radius:24px;
  overflow:hidden;
  box-shadow:var(--shadow-sm);
  background:#fff;
}

.gallery-card:hover,
.before-after-card:hover{
  transform:translateY(-12px);
  box-shadow:var(--shadow-xl);
}

.gallery-overlay{
  position:absolute;
  inset:0;
  display:flex;
  align-items:end;
  justify-content:center;
  padding:20px;
  background:linear-gradient(180deg,rgba(13,110,253,.05),rgba(0,0,0,.58));
  opacity:0;
  transition:all .4s ease;
  transform:translateY(10px);
}

.gallery-card:hover .gallery-overlay,
.before-after-card:hover .gallery-overlay{
  opacity:1;
  transform:translateY(0);
}

.gallery-overlay .btn{
  transform:translateY(10px);
}
.gallery-card:hover .gallery-overlay .btn,
.before-after-card:hover .gallery-overlay .btn{
  transform:translateY(0);
}

/* ------------------------------
   PRICING EFFECTS
------------------------------ */
.pricing-card{
  border:none !important;
  border-radius:28px;
  background:#fff;
  box-shadow:var(--shadow-sm);
}

.pricing-card:hover{
  transform:translateY(-16px) scale(1.015) !important;
  box-shadow:var(--shadow-xl) !important;
}

.pricing-card.featured{
  border:2px solid rgba(13,110,253,.18) !important;
  transform:scale(1.01);
}

.pricing-card.featured:hover{
  transform:translateY(-16px) scale(1.03) !important;
}

.pricing-badge{
  position:absolute;
  top:16px;
  right:-40px;
  background:linear-gradient(135deg,var(--accent),#ffd95e);
  color:#000;
  font-weight:700;
  padding:8px 40px;
  transform:rotate(35deg);
  box-shadow:0 12px 26px rgba(255,193,7,.35);
}

/* ------------------------------
   TESTIMONIALS EFFECTS
------------------------------ */
.testimonial-card{
  border:none !important;
  border-radius:24px;
  background:#fff;
  box-shadow:var(--shadow-sm);
}

.testimonial-card:hover{
  transform:translateY(-12px);
  box-shadow:var(--shadow-xl);
}

.testimonial-card .patient-img{
  width:74px;
  height:74px;
  object-fit:cover;
  border-radius:50%;
  border:4px solid rgba(13,110,253,.12);
  transition:all .35s ease;
}
.testimonial-card:hover .patient-img{
  transform:scale(1.06);
}

/* stars hover */
.rating i,
.stars i{
  transition:transform .25s ease, color .25s ease;
}
.testimonial-card:hover .rating i,
.testimonial-card:hover .stars i{
  transform:translateY(-2px);
  color:var(--accent);
}

/* ------------------------------
   VIDEO SECTION EFFECT
------------------------------ */
.video-box,
.video-card,
.video-wrapper{
  position:relative;
  overflow:hidden;
  border-radius:26px;
  box-shadow:var(--shadow-md);
  transition:all .45s ease;
}

.video-box:hover,
.video-card:hover,
.video-wrapper:hover{
  transform:translateY(-10px);
  box-shadow:var(--shadow-xl);
}

.video-play-btn,
.play-btn{
  animation:pulseRing 2s infinite;
}
.video-play-btn:hover,
.play-btn:hover{
  transform:scale(1.08);
}

/* ------------------------------
   FAQ / ACCORDION EFFECTS
------------------------------ */
.custom-accordion .accordion-item,
.accordion .accordion-item{
  border:none !important;
  border-radius:20px !important;
  overflow:hidden;
  box-shadow:var(--shadow-sm);
  margin-bottom:1rem;
  background:#fff;
}

.custom-accordion .accordion-button,
.accordion .accordion-button{
  box-shadow:none !important;
  padding:1.15rem 1.25rem;
  background:#fff;
  transition:all .35s ease !important;
  font-weight:600;
}

.custom-accordion .accordion-button:hover,
.accordion .accordion-button:hover{
  background:linear-gradient(90deg, rgba(13,110,253,.05), rgba(32,201,151,.05));
  padding-left:1.45rem;
}

.custom-accordion .accordion-button:not(.collapsed),
.accordion .accordion-button:not(.collapsed){
  background:linear-gradient(90deg, rgba(13,110,253,.08), rgba(32,201,151,.08)) !important;
  color:var(--dark) !important;
}

.custom-accordion .accordion-body,
.accordion .accordion-body{
  background:#fff;
}

/* ------------------------------
   FORM / APPOINTMENT EFFECTS
------------------------------ */
.form-card,
.appointment-form-wrap{
  border-radius:28px;
  background:#fff;
  box-shadow:var(--shadow-md);
}

.form-card:hover,
.appointment-form-wrap:hover{
  transform:translateY(-10px);
  box-shadow:var(--shadow-xl);
}

.form-control,
.form-select,
textarea.form-control{
  border-radius:14px;
  min-height:52px;
  transition:
    border-color .3s ease,
    box-shadow .3s ease,
    transform .3s ease,
    background-color .3s ease !important;
}

textarea.form-control{
  min-height:130px;
}

.form-control:hover,
.form-select:hover{
  border-color:rgba(13,110,253,.35);
}

.form-control:focus,
.form-select:focus{
  border-color:var(--primary) !important;
  box-shadow:0 0 0 .25rem rgba(13,110,253,.12) !important;
  transform:translateY(-1px);
}

/* form labels */
.form-label{
  transition:all .25s ease;
}
.form-group:hover .form-label,
.form-field:hover .form-label{
  color:var(--primary);
}

/* ------------------------------
   MAP / CONTACT EFFECTS
------------------------------ */
.map-placeholder{
  min-height:420px;
  border-radius:26px;
  box-shadow:var(--shadow-md);
  background:#fff;
}
.map-placeholder:hover{
  transform:translateY(-10px);
  box-shadow:var(--shadow-xl);
}

.contact-card{
  border:none !important;
  border-radius:24px;
  background:#fff;
  box-shadow:var(--shadow-sm);
}

.contact-card .contact-icon{
  width:66px;
  height:66px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  background:linear-gradient(135deg,var(--primary),var(--secondary));
  color:#fff;
  font-size:24px;
  box-shadow:0 12px 30px rgba(13,110,253,.18);
}

.contact-card:hover{
  transform:translateY(-12px);
  box-shadow:var(--shadow-xl);
}
.contact-card:hover .contact-icon{
  animation:iconBounce .75s ease;
}

/* ------------------------------
   FOOTER EFFECTS
------------------------------ */
footer{
  position:relative;
  overflow:hidden;
}

.footer-links a,
footer ul li a,
footer .quick-links a{
  display:inline-block;
  transition:all .3s ease;
}

.footer-links a:hover,
footer ul li a:hover,
footer .quick-links a:hover{
  transform:translateX(6px);
  color:var(--accent) !important;
}

.footer-social a,
footer .social-icons a{
  width:42px;
  height:42px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  background:rgba(255,255,255,.08);
  transition:all .35s ease;
}

.footer-social a:hover,
footer .social-icons a:hover{
  transform:translateY(-6px) scale(1.08) rotate(6deg);
  background:var(--primary);
  color:#fff !important;
  box-shadow:0 12px 24px rgba(13,110,253,.20);
}

/* ------------------------------
   FLOATING ACTION BUTTONS
------------------------------ */
.floating-btn,
.whatsapp-float,
.call-float,
.book-float,
.scroll-top{
  animation:pulseFloat 2.7s infinite;
}

.floating-btn:hover,
.whatsapp-float:hover,
.call-float:hover,
.book-float:hover,
.scroll-top:hover{
  transform:translateY(-8px) scale(1.08) !important;
}

/* ------------------------------
   TABLE / LIST / SMALL ITEMS EFFECTS
------------------------------ */
.list-group-item,
.small-card,
.mini-card,
.badge,
.tag{
  transition:all .3s ease;
}
.list-group-item:hover,
.small-card:hover,
.mini-card:hover{
  transform:translateX(6px);
}

/* ------------------------------
   DECORATIVE BLOBS / FLOATERS
------------------------------ */
.blob-bg{
  position:absolute;
  border-radius:50%;
  filter:blur(12px);
  opacity:.18;
  animation:blobMove 10s ease-in-out infinite alternate;
  pointer-events:none;
}

.blob-1{
  width:180px;
  height:180px;
  top:0;
  left:-40px;
  background:rgba(13,110,253,.30);
}
.blob-2{
  width:220px;
  height:220px;
  right:-50px;
  bottom:10%;
  background:rgba(32,201,151,.25);
}
.blob-3{
  width:140px;
  height:140px;
  left:40%;
  top:10%;
  background:rgba(255,193,7,.24);
}

/* ------------------------------
   CUSTOM HOVER HELPERS
   jahan chaho manually use kar sakta hai
------------------------------ */
.hover-lift{
  transition:var(--transition);
}
.hover-lift:hover{
  transform:translateY(-12px);
  box-shadow:var(--shadow-lg);
}

.hover-scale{
  transition:var(--transition);
}
.hover-scale:hover{
  transform:scale(1.03);
}

.hover-rotate{
  transition:var(--transition);
}
.hover-rotate:hover{
  transform:translateY(-8px) rotate(-1.5deg);
  box-shadow:var(--shadow-lg);
}

.hover-glow:hover{
  box-shadow:0 0 0 1px rgba(13,110,253,.08), 0 18px 40px rgba(13,110,253,.22);
}

.hover-border:hover{
  border-color:var(--primary) !important;
}

.tilt-card:hover{
  transform:perspective(1000px) rotateX(2deg) rotateY(-2deg) translateY(-12px);
}

/* ------------------------------
   KEYFRAMES
------------------------------ */
@keyframes btnShine{
  0%{ left:-140%; }
  100%{ left:140%; }
}

@keyframes floatY{
  0%,100%{ transform:translateY(0); }
  50%{ transform:translateY(-12px); }
}

@keyframes badgeFloat{
  0%,100%{ transform:translateY(0); }
  50%{ transform:translateY(-7px); }
}

@keyframes iconBounce{
  0%{ transform:scale(1) translateY(0); }
  30%{ transform:scale(1.12) translateY(-4px) rotate(6deg); }
  60%{ transform:scale(1.04) translateY(0); }
  100%{ transform:scale(1.12) rotate(8deg); }
}

@keyframes wiggle{
  0%{ transform:rotate(0); }
  25%{ transform:rotate(8deg); }
  50%{ transform:rotate(-8deg); }
  75%{ transform:rotate(4deg); }
  100%{ transform:rotate(0); }
}

@keyframes pulseFloat{
  0%{
    box-shadow:0 0 0 0 rgba(13,110,253,.35);
  }
  70%{
    box-shadow:0 0 0 18px rgba(13,110,253,0);
  }
  100%{
    box-shadow:0 0 0 0 rgba(13,110,253,0);
  }
}

@keyframes pulseRing{
  0%{
    box-shadow:0 0 0 0 rgba(13,110,253,.35);
  }
  70%{
    box-shadow:0 0 0 18px rgba(13,110,253,0);
  }
  100%{
    box-shadow:0 0 0 0 rgba(13,110,253,0);
  }
}

@keyframes blobMove{
  0%{ transform:translate(0,0) scale(1); }
  100%{ transform:translate(25px,-20px) scale(1.08); }
}

@keyframes arrowFloat{
  0%,100%{ transform:translateY(0); }
  50%{ transform:translateY(6px); }
}

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

/* ------------------------------
   RESPONSIVE
------------------------------ */
@media (max-width: 1199.98px){
  .service-card:hover,
  .doctor-card:hover,
  .pricing-card:hover{
    transform:translateY(-12px) scale(1.008) !important;
  }
}

@media (max-width: 991.98px){
  .service-card:hover,
  .doctor-card:hover,
  .pricing-card:hover,
  .testimonial-card:hover,
  .feature-card:hover,
  .why-choose-card:hover,
  .contact-card:hover,
  .gallery-card:hover,
  .before-after-card:hover,
  .process-step:hover,
  .accordion-item:hover{
    transform:translateY(-8px) !important;
  }

  .section-title h2::after,
  .section-heading::after{
    width:60px;
  }
}

@media (max-width: 767.98px){
  .service-card,
  .doctor-card,
  .pricing-card,
  .testimonial-card,
  .feature-card,
  .why-choose-card,
  .contact-card,
  .gallery-card,
  .before-after-card,
  .process-step{
    border-radius:20px !important;
  }

  .feature-card .icon,
  .why-choose-card .icon,
  .icon-circle,
  .service-card .service-icon,
  .contact-card .contact-icon,
  .process-step .step-number{
    width:62px;
    height:62px;
    font-size:24px;
  }

  .section-title h2::after,
  .section-heading::after{
    width:54px;
    bottom:-10px;
  }
}
/* One class hero animation */
.hero-animate{
  opacity:0;
  animation:heroFancyIn 1s cubic-bezier(.2,.65,.2,1) forwards;
}

@keyframes heroFancyIn{
  0%{
    opacity:0;
    transform:translateY(28px) scale(.96);
    filter:blur(4px);
  }
  60%{
    opacity:1;
    transform:translateY(-4px) scale(1.01);
    filter:blur(0);
  }
  100%{
    opacity:1;
    transform:translateY(0) scale(1);
    filter:blur(0);
  }
}
/* Hero top small cards / badges hover effect */
.hero-mini-card{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:10px 18px;
  border-radius:999px;
  background:#fff;
  box-shadow:0 10px 25px rgba(0,0,0,.08);
  transition:all .35s ease;
  cursor:pointer;
}

.hero-mini-card:hover{
  transform:translateY(-6px) scale(1.04);
  box-shadow:0 18px 38px rgba(13,110,253,.18);
  background:linear-gradient(135deg, #ffffff, #f3faff);
}

.hero-mini-card i{
  transition:transform .35s ease, color .35s ease;
}

.hero-mini-card:hover i{
  transform:rotate(10deg) scale(1.15);
  color:#0D6EFD;
}
.hero-feature-card{
  transition:all .35s ease !important;
  cursor:pointer;
}

.hero-feature-card:hover{
  transform:translateY(-8px) scale(1.02) !important;
  box-shadow:0 18px 40px rgba(13,110,253,.18) !important;
}
.stat-box{
  transition:all .35s ease !important;
  cursor:pointer;
}

.stat-box:hover{
  transform:translateY(-8px) scale(1.03) !important;
  box-shadow:0 18px 40px rgba(13,110,253,.18) !important;
}
.emergency-item{
  transition:all .35s ease !important;
  cursor:pointer;
  border-radius:16px;
}

.emergency-item:hover{
  transform:translateY(-8px) scale(1.02) !important;
  box-shadow:0 18px 40px rgba(13,110,253,.16) !important;
}

.emergency-item .icon{
  transition:all .35s ease;
}

.emergency-item:hover .icon{
  transform:scale(1.12) rotate(8deg);
}