/* UNIMES redesign — Catálogo de cursos (/cursos/). CSS puro, sem build.
   Medidas do protótipo "UNIMES — Catálogo de cursos" (desktop 1440, mobile 390;
   prints em docs/design-system/share/). Até 639px: cards em linha, filtros em
   gaveta. De 640px: cards em coluna. De 1024px: coluna de filtros fixa ao lado. */

.unimes-catalog {
  --unimes-catalog-side: 248px;
  --unimes-catalog-gap: 32px;
  display: block;
  min-width: 0;
  /* As linhas de largura total (::after com -100vw) passavam da tela pela direita: no celular a
     area de layout ia a 734px e a pagina podia ser arrastada para o lado (QA final, 07/10/2026).
     "clip" corta sem criar area de rolagem, entao o sticky e a gaveta fixa seguem iguais. */
  overflow-x: clip;
  background: var(--unimes-color-neutral-white);
}

.unimes-catalog :where(h1, h2, h3, p, ul, fieldset) {
  margin: 0;
}

.unimes-catalog :where(ul) {
  padding: 0;
  list-style: none;
}

/* Faixas cinza de largura total a partir de um elemento dentro do container:
   o border-image estende o fundo 100vw para os lados sem mudar o layout. */
.unimes-catalog-intro,
.unimes-catalog-cta {
  background: var(--gray-050);
}

/* ---------- Título ---------- */

.unimes-catalog-intro {
  padding-block: 28px 16px;
}

.unimes-catalog-intro__eyebrow {
  margin-bottom: var(--unimes-space-2);
}

.unimes-catalog-intro__title {
  color: var(--text-strong);
  font-size: clamp(2rem, 1.5rem + 2.2vw, 3rem);
  font-weight: var(--fw-light);
  letter-spacing: var(--tracking-tight);
  line-height: var(--leading-tight);
}

/* ---------- Layout ---------- */

.unimes-catalog__layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-areas:
    "search"
    "toolbar"
    "panel"
    "results";
  align-items: start;
  padding-bottom: var(--unimes-space-12);
}

/* ---------- Busca ---------- */

.unimes-catalog-search {
  position: relative;
  grid-area: search;
  display: flex;
  gap: var(--unimes-space-2);
  padding-bottom: 20px;
  border-image: conic-gradient(var(--gray-050) 0 0) fill 0 / / 0 100vw;
}

/* Linha inferior da faixa cinza, também de largura total. */
.unimes-catalog-search::after {
  position: absolute;
  right: -100vw;
  bottom: 0;
  left: -100vw;
  height: 1px;
  background: var(--border-subtle);
  content: '';
}

.unimes-catalog-search__input {
  min-width: 0;
  height: 48px;
  flex: 1 1 auto;
  padding: 0 var(--unimes-space-5);
  border: 1px solid var(--border-default);
  border-radius: var(--radius-pill);
  background: var(--unimes-white);
  color: var(--text-body);
  font-size: var(--text-base);
}

.unimes-catalog-search__input::placeholder {
  color: var(--text-muted);
  opacity: 1;
}

.unimes-catalog-search__input::-webkit-search-cancel-button {
  cursor: pointer;
}

.unimes-catalog-search__submit {
  display: inline-flex;
  width: 48px;
  height: 48px;
  flex: 0 0 48px;
  align-items: center;
  justify-content: center;
  border: 0;
  border-radius: var(--radius-md);
  background: var(--action-primary);
  color: var(--unimes-white);
  cursor: pointer;
  transition: background-color var(--unimes-transition-fast) ease;
}

.unimes-catalog-search__submit:hover {
  background: var(--action-primary-hover);
}

.unimes-catalog-search__submit:active {
  background: var(--action-primary-active);
}

/* ---------- Barra de resultados ---------- */

.unimes-catalog__toolbar {
  position: relative;
  grid-area: toolbar;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--unimes-space-3) var(--unimes-space-4);
  padding-block: var(--unimes-space-3);
  margin-bottom: var(--unimes-space-3);
}

.unimes-catalog__toolbar::after {
  position: absolute;
  right: -100vw;
  bottom: 0;
  left: -100vw;
  height: 1px;
  background: var(--border-subtle);
  content: '';
}

