/* ========================================================================== 
   Data e local de evento 
   ========================================================================== */
.pattern-date-local p {
	margin: 0px;
    padding: 0px;
}

.pattern-date-local h5 {
	margin: 0px;
    padding: 0px 0px 4px 0px;
}

.pattern-date-local .wp-block-buttons>.wp-block-button.has-custom-width .wp-block-button__link {
	background-color: var(--background-palette-primary) !important;
    color: var(--text-secondary) !important;
    border-radius: var(--border-radious) !important;
}

.pattern-date-local .wp-block-buttons>.wp-block-button.has-custom-width .wp-block-button__link:hover {
	background-color: var(--status-hover) !important;
}

.pattern-date-local {
	margin-bottom: 40px;
}

.pattern-date-local-separador  {
    border-top: none !important;
    border-left: 1px solid var(--line-default) !important;
    height: 100% !important;
    margin: 0px !important;
}

/* ========================================================================== 
   Pattern de CTA
   ========================================================================== */
.pattern-cta h2 {
    padding: 0px;
	color: var(--text-secondary) !important;
}

.pattern-cta h5 {
    padding: 0px 0px 4px 0px;
	color: var(--text-secondary) !important;
}

.pattern-cta h5.wp-block-heading,
.pattern-cta h2.wp-block-heading {
	margin: 0px !important;
}

.pattern-cta, .pattern-cta.has-vivid-cyan-blue-background-color {
	background-color: var(--background-palette-primary) !important;
    border-radius: var(--border-radious) !important;
	padding: 40px !important;
	margin-top: 40px !important;
	margin-bottom: 24px;
	min-height: 200px;
}

.pattern-cta .wp-block-column {
	display: flex;
    flex-direction: column;
    justify-content: center;
}

.pattern-cta .wp-block-buttons>.wp-block-button.has-custom-width .wp-block-button__link {
	background-color: var(--background-palette-secondary) !important;
    color: var(--text-primary) !important;
    border-radius: var(--border-radious) !important;
}

.pattern-cta .wp-block-buttons>.wp-block-button.has-custom-width .wp-block-button__link:hover {
	background-color: var(--status-hover) !important;
	color: var(--text-secondary) !important;
	text-decoration: none !important;
}



/* ==========================================================================
   Card de links e docs 
   ========================================================================== */
.pattern-link, 
.pattern-doc {
    border-top: 1px solid;
    border-color: var(--line-default);
	margin: 0px;
    padding: 0px;
    gap: 0px;
}

.pattern-link-button a,  
.pattern-doc a {
	padding: 16px;
	text-align: left;
}

.pattern-link p,
.pattern-doc p {
	margin: 0px;
    padding: 0px;
}

.pattern-link-doc-icon {
	align-items: center;
    display: flex;
	fill: var(--text-primary);
	}

/* Para ter o link na card toda */
/* 1. Define o ponto de referência */
:is(.pattern-link, .pattern-doc).card {
    position: relative;
}

/* 2. Expande o clique a partir de QUALQUER <a> com href dentro das cards */
:is(.pattern-link, .pattern-doc).card a[href]::after {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 1;
}

/* 3. Anula o hover global se a card NÃO tiver um link <a> com href */
:is(.pattern-link, .pattern-doc).card:not(:has(a[href])):hover,
:is(.pattern-link, .pattern-doc).card:not(:has(a[href])):hover :is(h3, h4, h5, h6, p, a, span, .wp-block-button__link),
:is(.pattern-link, .pattern-doc).card:not(:has(a[href])):hover svg path {
    cursor: default !important;
    text-decoration: none !important;
    color: inherit !important;
    fill: inherit !important;
}



/* ==========================================================================
   Card com imagem, texto e link 
   ========================================================================== */
.pattern-card-img {
	border-radius: var(--border-radious) !important;
}

.pattern-card p {
    padding: 0px;
	margin-bottom: 24px !important;
}

.pattern-card a {
	text-decoration: none;
}

/* -- Para ter link na card toda -- */
/* 1. Torna a pattern-card o ponto de referência */
.pattern-card.card {
    position: relative;
}

