/* premium-blue v0.1.1 — copiado de amondf/premium_blue_design_system@3df48c6 (src/tokens.css). NÃO EDITAR: customizações vão em src/styles/portal.css. */
/* ==========================================================================
   Premium Blue — Design Tokens
   Estrutura medida em produção; paleta migrada de roxo/rosa para azul.
   ========================================================================== */

:root {
  /* ---------- Cores: base ---------- */
  --pb-ink: #06111f;            /* texto principal, azul-marinho quase preto */
  --pb-ink-mid: #0b1e38;
  --pb-muted: #5a6a80;          /* texto secundário */
  --pb-paper: #ffffff;
  --pb-off-white: #f7f9fc;      /* fundo de seção alternada */
  --pb-line: #e5ebf4;           /* bordas de cards, divisórias */
  --pb-line-strong: #e2e8f0;

  /* Tinta com opacidade (usada no lugar de cinzas) */
  --pb-ink-a90: rgb(6 17 31 / 0.86);
  --pb-ink-a70: rgb(6 17 31 / 0.72);
  --pb-ink-a60: rgb(6 17 31 / 0.58);
  --pb-ink-a55: rgb(6 17 31 / 0.55);
  --pb-ink-a45: rgb(6 17 31 / 0.45);
  --pb-ink-a22: rgb(6 17 31 / 0.22);
  --pb-ink-a18: rgb(6 17 31 / 0.18);
  --pb-ink-a14: rgb(6 17 31 / 0.14);
  --pb-ink-a08: rgb(6 17 31 / 0.08);
  --pb-ink-a07: rgb(6 17 31 / 0.07);
  --pb-ink-a04: rgb(6 17 31 / 0.04);

  /* ---------- Cores: marca ---------- */
  --pb-blue: #2563eb;           /* acento principal */
  --pb-blue-strong: #1d4ed8;    /* hover / pressionado */
  --pb-blue-soft: #60a5fa;
  --pb-blue-hover: #3b82f6;
  --pb-indigo: #4f46e5;         /* destaque secundário (badge "popular", links) */
  --pb-indigo-light: #818cf8;
  --pb-navy: #1e40af;
  --pb-navy-light: #eff6ff;
  --pb-navy-border: rgb(30 64 175 / 0.12);
  --pb-cyan: #22d3ee;           /* sinal / terceira cor do gradiente */
  --pb-info: #0369a1;           /* informação / status neutro */

  --pb-accent: var(--pb-blue);
  --pb-accent-strong: var(--pb-blue-strong);

  /* Azul com opacidade */
  --pb-blue-a55: rgb(37 99 235 / 0.55);
  --pb-blue-a35: rgb(37 99 235 / 0.35);
  --pb-blue-a28: rgb(37 99 235 / 0.28);
  --pb-blue-a18: rgb(37 99 235 / 0.18);
  --pb-blue-a12: rgb(37 99 235 / 0.12);
  --pb-blue-a06: rgb(37 99 235 / 0.06);

  /* ---------- Cores: estados ---------- */
  --pb-success: #059669;
  --pb-success-strong: #16a34a;
  --pb-success-bg: #dcfce7;
  --pb-success-soft: rgb(5 150 105 / 0.1);
  --pb-success-border: rgb(5 150 105 / 0.2);
  --pb-warning: #f59e0b;
  --pb-danger: #dc2626;

  /* ---------- Superfícies escuras ---------- */
  --pb-dark-900: #020817;
  --pb-dark-800: #041026;       /* hero escuro / footer */
  --pb-dark-700: #06132b;       /* seção escura */
  --pb-dark-600: #071631;
  --pb-dark-500: #0f2a5c;
  --pb-on-dark: #ffffff;
  --pb-on-dark-muted: rgb(255 255 255 / 0.72);
  --pb-on-dark-subtle: rgb(255 255 255 / 0.5);
  --pb-on-dark-line: rgb(255 255 255 / 0.08);
  --pb-on-dark-fill: rgb(255 255 255 / 0.06);

  /* ---------- Gradientes ---------- */
  --pb-grad-brand: linear-gradient(135deg, #2563eb 0%, #4f46e5 50%, #22d3ee 100%);
  --pb-grad-brand-x: linear-gradient(90deg, #2563eb 0%, #4f46e5 50%, #22d3ee 100%);
  --pb-grad-text: linear-gradient(95deg, #2563eb 0%, #60a5fa 50%, #22d3ee 100%);
  --pb-grad-cta: linear-gradient(135deg, #071631 0%, #0f2a5c 100%);
  --pb-grad-blue: linear-gradient(135deg, #2563eb 0%, #1d4ed8 100%);
  --pb-grad-hairline: linear-gradient(90deg, transparent, rgb(37 99 235 / 0.5), rgb(34 211 238 / 0.3), transparent);
  --pb-grad-soft-tint: linear-gradient(135deg, rgb(37 99 235 / 0.09) 0%, rgb(34 211 238 / 0.04) 100%);
  --pb-grad-glass: linear-gradient(160deg, rgb(255 255 255 / 0.72) 0%, rgb(255 255 255 / 0.42) 55%, rgb(255 255 255 / 0.28) 100%);
  --pb-grad-hero-light: linear-gradient(180deg, #e9eff9 0%, #eef3fb 40%, #f1f5fc 75%, #f4f8ff 100%);
  --pb-grad-band: linear-gradient(180deg, #f4f8ff 0%, #ffffff 100%);
  --pb-grad-page-flow: linear-gradient(180deg, #f4f8ff 0%, #fff 6%, #f9fbfe 18%, #fff 32%, #f5f8fd 46%, #fff 60%, #f8fafe 74%, #fff 86%, #f4f7fc 100%);
  --pb-grad-dark-shell:
    radial-gradient(60% 70% at 10% 50%, rgb(29 78 216 / 0.16), transparent),
    radial-gradient(45% 55% at 90% 30%, rgb(37 99 235 / 0.1), transparent),
    radial-gradient(30% 40% at 50% 100%, rgb(34 211 238 / 0.04), transparent);
  --pb-grad-hero-dark:
    radial-gradient(70% 55% at 50% 0, rgb(29 78 216 / 0.22), transparent),
    radial-gradient(50% 50% at 85% 75%, rgb(37 99 235 / 0.12), transparent),
    radial-gradient(35% 40% at 10% 65%, rgb(34 211 238 / 0.05), transparent);

  /* ---------- Tipografia ---------- */
  --pb-font-sans: "Plus Jakarta Sans", "Segoe UI Variable", Aptos, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --pb-font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;

  --pb-weight-regular: 400;
  --pb-weight-medium: 500;
  --pb-weight-semibold: 600;
  --pb-weight-bold: 700;
  --pb-weight-extrabold: 800;
  --pb-weight-black: 900;       /* títulos: sempre 900 */

  /* Escala (px medidos) */
  --pb-text-hero: clamp(42px, 6.5vw, 82px);
  --pb-text-display: clamp(40px, 6vw, 76px);
  --pb-text-h2: clamp(22px, 3.4vw, 44px);
  --pb-text-h3: 17px;
  --pb-text-h4: 16px;
  --pb-text-lead: 17px;
  --pb-text-body: 16px;
  --pb-text-md: 15px;
  --pb-text-sm: 14px;
  --pb-text-ui: 13px;           /* navegação, labels, textos de card */
  --pb-text-xs: 12px;
  --pb-text-2xs: 11px;          /* kickers, cabeçalhos de footer */

  --pb-leading-tight: 1;
  --pb-leading-hero: 1.13;
  --pb-leading-heading: 1.22;
  --pb-leading-snug: 1.375;
  --pb-leading-normal: 1.5;
  --pb-leading-relaxed: 1.7;

  --pb-tracking-hero: -0.045em;
  --pb-tracking-display: -0.03em;
  --pb-tracking-heading: -0.028em;
  --pb-tracking-tight: -0.01em;
  --pb-tracking-caps: 0.08em;
  --pb-tracking-kicker: 0.12em;

  /* ---------- Espaçamento (base 4px) ---------- */
  --pb-space-0-5: 2px;
  --pb-space-1: 4px;
  --pb-space-1-5: 6px;
  --pb-space-2: 8px;
  --pb-space-2-5: 10px;
  --pb-space-3: 12px;
  --pb-space-3-5: 14px;
  --pb-space-4: 16px;
  --pb-space-5: 20px;
  --pb-space-6: 24px;
  --pb-space-7: 28px;
  --pb-space-8: 32px;
  --pb-space-10: 40px;
  --pb-space-12: 48px;
  --pb-space-16: 64px;
  --pb-space-18: 72px;          /* padding vertical padrão de seção */
  --pb-space-20: 80px;
  --pb-space-32: 128px;

  --pb-section-y: 72px;
  --pb-section-y-mobile: 60px;
  --pb-container: 1160px;
  --pb-container-gutter: 20px;
  --pb-container-gutter-sm: 32px;
  --pb-header-h: 64px;

  /* ---------- Raios ---------- */
  --pb-radius-xs: 4px;
  --pb-radius-sm: 6px;
  --pb-radius-md: 8px;
  --pb-radius-btn: 10px;        /* botões */
  --pb-radius-lg: 12px;
  --pb-radius-btn-lg: 14px;
  --pb-radius-xl: 16px;         /* cards */
  --pb-radius-2xl: 18px;        /* card de preço em destaque */
  --pb-radius-full: 9999px;

  /* ---------- Sombras (tintadas com a cor de texto) ---------- */
  --pb-shadow-xs: 0 1px 2px rgb(6 17 31 / 0.02);
  --pb-shadow-sm: 0 1px 2px rgb(6 17 31 / 0.02), 0 2px 6px rgb(6 17 31 / 0.02);
  --pb-shadow-md: 0 1px 3px rgb(6 17 31 / 0.03), 0 4px 12px rgb(6 17 31 / 0.03);
  --pb-shadow-lg: 0 2px 6px rgb(6 17 31 / 0.03), 0 8px 24px rgb(6 17 31 / 0.04);
  --pb-shadow-xl: 0 2px 6px rgb(16 24 40 / 0.06), 0 18px 44px rgb(16 24 40 / 0.16);
  --pb-shadow-blue: 0 2px 8px rgb(37 99 235 / 0.15);
  --pb-shadow-cta: 0 1px 2px rgb(6 17 31 / 0.14), 0 4px 14px rgb(6 17 31 / 0.18);
  --pb-shadow-cta-hover: 0 2px 6px rgb(6 17 31 / 0.18), 0 8px 22px rgb(6 17 31 / 0.24);
  --pb-shadow-cta-lg: 0 2px 8px rgb(6 17 31 / 0.2), 0 10px 26px rgb(6 17 31 / 0.22);
  --pb-shadow-glass: inset 0 1px 0 rgb(255 255 255 / 0.9), inset 0 -1px 0 rgb(255 255 255 / 0.25), 0 1px 2px rgb(16 24 40 / 0.04), 0 10px 24px rgb(16 24 40 / 0.06);
  --pb-shadow-featured: 0 0 0 4px rgb(37 99 235 / 0.06), 0 2px 8px rgb(37 99 235 / 0.1), 0 22px 50px -12px rgb(37 99 235 / 0.28);
  --pb-shadow-dropdown: 0 20px 60px rgb(0 0 0 / 0.55);
  --pb-shadow-header: inset 0 1px 0 rgb(255 255 255 / 0.04), 0 10px 30px rgb(6 17 31 / 0.35);
  --pb-ring: 0 0 0 2px rgb(37 99 235 / 0.2);
  --pb-ring-focus: 0 0 0 3px rgb(37 99 235 / 0.35);

  /* ---------- Movimento ---------- */
  --pb-ease-out: cubic-bezier(0.16, 1, 0.3, 1);   /* assinatura: saídas suaves */
  --pb-ease-standard: cubic-bezier(0.4, 0, 0.2, 1);
  --pb-duration-fast: 150ms;
  --pb-duration-base: 160ms;
  --pb-duration-medium: 200ms;
  --pb-duration-slow: 450ms;
  --pb-duration-reveal: 600ms;

  /* ---------- Camadas ---------- */
  --pb-z-header: 50;
  --pb-z-dropdown: 60;
  --pb-z-modal: 100;
  --pb-z-noise: 9999;
}