.unimes-catalog__filters-toggle {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  gap: var(--unimes-space-2);
  padding: 0 var(--unimes-space-4);
  border: 1px solid var(--border-brand);
  border-radius: var(--radius-md);
  background: var(--unimes-white);
  color: var(--text-strong);
  font-size: var(--text-sm);
  cursor: pointer;
}

.unimes-catalog__filters-toggle[hidden] {
  display: none;
}

.unimes-catalog__filters-toggle:hover {
  background: var(--action-secondary-hover);
}

.unimes-catalog__filters-badge {
  display: inline-flex;
  min-width: 20px;
  height: 20px;
  align-items: center;
  justify-content: center;
  padding: 0 6px;
  border-radius: var(--radius-pill);
  background: var(--unimes-navy);
  color: var(--unimes-white);
  font-size: var(--text-xs);
  line-height: 1;
}

.unimes-catalog__filters-badge[hidden] {
  display: none;
}

.unimes-catalog__summary {
  flex: 1 1 auto;
  min-width: 0;
  color: var(--text-muted);
  font-size: var(--text-sm);
  line-height: var(--leading-snug);
}

.unimes-catalog__summary-count {
  color: var(--text-strong);
}

/* No celular o botão Filtros já conta os filtros ativos. */
.unimes-catalog__summary-detail {
  display: none;
}

.unimes-catalog__sort {
  display: flex;
  align-items: center;
  gap: var(--unimes-space-3);
  margin-left: auto;
}

.unimes-catalog__sort-label {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
}

.unimes-catalog__select {
  min-height: 44px;
  padding: 0 36px 0 var(--unimes-space-4);
  border: 1px solid var(--border-default);
  border-radius: var(--radius-md);
  appearance: none;
  background: var(--unimes-white) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2304003D' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 12px center / 16px;
  color: var(--text-strong);
  font-size: var(--text-sm);
  cursor: pointer;
}

.unimes-catalog__select:hover {
  border-color: var(--border-strong);
}

/* ---------- Filtros ---------- */

.unimes-catalog__panel {
  grid-area: panel;
  padding-block: var(--unimes-space-2) var(--unimes-space-6);
}

.unimes-catalog__panel-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

/* Sem JavaScript os filtros ficam visíveis na página; o título "Filtros" é só
   para leitores de tela. Com JavaScript, no celular, ele encabeça a gaveta. */
.unimes-catalog__panel-title {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
}

.unimes-catalog__panel-close {
  display: inline-flex;
  width: 44px;
  height: 44px;
  align-items: center;
  justify-content: center;
  border: 0;
  border-radius: var(--radius-md);
  background: transparent;
  color: var(--text-strong);
  cursor: pointer;
}

.unimes-catalog__panel-close[hidden] {
  display: none;
}

.unimes-catalog__panel-close:hover {
  background: var(--gray-100);
}

.unimes-catalog-filter {
  min-width: 0;
  padding: var(--unimes-space-2) 0 0;
  margin-top: var(--unimes-space-5);
  border: 0;
  border-top: 1px solid var(--border-subtle);
}

.unimes-catalog-filter:first-child {
  margin-top: 0;
}

/* A legenda fica sobre a borda superior do fieldset, como no protótipo. */
.unimes-catalog-filter__legend {
  padding: 0 var(--unimes-space-2) 0 0;
  color: var(--text-muted);
  font-size: var(--text-xs);
  letter-spacing: var(--tracking-label);
  line-height: var(--leading-snug);
  text-transform: uppercase;
}

.unimes-catalog-filter__option[hidden] {
  display: none;
}

.unimes-catalog-check {
  display: flex;
  min-height: 44px;
  align-items: center;
  gap: var(--unimes-space-3);
  color: var(--text-body);
  font-size: var(--text-sm);
  line-height: var(--leading-snug);
  cursor: pointer;
}

.unimes-catalog-check__input {
  display: grid;
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  margin: 0;
  place-content: center;
  border: 1.5px solid var(--gray-400);
  border-radius: var(--radius-xs);
  appearance: none;
  background: var(--unimes-white);
  cursor: pointer;
}

.unimes-catalog-check__input::before {
  width: 10px;
  height: 10px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") no-repeat center / contain;
  content: '';
  opacity: 0;
}