/* 2. Expande o clique para a card inteira (APENAS quando tem link) */
.pattern-card.card p.pattern-card-text a[href]::after {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 1;
}

/* 3. Desativa o hover global do .card especificamente para a .pattern-card QUANDO NÃO TEM LINK */
.pattern-card.card:not(:has(a[href])):hover,
.pattern-card.card:not(:has(a[href])):hover p, 
.pattern-card.card:not(:has(a[href])):hover a {
    cursor: default !important;
    text-decoration: none !important;
    color: inherit !important;
    fill: inherit !important;
}

/* -- amplia a imagem no hover -- */
/* Limita o zoom ao espaço da figura */
.pattern-card-img {
  overflow: hidden !important;
  margin: 0; /* Evita margens indesejadas do Gutenberg */
}

/* Prepara a imagem para a animação */
.pattern-card-img img {
  transition: transform 0.4s ease-in-out !important;
}

/* Aplica o efeito de ampliação ao passar o rato no card */
.pattern-card.card:has(a[href]):hover .pattern-card-img img {
  transform: scale(1.08);
}



/* ========================================================================== 
   Grelhas 
   ========================================================================== */
.pattern-greed {
	gap: 16px;
	margin-bottom: -8px;
}



/* ========================================================================== 
   Videos 
   ========================================================================== */
.pattern-video, .pattern-video video, video {
	border-radius: var(--border-radious) !important;
	overflow: hidden !important;
}



/* ==========================================================================
   Contactos 
   ========================================================================== */
.pattern-contacts {
    border-top: 1px solid;
    border-color: var(--line-default);
	margin: 0px;
    padding: 0px;
    gap: 0px;
}

.pattern-contacts a {
	padding: 16px;
	text-align: left;
	color: var(--text-primary);
}

.pattern-contacts p {
	margin: 0px;
    padding: 0px;
	color: var(--text-primary);
}

.pattern-contacts-icon {
	align-items: center;
    display: flex;
	fill: var(--text-primary);
	}

/* Para ter o link na card toda */
/* 1. Define o ponto de referência */
:is(.pattern-contacts).card {
    position: relative;
}

/* 2. Expande o clique a partir de QUALQUER <a> com href dentro das cards */
:is(.pattern-contacts).card a[href]::after {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 1;
}

/* 3. Anula o hover global se a card NÃO tiver um link <a> com href */
:is(.pattern-contacts).card:not(:has(a[href])):hover,
:is(.pattern-contacts).card:not(:has(a[href])):hover :is(h3, h4, h5, h6, p, a, span, .wp-block-button__link),
:is(.pattern-contacts).card:not(:has(a[href])):hover svg path {
    cursor: default !important;
    text-decoration: none !important;
    color: inherit !important;
    fill: inherit !important;
}



/* ==========================================================================
   Horario
   ========================================================================== */
.pattern-tabela {
    border-top: 1px solid;
    border-color: var(--line-default);
	margin: 0px;
    padding-top: 16px;
	padding-bottom: 16px;
    gap: 16px;
}


.pattern-tabela a {
	text-align: left;
	color: var(--text-primary);
}

.pattern-tabela p {
	margin: 0px;
    padding: 0px;
	color: var(--text-primary);
}

/* Para ter o link na card toda */
/* 1. Define o ponto de referência */
:is(.pattern-tabela).card {
    position: relative;
}

/* 2. Expande o clique a partir de QUALQUER <a> com href dentro das cards */
:is(.pattern-tabela).card a[href]::after {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 1;
}

/* 3. Anula o hover global se a card NÃO tiver um link <a> com href */
:is(.pattern-tabela).card:not(:has(a[href])):hover,
:is(.pattern-tabela).card:not(:has(a[href])):hover :is(h3, h4, h5, h6, p, a, span, .wp-block-button__link),
:is(.pattern-tabelas).card:not(:has(a[href])):hover svg path {
    cursor: default !important;
    text-decoration: none !important;
    color: inherit !important;
    fill: inherit !important;
}



/* ==========================================================================
   GALERIA
   ========================================================================== */
