/* Motion only: no type, spacing, colors, content or grid overrides. */
:root { --motion-ease: cubic-bezier(.16, 1, .3, 1); }
.motion-ready .site > header { position: sticky; top: 0; z-index: 20; transition: box-shadow 280ms ease; }
.motion-ready .site > header.motion-scrolled { box-shadow: 0 8px 24px #00000026; }
.motion-ready { scroll-padding-top: clamp(100px, 9cqw, 150px); }
.navlinks > a:not(.button)::after { content: ''; position: absolute; left: 0; right: 0; bottom: -.75cqw; height: max(1px, .15cqw); background: currentColor; scale: 0 1; transform-origin: left; transition: scale 260ms var(--motion-ease); box-shadow: none; }
.navlinks > a.active::after { background: #67dfff; }
.navlinks > a.active::after, .navlinks > a:not(.button):is(:hover, :focus-visible)::after { scale: 1 1; }
.navlinks > a:not(.button):hover { text-decoration: none; }
.service-card, .plan, .values article, .coverage .map, .coverage-copy, .portal {
  transition: transform 280ms var(--motion-ease), box-shadow 280ms ease, border-color 280ms ease;
}
.button, .plan button, .whatsapp, .cities button, .location-list button {
  transition: transform 260ms var(--motion-ease), box-shadow 260ms ease, filter 260ms ease, border-color 260ms ease;
}
.button b, .button svg, .service-card > svg, .value-icon > svg, .reward > svg, .social svg {
  transition: transform 280ms var(--motion-ease);
}
.button::before { pointer-events: none; }
.button:active, .plan button:active, .whatsapp:active, .cities button:active { transform: translateY(0) scale(.98); }
input, textarea { transition: border-color 200ms ease, box-shadow 200ms ease; }
.motion-counting { position: relative; }
.stats .motion-counting > span { font: inherit; line-height: inherit; }
.motion-counter { position: absolute; inset: 0; white-space: nowrap; }
.whatsapp.support-launch {
  position: relative;
  isolation: isolate;
  overflow: visible;
}
.whatsapp.support-launch::after {
  content: '';
  position: absolute;
  inset: -6px;
  z-index: 1;
  pointer-events: none;
  border: 1.5px solid rgba(255, 151, 93, .78);
  border-radius: inherit;
  animation: kade-call-ring 1.9s cubic-bezier(.16, 1, .3, 1) infinite;
}
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .service-card:hover, .values article:hover, .coverage-copy:hover, .portal:hover { transform: translateY(-4px) scale(1.01); }
  .plan:hover { transform: translateY(-6px) scale(1.01); }
  .button:hover, .whatsapp:hover { transform: translateY(-3px) scale(1.015); }
  .button:hover b, .button:hover svg { transform: translateX(3px); }
  .service-card:hover > svg, .values article:hover .value-icon > svg, .reward:hover > svg { transform: translateY(-3px) rotate(-4deg); }
  .plan:hover button { transform: translateY(-2px); }
  .social a:hover svg { transform: rotate(-7deg) scale(1.08); }
  .hotspots.motion-in-view::after { animation: kade-ambient 10s ease-in-out infinite alternate; }
  .map.motion-in-view .map-brand::after { content: ''; position: absolute; inset: -7px; border: 1px solid currentColor; border-radius: inherit; pointer-events: none; animation: kade-signal 3.6s ease-out infinite; }
}
@keyframes kade-ambient { from { transform: translate3d(-.8%, 0, 0); } to { transform: translate3d(.8%, -1%, 0); } }
@keyframes kade-signal { 0% { scale: .98; opacity: .35; } 80%, 100% { scale: 1.45; opacity: 0; } }
@keyframes kade-call-ring {
  0%, 18% { scale: 1; opacity: .75; }
  72%, 100% { scale: 1.34; opacity: 0; }
}
@media (max-width: 1100px) {
  .motion-ready .navlinks { top: 100%; }
  /* Discrete display transitions animate closing without trapping invisible links. */
  @supports (transition-behavior: allow-discrete) {
    .motion-ready .navlinks { opacity: 0; translate: 0 -10px; transition: opacity 180ms ease, translate 220ms var(--motion-ease), display 220ms allow-discrete; }
    .motion-ready .navlinks.open { opacity: 1; translate: 0 0; }
    @starting-style { .motion-ready .navlinks.open { opacity: 0; translate: 0 -10px; } }
  }
  .menu-line { transform-origin: 12px 12px; transition: transform 240ms var(--motion-ease), opacity 160ms ease; }
  .menu-toggle[aria-expanded='true'] .menu-line-top { transform: translateY(5px) rotate(45deg); transform-origin: 12px 7px; }
  .menu-toggle[aria-expanded='true'] .menu-line-middle { opacity: 0; }
  .menu-toggle[aria-expanded='true'] .menu-line-bottom { transform: translateY(-5px) rotate(-45deg); transform-origin: 12px 17px; }
}
@media (hover: none) {
  .service-card:hover, .plan:hover, .values article:hover, .coverage .map:hover, .button:hover, .whatsapp:hover, .cities button:hover { transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  .site *, .site *::before, .site *::after, dialog, dialog::backdrop {
    animation: none !important; transition: none !important;
  }
  .service-card:hover, .plan:hover, .values article:hover, .coverage .map:hover, .button:hover, .whatsapp:hover, .cities button:hover, .navlinks > a:hover, .social a:hover { transform: none !important; }
  .motion-ready .navlinks.open { opacity: 1; translate: 0 0; }
}
