/* base.css — reset, accessibility and motion-kit states shared by the batch-2 sites */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body { margin: 0; min-height: 100vh; text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; }
h1, h2, h3, h4, p, figure, blockquote, dl, dd, ul, ol { margin: 0; }
ul[role="list"], ol[role="list"] { list-style: none; padding: 0; }
img, picture, video, svg { display: block; max-width: 100%; }
img, video { height: auto; }
input, button, textarea, select { font: inherit; color: inherit; }
button { cursor: pointer; background: none; border: 0; padding: 0; }
a { color: inherit; }
[hidden] { display: none !important; }
:target { scroll-margin-top: 90px; }
html:not(.motion) { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html:not(.motion) { scroll-behavior: auto; } }
html.menu-lock { overflow: hidden; }

:focus-visible { outline: 2px solid var(--focus, currentColor); outline-offset: 3px; border-radius: 4px; }
.skip { position: fixed; left: 12px; top: -60px; z-index: 999; padding: 10px 16px; border-radius: 8px; background: #000; color: #fff; text-decoration: none; transition: top .2s; }
.skip:focus { top: 12px; }
.sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* motion-kit states: content is hidden only when the kit is running */
.motion [data-split] { visibility: hidden; }
.ln { padding-bottom: .08em; margin-bottom: -.08em; }
.no-motion [data-split], .no-motion [data-rise], .no-motion [data-clip] { visibility: visible !important; opacity: 1 !important; transform: none !important; clip-path: none !important; }

/* media frame used for reveal masks */
.frame { position: relative; overflow: hidden; }
.frame > img, .frame > video { width: 100%; height: 100%; object-fit: cover; }

/* floating WhatsApp (colors come from the site) */
.wa-float { position: fixed; right: 16px; bottom: 16px; z-index: 60; display: inline-flex; align-items: center; gap: 10px; min-height: 52px; padding: 0 18px 0 14px; border-radius: 999px; text-decoration: none; font-weight: 600; box-shadow: 0 10px 30px rgba(0,0,0,.25); transition: transform .3s, opacity .3s; }
.wa-float svg { width: 24px; height: 24px; fill: currentColor; }
.wa-float span { font-size: 15px; }
@media (min-width: 900px) { .wa-float { display: none; } }

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