.unimes-catalog-check__input:checked {
  border-color: var(--unimes-navy);
  background: var(--unimes-navy);
}

.unimes-catalog-check__input:checked::before {
  opacity: 1;
}

.unimes-catalog-check:hover .unimes-catalog-check__input:not(:checked) {
  border-color: var(--unimes-navy);
}

.unimes-catalog__area-note {
  margin-top: var(--unimes-space-6);
  color: var(--text-muted);
  font-size: var(--text-xs);
  line-height: var(--leading-normal);
}

.unimes-catalog__panel-footer {
  display: flex;
  flex-wrap: wrap;
  gap: var(--unimes-space-3);
  margin-top: var(--unimes-space-6);
}

.unimes-catalog__panel-footer [hidden] {
  display: none;
}

.unimes-catalog__backdrop {
  display: none;
}

/* ---------- Gaveta de filtros (com JavaScript, abaixo de 1024px) ---------- */

@media (max-width: 1023.98px) {
  .unimes-catalog.is-enhanced .unimes-catalog__panel {
    position: fixed;
    z-index: 70;
    inset: 0 auto 0 0;
    display: flex;
    width: min(100%, 400px);
    flex-direction: column;
    padding: 0;
    background: var(--unimes-white);
    box-shadow: var(--shadow-xl);
    transform: translateX(-100%);
    visibility: hidden;
    transition: transform var(--dur-base) var(--ease-standard), visibility 0s linear var(--dur-base);
  }

  .unimes-catalog.is-filters-open .unimes-catalog__panel {
    transform: none;
    visibility: visible;
    transition: transform var(--dur-base) var(--ease-standard), visibility 0s;
  }

  .unimes-catalog.is-enhanced .unimes-catalog__panel-header {
    flex: 0 0 auto;
    padding: var(--unimes-space-2) var(--unimes-space-2) var(--unimes-space-2) var(--unimes-space-5);
    border-bottom: 1px solid var(--border-subtle);
  }

  .unimes-catalog.is-enhanced .unimes-catalog__panel-title {
    position: static;
    width: auto;
    height: auto;
    overflow: visible;
    clip: auto;
    color: var(--text-strong);
    font-size: var(--text-lg);
    font-weight: var(--fw-regular);
  }

  .unimes-catalog.is-enhanced .unimes-catalog__panel-body {
    flex: 1 1 auto;
    padding: var(--unimes-space-5);
    overflow-y: auto;
    overscroll-behavior: contain;
  }

  .unimes-catalog.is-enhanced .unimes-catalog__panel-footer {
    flex: 0 0 auto;
    margin: 0;
    padding: var(--unimes-space-4) var(--unimes-space-5);
    border-top: 1px solid var(--border-subtle);
  }

  .unimes-catalog.is-enhanced .unimes-catalog__panel-footer .unimes-button--primary {
    flex: 1 1 auto;
  }

  .unimes-catalog.is-filters-open .unimes-catalog__backdrop {
    position: fixed;
    z-index: 69;
    inset: 0;
    display: block;
    background: rgb(4 0 61 / 0.45);
  }

  body.unimes-catalog-filters-open {
    overflow: hidden;
  }
}

/* ---------- Resultados ---------- */

.unimes-catalog__results {
  grid-area: results;
  min-width: 0;
}

.unimes-catalog__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--unimes-space-3);
}

.unimes-catalog__grid[aria-busy='true'] {
  opacity: 0.55;
  transition: opacity var(--dur-base) ease;
}

.unimes-catalog__empty {
  padding: var(--unimes-space-10) var(--unimes-space-6);
  border: 1px dashed var(--border-default);
  border-radius: var(--radius-lg);
  text-align: center;
}

.unimes-catalog__empty[hidden],
.unimes-catalog__error[hidden] {
  display: none;
}

.unimes-catalog__empty-title {
  color: var(--text-strong);
  font-size: var(--text-lg);
}

.unimes-catalog__empty-text {
  margin: var(--unimes-space-2) 0 var(--unimes-space-4);
  color: var(--text-muted);
  font-size: var(--text-sm);
}

