10:03 PM 8/24/2026/* ==========================================================
   BASE-INSPIRED PROJECT GRID TEST
   Bernard Will — mosaico visual de projetos
   ========================================================== */

.base-test #projects {
  padding-top: 3rem;
  padding-bottom: 8rem;
}

.base-test #projects .mxd-container.grid-container {
  padding-left: 3rem;
  padding-right: 3rem;
}

.base-test #projects .mxd-pinned-projects,
.base-test #projects .container-fluid,
.base-test #projects .row,
.base-test #projects .mxd-pinned-projects__scroll {
  width: 100%;
  max-width: 100%;
}

.base-test #projects .mxd-pinned-projects__scroll {
  flex: 0 0 100%;
  padding: 0 !important;
  margin: 0 !important;
  border-left: 0 !important;
}

.base-test #projects .mxd-pinned-projects__scroll-inner {
  display: grid !important;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  grid-auto-rows: clamp(130px, 12vw, 230px);
  gap: 1px !important;
  padding: 0 !important;
  margin: 0 !important;
  background-color: var(--t-bright);
  border: 1px solid var(--t-bright);
}

.base-test #projects .mxd-project-item {
  position: relative;
  width: 100%;
  height: 100%;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden;
  background: var(--base);
}

.base-test #projects .mxd-project-item:nth-child(1) {
  grid-column: span 5;
  grid-row: span 2;
}

.base-test #projects .mxd-project-item:nth-child(2) {
  grid-column: span 4;
  grid-row: span 2;
}

.base-test #projects .mxd-project-item:nth-child(3) {
  grid-column: span 3;
  grid-row: span 2;
}

.base-test #projects .mxd-project-item:nth-child(4) {
  grid-column: span 7;
  grid-row: span 2;
}

.base-test #projects .mxd-project-item:nth-child(5) {
  grid-column: span 5;
  grid-row: span 2;
}

.base-test #projects .mxd-project-item__media,
.base-test #projects .mxd-project-item__preview {
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
}

.base-test #projects .mxd-project-item__media {
  position: relative;
  display: block;
}

.base-test #projects .mxd-project-item__preview {
  position: absolute;
  inset: 0;
  overflow: hidden;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  transition: transform 500ms cubic-bezier(.22,.61,.36,1);
}

.base-test #projects .mxd-project-item__preview video.project-video,
.base-test #projects .mxd-project-item__preview img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 0 !important;
}

@media (hover: hover) {
  .base-test #projects .mxd-project-item:hover .mxd-project-item__preview {
    transform: scale(1.015);
  }
}

@media only screen and (min-width: 768px) and (max-width: 1199px) {
  .base-test #projects .mxd-container.grid-container {
    padding-left: 2rem;
    padding-right: 2rem;
  }

  .base-test #projects .mxd-pinned-projects__scroll-inner {
    grid-template-columns: repeat(6, minmax(0, 1fr));
    grid-auto-rows: 20vw;
  }

  .base-test #projects .mxd-project-item {
    grid-row: span 1;
  }

  .base-test #projects .mxd-project-item:nth-child(1) { grid-column: span 4; }
  .base-test #projects .mxd-project-item:nth-child(2) { grid-column: span 2; }
  .base-test #projects .mxd-project-item:nth-child(3) { grid-column: span 3; }
  .base-test #projects .mxd-project-item:nth-child(4) { grid-column: span 3; }
  .base-test #projects .mxd-project-item:nth-child(5) { grid-column: span 6; }
}

@media only screen and (max-width: 767px) {
  .base-test #projects {
    padding-top: 2rem;
    padding-bottom: 6rem;
  }

  .base-test #projects .mxd-container.grid-container {
    padding-left: 1rem;
    padding-right: 1rem;
  }

  .base-test #projects .mxd-pinned-projects__scroll-inner {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-auto-rows: 42vw;
  }

  .base-test #projects .mxd-project-item {
    grid-row: span 1;
  }

  .base-test #projects .mxd-project-item:nth-child(1),
  .base-test #projects .mxd-project-item:nth-child(4) {
    grid-column: span 2;
  }

  .base-test #projects .mxd-project-item:nth-child(2),
  .base-test #projects .mxd-project-item:nth-child(3),
  .base-test #projects .mxd-project-item:nth-child(5) {
    grid-column: span 1;
  }
}


/* ==========================================================
   CONTROLES — BOTÕES QUADRADOS / OUTLINE
   ========================================================== */

