/* ===== Base compartilhada — Laís Barros Nutricionista ===== */
@font-face { font-family: 'Fraunces'; src: url(../fonts/fraunces-latin-400-normal.woff2) format('woff2'); font-weight: 400; font-display: swap; }
@font-face { font-family: 'Fraunces'; src: url(../fonts/fraunces-latin-600-normal.woff2) format('woff2'); font-weight: 600; font-display: swap; }
@font-face { font-family: 'Fraunces'; src: url(../fonts/fraunces-latin-400-italic.woff2) format('woff2'); font-weight: 400; font-style: italic; font-display: swap; }
@font-face { font-family: 'Manrope'; src: url(../fonts/manrope-latin-400-normal.woff2) format('woff2'); font-weight: 400; font-display: swap; }
@font-face { font-family: 'Manrope'; src: url(../fonts/manrope-latin-500-normal.woff2) format('woff2'); font-weight: 500; font-display: swap; }
@font-face { font-family: 'Manrope'; src: url(../fonts/manrope-latin-600-normal.woff2) format('woff2'); font-weight: 600; font-display: swap; }
@font-face { font-family: 'Manrope'; src: url(../fonts/manrope-latin-700-normal.woff2) format('woff2'); font-weight: 700; font-display: swap; }
@font-face { font-family: 'Manrope'; src: url(../fonts/manrope-latin-800-normal.woff2) format('woff2'); font-weight: 800; font-display: swap; }
@font-face { font-family: 'Pixelify Sans'; src: url(../fonts/pixelify-sans-latin-400-normal.woff2) format('woff2'); font-weight: 400; font-display: swap; }
@font-face { font-family: 'Pixelify Sans'; src: url(../fonts/pixelify-sans-latin-600-normal.woff2) format('woff2'); font-weight: 600; font-display: swap; }

:root {
  --cream: #fbf8f1;
  --cream-2: #f3eee1;
  --paper: #ffffff;
  --ink: #26300f;
  --ink-2: #4b5536;
  --muted: #7a8166;
  --olive: #3b4d17;
  --olive-2: #5f7a1e;
  --leaf: #8fae3a;
  --lime: #c4cf3c;
  --sun: #f5b82e;
  --sun-2: #fbd773;
  --teal: #147a68;
  --teal-2: #1f9a86;
  --mint: #cdeee3;
  --rose: #f2898a;
  --line: rgba(38, 48, 15, .12);
  --shadow: 0 1px 2px rgba(38,48,15,.06), 0 10px 30px -12px rgba(38,48,15,.22);
  --shadow-lg: 0 2px 4px rgba(38,48,15,.05), 0 30px 60px -20px rgba(38,48,15,.35);
  --r: 18px;
  --r-lg: 28px;
  --serif: 'Fraunces', Georgia, 'Times New Roman', serif;
  --sans: 'Manrope', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --pixel: 'Pixelify Sans', ui-monospace, monospace;
  --ease: cubic-bezier(.2, .8, .2, 1);
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
html, body { overflow-x: clip; }
body { margin: 0; background: var(--cream); color: var(--ink); font-family: var(--sans); font-size: 16px; line-height: 1.6; -webkit-font-smoothing: antialiased; }
img, svg, canvas { display: block; max-width: 100%; }
a { color: inherit; }
button, input, textarea, select { font: inherit; color: inherit; }
:focus-visible { outline: 3px solid var(--sun); outline-offset: 3px; border-radius: 6px; }
[hidden] { display: none !important; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

.pixel { image-rendering: pixelated; image-rendering: crisp-edges; }

.btn {
  --bg: var(--olive); --fg: #fff;
  display: inline-flex; align-items: center; justify-content: center; gap: .6em;
  padding: .95em 1.5em; border-radius: 999px; border: 0; cursor: pointer;
  background: var(--bg); color: var(--fg); font-weight: 700; text-decoration: none; letter-spacing: .01em;
  transition: transform .25s var(--ease), box-shadow .25s var(--ease), background .2s;
  box-shadow: 0 6px 20px -8px rgba(59,77,23,.6);
  white-space: nowrap;
}
.btn:hover { transform: translateY(-2px); box-shadow: 0 12px 26px -10px rgba(59,77,23,.7); }
.btn:active { transform: translateY(0); }
.btn svg { width: 1.2em; height: 1.2em; flex: none; }
.btn-sun { --bg: var(--sun); --fg: var(--ink); box-shadow: 0 6px 20px -8px rgba(201,138,18,.7); }
.btn-ghost { --bg: transparent; --fg: var(--olive); box-shadow: inset 0 0 0 2px var(--line); }
.btn-ghost:hover { box-shadow: inset 0 0 0 2px var(--olive); }
.btn-teal { --bg: var(--teal); }
.btn-wa { --bg: #1faa5b; }
.btn[disabled] { opacity: .5; pointer-events: none; }

/* Balão de fala em pixel */
.bubble {
  font-family: var(--pixel); font-size: 15px; line-height: 1.25; color: var(--ink);
  background: #fff; padding: 8px 12px; border-radius: 4px; position: relative;
  box-shadow: 0 0 0 2px var(--ink), 4px 4px 0 0 rgba(38,48,15,.18);
}
.bubble::after {
  content: ''; position: absolute; width: 10px; height: 10px; background: #fff;
  box-shadow: 2px 2px 0 0 var(--ink); transform: rotate(45deg);
}
