/*
 * PRATZU — design tokens (guia de marca PRATZU, identidade/brand-guide).
 * Fonte única: copiada sem alterações para landing, menu e admin
 * (não há pacote de UI compartilhado). Mudou aqui? copie para os três.
 *
 * Fontes auto-hospedadas (OFL), verificadas com fontTools:
 *   Unbounded.woff2 (600–800): Latin + Latin Ext + Cyrillic. SEM grego de
 *     propósito — o original só tem ~10 letras gregas (Β Ε Θ Λ Ω β ε θ λ ω),
 *     o que misturaria fontes dentro da palavra; títulos em el usam Manrope 800.
 *   Manrope.woff2 (200–800): Latin + Latin Ext + Cyrillic + grego moderno completo.
 *   Árabe, devanágari, CJK e hangul: fontes do sistema / local() — nada de
 *   arquivos CJK pesados no bundle.
 */
@font-face {
  font-family: 'Unbounded';
  font-style: normal;
  font-weight: 600 800;
  font-display: swap;
  src: url('/fonts/Unbounded.woff2') format('woff2');
  unicode-range:
    U+0000-024F, U+0259, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0300-0301, U+0303-0304, U+0308-0309,
    U+0323, U+0329, U+0400-04FF, U+1E00-1EFF, U+2000-206F, U+20AC, U+20B9, U+20BD, U+2122,
    U+2190-2199, U+2212, U+2215;
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
  src: url('/fonts/Manrope.woff2') format('woff2');
  unicode-range:
    U+0000-024F, U+0259, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0300-0301, U+0303-0304, U+0308-0309,
    U+0323, U+0329, U+0370-03FF, U+0400-04FF, U+1E00-1EFF, U+2000-206F, U+20AC, U+20B9, U+20BD,
    U+2122, U+2190-2199, U+2212, U+2215;
}
/* Fallbacks por escrita: local() usa a fonte instalada (Noto/sistema), sem download */
@font-face {
  font-family: 'PRATZU Arabic';
  font-weight: 400 800;
  src:
    local('Noto Sans Arabic'), local('NotoSansArabic-Regular'), local('Segoe UI'),
    local('Geeza Pro');
  unicode-range: U+0600-06FF, U+0750-077F, U+08A0-08FF, U+FB50-FDFF, U+FE70-FEFF;
}
@font-face {
  font-family: 'PRATZU Devanagari';
  font-weight: 400 800;
  src:
    local('Noto Sans Devanagari'), local('NotoSansDevanagari-Regular'), local('Nirmala UI'),
    local('Kohinoor Devanagari');
  unicode-range: U+0900-097F, U+A8E0-A8FF, U+1CD0-1CFF;
}

:root {
  /* paleta */
  --tm-cream: #fff4e0;
  --tm-aubergine: #2b0f3a;
  --tm-saffron: #ffb31a;
  --tm-saffron-press: #f2a200;
  --tm-tomato: #d93a1e;
  --tm-tomato-ink: #c4321a;
  --tm-yolk: #ffe08a;
  --tm-guava: #ff8fb1;
  --tm-mint: #9fe3c8;
  --tm-plum: #5e4a66;
  --tm-white: #ffffff;
  /* modo noturno do guia: fundo berinjela, texto creme, destaque açafrão, link goiaba.
     night-surface não é definido no guia (cartões sobre o fundo noturno) — ver perguntas do PR */
  --tm-night: #2b0f3a;
  --tm-night-surface: #2e1640;
  --tm-night-link: #ff8fb1;

  /* papéis semânticos — texto sobre açafrão/gema/goiaba/menta é SEMPRE berinjela;
     açafrão nunca é cor de texto sobre creme (1,64:1). */
  --color-bg: var(--tm-cream);
  --color-surface: var(--tm-white);
  --color-text: var(--tm-aubergine);
  --color-text-muted: var(--tm-plum);
  --color-border: var(--tm-aubergine);
  --color-cta: var(--tm-saffron);
  --color-on-cta: var(--tm-aubergine);
  --color-brand: var(--tm-tomato);
  --color-promo: var(--tm-tomato);
  --color-on-promo: var(--tm-white);
  --color-link: var(--tm-tomato-ink);
  --color-price: var(--tm-tomato-ink);
  --color-ai: var(--tm-guava);
  --color-veg: var(--tm-mint);
  --color-highlight: var(--tm-yolk);

  /* tipografia — fallbacks por escrita (ver :lang abaixo) */
  --font-sys:
    'PRATZU Arabic', 'PRATZU Devanagari', system-ui, -apple-system, 'Segoe UI', Roboto, 'Noto Sans',
    'Helvetica Neue', Arial, 'Noto Sans Arabic', 'Noto Sans Devanagari', 'Noto Sans CJK SC',
    'PingFang SC', 'Microsoft YaHei', 'Noto Sans CJK JP', 'Hiragino Sans', 'Noto Sans CJK KR',
    'Apple SD Gothic Neo', 'Malgun Gothic', sans-serif;
  --font-body: 'Manrope', var(--font-sys);
  --font-display: 'Unbounded', 'Manrope', var(--font-sys);
  --fs-display: clamp(2.25rem, 4.4vw, 2.875rem);
  --lh-display: 1.09; /* 46/50 */
  --fs-h1: clamp(1.625rem, 3vw, 2.125rem);
  --lh-h1: 1.18; /* 34/40 Unbounded 800 */
  --fs-h2: 1.625rem;
  --lh-h2: 1.23; /* 26/32 Unbounded 700 */
  --fs-h3: 1.25rem;
  --lh-h3: 1.3; /* 20/26 Manrope 800 */
  --fs-body: 1rem;
  --lh-body: 1.5;
  --fs-small: 0.875rem;
  --fs-caption: 0.75rem;
  --ls-display: -0.02em;

  /* espaço, raio, contorno, sombra sólida */
  --sp-1: 4px;
  --sp-2: 8px;
  --sp-3: 12px;
  --sp-4: 16px;
  --sp-6: 24px;
  --sp-8: 32px;
  --sp-12: 48px;
  --sp-16: 64px;
  --r-btn: 6px;
  --r-card: 14px;
  --r-pill: 999px;
  --bw: 2px;
  --outline: var(--bw) solid var(--tm-aubergine);
  --shadow-dir: 1; /* -1 em RTL: a sombra sólida acompanha o sentido da leitura */
  --shadow-btn: calc(3px * var(--shadow-dir)) 3px 0 var(--tm-aubergine);
  --shadow-card: calc(4px * var(--shadow-dir)) 4px 0 var(--tm-aubergine);
  --shadow-pop: calc(6px * var(--shadow-dir)) 6px 0 var(--tm-aubergine);
}
[dir='rtl'] {
  --shadow-dir: -1;
}

