/* ==========================================================================
   São Miguel Cuidado Domiciliar — Design Tokens
   Valores extraídos do Manual de Identidade Visual, versão 1.0 | 2026
   Seções 3.1 (cores institucionais), 3.2 (cores de apoio), 3.3 (gradiente),
   4.1 e 4.2 (tipografia e hierarquia), 5.1 (linguagem gráfica).
   ========================================================================== */

:root {
  /* --- Cores institucionais (Manual 3.1) --------------------------------- */
  --azul-profundo: #1E3E6A;      /* RGB 30 62 106   — autoridade e contraste */
  --azul-sao-miguel: #225182;    /* RGB 34 81 130   — presença e estabilidade */
  --azul-ceu: #5DA1C3;           /* RGB 93 161 195  — leveza e acolhimento */

  /* --- Cores de apoio (Manual 3.2) --------------------------------------- */
  --azul-noite: #1D2B53;         /* RGB 29 43 83 */
  --azul-serenidade: #4A80A5;    /* RGB 74 128 165 */
  --nevoa: #EAF3F8;              /* RGB 234 243 248 */
  --nuvem: #F7FAFC;              /* RGB 247 250 252 */
  --grafite: #24364A;            /* RGB 36 54 74 */

  /* --- Papéis semânticos ------------------------------------------------- */
  --color-primary: var(--azul-sao-miguel);
  --color-primary-dark: var(--azul-profundo);
  --color-primary-deep: var(--azul-noite);
  --color-accent: var(--azul-ceu);
  --color-accent-mid: var(--azul-serenidade);

  --color-background: var(--nuvem);
  --color-surface: #FFFFFF;
  --color-surface-alt: var(--nevoa);
  --color-surface-dark: var(--azul-noite);

  --color-heading: var(--azul-profundo);
  --color-text: var(--grafite);
  /* Tom secundário derivado do Grafite para textos de apoio.
     Contraste verificado sobre Nuvem e Branco (>= 4.5:1, WCAG AA). */
  --color-text-soft: #5A6B7E;
  --color-text-invert: #FFFFFF;
  --color-text-invert-soft: rgba(255, 255, 255, .86);

  --color-line: rgba(30, 62, 106, .14);
  --color-line-strong: rgba(30, 62, 106, .26);
  --color-line-invert: rgba(255, 255, 255, .22);

  --color-focus: #1E3E6A;
  --color-error: #A8323C;        /* apoio funcional para validação de formulário */
  --color-success: var(--azul-serenidade);

  /* --- Gradiente institucional (Manual 3.3) ------------------------------
     0% Azul Noite · 55% Azul São Miguel · 100% Azul Céu.
     Uso restrito a áreas amplas. Nunca sobre a marca nem em botões.
     O ponto final do Azul Céu é posicionado além do quadro (150%) para que
     as áreas com texto branco permaneçam acima de 4,5:1 de contraste,
     preservando a regra "branco sobre azul profundo" do próprio manual.   */
  --gradient-institucional: linear-gradient(
    135deg,
    var(--azul-noite) 0%,
    var(--azul-sao-miguel) 55%,
    var(--azul-ceu) 180%
  );

  /* --- Tipografia (Manual 4.1) ------------------------------------------
     A família oficial é Gotham. Por não haver licença de webfont embarcada,
     o site declara Gotham em primeiro lugar e usa Montserrat como
     substituta técnica (mesma classificação geométrica, altura de x e
     proporções próximas). Ao licenciar Gotham Web, basta trocar o @font-face
     e manter esta pilha.                                                   */
  --font-primary: "Gotham", "Gotham SSm", "Montserrat", system-ui, -apple-system,
    "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --font-secondary: var(--font-primary);

  --fw-light: 300;    /* Gotham Light   — legendas */
  --fw-book: 400;     /* Gotham Book    — texto corrido */
  --fw-medium: 500;   /* Gotham Medium  — subtítulos, menus */
  --fw-semibold: 600;
  --fw-bold: 700;     /* Gotham Bold    — títulos e dados-chave */

  /* Escala derivada da hierarquia do manual (H1 36–44pt, H2 20–28pt,
     corpo 14–18pt, legenda 10–12pt), adaptada para leitura em tela. */
  --fs-display: clamp(2.35rem, 1.6rem + 2.9vw, 3.6rem);
  --fs-h1: clamp(2rem, 1.5rem + 2.1vw, 3rem);
  --fs-h2: clamp(1.55rem, 1.28rem + 1.15vw, 2.25rem);
  --fs-h3: clamp(1.15rem, 1.06rem + .42vw, 1.45rem);
  --fs-h4: clamp(1.02rem, .99rem + .18vw, 1.15rem);
  --fs-body: clamp(1rem, .965rem + .16vw, 1.125rem);
  --fs-body-lg: clamp(1.06rem, 1rem + .34vw, 1.28rem);
  --fs-small: .9375rem;
  --fs-caption: .8125rem;
  --fs-label: .75rem;

  --lh-tight: 1.14;
  --lh-heading: 1.24;
  --lh-body: 1.68;
  --lh-compact: 1.5;

  --ls-display: -.022em;
  --ls-heading: -.014em;
  --ls-label: .16em;

  /* --- Medida de linha --------------------------------------------------- */
  --measure: 62ch;
  --measure-short: 46ch;

  /* --- Grade e espaçamento ----------------------------------------------- */
  --container: 1200px;
  --container-wide: 1340px;
  --container-narrow: 880px;
  --gutter: clamp(1.25rem, 4.4vw, 3rem);

  --space-3xs: .25rem;
  --space-2xs: .5rem;
  --space-xs: .75rem;
  --space-sm: 1.125rem;
  --space-md: 1.75rem;
  --space-lg: 2.75rem;
  --space-xl: 4rem;
  --space-2xl: 6rem;
  --space-3xl: 8.5rem;

  /* Três níveis de respiro entre seções: o ritmo é parte da hierarquia. */
  --section-tight: clamp(3rem, 6vw, 4.5rem);
  --section-base: clamp(4.25rem, 8.5vw, 7rem);
  --section-wide: clamp(5.5rem, 11vw, 9.5rem);

  /* --- Forma (Manual 5.1 — cantos suaves) --------------------------------- */
  --radius-xs: 3px;
  --radius-sm: 6px;
  --radius-md: 10px;
  --radius-lg: 16px;
  --radius-arch: 14rem;   /* arco de proteção aplicado ao topo das imagens */
  --radius-pill: 999px;

  /* --- Sombras discretas -------------------------------------------------- */
  --shadow-xs: 0 1px 2px rgba(30, 62, 106, .05);
  --shadow-sm: 0 2px 6px rgba(30, 62, 106, .06);
  --shadow-md: 0 14px 34px -20px rgba(30, 62, 106, .38);
  --shadow-lg: 0 28px 60px -32px rgba(29, 43, 83, .45);

  /* --- Movimento ---------------------------------------------------------- */
  --ease-out: cubic-bezier(.22, .61, .36, 1);
  --ease-in-out: cubic-bezier(.65, .05, .36, 1);
  --transition-fast: 160ms var(--ease-out);
  --transition-normal: 280ms var(--ease-out);
  --transition-slow: 620ms var(--ease-out);

  /* --- Camadas ------------------------------------------------------------ */
  --z-base: 1;
  --z-sticky: 40;
  --z-header: 60;
  --z-float: 70;
  --z-menu: 80;
  --z-cookie: 90;
}
