/* UEPA Marabá — design system "Organic" (tokens, base e estrutura do site). Usado pela página Modelos. */

:root {
  --color-bg: #f5ead8;
  --color-surface: #ebddc5;
  --color-text: #201e1d;
  --color-divider: color-mix(in srgb, #201e1d 16%, transparent);

  --color-neutral-200: #eee7db;
  --color-neutral-700: #645c50;
  --color-neutral-800: #474238;

  --color-accent: #2d3688;
  --color-accent-100: #eceefb;
  --color-accent-200: #d9dcf4;
  --color-accent-300: #b9bee9;
  --color-accent-400: #7d85cf;
  --color-accent-600: #21285f;
  --color-accent-700: #1a1f4a;

  --color-accent-2: #e30613;
  --color-accent-2-100: #fdecec;
  --color-accent-2-200: #fbd5d6;
  --color-accent-2-600: #c00510;
  --color-accent-2-700: #a8040e;

  --font-heading: "Caprasimo", system-ui, sans-serif;
  --font-body: "Figtree", system-ui, sans-serif;

  --space-2: 8.8px;
  --space-3: 13.2px;
  --space-4: 17.6px;
  --space-6: 26.4px;
  --space-8: 35.2px;

  --radius-lg: 28px;

  --shadow-sm: 0 1px 2px color-mix(in srgb, #2e2b25 14%, transparent);
  --shadow-md: 0 3px 10px color-mix(in srgb, #2e2b25 16%, transparent);
  --shadow-lg: 0 12px 32px color-mix(in srgb, #2e2b25 22%, transparent);

  --page-max: 1240px;
}

*, *::before, *::after { box-sizing: border-box; }

[hidden] { display: none !important; }

body {
  margin: 0;
  background: var(--color-bg);
  color: var(--color-text);
  font-family: var(--font-body);
  font-size: 15px;
  line-height: 1.55;
}

h1, h2, h3, h4 {
  font-family: var(--font-heading);
  font-weight: 400;
  line-height: 1.12;
  letter-spacing: -0.015em;
  margin: 0 0 var(--space-2);
}

a { color: var(--color-accent); text-decoration: none; }
a:hover { color: var(--color-accent-600); }
img { display: block; max-width: 100%; }

:focus { outline: none; }
:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 2px; }
::selection { background: color-mix(in srgb, var(--color-accent) 30%, transparent); }

.skip-link {
  position: absolute;
  left: -999px;
  top: 0;
  background: var(--color-accent-2);
  color: #fff;
  padding: 10px 16px;
  border-radius: 0 0 12px 0;
  z-index: 1000;
}
.skip-link:focus { left: 0; color: #fff; }

/* ===== Estrutura da página ===== */

.page {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  gap: var(--space-8);
  padding: var(--space-4) clamp(16px, 3vw, 40px) 0;
}

.page-main {
  max-width: var(--page-max);
  width: 100%;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: clamp(48px, 6vw, 80px);
}

/* ===== Cabeçalho ===== */

.site-header {
  max-width: var(--page-max);
  width: 100%;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
  flex-wrap: wrap;
  position: relative;
  z-index: 10;
}

.logo-pill {
  display: flex;
  align-items: center;
  background: #fff;
  border-radius: 999px;
  padding: 10px 22px;
  box-shadow: var(--shadow-sm);
}
.logo-pill img { height: 44px; width: auto; }

.menu-toggle {
  display: none;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  font-family: var(--font-heading);
  font-size: 16px;
  color: var(--color-text);
  background: transparent;
  border: 1px solid var(--color-divider);
  border-radius: 999px;
  padding: 12px 20px;
}
.menu-toggle:hover { background: color-mix(in srgb, var(--color-text) 7%, transparent); }

.site-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 2px;
  background: #fff;
  border-radius: 999px;
  padding: 6px;
  box-shadow: var(--shadow-sm);
}

.nav-list {
  display: contents;
  list-style: none;
  margin: 0;
  padding: 0;
}

.nav-item { position: relative; }

.nav-link {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 10px 14px;
  border-radius: 999px;
  font: inherit;
  font-weight: 600;
  font-size: 14.5px;
  color: var(--color-text);
  white-space: nowrap;
  background: transparent;
  border: 0;
  cursor: pointer;
}
.nav-link:hover,
.nav-item.is-open > .nav-link {
  background: var(--color-accent-100);
  color: var(--color-accent);
}

.nav-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--color-accent-2);
}

.nav-caret { transition: transform 0.15s; }
.nav-item.is-open .nav-caret { transform: rotate(180deg); }

.dropdown {
  display: none;
  list-style: none;
  margin: 0;
  position: absolute;
  top: 100%;
  left: 0;
  min-width: 280px;
  background: #fff;
  border-radius: 20px;
  padding: 8px;
  box-shadow: var(--shadow-lg);
  flex-direction: column;
  z-index: 20;
}
.nav-item.is-open > .dropdown { display: flex; }

@media (hover: hover) and (min-width: 1100px) {
  .nav-item.has-dropdown:hover > .dropdown { display: flex; }
  .nav-item.has-dropdown:hover > .nav-link {
    background: var(--color-accent-100);
    color: var(--color-accent);
  }
}

.dropdown a {
  display: block;
  padding: 9px 14px;
  border-radius: 12px;
  font-size: 14px;
  color: var(--color-text);
}
.dropdown a:hover {
  background: var(--color-accent-100);
  color: var(--color-accent);
}

@media (max-width: 1099px) {
  .menu-toggle { display: inline-flex; }

  .site-nav {
    display: none;
    flex-direction: column;
    flex-wrap: nowrap;
    gap: 0;
    width: 100%;
    border-radius: var(--radius-lg);
    padding: 8px;
    box-shadow: var(--shadow-md);
  }
  .site-nav.is-open { display: flex; }

  .dropdown {
    position: static;
    min-width: 0;
    padding: 4px 0 8px 14px;
    box-shadow: none;
    border-radius: 0;
  }
}

/* ===== Hero ===== */

.hero {
  background: var(--color-accent);
  color: var(--color-bg);
  border-radius: 48px;
  padding: clamp(28px, 5vw, 56px);
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  position: relative;
  overflow: hidden;
}
.hero::before,
.hero::after {
  content: "";
  position: absolute;
  border-radius: 50%;
  z-index: 0;
}
.hero::before {
  width: 320px;
  height: 320px;
  background: var(--color-accent-600);
  right: -80px;
  top: -140px;
}
.hero::after {
  width: 72px;
  height: 72px;
  background: var(--color-accent-2);
  right: clamp(40px, 12vw, 200px);
  top: clamp(70px, 9vw, 120px);
}
.hero > * { position: relative; z-index: 1; }

.breadcrumb {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  color: var(--color-accent-200);
}
.breadcrumb a { color: var(--color-accent-200); }
.breadcrumb a:hover { color: #fff; }
.breadcrumb [aria-current] { color: var(--color-bg); font-weight: 600; }

.hero h1 {
  font-size: clamp(40px, 5.6vw, 64px);
  line-height: 1.02;
  margin: 0;
}
.hero-lead {
  font-size: 18px;
  max-width: 640px;
  margin: 0;
  color: var(--color-accent-100);
  text-wrap: pretty;
}

/* ===== Rodapé ===== */

.site-footer {
  max-width: var(--page-max);
  width: 100%;
  margin: var(--space-8) auto 0;
  background: var(--color-accent-700);
  color: var(--color-accent-200);
  border-radius: 48px 48px 0 0;
  padding: clamp(32px, 5vw, 56px) clamp(24px, 5vw, 64px) var(--space-6);
  display: flex;
  flex-direction: column;
  gap: var(--space-8);
}
.footer-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: var(--space-8);
}
.footer-col {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}
.footer-col h4 {
  font-size: 20px;
  color: var(--color-bg);
  margin: 0 0 6px;
}
.site-footer a { color: var(--color-accent-200); }
.site-footer a:hover { color: #fff; }
.footer-bottom {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 13px;
  color: var(--color-accent-300);
}
.footer-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--color-accent-2);
}

