/* DocMedicano shared effects: CSS only, decorative, no content is hidden if animation is unsupported. */

main[data-dm-design]:not([data-dm-design="index"]) section[data-dm-hero] {
  position: relative;
  isolation: isolate;
}

/* Soft cyan/teal ambient glow behind page heroes. The home hero is excluded so its image display is unchanged. */
main[data-dm-design]:not([data-dm-design="index"]) section[data-dm-hero]::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background:
    radial-gradient(520px 320px at 12% 18%, rgba(0, 180, 216, .13), transparent 70%),
    radial-gradient(560px 360px at 88% 80%, rgba(0, 137, 123, .12), transparent 70%);
  background-size: 140% 140%;
  animation: dm-ambient 18s ease-in-out infinite alternate;
}

@keyframes dm-ambient {
  from { background-position: 0% 0%; }
  to { background-position: 100% 100%; }
}

/* Cards: refined hover lift. */
main[data-dm-design] [data-dm-card] {
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
@media (hover: hover) {
  main[data-dm-design] [data-dm-card]:hover {
    transform: translateY(-3px);
    box-shadow: 0 2px 4px rgba(15, 44, 105, .06), 0 16px 32px rgba(15, 44, 105, .11);
    border-color: #bfe3dd;
  }
}

/* Buttons: smooth press and glow. */
main[data-dm-design] [data-dm-action] {
  transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease;
}
@media (hover: hover) {
  main[data-dm-design] [data-dm-action]:hover {
    transform: translateY(-1px);
    box-shadow: 0 8px 20px rgba(0, 104, 95, .22);
  }
}
main[data-dm-design] [data-dm-action]:active { transform: translateY(0); box-shadow: none; }
main[data-dm-design] [data-dm-action]:focus-visible,
main[data-dm-design] [data-dm-card] a:focus-visible {
  outline: 3px solid #00b4d8;
  outline-offset: 3px;
}

/* Progressive reveal: only where scroll-driven animation is supported; otherwise content simply shows. */
@supports (animation-timeline: view()) {
  main[data-dm-design]:not([data-dm-design="index"]) > div > section:not([data-dm-hero]),
  main[data-dm-design]:not([data-dm-design="index"]) > section:not([data-dm-hero]) {
    animation: dm-reveal both ease-out;
    animation-timeline: view();
    animation-range: entry 0% entry 35%;
  }
  @keyframes dm-reveal {
    from { opacity: .15; transform: translateY(18px); }
    to { opacity: 1; transform: none; }
  }
}

/* Loading indicator for status text marked busy. */
[aria-busy="true"]::after {
  content: "";
  display: inline-block;
  width: .9em;
  height: .9em;
  margin-left: .5em;
  vertical-align: -.1em;
  border: 2px solid #bfe3dd;
  border-top-color: #00897b;
  border-radius: 50%;
  animation: dm-spin .8s linear infinite;
}
@keyframes dm-spin { to { transform: rotate(360deg); } }

@media (prefers-reduced-motion: reduce) {
  main[data-dm-design] section[data-dm-hero]::before,
  main[data-dm-design] > div > section,
  main[data-dm-design] > section,
  [aria-busy="true"]::after {
    animation: none !important;
  }
  main[data-dm-design] [data-dm-card],
  main[data-dm-design] [data-dm-action] {
    transition: none !important;
    transform: none !important;
  }
}