.base-test .btn-default,
.base-test .btn-small,
.base-test .btn-large,
.base-test .btn-mobile-icon {
  border-radius: 0 !important;
  border-width: 1px !important;
}


/* botão "Manda um alô" + idioma */

.base-test .btn-outline {
  border-radius: 0 !important;
  border-width: 1px !important;
}


/* claro / escuro */

.base-test .mxd-color-switcher {
  width: 4.2rem;
  height: 4.2rem;

  border: 1px solid var(--st-bright);
  border-radius: 0 !important;

  background: transparent;
}

.base-test .mxd-color-switcher::before {
  border-radius: 0 !important;
}


/* menu hamburger */



/* mantém os controles visualmente alinhados */

.base-test .mxd-header__controls {
  gap: 0.8rem;
}


/* ==========================================================
   PROJETOS — ESPAÇAMENTO ENTRE TIJOLOS
   ========================================================== */

.base-test #projects .mxd-pinned-projects__scroll-inner {
  gap: 4px !important;
  background-color: var(--base) !important;
  border: 0 !important;
}



/* ==========================================================
   HEADER / MENU — HAMBÚRGUER FUNCIONAL + ESTÉTICA QUADRADA
   ========================================================== */

/* O próprio link continua sendo a área clicável */
.base-test .mxd-nav__hamburger {
  position: relative;
  z-index: 3;

  width: 4.2rem;
  height: 4.2rem;

  cursor: pointer;
  pointer-events: auto !important;
}

/* Elementos decorativos internos nunca interceptam o clique */
.base-test .mxd-nav__hamburger > * {
  pointer-events: none !important;
}


/* Fundo do botão: quadrado, branco/da base, outline fino */
.base-test .hamburger__base {
  border: 1px solid var(--t-bright) !important;
  border-radius: 0 !important;

  background-color: var(--base) !important;
}


/* Linhas do hambúrguer */
.base-test .hamburger__line {
  width: 46%;
  height: 1px;

  border-radius: 0 !important;

  background-color: var(--t-bright) !important;
}


/* ==========================================================
   MENU ABERTO — PAINEL RETO COM OUTLINE FINO
   ========================================================== */

/* O wrapper mantém apenas a função de posicionamento */
.base-test .mxd-menu__wrapper {
  border-radius: 0 !important;
  overflow: visible !important;
}


/* Remove os arredondamentos antigos do template */
.base-test .mxd-menu__base,
.base-test .mxd-menu__contain {
  border-radius: 0 !important;
}


/* A borda fica no painel real do menu */
.base-test .mxd-menu__contain {
  overflow: hidden !important;

  border: 1px solid #161616 !important;
  border-radius: 0 !important;
}


/* Evita que a camada de fundo crie um segundo contorno */
.base-test .mxd-menu__base {
  border: 0 !important;
}


/* ==========================================================
   MOBILE
   ========================================================== */

@media only screen and (max-width: 767px) {

  .base-test .mxd-nav__hamburger {
    width: 4rem;
    height: 4rem;
  }

}


/* ==========================================================
   MENU ABERTO — TEXTOS PRETOS
   O menu usa fundo claro/oposto, por isso o texto permanece
   #161616 mesmo quando a página está no tema escuro.
   ========================================================== */

.base-test .main-menu__item,
.base-test .main-menu__link,
.base-test .main-menu__link .btn-caption {
  color: #161616 !important;
}

.base-test .main-menu__toggle {
  color: #161616 !important;
}

.base-test .main-menu__toggle svg {
  fill: #161616 !important;
}

.base-test .submenu__item a,
.base-test .submenu__item.active a {
  color: #161616 !important;
}

.base-test .no-touch .submenu__item a:hover {
  color: #666666 !important;
}

.base-test .menu-promo__caption,
.base-test .menu-promo__bio,
.base-test .menu-promo__bio p {
  color: #161616 !important;
}

.base-test .mxd-menu__data,
.base-test .mxd-menu__data p,
.base-test .mxd-menu__data p a,
.base-test .mxd-menu__data i {
  color: #161616 !important;
}


/* ==========================================================
   MENU ABERTO — FOTO RETA COM BORDA FINA
   ========================================================== */

/* O contorno fica no container para não criar borda dupla */
.base-test .mxd-menu__right .menu-promo__video-right,
.base-test .menu-promo__video.menu-promo__video-right {
  border: 1px solid #161616 !important;
  border-radius: 0 !important;

  overflow: hidden !important;
  box-sizing: border-box;
}

