/* Motion layer: slider text, ken-burns zoom, scroll reveal, hover effects. */

@keyframes fade-up { from { opacity: 0; transform: translateY(34px); } to { opacity: 1; transform: none; } }
@keyframes fade-left { from { opacity: 0; transform: translateX(-50px); } to { opacity: 1; transform: none; } }
@keyframes zoom-slow { from { transform: scale(1); } to { transform: scale(1.12); } }
@keyframes shine { from { transform: translateX(-130%) skewX(-20deg); } to { transform: translateX(260%) skewX(-20deg); } }
@keyframes pulse-ring { 0% { box-shadow: 0 0 0 0 rgba(37, 211, 102, .55); } 70% { box-shadow: 0 0 0 18px rgba(37, 211, 102, 0); } 100% { box-shadow: 0 0 0 0 rgba(37, 211, 102, 0); } }
@keyframes pulse-red { 0%, 100% { box-shadow: inset 0 0 0 0 rgba(255, 255, 255, 0); } 50% { box-shadow: inset 0 0 0 3px rgba(255, 255, 255, .35); } }
@keyframes float-y { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }
@keyframes wiggle { 0%, 100% { transform: rotate(0); } 25% { transform: rotate(-12deg); } 75% { transform: rotate(12deg); } }
@keyframes grow-line { from { width: 0; } to { width: 56px; } }

/* Slider: image zooms slowly, text builds in */
.banner-slide.is-active .banner-slide__img { animation: zoom-slow 7s ease-out forwards; }
.banner-slide__content > div > * { opacity: 0; }
.banner-slide.is-active .banner-slide__content > div > * { animation: fade-left .8s cubic-bezier(.2, .7, .2, 1) forwards; }
.banner-slide.is-active .banner-slide__content > div > *:nth-child(2) { animation-delay: .2s; }
.banner-slide.is-active .banner-slide__content > div > *:nth-child(3) { animation-delay: .4s; }
.banner-slide__content .btn { box-shadow: 0 10px 28px -8px rgba(245, 176, 49, .7); }

/* Action strip */
.action-strip__grid { animation: fade-up .8s .3s both; }
.action-strip__item i { transition: transform .3s; }
.action-strip__item:hover i { transform: translateY(-4px) scale(1.18); }
.action-strip__item--alert { animation: pulse-red 2.2s ease-in-out infinite; }

/* Buttons: shine sweep */
.btn { position: relative; overflow: hidden; }
.btn--primary::after, .btn--accent::after { content: ""; position: absolute; top: 0; left: 0; width: 40%; height: 100%; background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .45), transparent); transform: translateX(-130%) skewX(-20deg); pointer-events: none; }
.btn--primary:hover::after, .btn--accent:hover::after { animation: shine .8s; }

/* Floating and pulsing helpers */
.whatsapp-fab { animation: pulse-ring 2.4s infinite; }
.about__art, .about__media img { animation: float-y 6s ease-in-out infinite; }
.card-image:hover .card-image__icon i, .quick-action:hover > span i, .contact-card:hover > i { animation: wiggle .6s; }
.card-image__icon { transition: transform .3s; }
.card-image:hover .card-image__icon { transform: translateY(-6px); }
.card-doctor__photo { position: relative; }
.card-doctor__photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(transparent 60%, rgba(15, 138, 79, .35)); opacity: 0; transition: opacity .3s; pointer-events: none; }
.card-doctor:hover .card-doctor__photo::after { opacity: 1; }

/* Section heading underline */
.section-title-row h2 { position: relative; padding-bottom: 12px; }
.section-title-row h2::after { content: ""; position: absolute; left: 0; bottom: 0; width: 56px; height: 4px; border-radius: 4px; background: var(--accent); }
.js-ready .section-title-row.reveal h2::after { width: 0; }
.js-ready .section-title-row.reveal.is-visible h2::after { animation: grow-line .8s .3s both; }

/* Header shrink on scroll */
.site-header__inner { transition: min-height .3s; }
.site-header.is-scrolled .site-header__inner { min-height: 62px; }
.site-header.is-scrolled .brand__logo { height: calc(var(--logo-h, 48px) * .82); }
.brand__logo { transition: height .3s; }

/* Scroll reveal (only when JS is active, so content never stays hidden) */
.js-ready .reveal { opacity: 0; transform: translateY(34px); }
.js-ready .reveal--left { transform: translateX(-46px); }
.js-ready .reveal--right { transform: translateX(46px); }
.js-ready .reveal--zoom { transform: scale(.92); }
.js-ready .reveal.is-visible { opacity: 1; transform: none; transition: opacity .7s cubic-bezier(.2, .7, .2, 1), transform .7s cubic-bezier(.2, .7, .2, 1); transition-delay: var(--d, 0s); }

@media (prefers-reduced-motion: reduce) {
    .js-ready .reveal { opacity: 1 !important; transform: none !important; }
    .banner-slide__content > div > * { opacity: 1 !important; }
}
