/* =====================================================================
   Suntor — motion & hover layer (loaded after site.css)
   One easing curve for everything; all motion is switched off under
   prefers-reduced-motion (end of file).
   ===================================================================== */
:root {
  --ease: cubic-bezier(.22, 1, .36, 1);
  --ease-in-out: cubic-bezier(.65, 0, .35, 1);
  --shadow-soft: 0 18px 40px -22px rgba(108, 48, 49, .45);
  --shadow-pink: 0 12px 28px -10px rgba(206, 105, 106, .65);
}

/* ---------- Scroll reveal (classes added by app.js) ----------
   Uses animations (fill: backwards) instead of transitions so the
   hover transitions of the same elements keep working afterwards. */
@keyframes reveal-up { from { opacity: 0; transform: translate3d(0, 32px, 0); } }
@keyframes reveal-left { from { opacity: 0; transform: translate3d(-32px, 0, 0); } }
@keyframes reveal-zoom { from { opacity: 0; transform: scale(.94); } }
.reveal { opacity: 0; }
.reveal.is-visible { opacity: 1; animation: reveal-up .9s var(--ease) backwards; animation-delay: calc(var(--i, 0) * 90ms); }
.reveal--left.is-visible { animation-name: reveal-left; }
.reveal--zoom.is-visible { animation-name: reveal-zoom; animation-duration: 1.4s; transform-origin: 30% 60%; }

/* Room inside the scrolling tracks so lifted cards and shadows aren't clipped
   (padding and negative margin cancel out, layout stays the same). */
.carousel__track { padding: 12px 0 28px; margin: -12px 0 -28px; }

/* ---------- Hero entrance ---------- */
@keyframes hero-zoom { from { transform: scale(1.08); } to { transform: scale(1); } }
@keyframes fade-up { from { opacity: 0; transform: translate3d(0, 28px, 0); } to { opacity: 1; transform: none; } }
@keyframes fade-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes organic-in { from { opacity: 0; transform: translate3d(60px, 0, 0) rotate(4deg); } to { opacity: 1; transform: none; } }
@keyframes bob { 0%, 100% { transform: translate(-50%, 0); } 50% { transform: translate(-50%, 7px); } }
.hero__photo { animation: hero-zoom 2.4s var(--ease) both; }
.hero__organic { animation: organic-in 1.8s .3s var(--ease) both; }
.hero h1 { animation: fade-up 1s .25s var(--ease) both; }
.hero__text p { animation: fade-up 1s .42s var(--ease) both; }
.hero__actions { animation: fade-up 1s .58s var(--ease) both; }
.hero__scroll { animation: fade-in 1s 1s both, bob 2.4s 2s var(--ease-in-out) infinite; }
.hero__scroll img { transition: transform .3s var(--ease); }
.hero__scroll:hover img { transform: scale(1.15); }

/* ---------- Buttons ---------- */
.btn { position: relative; overflow: hidden; isolation: isolate; transition: background-color .35s var(--ease), border-color .35s var(--ease), color .35s var(--ease), transform .35s var(--ease), box-shadow .35s var(--ease); }
.btn:active { transform: translateY(0) scale(.98); }
/* soft light sweep across the button */
.btn::after { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(110deg, transparent 30%, rgba(255, 255, 255, .35) 50%, transparent 70%); transform: translateX(-110%); transition: transform .8s var(--ease); pointer-events: none; }
.btn:hover::after, .btn:focus-visible::after { transform: translateX(110%); }
.btn img { transition: transform .45s var(--ease); }
.btn:hover img { transform: rotate(-12deg) scale(1.1); }
.btn--primary:hover, .btn--primary:focus-visible { background: var(--primary-700); transform: translateY(-2px); box-shadow: var(--shadow-pink); }
/* outline buttons fill with pink from the left */
.btn--outline { background: linear-gradient(var(--primary-500), var(--primary-500)) no-repeat 0 0 / 0% 100%; transition: background-size .5s var(--ease), color .35s var(--ease), transform .35s var(--ease), box-shadow .35s var(--ease); }
.btn--outline:hover, .btn--outline:focus-visible { background-color: transparent; background-size: 100% 100%; color: var(--white); transform: translateY(-2px); box-shadow: var(--shadow-pink); }
.btn--glass:hover, .btn--glass:focus-visible { background: rgba(255, 255, 255, .3); transform: translateY(-2px); box-shadow: 0 12px 28px -12px rgba(0, 0, 0, .45); }