/* CJK: forma dos ideogramas conforme o idioma (Noto CJK do sistema ou fonte nativa; nenhum arquivo baixado) */
:lang(zh) {
  --font-sys:
    'Noto Sans CJK SC', 'Noto Sans SC', 'PingFang SC', 'Microsoft YaHei', system-ui, sans-serif;
}
:lang(ja) {
  --font-sys:
    'Noto Sans CJK JP', 'Noto Sans JP', 'Hiragino Sans', 'Hiragino Kaku Gothic ProN',
    'Yu Gothic UI', Meiryo, system-ui, sans-serif;
}
:lang(ko) {
  --font-sys:
    'Noto Sans CJK KR', 'Noto Sans KR', 'Apple SD Gothic Neo', 'Malgun Gothic', system-ui,
    sans-serif;
}
:lang(hi) {
  --font-sys:
    'PRATZU Devanagari', 'Noto Sans Devanagari', 'Nirmala UI', 'Kohinoor Devanagari', system-ui,
    sans-serif;
}
:lang(ar) {
  --font-sys: 'PRATZU Arabic', 'Noto Sans Arabic', 'Segoe UI', 'Geeza Pro', system-ui, sans-serif;
}
/* Grego: Unbounded não cobre → títulos inteiros em Manrope 800 (sem mistura de fontes) */
:lang(el) {
  --font-display: 'Manrope', var(--font-sys);
}
:lang(el) :is(.tm-display, .display, .font-display, h1, h2, h3) {
  font-weight: 800;
}
/* Escritas sem Unbounded: sem espacejamento negativo */
:lang(ar) .tm-display,
:lang(hi) .tm-display,
:lang(zh) .tm-display,
:lang(ja) .tm-display,
:lang(ko) .tm-display,
:lang(el) .tm-display {
  letter-spacing: 0;
}
/* Árabe: direção vem do dir="rtl" no <html> (landing/site.js; admin); sombras já espelham via --shadow-dir */
[dir='rtl'] {
  text-align: start;
}

/* palavras longas (de, nl, ru, el…): nunca vazam; hifenização só onde é a norma tipográfica */
.tm-display,
h1,
h2,
h3 {
  overflow-wrap: break-word;
}
:lang(de) :is(.tm-display, h1, h2, h3),
:lang(nl) :is(.tm-display, h1, h2, h3),
:lang(ru) :is(.tm-display, h1, h2, h3),
:lang(el) :is(.tm-display, h1, h2, h3),
:lang(fr) :is(.tm-display, h1, h2, h3),
:lang(it) :is(.tm-display, h1, h2, h3),
:lang(es) :is(.tm-display, h1, h2, h3) {
  hyphens: auto;
  -webkit-hyphens: auto;
}

/* botões do guia: raio 6, contorno 2, sombra sólida 3px que "afunda" ao tocar, alvo ≥ 44px */
.tm-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  min-height: 44px;
  padding: 0.65rem 1.1rem;
  border: var(--outline);
  border-radius: var(--r-btn);
  background: var(--color-cta);
  color: var(--color-on-cta);
  font-family: var(--font-body);
  font-weight: 800;
  box-shadow: var(--shadow-btn);
  cursor: pointer;
  transition:
    transform 0.08s ease,
    box-shadow 0.08s ease;
  text-decoration: none;
}
.tm-btn:active {
  transform: translate(calc(3px * var(--shadow-dir)), 3px);
  box-shadow: none;
}
.tm-btn:focus-visible {
  outline: 3px solid var(--tm-tomato-ink);
  outline-offset: 3px;
}
