/* Kitessa — design tokens compartilhados. Cada mockup pode sobrescrever as cores
   mas mantém a mesma escala fluida de tipografia/espaçamento pra consistência. */
:root {
  /* Type scale fluida (mobile-first, escala com viewport) */
  --step--1: clamp(0.83rem, 0.78rem + 0.25vw, 0.95rem);
  --step-0:  clamp(1rem, 0.92rem + 0.4vw, 1.2rem);
  --step-1:  clamp(1.3rem, 1.1rem + 0.9vw, 1.8rem);
  --step-2:  clamp(1.7rem, 1.3rem + 1.9vw, 2.7rem);
  --step-3:  clamp(2.2rem, 1.5rem + 3.4vw, 4rem);
  --step-4:  clamp(2.8rem, 1.6rem + 5.8vw, 6rem);
  --step-5:  clamp(3.4rem, 1.4rem + 9.5vw, 9rem);

  /* Espaçamento fluido */
  --space-2xs: clamp(0.5rem, 0.45rem + 0.25vw, 0.65rem);
  --space-xs:  clamp(0.75rem, 0.68rem + 0.35vw, 1rem);
  --space-s:   clamp(1rem, 0.9rem + 0.5vw, 1.4rem);
  --space-m:   clamp(1.5rem, 1.3rem + 1vw, 2.2rem);
  --space-l:   clamp(2.4rem, 2rem + 2vw, 4rem);
  --space-xl:  clamp(3.5rem, 2.8rem + 3.5vw, 7rem);
  --space-2xl: clamp(5rem, 3.8rem + 6vw, 11rem);

  --maxw: 1280px;
  --radius: 14px;
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body { margin: 0; min-height: 100svh; font-size: var(--step-0); line-height: 1.5;
  text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; }
img, svg, canvas { display: block; max-width: 100%; }
button { font: inherit; cursor: pointer; }
a { color: inherit; }

/* Acessibilidade: respeita quem desliga animação */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.001ms !important; animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important; scroll-behavior: auto !important;
  }
}

/* Selo de atribuição reutilizável */
.bcga-credit { font-size: var(--step--1); letter-spacing: 0.04em; opacity: 0.7;
  text-decoration: none; transition: opacity 0.3s; }
.bcga-credit:hover, .bcga-credit:focus-visible { opacity: 1; }
.bcga-credit b { font-weight: 700; }

/* Utilitário foco visível consistente */
:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }

.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