/* Falha ao atualizar a lista: é um erro, o único uso do vermelho na página.
   O texto fica em cinza escuro; o vermelho marca só a borda. */
.unimes-catalog__error {
  margin-top: var(--unimes-space-4);
  padding: var(--unimes-space-3) var(--unimes-space-4);
  border-left: 3px solid var(--state-danger);
  border-radius: var(--radius-sm);
  background: var(--state-danger-soft);
  color: var(--text-body);
  font-size: var(--text-sm);
}

.unimes-catalog__more {
  display: flex;
  justify-content: center;
  margin-top: var(--unimes-space-6);
}

.unimes-catalog__more-button {
  width: 100%;
  min-height: 52px;
  padding-inline: var(--unimes-space-8);
  border-radius: var(--radius-md);
  font-size: var(--text-sm);
}

.unimes-catalog__more-button[hidden] {
  display: none;
}

/* ---------- Card (celular: foto à esquerda e texto; o card inteiro é o link) ---------- */

.unimes-catalog-card {
  position: relative;
  display: grid;
  grid-template-columns: 92px minmax(0, 1fr);
  align-items: center;
  gap: var(--unimes-space-3);
  padding: var(--unimes-space-3);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-lg);
  background: var(--unimes-white);
}

.unimes-catalog-card__media {
  width: 92px;
  height: 92px;
  overflow: hidden;
  border-radius: var(--radius-md);
  background: var(--navy-100);
}

.unimes-catalog-card__image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.unimes-catalog-card__body {
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
}

/* Categoria numa linha e "tipo · duração" na de baixo: juntas passariam de 40
   caracteres, e o card de 235px comporta uns 32 a 12px. Cada item quebra
   inteiro, nunca "4 / semestres". */
.unimes-catalog-card__meta {
  display: flex;
  flex-direction: column;
  gap: 2px;
  color: var(--text-muted);
  font-size: var(--text-xs);
  line-height: var(--leading-snug);
}

.unimes-catalog-card__category {
  color: var(--gray-700);
}

.unimes-catalog-card__detail {
  white-space: nowrap;
}

.unimes-catalog-card__title {
  color: var(--text-strong);
  font-size: 17px;
  font-weight: var(--fw-regular);
  line-height: 1.25;
}

.unimes-catalog-card__link {
  color: inherit;
  text-decoration: none;
}

/* No celular o card inteiro leva ao curso: o link do título cobre o card. */
.unimes-catalog-card__link::after {
  position: absolute;
  inset: 0;
  border-radius: inherit;
  content: '';
}

.unimes-catalog-card__link:focus-visible {
  outline: none;
  box-shadow: none;
}

.unimes-catalog-card:has(.unimes-catalog-card__link:focus-visible) {
  outline: 2px solid var(--unimes-navy);
  outline-offset: 2px;
  box-shadow: var(--shadow-focus);
}

.unimes-catalog-card__link:hover {
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

.unimes-catalog-card__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.unimes-catalog-chip {
  padding: 4px 10px;
  border: 1px solid;
  border-radius: var(--radius-pill);
  font-size: var(--text-xs);
  line-height: 1.2;
}

.unimes-catalog-chip--presencial {
  border-color: var(--navy-200);
  color: var(--unimes-navy);
}

/* EAD em vinho (Vermelho Clássico): desvio consciente do design system, que
   reserva o vinho a peças institucionais. Decisão de 29/09/2026, registrada em
   docs/REDESIGN.md. É o único uso do vinho na interface; texto em 9,6:1. */
.unimes-catalog-chip--ead {
  border-color: var(--wine-200);
  color: var(--wine-700);
}

/* Semipresencial em ciano escuro (6,2:1). O violeta de antes ficaria parecido
   demais com o vinho do EAD em texto de 12px. */
.unimes-catalog-chip--semipresencial {
  border-color: #9FE3F7;
  color: var(--cyan-700);
}

/* "Nota do MEC:" seguido de estrelas. Âmbar: é a leitura universal de nota em
   estrelas e não se confunde com a cor de nenhum chip de modalidade. A nota
   por extenso fica para leitores de tela. */
.unimes-catalog-card__mec {
  display: inline-flex;
  align-items: center;
  gap: var(--unimes-space-2);
  color: var(--gray-600);
  font-size: var(--text-xs);
  line-height: 1;
}

.unimes-catalog-card__stars {
  display: inline-flex;
  gap: 2px;
}

.unimes-catalog-card__stars svg {
  flex: 0 0 auto;
  color: var(--gray-300);
}

.unimes-catalog-card__stars svg.is-filled {
  color: var(--amber-500);
  fill: currentColor;
}

.unimes-catalog-card__mec-label {
  color: var(--gray-700);
}

/* No celular o card inteiro e o link: as acoes ("Ver o curso") so aparecem a
   partir de 640px. O botao de compartilhar e o seletor de modalidade sairam em
   30/09/2026, com um card por oferta. */
.unimes-catalog-card__actions {
  display: none;
}

/* ---------- Chamadas finais ---------- */

.unimes-catalog-cta {
  padding-block: var(--unimes-space-10);
  border-top: 1px solid var(--border-subtle);
}

.unimes-catalog-cta__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--unimes-space-4);
}

