html {
  scroll-behavior: smooth;
}

body {
    overflow-x: hidden !important;
}

.outglocal-portfolio-filters {
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    color: #767676;
    font-family: "Inter Tight", Sans-serif;
    font-weight: 600;
    font-size: 40px;
    line-height: 40px;
    gap: 5px;
}

.outglocal-portfolio-filters .olf-term {
    cursor: pointer;
    color: #767676;
    font-family: "Inter Tight", Sans-serif;
    font-weight: 600;
    font-size: 40px;
    line-height: 40px;
    padding: 0;
    border: 0;
    border-radius: 0;
    border-bottom: 2px solid transparent;
	 transition: color .4s ease, border-color .4s ease;
}

.outglocal-portfolio-filters .olf-term:hover {
    background: none;
    color: #FFFFFF;
	border-bottom: 2px solid #fff;
}

.outglocal-portfolio-filters .olf-term small {
    font-size: 16px;
}

.outglocal-portfolio-filters .olf-term.active {
    cursor: pointer;
    color: #FFFFFF;
    border-bottom: 2px solid #fff;
}

/* GRID 2 COLUNAS (2x2) */
.outglocal-portfolio-list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 60px 20px;
}

.outglocal-portfolio-item {
    width: auto !important;
    flex: unset !important;
	
}

.outglocal-portfolio-item .olf-thumb {
    width:100%;
    height: 480px;
    object-fit: cover;
    display:block;
    /*margin-bottom:8px;*/
}

.outglocal-portfolio-item .olf-title{
	
	margin-top:8px;
}

.outglocal-portfolio-item .olf-title a {
    color: #FFFFFF;
    font-family: "Inter Tight", Sans-serif;
    font-weight: 500;
	
    font-size: 24px;
}

.outglocal-portfolio-item .olf-title a:hover {
    text-decoration: underline;
}

.outglocal-portfolio-item .olf-terms {
    color: #FFFFFF;
    font-family: "Inter Tight", Sans-serif;
    font-weight: 400;
    font-size: 16px;
}

.outglocal-portfolio-loadmore {
    color: #FFFFFF;
    font-family: "Space Mono", Sans-serif;
    font-size: 20px;
    font-weight: 600;
    display: block;
    cursor: pointer;
    text-decoration: underline;
    margin: 100px auto 0 auto;
    border: none;
    padding: 0;
}

.outglocal-portfolio-loadmore:hover {
    text-decoration: none;
    background: none;
}

.portfolio-single-services {
    color: #FFFFFF;
    font-family: "Inter Tight", Sans-serif;
    font-weight: 500;
    font-size: 16px;
    line-height: 100%;
}

.portfolio-single-services a {
    color: #FFFFFF;
    text-decoration: underline !important;
}

.portfolio-single-services a:hover {
    color: #FFFFFF;
    text-decoration: none !important;
}

.portfolio-related-title {
    color: #FFFFFF;
    font-family: "Inter Tight", Sans-serif;
    font-weight: 600;
    font-size: 40px;
    margin-bottom: 25px;
}

.portfolio-related-title a {
    color: #FFFFFF;
    border-bottom: 2px solid #fff !important;
}

.portfolio-related-title a:hover {
    color: #FFFFFF;
    border-bottom: 2px solid transparent !important;
}

.portfolio-related-title small {
    font-size: 13px;
}

.custom-portfolio-gallery img {
   /* height: 100vh !important;*/
    width: 100% !important;
    object-fit: cover !important;
}

/* RESPONSIVO: MOBILE 1 COLUNA */
@media (max-width: 767px) {
    .outglocal-portfolio-list {
        grid-template-columns: 1fr;
    }

    .outglocal-portfolio-item .olf-thumb {
        height: 300px;
    }

    .custom-portfolio-gallery img {
        /*height: 300px !important;*/
    }
}

@media (max-width: 1024px) {
    .outglocal-portfolio-filters .olf-term {
        font-size: 24px;
        line-height: 24px;
    }
    .outglocal-portfolio-filters {
        font-size: 24px;
        line-height: 24px;
    }

    .outglocal-portfolio-list {
        row-gap: 32px;
    }
    .outglocal-portfolio-loadmore {
        margin-top: 60px !important;
    }
    .custom-portfolio-gallery img {
      /*  height: 600px !important;*/
    }
    .portfolio-single-services {
        line-height: 114% !important;
        font-size: 14px !important;
    }
    .portfolio-related-title {
        font-size: 24px !important;
        line-height: 114% !important;
    }
    .custom-content h3 {
        font-size: 20px !important;
    }
}

/* Hover efeito de zoom suave */
.olf-thumb-wrap {
    overflow: hidden;
    display: block;
}

.olf-thumb-wrap img {
    display: block;
    width: 100%;
    height: 480px;
    object-fit: cover;
    transition: transform 2s ease; /* zoom suave */
}

.olf-thumb-wrap:hover img {
    transform: scale(1.2); /* zoom 10% */
}

@keyframes fadein-img {
    from { opacity: 0; }
    to { opacity: 1; }
}

.clientes-hover {
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.5s ease, visibility 0.5s ease;
}

.clientes-trigger:hover .clientes-hover {
    opacity: 1;
    visibility: visible;
}

@media (max-width: 767px) {
    .clientes-hover {
        opacity: 1;
        visibility: visible;
        display: none;
    }
}
@media (max-width: 767px) {
    .olf-thumb-wrap img {
        height: 300px;
    }
}




