/* ==========================================================================
   BP Incorporadora — Design System (BP 2026)
   Tokens consolidados a partir do kit de identidade visual.
   Fonte da verdade: "BP Incorporadora Design System" (CORES.pdf, ZT Nature).

   Um único arquivo (fonts + colors + typography + spacing) para evitar a
   cadeia de @import do kit original, que serializa requests no critical path.
   ========================================================================== */

/* --------------------------------------------------------------------------
   ZT Nature — tipografia oficial da marca (WEB OT / woff2)
   -------------------------------------------------------------------------- */
@font-face { font-family: "ZT Nature"; src: url("fonts/ZTNature-Light.woff2") format("woff2");      font-weight: 300; font-style: normal; font-display: swap; }
@font-face { font-family: "ZT Nature"; src: url("fonts/ZTNature-Regular.woff2") format("woff2");    font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "ZT Nature"; src: url("fonts/ZTNature-Italic.woff2") format("woff2");     font-weight: 400; font-style: italic; font-display: swap; }
@font-face { font-family: "ZT Nature"; src: url("fonts/ZTNature-Medium.woff2") format("woff2");     font-weight: 500; font-style: normal; font-display: swap; }
@font-face { font-family: "ZT Nature"; src: url("fonts/ZTNature-SemiBold.woff2") format("woff2");   font-weight: 600; font-style: normal; font-display: swap; }
@font-face { font-family: "ZT Nature"; src: url("fonts/ZTNature-Bold.woff2") format("woff2");       font-weight: 700; font-style: normal; font-display: swap; }
@font-face { font-family: "ZT Nature"; src: url("fonts/ZTNature-BoldItalic.woff2") format("woff2"); font-weight: 700; font-style: italic; font-display: swap; }
@font-face { font-family: "ZT Nature"; src: url("fonts/ZTNature-ExtraBold.woff2") format("woff2");  font-weight: 800; font-style: normal; font-display: swap; }
@font-face { font-family: "ZT Nature"; src: url("fonts/ZTNature-Black.woff2") format("woff2");      font-weight: 900; font-style: normal; font-display: swap; }

:root {
  /* ---- Paleta base — CORES.pdf ---- */
  --bp-navy: #24366c;
  --bp-teal: #47b9af;
  --bp-gold: #d79a48;
  --bp-ink: #2e2e2f;
  --bp-offwhite: #f5f3f0;

  /* ---- Escala navy ---- */
  --bp-navy-50: #eef0f6;
  --bp-navy-100: #dde2ec;
  --bp-navy-200: #b6c0d6;
  --bp-navy-300: #8e9dc0;
  --bp-navy-400: #5a6d9a;
  --bp-navy-500: #24366c;
  --bp-navy-600: #1e2d5a;
  --bp-navy-700: #182448;
  --bp-navy-800: #121b36;

  /* ---- Escala teal ---- */
  --bp-teal-50: #eef8f7;
  --bp-teal-100: #dcf1ef;
  --bp-teal-300: #a3ddd7;
  --bp-teal-500: #47b9af;
  --bp-teal-600: #3a9b93;
  --bp-teal-700: #2e7d76;

  /* ---- Escala gold ---- */
  --bp-gold-50: #fbf5ec;
  --bp-gold-100: #f7ebd9;
  --bp-gold-300: #ebc491;
  --bp-gold-500: #d79a48;
  --bp-gold-600: #c1852f;
  --bp-gold-700: #9e6d26;

  /* ---- Neutros quentes ---- */
  --bp-neutral-0: #ffffff;
  --bp-neutral-50: #f5f3f0;
  --bp-neutral-100: #edeae5;
  --bp-neutral-200: #e0dcd5;
  --bp-neutral-300: #cbc6bd;
  --bp-neutral-400: #a8a49d;
  --bp-neutral-500: #7a766f;
  --bp-neutral-600: #55524d;
  --bp-neutral-700: #3e3c39;
  --bp-neutral-800: #2e2e2f;

  /* ---- RGB channels (para rgba() com opacidade) ---- */
  --bp-navy-rgb: 36, 54, 108;
  --bp-teal-rgb: 71, 185, 175;
  --bp-gold-rgb: 215, 154, 72;
  --bp-ink-rgb: 46, 46, 47;
  --bp-offwhite-rgb: 245, 243, 240;

  /* ---- Aliases semânticos ---- */
  --surface-page: var(--bp-neutral-50);
  --surface-card: var(--bp-neutral-0);
  --surface-sunken: var(--bp-neutral-100);
  --surface-navy: var(--bp-navy-500);
  --surface-navy-deep: var(--bp-navy-700);
  --text-primary: var(--bp-ink);
  --text-secondary: var(--bp-neutral-600);
  --text-muted: var(--bp-neutral-500);
  --text-inverse: var(--bp-offwhite);
  --brand-primary: var(--bp-navy-500);
  --brand-accent: var(--bp-teal-500);
  --brand-highlight: var(--bp-gold-500);
  --border-subtle: var(--bp-neutral-200);
  --border-strong: var(--bp-neutral-300);
  --focus-ring: var(--bp-teal-500);
  --link: var(--bp-navy-500);
  --link-hover: var(--bp-teal-600);

  /* ---- Feedback ---- */
  --feedback-success: var(--bp-teal-600);
  --feedback-warning: var(--bp-gold-600);
  --feedback-danger: #b0503f;
  /* Adição do projeto: o kit não traz tint de erro, necessário para o
     estado inválido dos inputs do formulário. Derivado de --feedback-danger. */
  --feedback-danger-bg: #f9eeec;

  /* ---- Tipografia ---- */
  --font-sans: "ZT Nature", "Helvetica Neue", Arial, sans-serif;

  --weight-light: 300;
  --weight-regular: 400;
  --weight-medium: 500;
  --weight-semibold: 600;
  --weight-bold: 700;
  --weight-extrabold: 800;
  --weight-black: 900;

  --text-xs: 12px;
  --text-sm: 13px;
  --text-base: 15px;
  --text-md: 17px;
  --text-lg: 20px;
  --text-xl: 24px;
  --text-2xl: 30px;
  --text-3xl: 38px;
  --text-4xl: 48px;
  --text-display: 64px;

  --leading-tight: 1.05;
  --leading-snug: 1.2;
  --leading-normal: 1.5;
  --leading-relaxed: 1.65;

  --tracking-display: -0.02em;
  --tracking-normal: 0;
  --tracking-caps: 0.14em;

  /* ---- Espaçamento (base 4px) ---- */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;
  --space-6: 24px;
  --space-8: 32px;
  --space-10: 40px;
  --space-12: 48px;
  --space-16: 64px;
  --space-20: 80px;

  /* ---- Raios — a marca é angular, cantos discretos ---- */
  --radius-xs: 2px;
  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 12px;
  --radius-full: 999px;

  /* ---- Sombras — quentes e discretas, sem glow colorido ---- */
  --shadow-card: 0 1px 2px rgba(46, 46, 47, 0.06), 0 4px 16px rgba(46, 46, 47, 0.07);
  --shadow-raised: 0 2px 6px rgba(46, 46, 47, 0.10), 0 12px 32px rgba(46, 46, 47, 0.12);
  --shadow-overlay: 0 8px 40px rgba(18, 27, 54, 0.28);

  /* ---- Movimento ---- */
  --ease-brand: cubic-bezier(0.4, 0, 0.2, 1);
  --duration-fast: 120ms;
  --duration-base: 200ms;
}
