/* =========================================================
   TEMA DTT — identidade visual do portal
   Carregado depois do Bootstrap e do geral.css
   ========================================================= */
:root {
  --dtt-amarelo: #FFB000;
  --dtt-amarelo-escuro: #E09B00;
  --dtt-amarelo-claro: #FFF4D6;
  --dtt-grafite: #23272E;
  --dtt-grafite-2: #2F343C;
  --dtt-texto: #2B2F36;
  --dtt-texto-suave: #5C6370;
  --dtt-borda: #E4E7EC;
  --dtt-fundo: #F5F6F8;
  --dtt-raio: 14px;
  --dtt-sombra: 0 1px 2px rgba(16, 24, 40, .06), 0 1px 3px rgba(16, 24, 40, .10);
  --dtt-sombra-hover: 0 12px 24px -6px rgba(16, 24, 40, .18);
  --bs-body-font-family: "Nunito Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --bs-body-color: var(--dtt-texto);
}

body {
  font-family: var(--bs-body-font-family);
  color: var(--dtt-texto);
  background: #fff;
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}
main { flex: 1 0 auto; }
html { scroll-padding-top: 84px; }
[id^="scroll"], #servicos { scroll-margin-top: 84px; }

h1, h2, h3, h4, h5 { color: var(--dtt-texto); font-weight: 800; letter-spacing: -.01em; }