/* Container Principal (Desktop: 4 colunas) */
.pattern-galery,
.pattern-galery .wp-block-gallery {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 16px !important;
    width: 100% !important;
}

.pattern-galery figure {
    position: relative !important;
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
    width: 100% !important;
    border-radius: var(--border-radious) !important;
    overflow: hidden !important;
}

/* Estilo e Zoom-in das Imagens */
.pattern-galery figure img {
    width: 100% !important;
    height: 100% !important;
    aspect-ratio: 3/2 !important;
    object-fit: cover !important;
    display: block !important;
    cursor: zoom-in !important;
    transition: transform 0.4s cubic-bezier(0.25, 1, 0.5, 1) !important;
}

.pattern-galery figure:hover img {
    transform: scale(1.05) !important;
}

/* Camada Escura (Overlay contador +X imagens) */
.pattern-galery .gallery-more-overlay {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    background: var(--background-popups);
    display: none !important; /* Gerido por JS e Media Queries */
    justify-content: center !important;
    align-items: center !important;
    color: #ffffff !important;
    font-size: 20px !important;
    font-weight: bold !important;
    cursor: pointer !important;
    z-index: 10 !important;
    transition: background 0.3s ease !important;
}

/* --- RESPONSIVIDADE EXCLUSIVA DA GALERIA --- */

/* MOBILE (< 768px): 1 coluna, 1 imagem visível */
@media (max-width: 767px) {
    .pattern-galery,
    .pattern-galery .wp-block-gallery {
        grid-template-columns: 1fr !important;
    }

    /* Oculta da 2ª imagem em diante */
    .pattern-galery figure:nth-child(n+2) {
        display: none !important;
    }

    /* Mostra o overlay Mobile na 1ª imagem */
    .pattern-galery.has-more-mobile figure:first-child .overlay-mobile {
        display: flex !important;
    }
}

/* DESKTOP (>= 768px): 4 colunas, 4 imagens visíveis */
@media (min-width: 768px) {
    /* Mostra até 4 imagens */
    .pattern-galery figure:nth-child(-n+4) {
        display: block !important;
    }

    /* Oculta da 54ª imagem em diante */
    .pattern-galery figure:nth-child(n+5) {
        display: none !important;
    }

    /* Esconde obrigatoriamente o overlay mobile no computador */
    .pattern-galery .overlay-mobile {
        display: none !important;
    }

    /* Mostra o overlay Desktop na 4ª imagem */
    .pattern-galery.has-more-desktop figure:nth-child(4) .overlay-desktop {
        display: flex !important;
    }
}


/* ==========================================================================
   MODAL LIGHTBOX
   ========================================================================== */

.gallery-lightbox {
    display: none;
    position: fixed;
    z-index: 99999;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background: var(--background-popups);
    justify-content: center;
    align-items: center;
}

.gallery-lightbox.active {
    display: flex;
}

.lightbox-content {
    position: relative;
    max-width: 90%;
    max-height: 90vh;
    display: flex;
    justify-content: center;
    align-items: center;
}

.lightbox-content img {
    max-width: 80%;
    max-height: 85vh;
    object-fit: contain !important;
    border-radius: 6px;
}

.lightbox-btn {
    position: absolute;
    background: var(--background-palette-primary);
    border: none;
    width: 44px;
    height: 44px;
    border-radius: var(--border-radious);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.2s, transform 0.2s;
    user-select: none;
    z-index: 100000;
}

.lightbox-btn:hover {
    background: var(--status-hover);
    transform: scale(1.05);
}

.lightbox-btn svg {
    width: 24px;
    height: 24px;
    display: block;
}

.lightbox-btn path {
    fill: var(--text-secondary);
}

.lightbox-prev { left: 0px; }
.lightbox-next { right: 0px; }

.lightbox-next svg {
    transform: rotate(180deg);
}

.lightbox-close {
    top: 0px;
    right: 0;
    font-size: 24px;
    line-height: 1;
    color: var(--text-secondary);
    width: 44px;
    height: 44px;
}

@media (max-width: 767px) {
    .lightbox-prev { left: -10px; }
    .lightbox-next { right: -10px; }
    .lightbox-close { top: -24px; right: -10px; }
}