/* Teste vocacional: painel navy com o grafismo de trilha em escarlate atrás
   do texto. O escarlate é identidade aqui, não cor de interface. O grafismo
   vem de trail.css (classes .unimes-trail e .unimes-trail--640 no painel). */
.unimes-catalog-cta__vocational {
  display: flex;
  min-width: 0;
  border-radius: var(--radius-lg);
  background: var(--surface-brand);
  color: var(--text-on-brand);
}

.unimes-catalog-cta__content {
  position: relative;
  display: flex;
  max-width: 32.5rem;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--unimes-space-4);
  padding: var(--unimes-space-6) calc(var(--unimes-space-6) + 2.5rem) var(--unimes-space-6) var(--unimes-space-6);
}

/* Selo em ciano vivo com texto navy: ciano nunca é cor de texto sobre fundo claro. */
.unimes-catalog-cta__badge {
  padding: var(--unimes-space-1) var(--unimes-space-3);
  border-radius: var(--radius-pill);
  background: var(--unimes-cyan);
  color: var(--text-strong);
  font-size: var(--text-xs);
  letter-spacing: var(--tracking-label);
  line-height: var(--leading-snug);
  text-transform: uppercase;
}

.unimes-catalog-cta__title {
  color: var(--text-on-brand);
  font-size: clamp(1.625rem, 1.2rem + 1.5vw, 2.375rem);
  font-weight: var(--fw-light);
  letter-spacing: var(--tracking-tight);
  line-height: var(--leading-snug);
}

.unimes-catalog-cta__text {
  color: var(--navy-200);
  font-size: var(--text-base);
  line-height: var(--leading-relaxed);
}

.unimes-catalog-cta__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--unimes-space-3);
  margin-top: var(--unimes-space-2);
}

.unimes-catalog-cta__actions .unimes-button {
  min-height: 44px;
}

/* Ação secundária sobre navy: contorno branco, fundo transparente. */
.unimes-catalog-cta__outline {
  border-color: rgb(255 255 255 / 0.7);
  background: transparent;
  color: var(--unimes-white);
}

.unimes-catalog-cta__outline:hover {
  border-color: var(--unimes-white);
  background: rgb(255 255 255 / 0.08);
  color: var(--unimes-white);
}

.unimes-catalog-cta__vocational :where(a, button):focus-visible {
  outline-color: var(--unimes-white);
}

/* Descontos e bolsas: lilás suave da rampa navy. */
.unimes-catalog-cta__discounts {
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--unimes-space-3);
  padding: var(--unimes-space-6);
  border: 1px solid var(--navy-100);
  border-radius: var(--radius-lg);
  background: var(--surface-brand-soft);
}

.unimes-catalog-cta__icon {
  display: none;
  color: var(--text-strong);
}

.unimes-catalog-cta__discounts .unimes-eyebrow {
  margin-bottom: 0;
}

.unimes-catalog-cta__discounts-title {
  color: var(--text-strong);
  font-size: clamp(1.375rem, 1.1rem + 0.9vw, 1.75rem);
  font-weight: var(--fw-light);
  letter-spacing: var(--tracking-tight);
  line-height: var(--leading-snug);
}

