/* ==========================================================================
   Base · reset, tipografia e utilitários
   ========================================================================== */

*,
*::before,
*::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: var(--header-h); }

body {
  margin: 0;
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 27px;
  color: var(--graphite);
  background: var(--white);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

img, svg, video, iframe { display: block; max-width: 100%; }
img { height: auto; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; cursor: pointer; background: none; border: 0; padding: 0; }
input, select, textarea { font: inherit; color: inherit; }
h1, h2, h3, h4, p, ul, ol, figure, blockquote { margin: 0; }
ul[class], ol[class] { list-style: none; padding: 0; }

/* O atributo hidden sempre vence o display dos componentes (filtros, abas, plantas) */
[hidden] { display: none !important; }

:focus-visible { outline: 2px solid var(--blue-500); outline-offset: 3px; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

.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;
}

.skip-link {
  position: absolute; left: 16px; top: -60px; z-index: 200;
  background: var(--navy-900); color: var(--white); padding: 10px 16px; border-radius: var(--radius-painel);
}
.skip-link:focus { top: 12px; }

/* ---- Layout ---- */
.container {
  width: 100%;
  max-width: calc(var(--container) + 2 * var(--gutter));
  margin-inline: auto;
  padding-inline: var(--gutter);
}

.section { position: relative; padding-block: var(--section-y); overflow: hidden; }
.section--sm { padding-block: var(--section-y-sm); }
.section--lg { padding-block: var(--section-y-lg); }
.section > .container { position: relative; z-index: 1; }

.bg-white { background: var(--white); }
.bg-concrete { background: var(--concrete-50); }
.bg-concrete-100 { background: var(--concrete-100); }

/* ==========================================================================
   Tipografia (estilos de texto do Figma)
   ========================================================================== */

/* Display · Outfit Bold 64/74 −2.2 */
.t-display {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: clamp(40px, 5vw, 64px);
  line-height: 1.156;
  letter-spacing: -.034em;
  text-transform: uppercase;
  color: var(--white);
}

/* Título de hero interno · Outfit Bold 48/56 */
.t-hero {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: clamp(34px, 3.6vw, 48px);
  line-height: 1.167;
  text-transform: uppercase;
  color: var(--white);
}

/* H1 · Outfit Light 38/51 −0.9 */
.t-h1 {
  font-family: var(--font-display);
  font-weight: 300;
  font-size: clamp(28px, 2.8vw, 38px);
  line-height: 1.342;
  letter-spacing: -.024em;
  color: var(--graphite);
}

/* H2 · Outfit Regular 24/31 −0.36 */
.t-h2 {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: clamp(20px, 1.8vw, 24px);
  line-height: 1.292;
  letter-spacing: -.015em;
  color: var(--graphite);
}

/* H3 · Outfit Medium 18/25 −0.1 */
.t-h3 {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 18px;
  line-height: 25px;
  letter-spacing: -.1px;
  color: var(--navy-800);
}

/* Manuscrito · Kaushan Script (destaques dentro dos títulos) */
.t-script {
  font-family: var(--font-script);
  font-weight: 400;
  font-style: normal;
  text-transform: none;
  letter-spacing: 0;
  color: var(--blue-500);
}
.t-h1 .t-script { font-size: 1.263em; line-height: 1.083; }        /* 48/52 */
.t-hero .t-script { font-size: 1.667em; line-height: .65; }         /* 80/52 */
.t-display .t-script { font-size: 1.5em; line-height: 1.156; }      /* 96/74 */
.t-script--sky { color: var(--sky-300); }
.t-script--blue { color: var(--blue-600); }
.t-accent { color: var(--sky-300); }

/* Eyebrow · Instrument Sans SemiBold 12/16 +2.4 caixa alta */
.t-eyebrow {
  font-family: var(--font-body);
  font-weight: 600;
  font-size: 12px;
  line-height: 16px;
  letter-spacing: 2.4px;
  text-transform: uppercase;
  color: var(--blue-500);
}
.t-eyebrow--sky { color: var(--sky-300); }
.t-eyebrow--white { color: var(--white); }

/* Lead · Instrument Sans 19/30 */
.t-lead {
  font-size: clamp(17px, 1.4vw, 19px);
  line-height: 1.579;
  letter-spacing: -.1px;
  color: var(--gray-600);
}
/* Lead do hero · 21/33 */
.t-lead-lg {
  font-size: clamp(17px, 1.5vw, 21px);
  line-height: 1.571;
  letter-spacing: -.1px;
  color: rgba(255, 255, 255, .9);
}

/* Corpo · 16/27 */
.t-body { font-size: 16px; line-height: 27px; color: var(--gray-600); }
.t-body p + p { margin-top: 27px; }
.t-body--tight p + p { margin-top: 0; }
.t-body--medium { font-weight: 500; }

/* Caption · 13/20 */
.t-caption { font-size: 13px; line-height: 20px; color: var(--gray-600); }

/* Micro · SemiBold 11/15 +1.6 */
.t-micro {
  font-weight: 600;
  font-size: 11px;
  line-height: 15px;
  letter-spacing: 1.6px;
  text-transform: uppercase;
  color: var(--gray-500);
}

.text-center { text-align: center; }
.text-white { color: var(--white); }
.section--pb-sm { padding-bottom: var(--section-y-sm); }
.mw-760 { max-width: 760px; }
.t-lead p + p { margin-top: 16px; }
