/* tokens/fonts.css */
/* Newsreader (títulos, números, citações) + Instrument Sans (corpo, rótulos, botões). Variable woff2 from Google Fonts, self-hosted. */
@font-face{font-family:"Instrument Sans";font-style:normal;font-weight:400 600;font-display:swap;src:url("InstrumentSans-normal-0.woff2") format("woff2");unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:"Instrument Sans";font-style:normal;font-weight:400 600;font-display:swap;src:url("InstrumentSans-normal-1.woff2") format("woff2");unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:"Newsreader";font-style:italic;font-weight:400 600;font-display:swap;src:url("Newsreader-italic-2.woff2") format("woff2");unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}
@font-face{font-family:"Newsreader";font-style:italic;font-weight:400 600;font-display:swap;src:url("Newsreader-italic-3.woff2") format("woff2");unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:"Newsreader";font-style:italic;font-weight:400 600;font-display:swap;src:url("Newsreader-italic-4.woff2") format("woff2");unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:"Newsreader";font-style:normal;font-weight:400 600;font-display:swap;src:url("Newsreader-normal-5.woff2") format("woff2");unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}
@font-face{font-family:"Newsreader";font-style:normal;font-weight:400 600;font-display:swap;src:url("Newsreader-normal-6.woff2") format("woff2");unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:"Newsreader";font-style:normal;font-weight:400 600;font-display:swap;src:url("Newsreader-normal-7.woff2") format("woff2");unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}

/* tokens/colors.css */
:root {
  /* Noite (marca) */
  --vm-night-950: #0B1630;
  --vm-night-900: #0F1E3D;
  --vm-night-700: #1C3260;
  --vm-night-600: #2A4A80;
  --vm-night-400: #6F86B3;
  --vm-night-200: #C3CDE0;
  --vm-night-100: #E3E8F2;
  /* Amanhecer (destaque, com parcimônia) */
  --vm-dawn-600: #D48A45;
  --vm-dawn-500: #E9A86A;
  --vm-dawn-100: #FBEBDB;
  /* Neutros */
  --vm-paper: #F7F5F0;
  --vm-surface: #FFFFFF;
  --vm-ink: #1A1F2B;
  --vm-ink-muted: #545E70;
  --vm-border: #DCD8CF;
  --vm-border-dark: rgba(255, 255, 255, 0.12);
  /* Estados */
  --vm-success: #2F7D5B;
  --vm-error: #B3261E;
  --vm-focus: #F2C14E;
  --vm-whatsapp: #25D366;

  /* Semantic aliases */
  --surface-page: var(--vm-paper);
  --surface-card: var(--vm-surface);
  --surface-soft: var(--vm-night-100);
  --surface-dark: var(--vm-night-950);
  --surface-dark-card: var(--vm-night-700);
  --surface-brand: var(--vm-night-900);
  --surface-highlight: var(--vm-dawn-100);
  --text-body: var(--vm-ink);
  --text-muted: var(--vm-ink-muted);
  --text-on-dark: #FFFFFF;
  --text-on-dark-lead: var(--vm-night-200);
  --text-on-dark-muted: var(--vm-night-400);
  --text-link: var(--vm-night-600);
  --text-link-on-dark: var(--vm-dawn-500);
  --text-accent-on-dark: var(--vm-dawn-500);
  --border-default: var(--vm-border);
  --border-on-dark: var(--vm-border-dark);
  --action-primary: var(--vm-dawn-500);
  --action-primary-hover: var(--vm-dawn-600);
  --action-primary-text: var(--vm-night-950);
}

/* tokens/typography.css */
:root {
  --vm-font-serif: "Newsreader", Georgia, "Times New Roman", serif;
  --vm-font-sans: "Instrument Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;

  --vm-text-display: clamp(2.5rem, 1.6rem + 3.6vw, 4rem); /* @kind other */
  --vm-text-h1: clamp(2.125rem, 1.6rem + 2vw, 3rem); /* @kind other */
  --vm-text-h2: clamp(1.75rem, 1.4rem + 1.4vw, 2.25rem); /* @kind other */
  --vm-text-h3: clamp(1.25rem, 1.1rem + 0.6vw, 1.5rem); /* @kind other */
  --vm-text-stat: clamp(2.5rem, 2rem + 2vw, 3.5rem); /* @kind other */
  --vm-text-lead: 1.25rem;
  --vm-text-body: 1.0625rem;
  --vm-text-small: 0.875rem;
  --vm-text-micro: 0.75rem;
  --vm-text-eyebrow: 0.8125rem;

  --vm-leading-tight: 1.15;
  --vm-leading-snug: 1.3;
  --vm-leading-body: 1.6;
  --vm-tracking-eyebrow: 0.08em;

  /* Semantic aliases */
  --font-display: var(--vm-font-serif);
  --font-body: var(--vm-font-sans);
}