/* ===== Componentes compartilhados ===== */

.page-main--tight { gap: var(--space-8); }

.section {
  display: flex;
  flex-direction: column;
  gap: var(--space-6);
  scroll-margin-top: 24px;
}
.section-head {
  display: flex;
  align-items: baseline;
  gap: var(--space-3);
  flex-wrap: wrap;
}
.section-title {
  font-size: clamp(28px, 3.2vw, 38px);
  color: var(--color-accent);
  margin: 0;
}
.section-lead {
  margin: 0;
  font-size: 17px;
  color: var(--color-neutral-700);
}
.section-count {
  font-size: 14px;
  font-weight: 600;
  color: var(--color-neutral-700);
}

.grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, var(--col, 280px)), 1fr));
  gap: var(--space-4);
}
.grid--loose { gap: var(--space-6) var(--space-4); }

/* Botões */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-family: var(--font-heading);
  font-size: 15px;
  line-height: 1.2;
  cursor: pointer;
  border: 2px solid transparent;
  border-radius: 999px;
  padding: 12px 22px;
}
.btn-lg { font-size: 16px; padding: 14px 26px; }
.btn-red { background: var(--color-accent-2); color: #fff; }
.btn-red:hover { background: var(--color-accent-2-600); color: #fff; }
.btn-outline { border-color: var(--color-accent); color: var(--color-accent); padding-block: 10px; }
.btn-outline:hover { background: var(--color-accent-100); color: var(--color-accent); }
.btn-outline-light { border-color: var(--color-accent-300); color: var(--color-bg); padding-block: 12px; }
.btn-outline-light:hover { background: var(--color-accent-600); color: var(--color-bg); }
.btn-ghost { color: var(--color-accent); padding-inline: 16px; }
.btn-ghost:hover { background: var(--color-accent-100); color: var(--color-accent); }

/* Aviso informativo */
.note {
  display: flex;
  align-items: flex-start;
  gap: var(--space-3);
  background: var(--color-surface);
  border-radius: var(--radius-lg);
  padding: var(--space-4) var(--space-6);
  max-width: 820px;
}
.note svg { flex: 0 0 auto; margin-top: 2px; color: var(--color-accent); }
.note p { margin: 0; font-size: 15px; color: var(--color-neutral-800); text-wrap: pretty; }

/* Cartões */
.card {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  background: #fff;
  border-radius: var(--radius-lg);
  padding: var(--space-6);
  box-shadow: var(--shadow-sm);
  color: var(--color-text);
}
a.card:hover { box-shadow: var(--shadow-md); color: var(--color-text); }
.card h3 { font-size: 22px; line-height: 1.2; margin: 0; color: var(--color-accent); }
.card p { margin: 0; font-size: 15px; color: var(--color-neutral-700); text-wrap: pretty; }

.icon-circle {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: var(--color-accent-100);
  color: var(--color-accent);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: var(--space-2);
}
.icon-circle.is-red { background: var(--color-accent-2-100); color: var(--color-accent-2-700); }

/* Selos de tipo de arquivo */
.file-ext, .ext-big, .ext-mini {
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  letter-spacing: 0.04em;
  border-radius: 999px;
  background: var(--color-accent-100);
  color: var(--color-accent);
}
.file-ext { flex: 0 0 60px; height: 32px; font-size: 12px; }
.ext-big { min-width: 84px; height: 44px; padding: 0 16px; font-size: 16px; }
.ext-mini { flex: 0 0 auto; height: 26px; padding: 0 10px; font-size: 11px; }
.ext-pdf { background: var(--color-accent-2-100); color: var(--color-accent-2-700); }
.ext-doc { background: var(--color-accent-100); color: var(--color-accent); }
.ext-sheet { background: color-mix(in srgb, #1e7145 14%, #fff); color: #1e7145; }
.ext-slide { background: color-mix(in srgb, #b8860b 16%, #fff); color: #8a6508; }
.ext-image { background: color-mix(in srgb, #6a3fa0 13%, #fff); color: #6a3fa0; }
.ext-archive { background: var(--color-neutral-200); color: #55575f; }

/* Lista de arquivos */
.file-list {
  list-style: none;
  margin: 0;
  background: #fff;
  border-radius: var(--radius-lg);
  padding: 8px;
  box-shadow: var(--shadow-sm);
  display: flex;
  flex-direction: column;
}
.file-link {
  display: flex;
  align-items: center;
  gap: var(--space-4);
  padding: 12px 12px 12px 14px;
  border-radius: 20px;
  color: var(--color-text);
}
.file-link:hover { background: var(--color-accent-100); color: var(--color-text); }
.file-info {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 1px;
}
.file-name { font-weight: 600; font-size: 16px; overflow-wrap: anywhere; }
.file-size { font-size: 13px; color: var(--color-neutral-700); }
.file-sub { font-size: 14px; color: var(--color-neutral-700); text-wrap: pretty; }
.file-dl {
  flex: 0 0 auto;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: var(--color-accent-100);
  color: var(--color-accent);
  display: flex;
  align-items: center;
  justify-content: center;
}
.file-link:hover .file-dl,
.file-link:focus-visible .file-dl { background: var(--color-accent); color: #fff; }

/* Miniaturas (logos, brasões, materiais) */
.tile {
  display: flex;
  flex-direction: column;
  gap: 10px;
  background: #fff;
  border-radius: var(--radius-lg);
  padding: 10px 10px 14px;
  box-shadow: var(--shadow-sm);
  color: var(--color-text);
}
.tile:hover { box-shadow: var(--shadow-md); color: var(--color-accent); }
.tile-thumb {
  aspect-ratio: 4 / 3;
  border-radius: 20px;
  background: var(--color-surface);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.tile-thumb img { width: 80%; height: 80%; object-fit: contain; }
.tile-thumb.is-fit img { width: 100%; height: 100%; }
.tile-label { display: flex; align-items: flex-start; gap: 8px; padding: 0 6px; }
.tile-label span:first-child { flex: 1; font-size: 14.5px; font-weight: 600; line-height: 1.3; overflow-wrap: anywhere; }
.tile-label svg { flex: 0 0 auto; color: var(--color-accent); margin-top: 1px; }

/* Marcadores */
.dot-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--space-3); }
.dot-list li { display: flex; gap: 12px; align-items: flex-start; font-size: 15.5px; line-height: 1.55; text-wrap: pretty; }
.dot-list li::before {
  content: "";
  flex: 0 0 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--color-accent-2);
  margin-top: 8px;
}

.pill-tag {
  align-self: flex-start;
  border-radius: 999px;
  background: var(--color-accent-100);
  color: var(--color-accent);
  padding: 4px 12px;
  font-size: 13px;
  font-weight: 700;
}
.date-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  align-self: flex-start;
  background: var(--color-accent-2-100);
  color: var(--color-accent-2-700);
  border-radius: 999px;
  padding: 5px 14px 5px 8px;
  font-size: 13px;
  font-weight: 700;
}
.date-badge::before {
  content: "";
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--color-accent-2);
}

.washed { filter: saturate(0.6) contrast(0.85) brightness(1.1) opacity(0.94); }