/* ==========================================================================
   Tabela comparativa
   ========================================================================== */
.pattern-comparation {
	gap: 0px !important;
	border-radius: var(--border-radious) !important;
    border: solid 1px var(--line-destaque) !important;
}

.pattern-comparation-clm01,
.pattern-comparation-clm02 {
	padding: 40px !important;
}

.pattern-comparation-clm01 {
	border-right: solid 1px var(--line-destaque) !important;
}

.pattern-comparation h1,
.pattern-comparation h2, 
.pattern-comparation h3,
.pattern-comparation h4,
.pattern-comparation h5,
.pattern-comparation h6 {
	padding-top: 8px !important;
}

/* Button */
.pattern-comparation .wp-block-button .wp-block-button__link,
.pattern-comparation .wp-block-button a.wp-element-button {
	background-color: var(--background-palette-primary) !important;
    color: var(--text-secondary) !important;
    border-radius: var(--border-radious) !important;
	margin-top: 32px !important;
}

.pattern-comparation .wp-block-button .wp-block-button__link:hover,
.pattern-comparation .wp-block-button a.wp-element-button:hover {
	background-color: var(--status-hover) !important;
	color: var(--text-secondary) !important;
	text-decoration: none !important;
}


@media (max-width: 781px) {
    .pattern-comparation-clm01 {
		border-bottom: solid 1px var(--line-destaque) !important;
		border-right: none !important;
    }
	.pattern-comparation-clm01,
	.pattern-comparation-clm02 {
		padding: 24px !important;
	}
}


/* ==========================================================================
   Galeria de logotipos
   ========================================================================== */

/* Contentor principal da galeria */
figure.wp-block-gallery.pattern-logotipos {
  display: flex !important;
  flex-wrap: nowrap !important;
  overflow-x: auto !important;
  scroll-behavior: smooth;
  /* scroll-snap-type removido para não bloquear o arrasto manual */
  gap: 80px !important;
  padding: 0px 0px 40px 0px;
  align-items: center;
  -webkit-overflow-scrolling: touch;

  /* Estilos de interação de arrasto */
  cursor: grab;
  user-select: none; /* Evita selecionar imagens ao arrastar */
  -webkit-user-drag: none;

  /* Esconde a barra de scroll padrão */
  scrollbar-width: none; /* Firefox */
  -ms-overflow-style: none; /* IE/Edge */
	
  width: 100vw;
  margin-left: -10vw !important;
}

figure.wp-block-gallery.pattern-logotipos::-webkit-scrollbar {
  display: none; /* Chrome, Safari, Opera */
}

/* Quando está a ser arrastado pelo JavaScript (adicionar classe .active via JS) */
figure.wp-block-gallery.pattern-logotipos.active {
  cursor: grabbing;
  scroll-behavior: auto !important; /* Desativa a suavidade para resposta imediata ao rato */
}

/* Cada item (imagem) dentro do slide */
figure.wp-block-gallery.pattern-logotipos > figure.wp-block-image {
  flex: 0 0 auto !important;
  width: auto !important;
  margin: 0 !important;
  display: flex;
  justify-content: center;
  align-items: center;
}

/* Previne o drag nativo do browser e ajusta as imagens */
figure.wp-block-gallery.pattern-logotipos img {
  object-fit: contain !important;
  opacity: 1;
  transition: filter 0.3s ease, opacity 0.3s ease;
  pointer-events: none; /* Evita o "arrastar e largar" de ficheiros do browser */
}
.wp-block-gallery.has-nested-images figure.wp-block-image img  {
  max-width: 200px !important;
  max-height: 100px !important;
}

figure.wp-block-gallery.pattern-logotipos figure.wp-block-image > a:hover img {
  filter: grayscale(100%) !important;
  opacity: 0.7 !important;
}

@media (max-width: 781px) {
/* Contentor principal da galeria */
figure.wp-block-gallery.pattern-logotipos {
  gap: 56px !important;
}
	
.wp-block-gallery.has-nested-images figure.wp-block-image img  {
  max-width: 150px !important;
  max-height: 80px !important;
}
}