/* tokens/spacing.css */
:root {
  --vm-space-1: 4px;
  --vm-space-2: 8px;
  --vm-space-3: 12px;
  --vm-space-4: 16px;
  --vm-space-5: 24px;
  --vm-space-6: 32px;
  --vm-space-7: 48px;
  --vm-space-8: 64px;
  --vm-space-9: 96px;
  --vm-space-10: 128px;
  --vm-section-y: clamp(64px, 8vw, 128px); /* @kind spacing */

  --vm-container: 1120px;
  --vm-measure: 680px;
  --vm-gutter: 16px;
  --vm-gutter-lg: 32px;
  --vm-touch: 48px;
}

/* tokens/effects.css */
:root {
  --vm-radius-sm: 6px;
  --vm-radius-md: 12px;
  --vm-radius-lg: 20px;
  --vm-radius-pill: 999px;

  --vm-shadow-card: 0 1px 2px rgba(15, 30, 61, 0.06), 0 8px 24px rgba(15, 30, 61, 0.06);
  --vm-shadow-float: 0 8px 24px rgba(11, 22, 48, 0.25);

  --vm-ease: cubic-bezier(0.2, 0.7, 0.2, 1); /* @kind other */
  --vm-duration: 200ms; /* @kind other */
}
@media (prefers-reduced-motion: reduce) {
  :root { --vm-duration: 0ms; /* @kind other */ }
}

/* tokens/base.css */
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--vm-paper);
  color: var(--vm-ink);
  font-family: var(--vm-font-sans);
  font-size: var(--vm-text-body);
  line-height: var(--vm-leading-body);
  -webkit-font-smoothing: antialiased;
}
h1, h2, h3, .vm-display {
  font-family: var(--vm-font-serif);
  font-weight: 500;
  line-height: var(--vm-leading-tight);
  letter-spacing: -0.01em;
  margin: 0;
}
a { color: var(--vm-night-600); text-underline-offset: 3px; }
a:hover { color: var(--vm-night-900); }
:focus-visible { outline: 3px solid var(--vm-focus); outline-offset: 3px; }

.vm-dark { background: var(--vm-night-950); color: #FFFFFF; }
.vm-dark a { color: var(--vm-dawn-500); }
.vm-dark a:hover { color: var(--vm-dawn-100); }
.vm-dark .vm-muted { color: var(--vm-night-400); }

.vm-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  min-height: 48px; padding: 0 24px;
  border-radius: var(--vm-radius-pill);
  font: 600 1rem/1 var(--vm-font-sans);
  text-decoration: none; cursor: pointer;
  transition: background var(--vm-duration) var(--vm-ease), color var(--vm-duration) var(--vm-ease);
}
.vm-btn--primary { background: var(--vm-dawn-500); color: var(--vm-night-950); border: 0; }
.vm-btn--primary:hover { background: var(--vm-dawn-600); color: var(--vm-night-950); }
.vm-dark a.vm-btn--primary, .vm-dark a.vm-btn--primary:hover { color: var(--vm-night-950); }
.vm-dark a.vm-btn--secondary, .vm-dark a.vm-btn--secondary:hover { color: #FFFFFF; }
.vm-btn--secondary { background: transparent; color: currentColor; border: 1.5px solid currentColor; }
.vm-btn--secondary:hover { background: rgba(255, 255, 255, 0.08); }
.vm-btn--secondary.vm-on-light:hover { background: rgba(15, 30, 61, 0.05); }
.vm-btn:disabled, .vm-btn[aria-disabled="true"] { opacity: 0.5; cursor: not-allowed; }

.vm-eyebrow {
  font: 600 var(--vm-text-eyebrow)/1 var(--vm-font-sans);
  text-transform: uppercase;
  letter-spacing: var(--vm-tracking-eyebrow);
  color: var(--vm-night-600);
}
.vm-dark .vm-eyebrow { color: var(--vm-dawn-500); }

.vm-field input, .vm-field textarea { transition: border-color var(--vm-duration) var(--vm-ease); }
.vm-field input:focus, .vm-field textarea:focus { outline: 2px solid var(--vm-focus); outline-offset: 0; border-color: var(--vm-focus); }