/* ---------- Header ---------- */
.brand { transition: opacity .3s var(--ease), transform .4s var(--ease); }
.brand:hover { opacity: .9; transform: scale(1.02); }
.topbar__link, .site-footer__links a { position: relative; }
.topbar__link:hover, .site-footer__links a:hover { text-decoration: none; }
/* underline that grows from the left and leaves to the right */
.topbar__link::after, .site-footer__links a::after { content: ''; position: absolute; left: 0; bottom: -3px; width: 100%; height: 1.5px; background: currentColor; border-radius: 2px; transform: scaleX(0); transform-origin: right; transition: transform .45s var(--ease); }
.topbar__link:hover::after, .site-footer__links a:hover::after { transform: scaleX(1); transform-origin: left; }
.topbar__pill { transition: background-color .35s var(--ease), color .35s var(--ease); }
.topbar__pill:hover { background: var(--white); color: var(--primary-500); }
.search-pill { transition: background-color .3s var(--ease), box-shadow .3s var(--ease); }
.search-pill:hover { background: #9c4344; }
.search-pill img { transition: transform .4s var(--ease); }
.search-pill:hover img, .search-pill:focus-within img { transform: scale(1.12) rotate(-8deg); }
.contact-pill { transition: transform .35s var(--ease), box-shadow .35s var(--ease), background-color .35s var(--ease); }
.contact-pill:hover { background: var(--white); transform: translateY(-2px); box-shadow: 0 10px 22px -10px rgba(57, 22, 22, .5); }
.contact-pill img { transition: transform .45s var(--ease); }
.contact-pill:hover img { transform: rotate(-12deg) scale(1.1); }
.mainnav__link { transition: color .3s var(--ease), -webkit-text-stroke-color .3s var(--ease); }
.mainnav__link img { transition: transform .45s var(--ease); }
.nav-drop.is-open .nav-drop__toggle img { transform: rotate(180deg); }
/* dropdown: fades in while sliding down a few px; items follow one after another */
.nav-drop__panel { transform: translate3d(0, -8px, 0) scale(.98); transform-origin: 32px 0; transition: opacity .3s var(--ease), transform .45s var(--ease), visibility 0s .45s; }
.nav-drop.is-open .nav-drop__panel { transform: none; transition: opacity .3s var(--ease), transform .45s var(--ease), visibility 0s; }
.nav-drop__item { opacity: 0; transform: translate3d(0, -4px, 0); transition: opacity .3s var(--ease), transform .4s var(--ease), background-color .25s var(--ease), padding .35s var(--ease); }
.nav-drop.is-open .nav-drop__item { opacity: 1; transform: none; }
.nav-drop.is-open .nav-drop__item:nth-child(1) { transition-delay: .05s, .05s, 0s, 0s; }
.nav-drop.is-open .nav-drop__item:nth-child(2) { transition-delay: .1s, .1s, 0s, 0s; }
.nav-drop.is-open .nav-drop__item:nth-child(3) { transition-delay: .15s, .15s, 0s, 0s; }
.nav-drop__item::before { transform: scaleY(.3); transition: opacity .25s var(--ease), transform .35s var(--ease); }
.nav-drop__item:hover::before, .nav-drop__item:focus-visible::before { transform: none; }

/* ---------- Situation cards ---------- */
.situation-card { transition: transform .5s var(--ease), box-shadow .5s var(--ease), background-color .5s var(--ease), border-color .5s var(--ease); }
.situation-card:hover { transform: translateY(-6px); background: #f0c9c9; border-color: rgba(255, 255, 255, .7); box-shadow: var(--shadow-soft); }
.situation-card__icon, .situation-card__svg { transition: transform .6s var(--ease); }
.situation-card:hover .situation-card__icon, .situation-card:hover .situation-card__svg { transform: translateY(-3px) scale(1.1); }

/* ---------- Testimonials ---------- */
.testimonial-card { transition: transform .5s var(--ease), box-shadow .5s var(--ease); }
.testimonial-card:hover { transform: translateY(-6px); box-shadow: var(--shadow-soft); }
.testimonial-card__media { height: 428px; border-radius: 12px; overflow: hidden; transform: translateZ(0); }
.testimonial-card__photo { height: 100%; transition: transform 1.2s var(--ease); }
.testimonial-card:hover .testimonial-card__photo { transform: scale(1.06); }
@keyframes ring { from { transform: scale(1); opacity: .7; } to { transform: scale(1.7); opacity: 0; } }
.testimonial-card__play { transition: transform .45s var(--ease), background-color .35s var(--ease); }
.testimonial-card__play::before { content: ''; position: absolute; inset: 0; border-radius: inherit; border: 1.5px solid rgba(255, 255, 255, .8); opacity: 0; }
.testimonial-card:hover .testimonial-card__play { transform: translate(-50%, -50%) scale(1.12); background: rgba(255, 255, 255, .32); }
.testimonial-card:hover .testimonial-card__play::before { animation: ring 1.4s var(--ease) infinite; }

/* ---------- Partners ---------- */
.partner span { transition: background-color .35s var(--ease), transform .45s var(--ease); }
.partner:hover span { background: var(--primary-500); transform: scale(1.08); }

/* ---------- Blog ---------- */
.blog-highlight { transition: transform .5s var(--ease), box-shadow .5s var(--ease); }
.blog-highlight:hover { transform: translateY(-4px); box-shadow: var(--shadow-soft); }
.blog-highlight__img { transition: transform 1.4s var(--ease); }
.blog-highlight:hover .blog-highlight__img { transform: scale(1.06); }
.read-more img { transition: transform .45s var(--ease); }
.blog-highlight:hover .read-more img, .post-card:hover .read-more img { transform: translate(3px, -3px); }
.post-card { transition: transform .5s var(--ease), box-shadow .5s var(--ease), border-color .5s var(--ease); }
.post-card:hover { transform: translateY(-6px); border-color: rgba(206, 105, 106, .35); box-shadow: var(--shadow-soft); }
.post-card__media { display: block; height: 260px; overflow: hidden; }
.post-card__img { height: 100%; transition: transform 1.2s var(--ease); }
.post-card:hover .post-card__img { transform: scale(1.06); }
.post-card__title { transition: color .3s var(--ease); }
.post-card:hover .post-card__title { color: var(--primary-900); }

/* ---------- Media ---------- */
.media-card__media { display: block; height: 184px; border-radius: 16px; overflow: hidden; transform: translateZ(0); transition: box-shadow .5s var(--ease), transform .5s var(--ease); }
.media-card__media img { height: 100%; border-radius: 0; transition: transform 1.2s var(--ease); }
.media-card:hover .media-card__media { transform: translateY(-4px); box-shadow: var(--shadow-soft); }
.media-card:hover .media-card__media img { transform: scale(1.06); }
.media-card__title { transition: color .3s var(--ease); }

/* ---------- Carousel arrows & dots ---------- */
.arrow-btn { transition: background-color .3s var(--ease), transform .35s var(--ease), box-shadow .35s var(--ease); }
.arrow-btn i { transition: transform .4s var(--ease), background-color .3s var(--ease); }
.arrow-btn:not([aria-disabled="true"]):hover { transform: scale(1.06); box-shadow: var(--shadow-pink); }
.arrow-btn--next:not([aria-disabled="true"]):hover i { transform: translateX(3px); }
.arrow-btn--prev:not([aria-disabled="true"]):hover i { transform: translateX(-3px); }
.arrow-btn[aria-disabled="true"]:hover { background: var(--primary-500-a10); }
.carousel__dots span { transition: width .45s var(--ease), height .45s var(--ease), background-color .45s var(--ease); }

/* ---------- FAQ ---------- */
.faq-item { transition: background-color .4s var(--ease), border-color .4s var(--ease), box-shadow .4s var(--ease); }
.faq-item:not([open]):hover { border-color: rgba(206, 105, 106, .45); background: #fdfafa; box-shadow: 0 10px 24px -18px rgba(108, 48, 49, .45); }
.faq-item summary span { transition: color .3s var(--ease); }
.faq-item summary:hover span { color: var(--primary-500); }
.faq-item summary img { transition: transform .45s var(--ease); }
.faq-item:not([open]) summary:hover .faq-item__plus { transform: rotate(90deg); }
.faq-item__answer { overflow: hidden; }
.faq-item__answer p { transition: opacity .4s var(--ease), transform .4s var(--ease); }
.faq-item.is-closing .faq-item__answer p { opacity: 0; transform: translateY(-6px); }

/* ---------- Footer ---------- */
.site-footer__links a { align-self: flex-start; }
.footer-social a { transition: transform .4s var(--ease), background-color .3s var(--ease), box-shadow .4s var(--ease); }
.footer-social a:hover { transform: translateY(-4px); box-shadow: 0 12px 22px -10px rgba(57, 22, 22, .55); }
.footer-social img { transition: transform .45s var(--ease); }
.footer-social a:hover img { transform: scale(1.12); }
.footer-contact__icon { transition: transform .45s var(--ease); }
.footer-contact li:hover .footer-contact__icon { transform: scale(1.08) rotate(-8deg); }
.site-footer__logo { transition: opacity .3s var(--ease); }
.site-footer__logo:hover { opacity: .85; }

/* ---------- WhatsApp float ---------- */
@keyframes wa-pulse { 0% { box-shadow: 0 0 0 0 rgba(37, 211, 102, .45); } 70%, 100% { box-shadow: 0 0 0 18px rgba(37, 211, 102, 0); } }
.whatsapp-float { border-radius: 50%; animation: fade-in .6s 1.2s both, wa-pulse 2.6s 2s var(--ease) infinite; transition: transform .4s var(--ease); }
.whatsapp-float:hover { transform: scale(1.08) rotate(-6deg); animation-play-state: paused; }

/* ---------- Mobile menu ---------- */
.burger { transition: background-color .3s var(--ease); }
.burger:hover { background: rgba(255, 255, 255, .12); }
.burger span { transition: width .4s var(--ease); }
.burger:hover span:nth-child(2) { width: 24px; }
.burger:hover span:nth-child(3) { width: 14px; }
.drawer { transition: visibility 0s .6s; }
.drawer.is-open { transition: visibility 0s; }
.drawer__backdrop { transition: opacity .5s var(--ease); }
.drawer__panel { transition: transform .6s var(--ease); }
.drawer__close { transition: background-color .3s var(--ease), transform .5s var(--ease); }
.drawer__close:hover { background: rgba(255, 255, 255, .28); transform: rotate(90deg); }
/* content slides in one item after another once the panel is open */
.drawer__search, .drawer__nav > *, .drawer__label, .drawer__pill, .drawer__foot > * { opacity: 0; transform: translate3d(24px, 0, 0); transition: opacity .5s var(--ease), transform .5s var(--ease), color .3s var(--ease), background-color .3s var(--ease), padding .4s var(--ease); }
.drawer.is-open :is(.drawer__search, .drawer__nav > *, .drawer__label, .drawer__pill, .drawer__foot > *) { opacity: 1; transform: none; transition-delay: calc(.12s + var(--n, 0) * 45ms), calc(.12s + var(--n, 0) * 45ms), 0s, 0s, 0s; }
.drawer__search { --n: 0; }
.drawer__nav > :nth-child(1) { --n: 1; } .drawer__nav > :nth-child(2) { --n: 2; } .drawer__nav > :nth-child(3) { --n: 3; }
.drawer__nav > :nth-child(4) { --n: 4; } .drawer__nav > :nth-child(5) { --n: 5; } .drawer__nav > :nth-child(6) { --n: 6; }
.drawer__nav > :nth-child(7) { --n: 7; }
.drawer__label { --n: 8; } .drawer__pill:nth-of-type(1) { --n: 9; } .drawer__pill:nth-of-type(2) { --n: 10; }
.drawer__foot > * { --n: 11; }
.drawer__link { transition: color .3s var(--ease), padding .4s var(--ease); }
.drawer__link::after { transition: transform .4s var(--ease); }
a.drawer__link:hover { color: var(--primary-500); padding-left: 10px; }
a.drawer__link:hover::after { transform: translateX(4px) rotate(45deg); }
.drawer__group-toggle:hover { color: var(--primary-500); }
.drawer__sub { transition: grid-template-rows .5s var(--ease); }
.drawer__sub a { transition: background-color .25s var(--ease), padding .35s var(--ease); }
.drawer__sub a::before { transition: opacity .25s var(--ease); }
.drawer__sub a:hover { background: var(--primary-25); padding-left: 20px; }
.drawer__sub a:hover::before { opacity: 1; }
.drawer__pill:hover { background-color: var(--primary-500); color: var(--white); }

/* ---------- Página Sobre ---------- */
.estrutura-card { transition: transform .5s var(--ease), box-shadow .5s var(--ease), background-color .5s var(--ease), border-color .5s var(--ease); }
.estrutura-card:hover { transform: translateY(-6px); background: #f0c9c9; border-color: rgba(255, 255, 255, .7); box-shadow: 0 22px 44px -24px rgba(57, 22, 22, .55); }
.estrutura-card img, .estrutura-card__mask { transition: transform .6s var(--ease); }
.estrutura-card:hover img, .estrutura-card:hover .estrutura-card__mask { transform: translateY(-3px) scale(1.1); }

/* Tabs: the pink bar glides to the active item, the description unfolds, the photo cross-fades */
.tabs-sobre__indicator { transition: transform .6s var(--ease); }
.tab-item__title { transition: opacity .35s var(--ease), color .35s var(--ease); }
.tab-item:not(.is-active) .tab-item__title:hover { opacity: .9; color: var(--primary-500); }
.tab-item__panel { transition: grid-template-rows .6s var(--ease); }
.tab-item__panel p { opacity: 0; transform: translate3d(0, -8px, 0); transition: opacity .35s var(--ease), transform .5s var(--ease); }
.tab-item.is-active .tab-item__panel p { opacity: 1; transform: none; transition-delay: .15s; }
.tabs-sobre__media img { transform: scale(1.06); transition: opacity .8s var(--ease), transform 1.6s var(--ease); }
.tabs-sobre__media img.is-active { transform: scale(1); }

.tecno-card { transition: transform .5s var(--ease), box-shadow .5s var(--ease); }
.tecno-card:hover { transform: translateY(-6px); box-shadow: var(--shadow-soft); }
.tecno-card__media img { transition: transform 1.2s var(--ease); }
.tecno-card:hover .tecno-card__media img { transform: scale(1.07); }
.tecno-card h3 { transition: color .3s var(--ease); }
.tecno-card:hover h3 { color: var(--primary-500); }

.space-card { transition: transform .5s var(--ease), box-shadow .5s var(--ease); }
.space-card:hover { transform: translateY(-6px); box-shadow: var(--shadow-soft); }
.space-card__media img { transition: transform 1.2s var(--ease); }
.space-card:hover .space-card__media img { transform: scale(1.06); }

@keyframes drift { 0%, 100% { transform: translate(-50%, -50%) rotate(0deg); } 50% { transform: translate(-50%, calc(-50% - 10px)) rotate(1.5deg); } }
.cta-visit__organic { animation: drift 9s var(--ease-in-out) infinite; }
.cta-visit__organic--right { animation-delay: -4.5s; }

/* ---------- Página Reabilitação ---------- */
@keyframes photo-in { from { opacity: 0; transform: translate3d(40px, 0, 0) scale(1.04); } to { opacity: 1; transform: none; } }
.reab-hero__text h1 { animation: fade-up 1s .15s var(--ease) both; }
.reab-hero__text p { animation: fade-up 1s .3s var(--ease) both; }
.reab-hero__content > .btn { animation: fade-up 1s .45s var(--ease) both; }
.reab-hero__photo { animation: photo-in 1.6s .1s var(--ease) both; }
.reab-hero__line { animation: fade-in 1.4s .7s var(--ease) both; }

.quadro__icon { transition: transform .5s var(--ease); }
.quadro__text { transition: color .3s var(--ease); }
.quadro:hover .quadro__icon { transform: scale(1.12) rotate(-4deg); }
.quadro:hover .quadro__text { color: var(--primary-500); }

.condicao-card { transition: transform .5s var(--ease), box-shadow .5s var(--ease), border-color .5s var(--ease); }
.condicao-card:hover { transform: translateY(-6px); border-color: var(--primary-500); box-shadow: var(--shadow-soft); }
.condicao-card__icon { transition: transform .6s var(--ease); transform-origin: left center; }
.condicao-card:hover .condicao-card__icon { transform: scale(1.1); }
/* the "Saiba mais" button fills when the whole card is hovered */
.condicao-card:hover .condicao-card__btn { background-size: 100% 100%; color: var(--white); }
.condicao-card:hover .condicao-card__btn::after { transform: translateX(110%); }

.abordagem__media img { transition: transform 1.4s var(--ease); }
.abordagem__card:hover .abordagem__media img { transform: scale(1.05); }

@keyframes gallery-drift { from { transform: translateX(var(--start)); } to { transform: translateX(calc(var(--start) - var(--set))); } }
.gallery__track { --start: -1936px; --set: 3888px; animation: gallery-drift 110s linear infinite; }
.gallery:hover .gallery__track { animation-play-state: paused; }
.gallery__item img { transition: transform 1.2s var(--ease); }
.gallery__item:hover img { transform: scale(1.06); }
@media (max-width: 720px) { .gallery__track { --start: -1414px; --set: 2844px; } }

/* ---------- Página Linhas de Cuidado ---------- */
.linha-card { transition: transform .5s var(--ease), box-shadow .5s var(--ease); }
.linha-card:hover { transform: translateY(-6px); box-shadow: 0 22px 44px -22px rgba(108, 48, 49, .6); }
.linha-card__media img { transition: transform 1.4s var(--ease); }
.linha-card:hover .linha-card__media img { transform: scale(1.07); }

/* ---------- Página Cuidados Paliativos ---------- */
.pal-quadros__list img { transition: transform .6s var(--ease); }
.pal-quadros__list span { transition: color .3s var(--ease); }
.pal-quadros__list li:hover img { transform: rotate(45deg) scale(1.15); }
.pal-quadros__list li:hover span { color: var(--primary-500); }
@keyframes line-spin { to { transform: rotate(403.87deg); } }
.pal-quadros__line img { animation: line-spin 60s linear infinite; }

/* Touch screens: no "stuck" hover lifts after a tap */
@media (hover: none) {
  .situation-card:hover, .testimonial-card:hover, .post-card:hover, .blog-highlight:hover,
  .estrutura-card:hover, .tecno-card:hover, .space-card:hover, .condicao-card:hover, .linha-card:hover { transform: none; box-shadow: none; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; transition-delay: 0s !important; }
  .reveal { opacity: 1; transform: none; }
}
