/* Adaptações acessíveis e estados do site institucional. */
html { scroll-behavior: smooth; scroll-padding-top: 6rem; }
body { min-width: 320px; }
/* Keep translated reveals inside the viewport throughout their entrance. */
main { overflow-x: clip; }
[hidden] { display: none !important; }
:focus-visible { outline: 3px solid #087c69; outline-offset: 4px; }
.skip-link { position: fixed; left: 1rem; top: 1rem; padding: .75rem 1rem; background: white; color: #103d36; z-index: 100; transform: translateY(-200%); border: 2px solid #087c69; border-radius: .5rem; }
.skip-link:focus { transform: translateY(0); }
.mobile-nav { background: hsl(var(--background)); padding: 1rem 1.5rem; border-top: 1px solid hsl(var(--border)); box-shadow: 0 .75rem 1rem #153c3510; }
.mobile-nav a { display: block; padding: .75rem; color: hsl(var(--foreground)); font-weight: 600; }
.faq-item summary { cursor: pointer; list-style: none; gap: 1rem; }
.faq-item summary::-webkit-details-marker { display: none; }
/* Same chevron, hover colors and open shadow as the public reference. */
.faq-chevron { transition: transform 200ms ease; }
.faq-item[open] .faq-chevron { transform: rotate(180deg); }
.faq-item[open] { box-shadow: var(--shadow-card); }
.faq-item { interpolate-size: allow-keywords; }
.faq-item::details-content { height: 0; overflow: clip; transition: height 200ms ease-out, content-visibility 200ms allow-discrete; }
.faq-item[open]::details-content { height: auto; }
.store-unavailable { user-select: none; }
.availability-note { max-width: 42rem; margin: 1.5rem auto 0; padding: .875rem 1rem; text-align: center; color: hsl(var(--muted-foreground)); font-size: .875rem; line-height: 1.6; }
#parcerias { margin-inline: auto; padding-inline: 1.5rem; text-align: center; }
.site-contact { padding: 1rem 1.5rem; border-top: 1px solid hsl(var(--border)); color: hsl(var(--muted-foreground)); font-size: .875rem; text-align: center; overflow-wrap: anywhere; }
.site-contact a, .unavailable-panel a { text-decoration: underline; text-underline-offset: .2em; color: #087461; }
.unavailable-panel { padding: 1.5rem; border: 1px solid hsl(var(--border)); background: hsl(var(--card)); border-radius: .75rem; margin: 1.5rem 0; }
.unavailable-panel h2 { font-size: 1.25rem; font-weight: 700; margin-bottom: .75rem; }
.unavailable-panel p + p { margin-top: 1rem; }
.unavailable-panel a { overflow-wrap: anywhere; }
.not-found { max-width: 42rem; margin: 10vh auto; padding: 2rem; color: hsl(var(--foreground)); }
.not-found h1 { margin: 1.5rem 0; font-size: clamp(2rem, 6vw, 3rem); font-weight: 700; }
.not-found p { margin: 1rem 0; line-height: 1.7; }
.site-brand { font-weight: 800; color: hsl(var(--primary)); }
.return-link { display: inline-block; margin-top: 1rem; color: #087461; text-decoration: underline; }
@media (min-width: 768px) { .mobile-nav { display: none !important; } }
@media (max-width: 420px) { #downloads .inline-flex, main > section:first-child .inline-flex { max-width: 100%; } }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

/* Public reference: 40px reveal / 600ms / once / -100px viewport margin. */
[data-motion] { --motion-x: 0px; --motion-y: 40px; }
[data-motion="hero"] { --motion-y: 20px; }
[data-motion-direction="left"] { --motion-x: 40px; --motion-y: 0px; }
[data-motion-direction="right"] { --motion-x: -40px; --motion-y: 0px; }
[data-motion-state="pending"] { opacity: 0; transform: translate(var(--motion-x), var(--motion-y)); }
[data-motion="phone"][data-motion-state="pending"] { transform: scale(.9); }
[data-motion-state="visible"] { opacity: 1; transform: none; transition: opacity var(--motion-duration, 600ms) cubic-bezier(.25,.1,.25,1) var(--motion-delay, 0ms), transform var(--motion-duration, 600ms) cubic-bezier(.25,.1,.25,1) var(--motion-delay, 0ms); }
[data-motion="hero"][data-motion-state="visible"], [data-motion="phone"][data-motion-state="visible"] { transition-timing-function: cubic-bezier(0,0,.58,1); }
[data-motion-state="pending"]:focus-within { opacity: 1; transform: none; }
.phone-float { animation: phone-float 4s ease-in-out infinite; }
@keyframes phone-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }
@media (prefers-reduced-motion: reduce) {
  [data-motion] { opacity: 1 !important; transform: none !important; transition: none !important; }
  .phone-float { animation: none !important; transform: none !important; }
  .faq-item::details-content, .faq-chevron { transition: none !important; }
}