/* Remove qualquer arredondamento herdado do template */
.base-test .mxd-menu__right .menu-promo__video-right .menu-video,
.base-test .menu-promo__video-right .menu-video,
.base-test .menu-video {
  border: 0 !important;
  border-radius: 0 !important;

  overflow: hidden !important;
}


/* ==========================================================
   HAMBÚRGUER — COR AUTOMÁTICA CLARO / ESCURO
   ========================================================== */

/*
  --t-bright é #161616 no tema claro e #FFFFFF no escuro.
  --base acompanha o fundo ativo.
*/
.base-test .hamburger__base {
  border-color: var(--t-bright) !important;
  background-color: var(--base) !important;
}

.base-test .hamburger__line {
  background-color: var(--t-bright) !important;
}


/* ==========================================================
   HERO / VÍDEO DE ABERTURA — BORDA RETA E FINA
   ========================================================== */

/* O contorno fica no container do vídeo */
.base-test .mxd-hero-06__video {
  border: 1px solid var(--t-bright) !important;
  border-radius: 0 !important;

  overflow: hidden !important;
  box-sizing: border-box;
}

/* Remove qualquer arredondamento herdado do template */
.base-test .mxd-hero-06__video video,
.base-test .mxd-hero-06__video .video {
  border: 0 !important;
  border-radius: 0 !important;
}

/* A camada de cover acompanha os cantos retos */
.base-test .hero-06-video__cover {
  border-radius: 0 !important;
}


/* ==========================================================
   GRID DE PROJETOS — BORDA FINA EM CADA TIJOLO
   ========================================================== */

/* Borda aplicada no card inteiro para evitar contornos duplicados */
.base-test #projects .mxd-project-item {
  border: 1px solid var(--t-bright) !important;
  box-sizing: border-box;
}

/* A mídia continua sem borda própria */
.base-test #projects .mxd-project-item__media,
.base-test #projects .mxd-project-item__preview {
  border: 0 !important;
  border-radius: 0 !important;
}


/* ==========================================================
   GRID DE PROJETOS — TAGS NO HOVER
   ========================================================== */

/* Container das tags: sobre a imagem, sem interferir no clique */
.base-test #projects .mxd-project-item__tags {
  position: absolute;
  left: 1.2rem;
  bottom: 1.2rem;
  z-index: 5;

  width: calc(100% - 2.4rem);

  display: flex !important;
  flex-wrap: wrap;
  gap: 0.6rem;

  padding: 0 !important;

  opacity: 0;
  visibility: hidden;
  transform: translateY(0.8rem);

  pointer-events: none;

  transition:
    opacity 220ms ease,
    transform 220ms ease,
    visibility 220ms ease;
}


/* Tags quadradas com fundo claro e outline preto fino */
.base-test #projects .mxd-project-item__tags .tag-default,
.base-test #projects .mxd-project-item__tags .tag-permanent {
  height: 2.8rem;
  line-height: 2.7rem;

  padding: 0 0.9rem;

  border: 1px solid #161616 !important;
  border-radius: 0 !important;

  background: #ffffff !important;
  color: #161616 !important;

  font-size: 1.2rem;
  font-weight: 400;
  letter-spacing: 0;
}


/* Desktop: aparecem somente ao passar o mouse sobre o projeto */
@media (hover: hover) and (pointer: fine) {

  .base-test #projects .mxd-project-item:hover .mxd-project-item__tags,
  .base-test #projects .mxd-project-item__media:hover .mxd-project-item__tags {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
  }

}


/* Mobile / touch: continuam ocultas, já que não existe hover real */
@media (hover: none), (pointer: coarse) {

  .base-test #projects .mxd-project-item__tags {
    display: none !important;
  }

}


/* ==========================================================
   ARQUIVO — ALINHAMENTO + PREVIEW QUADRADO
   ========================================================== */


/* ----------------------------------------------------------
   01. ALINHAMENTO COM O MOSAICO DE PROJETOS
   ---------------------------------------------------------- */

/*
  Usa exatamente as mesmas margens laterais do grid de projetos.
  Assim "Arquivo", os títulos e as categorias começam/terminam
  na mesma coordenada visual dos tijolos acima.
*/
.base-test .archive-section > .mxd-container.grid-container {
  padding-left: 3rem !important;
  padding-right: 3rem !important;
}


/* ----------------------------------------------------------
   02. DIVISORES FINOS
   ---------------------------------------------------------- */

