/* Nightingale Diagnostic UI v1.6.0 is consolidated in style.css. */


/* Nightingale v1.6.2 — Mobile responsive grid refinement */
@media (max-width: 767px) {
  /* Services, packages and other card collections become compact 2-column grids. */
  .ng-services-grid,
  .services-grid,
  .service-grid,
  .ng-packages-grid,
  .packages-grid,
  .package-grid,
  .ng-cards-grid,
  .cards-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 12px !important;
  }

  /* Keep cards compact and balanced on narrow screens. */
  .ng-services-grid > *,
  .services-grid > *,
  .service-grid > *,
  .ng-packages-grid > *,
  .packages-grid > *,
  .package-grid > *,
  .ng-cards-grid > *,
  .cards-grid > * {
    min-width: 0 !important;
  }

  /* Avoid excessive desktop card heights on mobile. */
  .ng-service-card,
  .service-card,
  .ng-package-card,
  .package-card {
    min-height: 0 !important;
    height: auto !important;
    padding: 18px !important;
  }

  .ng-service-card h3,
  .service-card h3,
  .ng-package-card h3,
  .package-card h3 {
    font-size: 16px !important;
    line-height: 1.25 !important;
  }

  .ng-service-card p,
  .service-card p,
  .ng-package-card p,
  .package-card p {
    font-size: 13px !important;
    line-height: 1.45 !important;
  }

  /* Package pricing and CTA remain readable inside the two-column layout. */
  .ng-package-card .price,
  .package-card .price {
    font-size: 18px !important;
  }

  /* Doctor cards also use two columns where the markup supports a grid. */
  .ng-doctors-grid,
  .doctors-grid,
  .doctor-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 12px !important;
  }

  .ng-doctor-card,
  .doctor-card {
    min-width: 0 !important;
  }

  /* Featured/large cards can still span the full width when explicitly marked. */
  .ng-card-full,
  .card-full,
  .featured-card {
    grid-column: 1 / -1 !important;
  }

  /* Prevent horizontal overflow caused by long headings/buttons. */
  .ng-section,
  .site-main,
  main {
    max-width: 100%;
    overflow-x: clip;
  }
}

@media (max-width: 420px) {
  .ng-services-grid,
  .services-grid,
  .service-grid,
  .ng-packages-grid,
  .packages-grid,
  .package-grid,
  .ng-cards-grid,
  .cards-grid,
  .ng-doctors-grid,
  .doctors-grid,
  .doctor-grid {
    gap: 10px !important;
  }

  .ng-service-card,
  .service-card,
  .ng-package-card,
  .package-card {
    padding: 14px !important;
  }
}


/* Nightingale v1.6.3 — Professional motion system */
.ng-reveal {
  opacity: 0;
  transform: translateY(22px);
  transition: opacity .65s ease, transform .65s cubic-bezier(.22,1,.36,1);
  will-change: opacity, transform;
}
.ng-reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}
.ng-reveal-delay-1 { transition-delay: .08s; }
.ng-reveal-delay-2 { transition-delay: .16s; }
.ng-reveal-delay-3 { transition-delay: .24s; }

.ng-service-card,
.service-card,
.ng-package-card,
.package-card,
.ng-doctor-card,
.doctor-card {
  transition: transform .28s cubic-bezier(.22,1,.36,1),
              box-shadow .28s ease,
              border-color .28s ease;
}
.ng-service-card:hover,
.service-card:hover,
.ng-package-card:hover,
.package-card:hover,
.ng-doctor-card:hover,
.doctor-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 14px 34px rgba(7, 55, 61, .10);
}

.ng-btn,
button,
input[type="submit"],
a.button,
.wp-block-button__link {
  transition: transform .2s ease, box-shadow .2s ease, background-color .2s ease;
}
.ng-btn:hover,
button:hover,
input[type="submit"]:hover,
a.button:hover,
.wp-block-button__link:hover {
  transform: translateY(-2px);
}
.ng-btn:active,
button:active,
input[type="submit"]:active,
a.button:active,
.wp-block-button__link:active {
  transform: translateY(0);
}

.ng-hero-visual,
.hero-visual {
  animation: ng-hero-float 7s ease-in-out infinite;
}
@keyframes ng-hero-float {
  0%, 100% { transform: translate3d(0, 0, 0); }
  50% { transform: translate3d(0, -7px, 0); }
}