/* Paginação */
.outglocal-pagination {
    display: flex;
    justify-content: center; /* centraliza */
    gap: 20px; /* espaço entre os números */
    margin-top: 40px;
}
.outglocal-pagination .dots {
	font-size: 22px;
}
.outglocal-pagination a {
    color: #767676; /* cinzento */
    text-decoration: none;
	font-size: 22px;
    font-family: "Space Mono", monospace;
    padding-bottom: 6px;
    border-bottom: 2px solid transparent;
    transition: color .2s ease, border-color .2s ease;
}

.outglocal-pagination a:hover {
    color: #FFFFFF;
    border-bottom: 2px solid #fff;
}

.outglocal-pagination a.active {
    color: #FFFFFF;
    border-bottom: 2px solid #fff;
}


.outglocal-pagination a.active {
    color: #FFFFFF;
    border-bottom: 2px solid #fff;
}


.outglocal-portfolio-item {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.7s ease, transform 0.7s ease;
}

.outglocal-portfolio-item.in-view {
    opacity: 1;
    transform: translateY(0);
}

.outglocal-portfolio-services-inline {
    display: flex;
    justify-content: center; 
    align-items: center;   
    flex-wrap: wrap;
    gap: 12px;
    width: 100%;
    margin: 0 auto;
    padding: 20px 0;
}

.outglocal-portfolio-services-inline .service-item {
    display: inline-flex;
    padding: 8px 14px;
    border-radius: 999px;
    font-size: 16px;
    font-family: "Inter Tight", sans-serif;
    font-weight: 600;
    letter-spacing: -0.02em;
	text-transform: uppercase;
    color: #fff; 
    background: transparent; 
}

@media screen and (max-width: 767px)
	
{
	
	.outglocal-portfolio-services-inline .service-item {
    font-size: 14px;
}
}

/* =========================================
   ESSENCIAL: THUMB COM ASPECT-RATIO + CROP + ZOOM
   (não mexe em textos)
========================================= */

/* o link wrapper do thumb vira o “recorte” */
.olf-thumb-wrap{
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;     /* <-- ajusta aqui se quiseres */
  overflow: hidden;
}

/* a imagem preenche sempre o wrapper */
.olf-thumb-wrap img{
  width: 100% !important;
  height: 100% !important;
  display: block;
  object-fit: cover;
  object-position: center center;
  transform: scale(1);
  transition: transform .6s ease;
  will-change: transform;
}

/* zoom no hover (sem sair do container) */
.olf-thumb-wrap:hover img{
  transform: scale(1.06);
}

/* se tiveres “secondary” noutros sítios, mantém comportamento */
.olf-thumb-wrap img.secondary{
  position: absolute;
  inset: 0;
  opacity: 0;
  z-index: 2;
}
.olf-thumb-wrap:hover img.primary{ opacity: 0; }
.olf-thumb-wrap:hover img.secondary{ opacity: 1; }

/* mobile: mantém 1 coluna como já tens */
@media (max-width: 767px){
  .olf-thumb-wrap{
    aspect-ratio: 4 / 3; /* podes mudar para 1/1 no mobile se quiseres */
  }
}

.outglocal-portfolio-item .olf-title {
  color: #FFFFFF;
  font-family: "Inter Tight", Sans-serif;
  font-weight: 500;
  font-size: 24px;
  margin-top: 8px;
}

.outglocal-portfolio-wrap{
  position: relative; /* obrigatório para o absolute do loader */
}

.outglocal-portfolio-wrap .olf-loader{
  display: none;           /* por defeito: NUNCA aparece */
  position: absolute;
  inset: 0;                /* cobre o wrap todo */
  background: rgba(0,0,0,.15);
  align-items: center;
  justify-content: center;
  z-index: 50;
  pointer-events: none;
}

.outglocal-portfolio-wrap.loading .olf-loader{
  display: flex;           /* só aparece quando há loading */
}

/* =========================
   LOADER (como estava)
   cola NO FIM do CSS
========================= */

.outglocal-portfolio-wrap{
  position: relative !important;
}

.outglocal-portfolio-wrap .olf-loader{
  display: none !important;
  position: absolute !important;
  inset: 0 !important;
  background: rgba(0,0,0,.25) !important;
  align-items: center !important;
  justify-content: center !important;
  z-index: 9999 !important;
  pointer-events: none !important;
}

.outglocal-portfolio-wrap.loading .olf-loader{
  display: flex !important;
}

.outglocal-portfolio-wrap .olf-loader-inner{
  display: inline-flex !important;
  align-items: center !important;
  gap: 12px !important;
  color: #fff !important;                 /* <-- texto branco */
  font-family: "Inter Tight", Sans-serif !important;
  font-weight: 600 !important;
  font-size: 16px !important;
}

.outglocal-portfolio-wrap .olf-loading-text{
  color: #fff !important;                 /* <-- garante branco */
}

.outglocal-portfolio-wrap .olf-spinner{
  width: 34px !important;
  height: 34px !important;
  border: 3px solid rgba(255,255,255,.25) !important;
  border-top-color: rgba(255,255,255,.85) !important;
  border-radius: 50% !important;
  display: inline-block !important;       /* <-- garante que aparece */
  animation: olfspin .8s linear infinite !important;
}

@keyframes olfspin { to { transform: rotate(360deg); } }

/* durante loading, baixa opacidade do conteúdo */
.outglocal-portfolio-wrap.loading .outglocal-portfolio-list,
.outglocal-portfolio-wrap.loading .outglocal-pagination{
  opacity: .35 !important;
  transition: opacity .2s ease;
}

.related-flex{
  display:flex;
  justify-content:space-between;
  align-items:center;
}

@media screen and (max-width:767px){
  .related-flex{
	 align-items:left !important;
    flex-direction:column;
    align-items:flex-start;
    gap:10px;
  }

  .back-link{
	  text-align:left;
    order:-1; /* botão vai para cima */
  }
}