.unimes-catalog-cta__discounts-text {
  color: var(--gray-700);
  font-size: var(--text-sm);
  line-height: var(--leading-relaxed);
}

.unimes-catalog-cta__discounts .unimes-button {
  min-height: 44px;
  margin-top: var(--unimes-space-2);
}

/* ---------- 640px: cards em coluna ---------- */

@media (min-width: 640px) {
  .unimes-catalog__summary-detail {
    display: inline;
  }

  .unimes-catalog__sort-label {
    position: static;
    width: auto;
    height: auto;
    overflow: visible;
    clip: auto;
    color: var(--gray-600);
    font-size: var(--text-sm);
  }

  .unimes-catalog__select {
    min-height: 44px; /* alvo de toque (QA final, 07/10/2026: era 40px) */
  }

  .unimes-catalog__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
  }

  .unimes-catalog-card {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    padding: 0;
    overflow: hidden;
  }

  .unimes-catalog-card__media {
    width: auto;
    height: 128px;
    border-radius: 0;
  }

  .unimes-catalog-card__body {
    flex: 1 1 auto;
    gap: 10px;
    padding: 18px 18px 0;
  }

  .unimes-catalog-card__title {
    font-size: 19px;
  }

  /* Com o botão "Ver o curso" à vista, o título volta a ser só um link. */
  .unimes-catalog-card__link::after {
    content: none;
  }

  .unimes-catalog-card__link:focus-visible {
    outline: 2px solid var(--unimes-navy);
    outline-offset: 2px;
    box-shadow: var(--shadow-focus);
  }

  .unimes-catalog-card:has(.unimes-catalog-card__link:focus-visible) {
    outline: none;
    box-shadow: none;
  }

  .unimes-catalog-card__actions {
    display: flex;
    padding: 18px;
  }

  .unimes-catalog-card__cta {
    display: inline-flex;
    min-height: 44px;
    flex: 1 1 auto;
    padding-inline: var(--unimes-space-4);
  }

  .unimes-catalog__more-button {
    width: auto;
  }

  .unimes-catalog-cta {
    padding-block: var(--unimes-space-16);
  }

  .unimes-catalog-cta__vocational {
    min-height: 19rem;
  }

  .unimes-catalog-cta__content {
    padding: var(--unimes-space-10);
  }

  .unimes-catalog-cta__discounts {
    padding: var(--unimes-space-8);
  }

  .unimes-catalog-cta__icon {
    display: block;
  }
}

/* ---------- 1024px: coluna de filtros ao lado ---------- */

@media (min-width: 1024px) {
  .unimes-catalog-intro {
    padding-block: 44px 40px;
    border-bottom: 1px solid var(--border-subtle);
  }

  .unimes-catalog__layout {
    grid-template-columns: var(--unimes-catalog-side) minmax(0, 1fr);
    grid-template-areas:
      "search toolbar"
      "panel results";
    column-gap: var(--unimes-catalog-gap);
    padding-block: 36px 64px;
  }

  .unimes-catalog-search {
    padding-bottom: 0;
    border-image: none;
  }

  .unimes-catalog-search::after,
  .unimes-catalog__toolbar::after {
    content: none;
  }

  .unimes-catalog-search__input {
    background: var(--gray-050);
    border-color: var(--border-subtle);
  }

  .unimes-catalog__toolbar {
    min-height: 48px;
    padding: 0;
    margin-bottom: 0;
  }

  .unimes-catalog__filters-toggle,
  .unimes-catalog__panel-close {
    display: none;
  }

  .unimes-catalog__panel {
    padding-block: 28px 0;
  }

  .unimes-catalog.is-enhanced .unimes-catalog__panel-footer {
    display: none;
  }

  .unimes-catalog__results {
    padding-top: 20px;
  }

  .unimes-catalog__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .unimes-catalog__more {
    margin-top: var(--unimes-space-8);
  }

  .unimes-catalog-cta__grid {
    grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr);
    gap: 20px;
  }

  .unimes-catalog-cta__grid--single {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (min-width: 1024px) and (pointer: fine) {
  .unimes-catalog-check {
    min-height: 40px;
  }
}

/* ---------- 1280px: quatro colunas ---------- */

@media (min-width: 1280px) {
  .unimes-catalog__grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