.ng-pulse-soft {
  animation: ng-pulse-soft 2.8s ease-in-out infinite;
}
@keyframes ng-pulse-soft {
  0%, 100% { transform: scale(1); opacity: 1; }
  50% { transform: scale(1.035); opacity: .92; }
}

.ng-shimmer {
  position: relative;
  overflow: hidden;
}
.ng-shimmer::after {
  content: "";
  position: absolute;
  inset: 0 auto 0 -120%;
  width: 45%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.45), transparent);
  transform: skewX(-18deg);
  animation: ng-shimmer 5s ease-in-out infinite;
  pointer-events: none;
}
@keyframes ng-shimmer {
  0%, 65%, 100% { left: -120%; }
  80% { left: 140%; }
}

@media (prefers-reduced-motion: reduce) {
  .ng-reveal,
  .ng-reveal.is-visible {
    opacity: 1;
    transform: none;
    transition: none;
  }
  .ng-hero-visual,
  .hero-visual,
  .ng-pulse-soft,
  .ng-shimmer::after {
    animation: none !important;
  }
  .ng-service-card,
  .service-card,
  .ng-package-card,
  .package-card,
  .ng-doctor-card,
  .doctor-card,
  .ng-btn,
  button,
  input[type="submit"],
  a.button,
  .wp-block-button__link {
    transition: none !important;
  }
}

/* Homepage promotional slider */
.ng-home-slider{position:relative;margin:0 auto 34px;z-index:2}
.ng-home-slider-standard{max-width:var(--ng-container,1400px);padding:0 24px}
.ng-home-slider-full{width:100%}
.ng-home-slider-viewport{position:relative;overflow:hidden;background:#f8f4f4;border-radius:0 0 24px 24px}
.ng-home-slider-standard .ng-home-slider-viewport{border-radius:22px;box-shadow:0 14px 36px rgba(25,38,42,.08)}
.ng-home-slider-track{display:flex;align-items:flex-start;transition:transform .55s cubic-bezier(.22,.61,.36,1);will-change:transform}
.ng-home-slide{min-width:100%;position:relative;height:var(--ng-slider-height,auto);background:#f6f1f1;display:flex;align-items:center;justify-content:center}
.ng-home-slide img{display:block;width:100%;height:auto;max-width:100%;object-fit:contain;object-position:center;margin:0 auto}
.ng-home-slider-full .ng-home-slide{height:var(--ng-slider-height,auto)}
.ng-home-slider-btn{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border:1px solid rgba(255,255,255,.7);border-radius:50%;background:rgba(255,255,255,.92);color:#bd1726;font-size:31px;line-height:1;cursor:pointer;box-shadow:0 8px 20px rgba(0,0,0,.12);z-index:3}
.ng-home-slider-btn:hover{background:#fff;transform:translateY(-50%) scale(1.04)}
.ng-home-slider-prev{left:18px}.ng-home-slider-next{right:18px}
.ng-home-slider-dots{position:absolute;left:50%;bottom:16px;transform:translateX(-50%);display:flex;gap:7px;padding:7px 10px;border-radius:30px;background:rgba(255,255,255,.82);backdrop-filter:blur(8px);z-index:3}
.ng-home-slider-dot{width:8px;height:8px;padding:0;border:0;border-radius:50%;background:#c7c7c7;cursor:pointer;transition:.2s}
.ng-home-slider-dot.is-active{width:22px;border-radius:10px;background:#c91b2b}
@media(max-width:900px){.ng-home-slider-standard{padding:0 16px}.ng-home-slider{margin-bottom:24px}.ng-home-slider-btn{width:38px;height:38px;font-size:27px}.ng-home-slider-prev{left:10px}.ng-home-slider-next{right:10px}.ng-home-slider-dots{bottom:10px}}
@media(max-width:600px){.ng-home-slider-standard{padding:0 12px}.ng-home-slider-standard .ng-home-slider-viewport,.ng-home-slider-viewport{border-radius:14px}.ng-home-slider-btn{width:34px;height:34px;font-size:24px}.ng-home-slider-prev{left:8px}.ng-home-slider-next{right:8px}.ng-home-slider-dots{bottom:8px;gap:5px;padding:6px 8px}.ng-home-slider-dot{width:6px;height:6px}.ng-home-slider-dot.is-active{width:17px}}