.base-test .archive-section .mxd-cpb-list__divider {
  height: 1px !important;
  background-color: var(--t-bright) !important;
}


/* ----------------------------------------------------------
   03. CONTEÚDO DA LISTA
   ---------------------------------------------------------- */

.base-test .archive-section .mxd-cpb-list__item {
  margin-top: -1px;
}

.base-test .archive-section .mxd-cpb-list__item:first-of-type {
  margin-top: 0;
}

.base-test .archive-section .mxd-cpb-list__content {
  padding: 2.2rem 0 !important;
}


/* ----------------------------------------------------------
   04. PREVIEW HOVER — QUADRADO + OUTLINE FINO
   ---------------------------------------------------------- */

@media only screen and (min-width: 1200px) {

  .base-test .archive-section
  .hover-reveal__content.hover-reveal-280x340 {
    width: clamp(240px, 18vw, 320px) !important;
    height: clamp(240px, 18vw, 320px) !important;

    aspect-ratio: 1 / 1;

    border: 1px solid var(--t-bright) !important;
    border-radius: 0 !important;

    overflow: hidden !important;
    box-sizing: border-box;

    background: var(--base);
  }

  .base-test .archive-section .hover-reveal__image {
    width: 100% !important;
    height: 100% !important;

    object-fit: cover;

    border-radius: 0 !important;
  }

}


/* ----------------------------------------------------------
   05. TABLET
   ---------------------------------------------------------- */

@media only screen and (min-width: 768px) and (max-width: 1199px) {

  .base-test .archive-section > .mxd-container.grid-container {
    padding-left: 2rem !important;
    padding-right: 2rem !important;
  }

  .base-test .archive-section .mxd-cpb-list__content {
    padding: 2rem 0 !important;
  }

}


/* ----------------------------------------------------------
   06. MOBILE
   ---------------------------------------------------------- */

@media only screen and (max-width: 767px) {

  .base-test .archive-section > .mxd-container.grid-container {
    padding-left: 1rem !important;
    padding-right: 1rem !important;
  }

  .base-test .archive-section .mxd-cpb-list__content {
    /*
      Mantém nome à esquerda e categoria à direita quando houver
      espaço, mas permite quebra sem estourar a largura.
    */
    gap: 1.5rem;
    padding: 1.8rem 0 !important;
  }

  .base-test .archive-section .mxd-cpb-list__title {
    min-width: 0;
  }

  .base-test .archive-section .mxd-cpb-list__num {
    max-width: 56%;
    text-align: right;
    line-height: 1.25;
  }

}


/* ----------------------------------------------------------
   07. MOBILE ESTREITO
   ---------------------------------------------------------- */

@media only screen and (max-width: 479px) {

  .base-test .archive-section .mxd-cpb-list__content {
    align-items: flex-start;
  }

  .base-test .archive-section .mxd-cpb-list__num {
    max-width: 52%;
    font-size: 1.3rem;
  }

}


/* ==========================================================
   FOOTER — BOTÃO VOLTAR AO TOPO
   Estética quadrada / outline fino
   ========================================================== */

.base-test .btn-to-top {
  width: 4.2rem !important;
  height: 4.2rem !important;

  border: 1px solid var(--t-bright) !important;
  border-radius: 0 !important;

  background: var(--base) !important;
  color: var(--t-bright) !important;

  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;

  mix-blend-mode: normal !important;

  box-sizing: border-box;

  transition:
    background-color 180ms ease,
    color 180ms ease,
    border-color 180ms ease,
    transform 180ms ease !important;
}


/* Ícone */
.base-test .btn-to-top i {
  color: inherit !important;
  font-size: 2rem !important;
}


/* Hover: inversão limpa */
@media (hover: hover) and (pointer: fine) {

  .base-test .no-touch .btn-to-top:hover,
  .base-test .btn-to-top:hover {
    transform: scale(1) !important;

    background: var(--t-bright) !important;
    color: var(--base) !important;
    border-color: var(--t-bright) !important;
  }

}


/* Tablet / Desktop */
@media only screen and (min-width: 768px) {

  .base-test .btn-to-top {
    width: 4.2rem !important;
    height: 4.2rem !important;
  }

}


/* Mobile */
@media only screen and (max-width: 767px) {

  .base-test .btn-to-top {
    width: 4rem !important;
    height: 4rem !important;
  }

  .base-test .btn-to-top i {
    font-size: 1.8rem !important;
  }

}