a { color: #1F5FAD; }

:focus-visible { outline: 3px solid var(--dtt-amarelo); outline-offset: 2px; }

/* ---------- Barra de navegação ---------- */
.dtt-nav {
  background: #fff;
  border-bottom: 1px solid var(--dtt-borda);
  padding: .6rem 0;
  position: sticky;
  top: 0;
  z-index: 1030;
}
.dtt-brand {
  display: flex;
  align-items: center;
  gap: .75rem;
  text-decoration: none;
  color: var(--dtt-texto);
}
.dtt-brand:hover { color: var(--dtt-texto); }
.dtt-brand-icone {
  width: 44px; height: 44px;
  border-radius: 12px;
  background: var(--dtt-amarelo);
  color: var(--dtt-grafite);
  display: grid; place-items: center;
  font-size: 1.5rem;
  flex-shrink: 0;
}
.dtt-brand-texto { line-height: 1.1; }
.dtt-brand-texto strong { display: block; font-size: 1.35rem; font-weight: 900; letter-spacing: .02em; }
.dtt-brand-texto small { display: block; font-size: .78rem; color: var(--dtt-texto-suave); font-weight: 600; }

.dtt-nav .nav-link.link-menu-complemento {
  color: var(--dtt-texto) !important;
  font-weight: 700;
  padding: .5rem .9rem !important;
  border-radius: 999px;
  transition: background .15s ease, color .15s ease;
}
.dtt-nav .nav-link.link-menu-complemento:hover,
.dtt-nav .nav-link.link-menu-complemento:focus {
  background: var(--dtt-amarelo-claro);
  color: var(--dtt-texto) !important;
}
.dtt-nav .nav-link.link-menu-complemento.ativo {
  background: var(--dtt-amarelo);
  color: var(--dtt-grafite) !important;
}
.dtt-nav .nav-link .bi-box-arrow-up-right { font-size: .7em; margin-left: .25rem; opacity: .6; }

/* ---------- Destaque (hero) ---------- */
.dtt-hero {
  position: relative;
  color: #fff;
  background:
    linear-gradient(100deg, rgba(20, 22, 26, .92) 0%, rgba(20, 22, 26, .72) 45%, rgba(20, 22, 26, .25) 100%),
    url('../img/transporte-coletivo-criciuma-62071_62699.jpg') center / cover no-repeat;
  padding: 4.5rem 0 5rem;
}
.dtt-hero::after {
  content: "";
  position: absolute; left: 0; right: 0; bottom: 0;
  height: 6px;
  background: repeating-linear-gradient(90deg, var(--dtt-amarelo) 0 40px, var(--dtt-grafite) 40px 80px);
}
.dtt-hero-selo {
  display: inline-flex; align-items: center; gap: .5rem;
  background: rgba(255, 176, 0, .15);
  border: 1px solid rgba(255, 176, 0, .5);
  color: var(--dtt-amarelo);
  padding: .3rem .8rem;
  border-radius: 999px;
  font-weight: 700;
  font-size: .85rem;
  margin-bottom: 1rem;
}
.dtt-hero h1 {
  color: #fff;
  font-size: clamp(2rem, 4.5vw, 3.25rem);
  font-weight: 900;
  line-height: 1.08;
  max-width: 14ch;
  margin-bottom: 1rem;
}
.dtt-hero h1 span { color: var(--dtt-amarelo); }
.dtt-hero p.lead { color: rgba(255, 255, 255, .85); max-width: 46ch; margin-bottom: 1.75rem; }

.dtt-hero-busca {
  background: #fff;
  border-radius: var(--dtt-raio);
  padding: 1.25rem;
  box-shadow: 0 20px 40px -12px rgba(0, 0, 0, .45);
  color: var(--dtt-texto);
}
.dtt-hero-busca h2 { font-size: 1.1rem; margin-bottom: .25rem; }
.dtt-hero-busca p { color: var(--dtt-texto-suave); font-size: .9rem; margin-bottom: .9rem; }

/* Faixa compacta das páginas internas */
.dtt-faixa {
  position: relative;
  background:
    linear-gradient(90deg, rgba(20, 22, 26, .92), rgba(20, 22, 26, .7)),
    url('../img/transporte-coletivo-criciuma-62071_62699.jpg') center 40% / cover no-repeat;
  color: #fff;
  padding: 1.6rem 0;
  margin-bottom: 2rem;
}
.dtt-faixa::after {
  content: "";
  position: absolute; left: 0; right: 0; bottom: 0;
  height: 4px;
  background: repeating-linear-gradient(90deg, var(--dtt-amarelo) 0 32px, var(--dtt-grafite) 32px 64px);
}
.dtt-faixa p { margin: 0; font-weight: 800; font-size: 1.15rem; display: flex; align-items: center; gap: .6rem; }
.dtt-faixa p i { color: var(--dtt-amarelo); font-size: 1.6rem; }

/* ---------- Botões ---------- */
.btn-dtt,
.btn-warning {
  background: var(--dtt-amarelo) !important;
  border-color: var(--dtt-amarelo) !important;
  color: var(--dtt-grafite) !important;
  font-weight: 800 !important;
  border-radius: 10px;
  padding: .6rem 1.2rem;
}
.btn-dtt:hover, .btn-warning:hover,
.btn-dtt:focus, .btn-warning:focus {
  background: var(--dtt-amarelo-escuro) !important;
  border-color: var(--dtt-amarelo-escuro) !important;
}
.btn-dtt-claro {
  border: 1px solid rgba(255, 255, 255, .5);
  color: #fff;
  font-weight: 700;
  border-radius: 10px;
  padding: .6rem 1.2rem;
}
.btn-dtt-claro:hover { background: rgba(255, 255, 255, .12); color: #fff; }

.btn-outline-secondary {
  border-color: var(--dtt-borda);
  color: var(--dtt-texto);
  font-weight: 700;
}
.btn-outline-secondary:hover { background: var(--dtt-amarelo); border-color: var(--dtt-amarelo); color: var(--dtt-grafite); }

.form-control, .form-select { border-color: #D0D5DD; padding-top: .6rem; padding-bottom: .6rem; }
.form-control:focus, .form-select:focus { border-color: var(--dtt-amarelo); box-shadow: 0 0 0 .2rem rgba(255, 176, 0, .25); }

/* ---------- Títulos de seção / página ---------- */
.titulo {
  color: var(--dtt-texto) !important;
  font-size: clamp(1.6rem, 3vw, 2rem) !important;
  font-weight: 900;
  border-bottom: 0 !important;
  position: relative;
  padding-bottom: .6rem !important;
  margin-bottom: 1.5rem !important;
}
.titulo::after {
  content: "";
  position: absolute; left: 0; bottom: 0;
  width: 56px; height: 4px; border-radius: 4px;
  background: var(--dtt-amarelo);
}

/* Trilha de navegação (breadcrumb) */
main > .container:first-child p:has(> a.link-secondary) { font-size: .9rem; color: var(--dtt-texto-suave); }
main > .container:first-child { margin-bottom: 1rem !important; }

/* ---------- Cards de serviços ---------- */
.dtt-servico {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  height: 100%;
  padding: 1.75rem 1.25rem 1.5rem;
  background: #fff;
  border: 1px solid var(--dtt-borda);
  border-radius: var(--dtt-raio);
  box-shadow: var(--dtt-sombra);
  color: var(--dtt-texto);
  text-decoration: none;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.dtt-servico:hover,
.dtt-servico:focus-visible {
  transform: translateY(-4px);
  box-shadow: var(--dtt-sombra-hover);
  border-color: var(--dtt-amarelo);
  color: var(--dtt-texto);
}
.dtt-servico-icone {
  width: 84px; height: 84px;
  border-radius: 50%;
  background: var(--dtt-amarelo-claro);
  display: grid; place-items: center;
  margin-bottom: 1rem;
  transition: background .18s ease;
}
.dtt-servico:hover .dtt-servico-icone { background: var(--dtt-amarelo); }
.dtt-servico-icone img { width: 46px; height: 46px; object-fit: contain; margin: 0; }
.dtt-servico h3 { font-size: 1.05rem; font-weight: 800; margin-bottom: .3rem; }
.dtt-servico p { font-size: .88rem; color: var(--dtt-texto-suave); margin: 0; line-height: 1.35; }
.dtt-servico .externo { margin-top: auto; padding-top: .75rem; font-size: .78rem; color: var(--dtt-texto-suave); }
@media (max-width: 575.98px) {
  .dtt-servico { padding: 1.1rem .6rem; }
  .dtt-servico-icone { width: 64px; height: 64px; margin-bottom: .6rem; }
  .dtt-servico-icone img { width: 36px; height: 36px; }
  .dtt-servico h3 { font-size: .95rem; }
  .dtt-servico p { font-size: .8rem; }
  .dtt-servico .externo { display: none; }
  .dtt-hero { padding: 2.5rem 0 3rem; }
}

/* ---------- Notícias ---------- */
.dtt-secao-noticias { background: var(--dtt-fundo); }
.dtt-noticia {
  display: flex; flex-direction: column;
  height: 100%;
  background: #fff;
  border-radius: var(--dtt-raio);
  overflow: hidden;
  border: 1px solid var(--dtt-borda);
  box-shadow: var(--dtt-sombra);
  text-decoration: none;
  color: var(--dtt-texto);
  transition: transform .18s ease, box-shadow .18s ease;
}
.dtt-noticia:hover { transform: translateY(-4px); box-shadow: var(--dtt-sombra-hover); color: var(--dtt-texto); }
.dtt-noticia-img { aspect-ratio: 16 / 9; overflow: hidden; background: #ddd; }
.dtt-noticia-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.dtt-noticia:hover .dtt-noticia-img img { transform: scale(1.04); }
.dtt-noticia-corpo { padding: 1.1rem 1.25rem 1.3rem; display: flex; flex-direction: column; gap: .5rem; flex: 1; }
.dtt-noticia-meta { font-size: .8rem; color: var(--dtt-texto-suave); font-weight: 600; }
.dtt-noticia h3 { font-size: 1.05rem; font-weight: 800; line-height: 1.3; margin: 0; }
.dtt-noticia p { font-size: .9rem; color: var(--dtt-texto-suave); margin: 0; }
.dtt-noticia-ler { margin-top: auto; padding-top: .5rem; font-weight: 800; font-size: .85rem; color: #A15C00; }

/* Lista de notícias (página Notícias) */
.dtt-noticia-h { flex-direction: row; margin-bottom: 1.25rem; height: auto; }
.dtt-noticia-h .dtt-noticia-img { flex: 0 0 280px; aspect-ratio: auto; min-height: 180px; }
@media (max-width: 767.98px) {
  .dtt-noticia-h { flex-direction: column; }
  .dtt-noticia-h .dtt-noticia-img { flex-basis: auto; aspect-ratio: 16 / 9; }
}

.pagination { gap: .35rem; flex-wrap: wrap; }
.pagination li { list-style: none; }
.pagination li a, .pagination li span {
  display: inline-block;
  min-width: 40px;
  padding: .45rem .8rem;
  border-radius: 10px;
  border: 1px solid var(--dtt-borda);
  background: #fff;
  color: var(--dtt-texto);
  text-decoration: none;
  font-weight: 700;
  text-align: center;
}
.pagination li a:hover { border-color: var(--dtt-amarelo); background: var(--dtt-amarelo-claro); }
.pagination li.active a, .pagination li.active span { background: var(--dtt-amarelo); border-color: var(--dtt-amarelo); color: var(--dtt-grafite); }

/* Notícia aberta */
.dtt-artigo { max-width: 860px; }
.dtt-artigo h2 { font-size: clamp(1.6rem, 3.2vw, 2.3rem); font-weight: 900; line-height: 1.15; }
.dtt-artigo .resumo { font-size: 1.15rem; color: var(--dtt-texto-suave); font-weight: 600; }
.dtt-artigo .conteudo { font-size: 1.05rem; line-height: 1.75; }
.dtt-artigo .conteudo img { max-width: 100%; height: auto; }
.dtt-artigo .img-thumbnail { border-radius: var(--dtt-raio); padding: 0; border: 0; box-shadow: var(--dtt-sombra); }

/* ---------- Horários ---------- */
.dtt-painel {
  background: #fff;
  border: 1px solid var(--dtt-borda);
  border-radius: var(--dtt-raio);
  box-shadow: var(--dtt-sombra);
  padding: 1.5rem;
}
.dtt-painel { margin-bottom: 1.25rem; }
.moovit img { box-shadow: var(--dtt-sombra); }
.dtt-painel h2 { font-size: 1.15rem; display: flex; align-items: center; gap: .5rem; }
.dtt-painel h2 i { color: var(--dtt-amarelo-escuro); }

.periodo-semana {
  margin-top: 2rem !important;
  margin-bottom: .75rem;
  font-weight: 900;
  font-size: .95rem;
  letter-spacing: .06em;
  text-align: left;
}
.periodo-semana span {
  display: inline-block;
  background: var(--dtt-grafite);
  color: #fff;
  padding: .3rem .8rem;
  border-radius: 8px;
}
.terminal {
  color: var(--dtt-texto-suave) !important;
  font-size: .85rem;
  text-align: left;
  margin: .5rem 0;
}
.col-12.terminal:first-child { color: var(--dtt-texto) !important; font-size: 1.4rem; font-weight: 900; text-align: center; }
.box-horarios {
  border: 1px solid var(--dtt-borda) !important;
  border-radius: var(--dtt-raio) !important;
  padding: .6rem;
  margin: 0 0 1rem !important;
  background: var(--dtt-fundo);
  row-gap: .4rem;
}
.box-horarios .horarios {
  font-variant-numeric: tabular-nums;
  font-weight: 700;
  text-align: center !important;
  padding: .3rem .2rem;
  background: #fff;
  border-radius: 8px;
  border: 1px solid var(--dtt-borda);
  margin: 0 .2rem;
  flex: 0 0 calc(25% - .4rem);
}
@media (min-width: 768px) { .box-horarios .horarios { flex-basis: calc(16.666% - .4rem); } }
.box-horarios .horarios strong { color: #C2410C; font-size: .8em; margin-left: 1px; }
.box-descricao-final {
  border: 1px solid var(--dtt-borda) !important;
  border-radius: var(--dtt-raio) !important;
  padding: 1rem 1.25rem;
  color: var(--dtt-texto) !important;
  background: #fff;
}

.table { --bs-table-hover-bg: var(--dtt-amarelo-claro); }
.table thead th { font-size: .8rem; text-transform: uppercase; letter-spacing: .05em; color: var(--dtt-texto-suave); }

/* ---------- Rodapé ---------- */
.dtt-rodape-faixa {
  height: 6px;
  background: repeating-linear-gradient(90deg, var(--dtt-amarelo) 0 40px, var(--dtt-grafite) 40px 80px);
}
.dtt-rodape {
  background: var(--dtt-grafite) !important;
  color: #C9CED6 !important;
  padding: 3.5rem 0 1.5rem !important;
  text-align: left !important;
}
.dtt-rodape h2 {
  color: #fff;
  font-size: .85rem;
  text-transform: uppercase;
  letter-spacing: .08em;
  margin-bottom: 1rem;
}
.dtt-rodape a { color: #C9CED6; text-decoration: none; }
.dtt-rodape a:hover { color: var(--dtt-amarelo); text-decoration: underline; }
.dtt-rodape ul { list-style: none; padding: 0; margin: 0; }
.dtt-rodape li { margin-bottom: .55rem; display: flex; gap: .55rem; align-items: flex-start; }
.dtt-rodape li i { color: var(--dtt-amarelo); }
.dtt-rodape .dtt-brand, .dtt-rodape .dtt-brand:hover { color: #fff; }
.dtt-rodape .dtt-brand small { color: #9AA1AC; }
.dtt-rodape-pmc { display: inline-flex; align-items: center; gap: .75rem; margin-top: 1.5rem; font-size: .9rem; }
.dtt-rodape-pmc img { width: 52px; margin: 0; }
.dtt-rodape-copy {
  border-top: 1px solid rgba(255, 255, 255, .1);
  margin-top: 2.5rem;
  padding-top: 1.25rem;
  font-size: .85rem;
  color: #8B929D;
  text-align: center;
}

/* ---------- Aviso de cookies ---------- */
.cookie-consent {
  position: fixed;
  left: 1rem; right: 1rem; bottom: 1rem;
  max-width: 760px;
  margin: 0 auto;
  background: #fff;
  color: var(--dtt-texto);
  border-radius: var(--dtt-raio);
  box-shadow: 0 20px 50px -10px rgba(0, 0, 0, .35);
  border: 1px solid var(--dtt-borda);
  border-top: 5px solid var(--dtt-amarelo);
  padding: 1.25rem 1.5rem;
  text-align: left;
  z-index: 2000;
  display: none;
  font-size: .9rem;
}
.cookie-consent p { margin: 0 0 1rem; }
.cookie-consent a { color: #1F5FAD; text-decoration: underline; }
.cookie-consent .acoes { display: flex; gap: .5rem; justify-content: flex-end; flex-wrap: wrap; }
.cookie-consent button {
  border: 1px solid var(--dtt-borda);
  background: #fff;
  color: var(--dtt-texto);
  padding: .55rem 1.2rem;
  border-radius: 10px;
  font-weight: 800;
  cursor: pointer;
}
.cookie-consent button:hover { background: var(--dtt-fundo); }
.cookie-consent button#acceptCookies { background: var(--dtt-amarelo); border-color: var(--dtt-amarelo); color: var(--dtt-grafite); }
.cookie-consent button#acceptCookies:hover { background: var(--dtt-amarelo-escuro); }

/* ---------- Barra de acessibilidade ---------- */
#allacessibilidade div.mereco,
#allacessibilidade:hover .toggleAces,
#allacessibilidade:focus .toggleAces { background-color: var(--dtt-grafite); }
#allacessibilidade div.mereco .toggleAces i { color: var(--dtt-amarelo); }

/* Movimento reduzido */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; animation: none !important; }
}
