/*core globals css*/
.site-content {
    width: 100%;
}
.core-container {
    max-width: var(--core-container-max);
    margin: auto;
}
/*core globals css - fim*/

/* ========================================
   Card Hover Effects - Reutilizáveis
   ======================================== */

/* 
 * Classes de hover para cards de conteúdo
 * Podem ser aplicadas a qualquer card/link de conteúdo
 * Configurável via ACF Options (acf-options-adsi-core)
 */

/* Hover Style 1: Subtle Opacity */
.card-hover-opacity {
    transition: opacity 0.3s ease;
}

.card-hover-opacity:hover {
    opacity: 0.85;
}

.card-hover-opacity:focus {
    outline: 2px solid #2271b1;
    outline-offset: 2px;
}

/* Hover Style 2: Shadow Lift */
.card-hover-shadow {
    transition: box-shadow 0.3s ease;
}

.card-hover-shadow:hover {
    box-shadow: 0 8px 16px rgba(0, 0, 0, 0.15);
}

.card-hover-shadow:focus {
    outline: 2px solid #2271b1;
    outline-offset: 2px;
}

/* Hover Style 3: Scale & Shadow */
.card-hover-scale {
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.card-hover-scale:hover {
    transform: scale(1.02);
    box-shadow: 0 6px 12px rgba(0, 0, 0, 0.12);
}

.card-hover-scale:focus {
    outline: 2px solid #2271b1;
    outline-offset: 2px;
}

/* Image zoom effect (apenas para shadow e scale) */
.card-hover-shadow:hover img,
.card-hover-scale:hover img {
    transform: scale(1.05);
}

.card-hover-shadow img,
.card-hover-scale img {
    transition: transform 0.4s ease;
}

/* Hover Style 4: Filter Grayscale */
.card-hover-filter {
    transition: opacity 0.3s ease;
}

.card-hover-filter img {
    transition: filter 0.4s ease;
    filter: grayscale(0%);
}

.card-hover-filter:hover img {
    filter: grayscale(100%);
}

.card-hover-filter:focus {
    outline: 2px solid #2271b1;
    outline-offset: 2px;
}

/* ========================================
   Card Hover Effects - Fim
   ======================================== */

/* ========================================
   CoreCards - Global Card Layouts
   Todos os cards usam um único <a> (acessibilidade WCAG 2.1)
   ======================================== */

/* ---- Base ---- */
.core-card {
    overflow: hidden;
    border-radius: 0.5rem;
    background: #fff;
}
.core-card [class*="-card__link"] {
    display: flex;
    flex-direction: column;
    height: 100%;
    color: inherit;
    text-decoration: none;
}
.core-card [class*="-card__link"]:focus-visible {
    outline: 2px solid #2271b1;
    outline-offset: 2px;
}
.core-card img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* ---- Layout A: Material (imagem topo, conteúdo baixo) ---- */
[class*="-card--layout-a"] [class*="-card__media"] {
    position: relative;
    overflow: hidden;
}
[class*="-card--layout-a"] [class*="-card__image-overlay"] {
    position: absolute;
    top: 0.75rem;
    left: 0.75rem;
    z-index: 10;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    padding: 0.5rem 0.65rem;
    background: rgba(0, 0, 0, 0.75);
    border-radius: 0.375rem;
    backdrop-filter: blur(4px);
}
[class*="-card--layout-a"] [class*="-card__overlay-item"] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.8em;
    line-height: 1.3;
    color: #fff;
}
[class*="-card--layout-a"] .rota-overlay-badge {
    display: inline-block;
    padding: 0.2em 0.5em;
    font-size: 0.75em;
    font-weight: 600;
    border-radius: 3px;
    background: rgba(255, 255, 255, 0.25);
    color: #fff;
    text-transform: uppercase;
    letter-spacing: 0.025em;
}
[class*="-card--layout-a"] .rota-overlay-icon {
    display: inline-flex;
    align-items: center;
    width: 1em;
    height: 1em;
    opacity: 0.9;
}
[class*="-card--layout-a"] .rota-overlay-icon::before {
    content: '•';
    font-size: 1.2em;
}
[class*="-card--layout-a"] .rota-overlay-icon--distance::before {
    content: '↔';
}
[class*="-card--layout-a"] .rota-overlay-icon--type::before {
    content: '⚐';
}
[class*="-card--layout-a"] .rota-overlay-value {
    font-weight: 500;
}
[class*="-card--layout-a"] [class*="-card__body"] {
    padding: 1rem 1.25rem;
    flex: 1;
    display: flex;
    flex-direction: column;
}

/* ---- Layout B: Horizontal (imagem esquerda, conteúdo direita) ---- */
[class*="-card--layout-b"] [class*="-card__link"] {
    flex-direction: row;
}
[class*="-card--layout-b"] [class*="-card__inner"] {
    display: grid;
    grid-template-columns: 1fr 2fr;
    width: 100%;
}
[class*="-card--layout-b"] [class*="-card__media"] {
    overflow: hidden;
}
[class*="-card--layout-b"] [class*="-card__body"] {
    padding: 1rem 1.25rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

/* ---- Layout C: Compacto (sem imagem) ---- */
[class*="-card--layout-c"] [class*="-card__body"] {
    padding: 1rem 1.25rem;
}

/* ---- Layout D: Overlay (imagem fundo + texto sobreposto) ---- */
[class*="-card--layout-d"] {
    background: transparent;
}
[class*="-card--layout-d"] [class*="-card__link"] {
    color: #fff;
}
[class*="-card--layout-d"] [class*="-card__inner"] {
    position: relative;
    overflow: hidden;
    border-radius: 0.5rem;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    background-color: #333;
    display: flex;
    align-items: flex-end;
    min-height: 280px;
}
[class*="-card--layout-d"] [class*="-card__overlay"] {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(0,0,0,0.75) 0%, rgba(0,0,0,0.1) 60%, transparent 100%);
    z-index: 1;
    transition: background 0.3s ease;
}
[class*="-card--layout-d"]:hover [class*="-card__overlay"] {
    background: linear-gradient(to top, rgba(0,0,0,0.85) 0%, rgba(0,0,0,0.2) 60%, transparent 100%);
}
[class*="-card--layout-d"] [class*="-card__content"] {
    position: relative;
    z-index: 2;
    padding: 1.25rem;
    width: 100%;
    color: #fff;
}
[class*="-card--layout-d"] [class*="-card__title"] {
    color: #fff;
}
[class*="-card--layout-d"] [class*="-card__date"] {
    color: rgba(255,255,255,0.9);
}
[class*="-card--layout-d"] [class*="-card__taxonomy-badge"] {
    background: rgba(255,255,255,0.2);
    color: #fff;
}
[class*="-card--layout-d"] [class*="-card__custom-meta"] {
    color: rgba(255,255,255,0.9);
}

/* ---- Layout E: Inline (linha horizontal para listas) ---- */
[class*="-card--layout-e"] {
    background: var(--adsi-docs-recent-card-bg);
    border: var(--adsi-border-width, 1px) solid var(--adsi-docs-recent-card-border);
    border-radius: var(--adsi-docs-recent-card-radius);
    padding: 0;
    overflow: hidden;
}

/* Spacing between inline cards in list context */
.doc-recent__list [class*="-card--layout-e"] {
    flex: 1;
}

[class*="-card--layout-e"] [class*="-card__link"] {
    display: flex;
    justify-content: center;
    height: 100%;
    padding: var(--adsi-docs-recent-card-padding);
}

[class*="-card--layout-e"] [class*="-card__inline-content"] {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 1rem;
    align-items: center;
}

[class*="-card--layout-e"] [class*="-card__text-content"] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    min-width: 0;
}

[class*="-card--layout-e"] [class*="-card__meta-row"] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

[class*="-card--layout-e"] [class*="-card__date"] {
    font-size: var(--adsi-docs-date-size);
    color: var(--adsi-docs-date-color);
    font-weight: var(--adsi-docs-date-weight);
    margin: 0;
}

[class*="-card--layout-e"] [class*="-card__taxonomy"] {
    font-size: var(--adsi-docs-date-size);
    color: var(--adsi-docs-date-color);
    font-weight: var(--adsi-docs-date-weight);
    margin: 0;
    padding-left: 0.5rem;
    position: relative;
}

[class*="-card--layout-e"] [class*="-card__taxonomy"]::before {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    height: 0.75em;
    width: 1px;
    background: var(--adsi-docs-date-color, #999);
}

[class*="-card--layout-e"] [class*="-card__title"] {
    font-size: var(--adsi-docs-title-size);
    font-weight: var(--adsi-docs-title-weight);
    margin: 0;
    color: var(--adsi-docs-title-color) !important;
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box !important;
    -webkit-line-clamp: var(--adsi-docs-title-line-clamp, 2);
    line-clamp: var(--adsi-docs-title-line-clamp, 2);
    -webkit-box-orient: vertical;
    line-height: 1.4;
}

[class*="-card--layout-e"] [class*="-card__link"]:hover [class*="-card__title"],
[class*="-card--layout-e"] [class*="-card__link"]:focus [class*="-card__title"] {
    color: var(--adsi-docs-title-color-hover);
}

[class*="-card--layout-e"] [class*="-card__icon"] {
    font-size: var(--adsi-docs-icon-size);
    color: var(--adsi-docs-icon-color);
    display: flex;
    align-items: center;
    justify-content: center;
    width: var(--adsi-docs-icon-bg-size);
    height: var(--adsi-docs-icon-bg-size);
    flex-shrink: 0;
}

/* Responsive - Mobile */
@media (max-width: 600px) {
    [class*="-card--layout-e"] [class*="-card__inline-content"] {
        gap: 0.75rem;
    }
    
    [class*="-card--layout-e"] [class*="-card__date"] {
        font-size: 0.75rem;
    }
    
    [class*="-card--layout-e"] [class*="-card__title"] {
        font-size: 0.9375rem;
    }
    
    [class*="-card--layout-e"] [class*="-card__icon"] {
        font-size: 1.125rem;
        width: 28px;
        height: 28px;
    }
}

/* ---- Elementos Comuns ---- */
[class*="-card__title"] {
    margin: 0 0 0.25rem;
    line-height: 1.3;
}
[class*="-card__date"] {
    display: block;
    font-size: 0.85em;
    color: #595959;
    margin-bottom: 0.25rem;
}
[class*="-card__excerpt"] {
    margin: 0.25rem 0 0.75rem;
    line-height: 1.5;
    color: #555;
    flex: 1;
}
[class*="-card__taxonomies"] {
    margin-top: 0.35rem;
}
[class*="-card__taxonomy-badge"] {
    display: inline-block;
    padding: 0.15em 0.6em;
    font-size: 0.75em;
    font-weight: 600;
    border-radius: 3px;
    background: #e8e8e8;
    color: #333;
    text-transform: uppercase;
    letter-spacing: 0.025em;
}
[class*="-card__custom-meta"] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    font-size: 0.85em;
    color: #555;
    margin-top: 0.5rem;
}
[class*="-card__meta-item"] {
    display: flex;
    align-items: center;
    gap: 0.25rem;
}

/* ---- Aspect Ratios ---- */
.ar-101 { aspect-ratio: 1 / 1; }
.ar-169 { aspect-ratio: 16 / 9; }
.ar-43  { aspect-ratio: 4 / 3; }
.ar-32  { aspect-ratio: 3 / 2; }
.ar-219 { aspect-ratio: 21 / 9; }

/* ---- Responsivo ---- */
@media (max-width: 768px) {
    [class*="-card--layout-b"] [class*="-card__inner"] {
        grid-template-columns: 1fr;
    }
    [class*="-card--layout-d"] [class*="-card__inner"] {
        min-height: 200px;
    }
}

/* ========================================
   CoreCards - Fim
   ======================================== */

/* ========================================
   Cards Grid - Global Layout System
   ======================================== */

/* Base grid - auto-fill responsivo */
[class*="-cards-grid"] {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: var(--core-gap);
  align-items: stretch;
}

/* Fixed column count modifiers */
[class*="-cards-grid"].cols-2 { grid-template-columns: repeat(2, 1fr); }
[class*="-cards-grid"].cols-3 { grid-template-columns: repeat(3, 1fr); }
[class*="-cards-grid"].cols-4 { grid-template-columns: repeat(4, 1fr); }
[class*="-cards-grid"].cols-5 { grid-template-columns: repeat(5, 1fr); }

/* Responsive: Tablet (2 colunas) */
@media (max-width: 768px) {
  [class*="-cards-grid"].cols-2,
  [class*="-cards-grid"].cols-3,
  [class*="-cards-grid"].cols-4,
  [class*="-cards-grid"].cols-5 { 
    grid-template-columns: repeat(2, 1fr); 
  }
}

/* Responsive: Mobile (1 coluna) */
@media (max-width: 480px) {
  [class*="-cards-grid"].cols-2,
  [class*="-cards-grid"].cols-3,
  [class*="-cards-grid"].cols-4,
  [class*="-cards-grid"].cols-5 { 
    grid-template-columns: 1fr; 
  }
  [class*="-cards-grid"] { 
    gap: var(--adsi-spacing-md); /* 24px fallback for mobile */
  }
}

/* ========================================
   Cards Grid - Fim
   ======================================== */

a {
    font-weight: bold 
}
/*video shortcodes*/

/* Remove padding e limitações do GLightbox no conteúdo inline de vídeos locais */

.gslide-inline .glightbox-inline-video {
    padding: 0;
}

.gslide-inline .glightbox-inline-video video {
    display: block;
    width: 100%;
    height: auto;
    max-width: 100%;
}
.glightbox-video-btn {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 999;
}
/*video shortcodes - fim*/


/*fade up*/
/* estados iniciais */
.fade-up {
  opacity:    0;
  transform:  translateY(20px);
/* duração 0.8s + delay 0.2s */
  transition: opacity 1s ease-out 0.3s,
              transform 1s ease-out 0.3s;
}
/* quando entrar no viewport */
.fade-up.in-view {
  opacity:   1;
  transform: translateY(0);
}

/*fade up - end*/

/*core titles*/
.core-title {
    margin-bottom: 20px
}
.core-h1-title {
    font-size: 2.2em;
}
.core-h2-title {
    font-size: 1.9em;
}
.core-h3-title {
    font-size: 1.6em;
}
.core-h4-title {
    font-size: 1.3em;
}
/*core titles - fim*/

/*core description*/
.core-description {
    margin-bottom: 20px;
}
/*core description - fim*/

/*core simple calendar*/
.calendario-simples { text-align: center; max-width: 100%; margin: 0 auto 20px; }
.calendario-simples .calendario-simples-header { padding: 10px; display: flex; gap: 10px; justify-content: space-between; align-items: center; margin-bottom: 10px; background: #f4f4f4; }
.calendario-simples .calendario-controls { width: 100%; }
.calendario-simples .calendario-controls select { margin-bottom: 0 !important; height: 44px}
.calendario-simples .calendario-simples-header h2 { margin: 0 }
.calendario-simples .calendario-simples-header button { padding: 12px; min-width: 50px; }
.calendario-simples table { width: 100%; min-height: 300px; border-collapse: collapse; }
.calendario-simples th, .calendario-simples td { padding: 10px; border: 1px solid #ccc; width: 14.28%; text-align: center; vertical-align: middle }
.calendario-simples .today { background-color: #ffecb3; }
.calendario-simples .especial { background-color: #c8e6c9; font-weight: bold; cursor: default; }
.calendario-simples .legenda { margin-top: 10px; font-size: 0.9em; text-align: left; }
.calendario-simples .legenda span { display: inline-block; padding: 4px 8px; margin-right: 10px; border-radius: 4px; }
.calendario-simples .legenda .hoje { background-color: #ffecb3; }
.calendario-simples .legenda .evento { background-color: #c8e6c9; }
/* Lista de eventos do mês */
#listaEventos { margin-top: 20px; text-align: left; }
#listaEventos h4 { margin-bottom: 8px; }
#listaEventos .evento-item { margin-bottom: 10px; padding: 20px 30px; background: #f4f4f4; }
#listaEventos .evento-item a {display: block; padding-right: 20px; position: relative}
/* Pseudo-elemento com o ícone de seta à direita */
#listaEventos .evento-item a::after {
  content: "\f061";                      /* código Unicode da seta direita em FontAwesome */
  font-family: "Font Awesome 6 Free";    /* nome da família (confere na tua versão) */
  font-weight: 900;                      /* solid icons usam peso 900 */
  position: absolute;
  top: 50%;
  right: 0;
  transform: translateY(-50%);           /* centra verticalmente */
  font-size: 0.9em;                      /* ajusta ao teu gosto */
  color: inherit;                        /* herda cor do link */
}
#listaEventos .evento-item h3 {
    margin-bottom: 0;
}
/*core simple calendar - fim*/

/*youtube full with*/


.youtube-full-with {
  position: relative;
  width: 100%;
  /* Proporção 16:9 = 9/16 ≈ 56.25% */
  padding-bottom: 56.25%;
  height: 0;
  overflow: hidden;
}

.youtube-full-with iframe,
.youtube-full-with object,
.youtube-full-with embed {
  position: absolute;
  top:   0;
  left:  0;
  width: 100%;
  height: 100%;
  border: 0;
}

/*youtube full with - fim*/

/*loop generico*/

/* item base */
.loop-one-item {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-areas: "thumb content";
    gap: 50px;
    margin-bottom: 50px;
    border-radius: 0.5rem;
    align-items: center;
}

/* inverte para itens pares */
.loop-one-item:nth-child(even) {
    grid-template-areas: "content thumb";
}

/* figura (sempre 4:3) */
.loop-one-figure {
    grid-area: thumb;
    width: 100%;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    border-radius: 0.5rem;
}
.loop-one-figure img.loop-one-thumb {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* conteúdo textual */
.loop-one-entry {
    grid-area: content;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 0 50px;
}
.loop-one-header {
    margin-bottom: 0.75rem;
}

.loop-one-excerpt {
    margin-bottom: 1rem;
    color: #555;
    line-height: 1.5;
}
.loop-one-button {
    align-self: start;
    padding: 0.6rem 1.2rem;
    text-decoration: none;
    border-radius: 0.3rem;
    font-weight: bold;
    transition: background-color 0.3s ease;
    background: #f4f4f4
}
.loop-one-button:hover {
    background-color: #005177;
}

/* responsivo: uma coluna só */
@media (max-width: 768px) {
  .loop-one-item {
    display: grid; /* reforça o grid */
    grid-template-columns: 1fr;
    grid-template-areas:
      "thumb"
      "content";
    gap: 1rem;       /* espaçamento menor no mobile */
    margin-bottom: 2rem;
    padding: 0;      /* zera padding externo */
  }

  /* remove qualquer override anterior para pares */
  .loop-one-item:nth-child(even) {
    grid-template-areas:
      "thumb"
      "content";
  }

  .loop-one-figure {
    aspect-ratio: 4/3;
  }

  .loop-one-entry {
    grid-area: content;
    padding: 0 1rem;   /* padding interno mais suave */
    text-align: center;
  }

  .loop-one-button {
    align-self: center; /* centraliza o botão */
    margin-top: 1rem;
  }
}
/*loop generico - fim*/

/*visitar*/

.visitar-subnav-container {
    margin-top: 80px;
}




/*visitar - fim*/

/*loop archive item*/
.loop-archive-thumbnail a {
    display: block;
}
.loop-archive-title {
    padding: 20px;
}
.loop-title {
    font-size: 1.6em;
}
/*loop archive item - end*/

/*MODULO DE DESTAQUES*/
/* Main Grid Layout - 4 Rows and 3 Columns */
.adsi-destaques {
    display: grid;
    grid-template-columns: repeat(3, 1fr); /* 3 posts per row */
    grid-auto-rows: auto; /* Ensures consistent row heights */
    gap: 20px; /* Space between items */
}

/* Post title and date styling */
.adsi-destaque h3 {
    margin: 0;
    font-size: 1.2rem;
}

.adsi-destaque time {
    font-size: 0.9rem;
    color: #555;
}

/* Styles for the first 3 posts (with image overlay) */
.adsi-destaque-first {
    position: relative;
    overflow: hidden; /* Ensures overlay remains within boundaries */
    min-height: 260px; /* Adjust image height to auto on small screens */
}

/* Title and date for highlighted posts */
.adsi-destaque-first h3, 
.adsi-destaque-first time {
    position: relative;
    z-index: 3;
    color: #fff;
}

/* Text overlay for first 3 posts */
.adsi-destaque-first .adsi-destaque-text {
    position: absolute;
    bottom: 0;
    left: 0;
    z-index: 1;
    color: #fff;
    padding: 20px;
    width: 100%;
    box-sizing: border-box;
    background: #30554d; /* Adjust opacity for readability */
    min-height: 88px;
}

.adsi-destaque-first a {
    color: #fff;
    text-decoration: none; /* Optional for cleaner design */
}

.adsi-destaque-first .adsi-destaque-image img {
    width: 100%;
    height: 360px;
    object-fit: cover;
}

/* Hide image for posts after the first 3 */
.adsi-destaque:not(.adsi-destaque-first) .adsi-destaque-image {
    display: none;
}

/* Text container for remaining posts */
.adsi-destaque-text {
    padding: 20px;
}

/* Date Badge Style */
time.adsi-destaque-date-badge {
    display: flex;
    background: #30554d;
    color: #fff;
    position: absolute !important;
    top: 0;
    right: 0;
    width: 70px;
    height: 70px;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    line-height: 1.5;
    font-size: 1.1rem;
}

.adsi-destaque-date-badge-day {
    font-size: 22px;
    font-weight: bold;
}

.adsi-destaque-date-badge-month {
    text-transform: uppercase;
    font-weight: bold;
}

/*destaques opcao a*/
.adsi-destaques-grelha-opcaoa {
    display: grid;
    grid-auto-flow: row;
    grid-template-columns: repeat(6, 1fr);  
    grid-template-areas: 
        "destaque-a destaque-a destaque-a destaque-b destaque-b destaque-b"
        "destaque-c destaque-c destaque-d destaque-d destaque-e destaque-e"; 
    grid-auto-rows: auto;
    gap: 30px;
}
.adsi-destaques-grelha-opcaoa .adsi-destaque-image  { 
    display: grid
}
.adsi-destaques-grelha-opcaoa .adsi-destaque-image .adsi-destaque-link {
    display: block;             /* garante que o link seja um box */
    width: 100%;                /* ou fixe o width que quiser */
    aspect-ratio: 16 / 9;       /* define proporção 16:9 */
    overflow: hidden;           /* esconde o que ultrapassar */
    position: relative;         /* para posicionar o img por cima */
}
.adsi-destaques-grelha-opcaoa .adsi-destaque-image .adsi-destaque-link img {
    width: 100%;
    height: 100%;
    object-fit: cover;          /* cobre todo o container sem distorcer */
    object-position: center;    /* centraliza o corte */
}
.adsi-destaques-grelha-opcaoa .adsi-destaque-item {
    align-content: stretch;
    display: grid;
    background-color: #fff;
}
.adsi-destaques-grelha-opcaoa .adsi-destaque-item .adsi-destaque-text {
    align-content: center
}
.adsi-destaques-grelha-opcaoa .adsi-destaque-item .adsi-destaque-title {
    margin-bottom: 0
}
/*destaques opcao a - fim*/



/*destaques opcao b*/
.adsi-destaques-grelha-opcaob {
    display: grid;
    grid-auto-flow: row;
    grid-template-columns: repeat(6, 1fr);  
    grid-template-areas: 
        "destaque-a destaque-a destaque-a destaque-b destaque-b destaque-b"
        "destaque-c destaque-c destaque-d destaque-d destaque-e destaque-e"; 
    grid-auto-rows: auto;
    gap: 30px;
}

.adsi-destaques-grelha-opcaob .adsi-destaque-a { grid-area: destaque-a; }
.adsi-destaques-grelha-opcaob .adsi-destaque-b { grid-area: destaque-b; }
.adsi-destaques-grelha-opcaob .adsi-destaque-c { grid-area: destaque-c; }
.adsi-destaques-grelha-opcaob .adsi-destaque-d { grid-area: destaque-d; }
.adsi-destaques-grelha-opcaob .adsi-destaque-e { grid-area: destaque-e; }
    
.adsi-destaques-grelha-opcaob .adsi-destaque-image  { 
    display: grid
}
.adsi-destaques-grelha-opcaob .adsi-destaque-image .adsi-destaque-link {
    display: block;             /* garante que o link seja um box */
    width: 100%;                /* ou fixe o width que quiser */
    aspect-ratio: 16 / 9;       /* define proporção 16:9 */
    overflow: hidden;           /* esconde o que ultrapassar */
    position: relative;         /* para posicionar o img por cima */
}
.adsi-destaques-grelha-opcaob .adsi-destaque-image .adsi-destaque-link img {
    width: 100%;
    height: 100%;
    object-fit: cover;          /* cobre todo o container sem distorcer */
    object-position: center;    /* centraliza o corte */
}
.adsi-destaques-grelha-opcaob .adsi-destaque-item {
    align-content: stretch;
    display: grid;
    background-color: #fff;
}
.adsi-destaques-grelha-opcaob .adsi-destaque-item .adsi-destaque-text {
    align-content: center
}
.adsi-destaques-grelha-opcaob .adsi-destaque-item .adsi-destaque-title {
    margin-bottom: 0
}
/*destaques opcao b - fim*/

/*destaques opcao c*/
.adsi-destaques-grelha-opcaoc .adsi-destaque-image  { 
    display: grid
}
.adsi-destaques-grelha-opcaoc .adsi-destaque-image .adsi-destaque-link {
    display: block;             /* garante que o link seja um box */
    width: 100%;                /* ou fixe o width que quiser */
    aspect-ratio: 16 / 9;       /* define proporção 16:9 */
    overflow: hidden;           /* esconde o que ultrapassar */
    position: relative;         /* para posicionar o img por cima */
}
.adsi-destaques-grelha-opcaoc .adsi-destaque-image .adsi-destaque-link img {
    width: 100%;
    height: 100%;
    object-fit: cover;          /* cobre todo o container sem distorcer */
    object-position: center;    /* centraliza o corte */
}
.adsi-destaques-grelha-opcaoc .adsi-destaque-item {
    align-content: stretch;
    display: grid;
    background-color: #fff;
}
.adsi-destaques-grelha-opcaoc .adsi-destaque-item .adsi-destaque-text {
    align-content: center
}
.adsi-destaques-grelha-opcaoc .adsi-destaque-item .adsi-destaque-title {
    margin-bottom: 0
}
/*destaques opcao c - fim*/

/*GRID FIVE*/
    .adsi-destaques-five {
        display: grid;
        grid-template-columns: repeat(4, 1fr); /* 4 colunas de igual largura */
        grid-template-rows: repeat(2, 1fr); /* 2 linhas de igual altura */
        gap: 10px; /* Espaço entre os itens da grelha */
    }
/*GRID FIVE - END*/

/*GRID*/
.adsi-destaques {  
        display: grid;        
        grid-auto-flow: row;             
    }
    
    .adsi-destaques-3 {  
        grid-template-columns: 3fr 2fr;
        grid-template-rows: 1fr 1fr;
        grid-template-areas:
            "destaque-a destaque-b"
            "destaque-a destaque-c";
    }
    
    .adsi-destaques-4 {  
        display: grid;
        grid-template-columns: repeat(2, 1fr); /* 2 columns */
        grid-template-rows: repeat(2, 1fr);    /* 2 rows */
        grid-template-areas: 
            "destaque-a destaque-b"
            "destaque-c destaque-d"; 
        gap: 30px; /* Optional: Adjust the gap between grid items */
    }

    /* Define the grid areas for each article */
    .adsi-destaques-4 .destaque-a { grid-area: destaque-a; }
    .adsi-destaques-4 .destaque-b { grid-area: destaque-b; }
    .adsi-destaques-4 .destaque-c { grid-area: destaque-c; }
    .adsi-destaques-4 .destaque-d { grid-area: destaque-d; }
    
    
    .adsi-destaques-4 .adsi-destaque-a,
    .adsi-destaques-4 .adsi-destaque-b,
    .adsi-destaques-4 .adsi-destaque-c,
    .adsi-destaques-4 .adsi-destaque-d {
        position: relative;
        
    }
    
    .adsi-destaques-4 .adsi-destaque-a .adsi-destaque-text,
    .adsi-destaques-4 .adsi-destaque-b .adsi-destaque-text,
    .adsi-destaques-4 .adsi-destaque-c .adsi-destaque-text,
    .adsi-destaques-4 .adsi-destaque-d .adsi-destaque-text {
        position: absolute;
        bottom: 0;
        width: 100%;
        padding: 20px;
        min-height: 120px;
    }

    .adsi-destaques-5 {  
        grid-template-columns: repeat(6, 1fr); 
        grid-template-rows: 1fr 1fr; 
        grid-template-areas: 
            "destaque-a destaque-a destaque-a destaque-b destaque-b destaque-b"
            "destaque-c destaque-c destaque-d destaque-d destaque-e destaque-e"; 
    }                  
    
    .adsi-destaques-8 {  
        grid-template-columns: 1fr 1fr;   
        grid-template-areas: 
            "destaque-a destaque-b"
            "destaque-c destaque-d"
            "destaque-e destaque-f"
            "destaque-g destaque-h"; 
    }
    
   .adsi-destaques-8 {
        .adsi-destaque-c,
        .adsi-destaque-d,
        .adsi-destaque-e,
        .adsi-destaque-f,
        .adsi-destaque-g,
        .adsi-destaque-h {
            display: grid;
            grid-template-columns: 90px 1fr;
            gap: 30px;
            align-items: center;
        }
    }
    
    .adsi-destaques-8 .adsi-destaque-a,
    .adsi-destaques-8 .adsi-destaque-b {
        position: relative;
        
    }
    
    .adsi-destaques-8 .adsi-destaque-a .adsi-destaque-text,
    .adsi-destaques-8 .adsi-destaque-b .adsi-destaque-text {
        position: absolute;
        bottom: 0;
        width: 100%;
        padding: 20px;
        min-height: 120px;
    }
    
    .adsi-destaques-8 h3 {
        margin: 0
    }
    .adsi-destaques-8 .adsi-destaque-a .adsi-destaque-image a,
    .adsi-destaques-8 .adsi-destaque-b .adsi-destaque-image a {
        display: block;
        height: 300px;
        overflow: hidden;
    }

    .adsi-destaques-8 .adsi-destaque-a .adsi-destaque-image a img,
    .adsi-destaques-8 .adsi-destaque-b .adsi-destaque-image a img {
        object-fit: cover;
        height: 100%;
        width: 100%;
    }
    

    
    
    .adsi-destaque-f { grid-area: destaque-f; }
    .adsi-destaque-g { grid-area: destaque-g; }
    .adsi-destaque-h { grid-area: destaque-h; }
/*GRID - END*/

/*destaques*/
.adsi-destaque-link {
  display: block;           /* transforma em container de bloco */
  color: inherit;           /* herda cor do texto */
  text-decoration: none;    /* remove sublinhado */
  height: 100%;
}

.adsi-destaque-link:focus {
  outline: 3px solid Highlight;
  outline-offset: 2px;
}

.adsi-destaque-link:hover {
  /* opcional: adicionar um efeito de hover no card inteiro */
  background-color: rgba(0,0,0,0.05);
}

.adsi-destaque-link img {
    display: block;                /* Remove espaços indesejados */
    width: 100%;                   /* Adapta ao contêiner */
    height: auto;
    transition: transform 0.3s ease; /* Duração e curva de transição */
    transform-origin: center center; /* Origem do zoom */ 
}
.adsi-destaque-link:hover img {
     transform: scale(1.1);         /* Aumenta em 10% */
}

/*destaques - fim*/

/*DIRETORIO*/
.diretorio-single-image {
    max-height: 480px;
    overflow: hidden;
    display: flex;
    align-content: center
}
.diretorio-single-image img {
    object-fit: cover;
    min-width: 100%;
}
.adsi-diretorio-descricao {
    margin-bottom: 30px;
}
.cat-dir-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    margin-bottom: 30px;
}
.cat-dir-grid-item .diretorio-caticon-wrapper {
  padding: 30px;
  display: flex;
  align-content: stretch;
  flex-flow: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  height: 100%;
}

.cat-dir-grid {
    display: grid;
    gap: 30px;   
}
.cat-dir-grid-item {
    border-radius: 5px;
}
.cat-dir-grid-item-txt {
    text-align: center
}
.cat-dir-grid-item-img {
    padding: 20px;
    display: flex;
    justify-content: center;
}
.cat-dir-grid-item-img img {
    max-height: 60px;
}

.diretorio-top-search {
  margin-bottom: 30px
}
.diretorio-top-search .adsi-dir-search-form ul {
  display: grid;
  margin: 0 !important;
  gap: 30px;
}
.adsi-dir-search-form ul li {
    padding: 0;
    list-style: none
}
.adsi-dir-search-form ul input, .adsi-dir-search-form ul select {
    width: 100% !important;
    display: flex;
    height: 50px;
    padding: 5px 10px !important;
    line-height: 100%;
    border-top: 0;
    border-left: 0;
    border-right: 0;
    border-radius: 5px;
}
.single-diretorio .post-thumb-img-content img {
    object-fit: cover;
    width: 100%;
    min-height: 100%;
}
/*DIRETORIO - END*/

/*FREGUESIAS*/
.freguesias-terms ul {
    display: inline-block;
    list-style: none;
    margin: 0;
}
/*FREGUESIAS - END*/

/*CONTENT NAVIGATION CONTROLS*/
.content-controls {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin-bottom: 20px;
    justify-content: start;
    width: 100%;
    box-sizing: border-box;
}
.content-controls a {
    display: flex;
    justify-content: center;
    padding: 10px 20px;
    position: relative;
    background: #f4f4f4;
    border-radius: 5px;
}

.content-controls a::after {
    font-family: 'FontAwesome';
    font-size: 12px;
    color: #fff; /* Icon color */
    transition: color 0.3s ease;
    padding-left: 15px
}
.content-controls a.content-controls-inicio::after {
    content: "\f015"; /* FontAwesome arrow icon */
}
.content-controls a.content-controls-voltar::after {
    content: "\f060"; /* FontAwesome arrow icon */
}

.content-controls a:hover {
    cursor: pointer;
}
/*CONTENT NAVIGATION CONTROLS - FIM*/

/*core related documents*/
.core-related-documents ul {
    margin: 0;
}
.bo-simple-document {
  display: block;
  position: relative;      /* para posicionar o ::after */
  padding: 10px 35px 10px 15px;
  background: #f4f4f4;
  margin-bottom: 5px;
  text-decoration: none;   /* opcional, se for link */
  color: inherit;          /* opcional, herda cor do texto */
}

/* Ícone de download do FontAwesome após cada .bo-simple-document */
.bo-simple-document::after {
    content: "\f061";                    /* Unicode do fa-eye */
    font-family: "Font Awesome 6 Free";   /* ou "Font Awesome 5 Free" conforme a tua versão */
    font-weight: 900;                     /* solid icons usam peso 900 */
    position: absolute;
    right: 15px;                          /* alinha à direita, dentro do padding */
    top: 50%;
    transform: translateY(-50%);
    font-size: 1em;                       /* ajusta ao teu gosto */
    pointer-events: none;                 /* não interfere em cliques */
}

/*core related documents - fim*/

/*SIDEBAR*/
/*executivo - details*/
.core-sidebar-picture {
    margin-bottom: 30px
}
.core-sidebar-picture img {
    width: 100%;
}
/*SIDEBAR - FIM*/

/*SIDEBAR SEARCH*/
.sidebar-search form {
    padding: 30px;
    background: #f4f4f4;
    border-radius: 3px
}
.sidebar-search form li {
    padding: 0;
    margin-bottom: 5px !important
}
.sidebar-search form input, .sidebar-search form select {
    width: 100%;
    height: 42px;
    line-height: 100%;
    padding: 5px 15px;
    margin-bottom: 10px;    
}
.sidebar-search form button {
    margin-top: 5px;
    line-height: 100%;
    padding-right: 40px;
    position: relative;
}
.sidebar-search form button::after {
    content: "\f002"; /* FontAwesome arrow icon */
    font-family: 'FontAwesome';
    margin-right: 8px;
    font-size: 12px;
    color: #fff; /* Icon color */
    position: absolute;
    right: 10px
}
/*SIDEBAR SEARCH - FIM*/

/*SUBNACEGACAO DE PAGINAS*/
.adsi-subnav-grid {
    margin: auto
}
.adsi-subnav-grid > ul {
    display: grid;
    margin: 0;
    gap: 20px;
    align-items: center;
    grid-auto-rows: 1fr;
    padding: 0;
    align-items: stretch;
}
.adsi-subnav-grid > ul li {
    list-style: none;
}
.adsi-subnav-grid > ul li a {
    text-align: center;
    display: flex;
    justify-content: center;
    padding: 20px;
    border-radius: 5px;
    background: #f4f4f4;
    align-content: center;
    align-items: center;
    height: 100%;
}
.adsi-subnav-grid .current_page_item {
    border-bottom: 5px #ddd solid;
}

ul#page-subnavigation-services {
  padding: 0;  
}
/*SUBNACEGACAO DE PAGINAS - FIM*/

/*sidebar picture*/
.custom-sidebar-picture {
    margin-bottom: 30px;
}
/*sidebar picture - end*/

/*SIDEBAR*/
/* 
 * Sidebar positioning classes
 * Em mobile, sempre usa flex-direction: column (definido em .main-content-wrapper)
 * Em desktop (768px+), aplica row/row-reverse conforme posição
 */
/*SIDEBAR - FIM*/

/* SIDEBAR MENU */
/* General menu styling */
.sidebar-menu {
    list-style-type: none;
    padding: 0;
    margin: 0;
}

/* Style for main menu items */
.sidebar-menu .menu-item {
    margin-bottom: 6px !important;
}

.sidebar-menu .menu-item:first-of-type {
    border: none;
}



.sidebar-menu .menu-item > a {
    text-decoration: none;
    color: #222;
    display: flex;
    width: 100%;
    align-items: center;
    padding: 7px 30px;
    background-color: #f4f4f4;
    border-radius: 4px;
    transition: background-color 0.3s ease, color 0.3s ease;
    position: relative
}

.sidebar-menu .menu-item > a::after {
    content: "\f105"; /* FontAwesome arrow icon */
    font-family: 'FontAwesome';
    margin-right: 8px;
    font-size: 12px;
    color: #888; /* Icon color */
    transition: color 0.3s ease;
    position: absolute;
    right: 0
}

.sidebar-menu .menu-item > a:hover {
    background-color: #e0e0e0;
    color: #222;
}

.sidebar-menu .menu-item > a:hover::before {
    color: #333;
}

/* Hide all submenus by default */
.sidebar-menu .sub-menu {
    display: none;
    margin-top: 6px;
    padding-left: 15px;
    list-style-type: none;
    margin-left: 0;
}

/* Show submenus for the active item and ancestors of an active item */
.sidebar-menu .current-menu-item > .sub-menu,
.sidebar-menu .current-menu-ancestor > .sub-menu {
    display: block;
    border-left: 1px #ddd solid;
}

/* Style for submenu links */
.sidebar-menu .sub-menu .menu-item > a {
    background-color: #f1f1f1;
    color: #222;
    padding-left: 20px;
    border-radius: 4px;
    transition: background-color 0.3s ease, color 0.3s ease;
}

.sidebar-menu .sub-menu .current-menu-item > a, 
.sidebar-menu .sub-menu .current-menu-ancestor > a {
    background-color: #ddd;
}

/* FontAwesome icon styling for submenu items */
.sidebar-menu .sub-menu .menu-item > a::after {
    content: "\f105"; /* FontAwesome arrow icon */
    font-family: 'FontAwesome';
    margin-right: 6px;
    font-size: 10px;
    color: #aaa; /* Submenu icon color */
    transition: color 0.3s ease;
}

/* Hover effect for submenu links */
.sidebar-menu .sub-menu .menu-item > a:hover {
    background-color: #ddd;
    color: #444;
}

.sidebar-menu .sub-menu .menu-item > a:hover::before {
    color: #666;
}

/* Indent for nested submenu items */
.sidebar-menu .sub-menu .sub-menu .menu-item > a {
    padding-left: 30px;    
}

.sidebar-menu .sub-menu .sub-menu .menu-item > a:hover {
    background-color: #ddd;
}

/*sidebar menu with image*/
 .sidebar-menu-with-image .menu-item {
    display: flex;
    align-items: center;
    margin-bottom: 10px;
}

.sidebar-menu-with-image .post-thumbnail-container {
    margin-right: 10px;
}

.sidebar-menu-with-image .post-thumbnail {
    width: 50px; /* Adjust as needed */
    height: auto;
}

.sidebar-menu-with-image .post-title {
    font-size: 16px;
}


/*sidebar menu with image -fim*/
/* SIDEBAR MENU - END */

/*freguesias*/
.freguesia-wrapper {
    width: 100%;
}
.adsi-freguesias-grid {
    display: grid;
    gap: 30px
}
.adsi-freguesias-grid-item {
    text-align: center;
    background: #f4f4f4;
    border-radius: 5px
}

.fre-repeater-row {
    display: grid;
    grid-template-columns: 140px 1fr auto;
    gap: 10px;
    border-bottom: 1px #ddd solid;
    border-top: 1px #ddd solid;
    margin-top: -1px;
}
.fre-repeater-row > div {
    padding: 5px 0;
}
.fre-row {
    margin-bottom: 20px;
}

.freguesia-wrapper h3 {
    margin-bottom: 10px;
}
.fre-imagem {
    padding: 30px;
    border: 1px #ddd solid;
    border-radius: 5px;
    margin-bottom: 30px;
    text-align: center
}
.fre-row > span {
    font-weight: bold;
}
.fre-archive-imagem {
    padding: 30px 50px 20px 50px;
}
/*freguesias - fim*/

/*reunioes*/
.reuniao-archive-item {
    background: #fff;
    margin-bottom: 15px;
}
.reuniao-archive-item a {
    display: block;
}
.reuniao-archive-item img {
    width: 100%
}
.reuniao-archive-item-inside {
    display: grid;
    gap: 30px;
    align-items: center;
    padding: 20px
}
.reu-row {
    margin-bottom: 30px
}
/*reunioes - fim*/

/*widgets*/
.widget_title { 
    padding: 10px 20px;
    margin-bottom: 5px;
    background: #333;
    color: #fff;
    border-radius: 3px;
    font-size: 1.2rem;
}
/*widgets - fim*/

/*youtube slider*/
/* Slide base */
.ytbslider {
    margin-bottom: 30px
}
.ytbslider .splide__slide {
  position: relative;
  padding-top: 56.25%;
  background: #000;
  overflow: hidden;
  border-radius: 12px;
}

/* Thumbnail como cover */
.ytbslider .ytb-cover {
  position: absolute;
  top: 0; left: 0;
  width: 100%; height: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
}

.ytbslider .ytb-thumb {
  position: absolute;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 12px;
}

/* Degradé nas laterais */
.ytbslider .ytb-overlay::before {
  content: "";
  position: absolute;
  top: 0; bottom: 0; left: 0; right: 0;
  pointer-events: none;
  z-index: 1;
  background: radial-gradient(circle, transparent 40%, rgba(0,0,0,0.6));
}


/* Overlay para conteúdo */
.ytbslider .ytb-overlay {
  position: relative;
  width: 100%;
  height: 100%;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: #fff;
  text-align: center;
  pointer-events: none;
}

/* Ícone de play */
.ytbslider .ytb-play-icon {
  font-size: 4rem;
  pointer-events: none;
  text-shadow: 0 2px 5px rgba(0,0,0,0.5);
}

/* Legenda abaixo do play */
.ytbslider .ytv-caption {
    margin-top: 160px;
    max-width: 90%;
    font-size: 1.1rem;
    font-weight: 500;
}
.ytbslider .splide__video__play {
    border-radius: 150px;
    padding: 36px;
    background-color: #ffffff;
}

/* Esconde a cover quando o iframe aparece */
.ytbslider .splide__slide.has-video video,
.ytbslider .splide__slide.has-video iframe {
  position: absolute;
  top: 0; left: 0;
  width: 100%;
  height: 100%;
  border: none;
  z-index: 3;
}

/* Oculta a capa e legenda quando o vídeo está a tocar */
.ytbslider.is-playing .ytb-cover {
  display: none;
}


/* Capa com animação */
.ytbslider .ytb-cover {
  opacity: 1;
  transition: opacity 0.5s ease, visibility 0.5s ease;
  visibility: visible;
}

/* Quando o vídeo está a tocar (via Splide), a capa desaparece com fade */
.ytbslider.is-playing .ytb-cover {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

/*youtube slider - fim*/

/* Sliders - Core styles (module-specific styles in /modulos/sliders/assets/sliders.css) */
.adsi-slide-item-content {
    position: relative;
}

/* Sliders - Estilos críticos de vídeo (mantidos aqui por ordem de carregamento) */
.acore-slides .video-foreground {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
}

.acore-slides .video-foreground iframe,
.acore-slides .video-foreground video {
    pointer-events: none;
}

.acore-slides .video-background.video-cover .video-foreground iframe,
.acore-slides .video-background.video-cover .video-foreground video {
    object-fit: cover;
    width: 100%;
    height: 100%;
}

.acore-slides .video-background.video-contain .video-foreground {
    width: auto;
    height: auto;
    max-width: 100vw;
    max-height: 100vh;
}

.acore-slides .video-background.video-contain .video-foreground iframe,
.acore-slides .video-background.video-contain .video-foreground video {
    object-fit: contain;
}

.acore-slides .video-background.video-fill .video-foreground iframe,
.acore-slides .video-background.video-fill .video-foreground video {
    object-fit: fill;
    width: 100%;
    height: 100%;
}

.acore-slides .video-background.video-none .video-foreground iframe,
.acore-slides .video-background.video-none .video-foreground video {
    object-fit: none;
    width: 100%;
    height: 100%;
}

.acore-slides .video-background.video-scale-down .video-foreground {
    width: auto;
    height: auto;
    max-width: 100vw;
    max-height: 100vh;
}

.acore-slides .video-background.video-scale-down .video-foreground iframe,
.acore-slides .video-background.video-scale-down .video-foreground video {
    object-fit: scale-down;
}

@media (min-aspect-ratio:16/9) {
  .acore-slides .video-background.video-cover .video-foreground {
    width:100vw;
    height:56.25vw;
  }
}
@media (max-aspect-ratio:16/9) {
  .acore-slides .video-background.video-cover .video-foreground {
    width:177.77vh;
    height:100vh;
  }
}

.splide__slide.adsi-slide-item {
  position: relative;
}

/*core gallery splide*/
.core-gallery-splide .splide__slide {
    position: relative;
    overflow: hidden;
  }
.core-gallery-splide .splide__slide img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
  }
/*core gallery splide - end*/

/*default buttons*/
.ac-primary-btn-wrapper {
    display: flex;
    align-items: center
}
.ac-primary-btn {
    display: flex;
    width: 100%;
    border: 5px #30554d solid;
    border-radius: 5px;
    padding: 10px 15px;
}
.ac-secondary-btn {
    display: flex;
    width: 100%;
    border: none;
    border-radius: 0px;
    padding: 10px 15px;
}
/*default buttons - fim*/
/*ticker*/
.ticker-wrapper {
    background: #222;
    
}
#avisosTicker {
    max-width: 1320px;
    margin: auto;
}
/* Aplica o separador a todos os <li> exceto o último */
.bn-news ul li:not(:last-child)::after {
  font-family: "Font Awesome 5 Free"; /* ou outra família de icon font */
  content: "\f192";                   /* código do ícone “circle” */
  font-weight: 900;                   /* necessário para FA5 */
  margin: 0 0.75em;                   /* espaçamento à esquerda e direita */
  color: #666;                        /* cor do separador */
  display: inline-block;
}

/*ticker - fim*/
/*lightbox*/
.gslide-image img {
    max-width: 86%; /* ou 800px, por exemplo */
    max-height: 86vh;
    object-fit: contain;
    margin: auto;
}

/*lightbox - fim*/
/* executivo styles moved to modulos/executivo/assets/executivo.css */

/*freguesias*/
.freguesia-archive-item-inside {
    padding: 30px;
    background: #fff;
}
.freguesia-archive-title h2 {
    font-size: 1.5em;
    margin-top: 15px;
    text-align: center;   
}
/*freguesias - fim*/

/*mediacenter*/
.mediacenter-archive-item-inside {
    padding: 30px;
    background: #fff;
}
.mediacenter-archive-title h2 {
    font-size: 1.5em;
    margin-top: 15px;
    text-align: center;
}
.mc-galeria-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); /* ajustável */
    gap: 1rem;
}

.mc-galeria-item {
    display: flex;
    flex-direction: column;
}

.mc-galeria-thumb {
    position: relative;
    width: 100%;
    padding-top: 100%; /* 1:1 ratio */
    overflow: hidden;
    border-radius: 8px;
}

.mc-galeria-thumb img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.mc-galeria-item figcaption {
    margin-top: 0.5rem;
    text-align: center;
    font-size: 0.9rem;
    color: #333;
}
/*medaicenter - fim*/


/* usearch - start */
.usearch {
  width: 100%;
  display: grid;
  gap: 12px;
}

/* Layout variants */
.usearch.usearch--inline {
  align-items: end;
  grid-template-columns: 1fr auto;
}
.usearch.usearch--sidebar {
  grid-template-columns: 1fr;
}

/* Base form elements */
.usearch label {
  display: block;
  font-size: 0.9rem;
  margin-bottom: 6px;
}
.usearch input[type="text"],
.usearch input[type="search"],
.usearch select {
  width: 100%;
  padding: 10px 12px;
  font-size: 1rem;
  line-height: 1.4;
  border-radius: 6px;
  border: 1px solid #d6d6d6;
  background: #fff;
  transition: border-color .2s, box-shadow .2s;
}
.usearch button[type="submit"] {
  padding: 10px 16px;
  font-size: 1rem;
  border-radius: 5px;
  background: #0d6efd;
  color: #fff;
  cursor: pointer;
}
.usearch button[type="submit"]:hover {
  background: #0b5ed7;
  border-color: #0b5ed7;
}

/* Classic design */
.usearch.usearch--classic input[type="text"],
.usearch.usearch--classic input[type="search"],
.usearch.usearch--classic select {
  box-shadow: inset 0 1px 2px rgba(0,0,0,0.04);
}
.usearch.usearch--classic input:focus,
.usearch.usearch--classic select:focus {
  outline: none;
  border-color: #86b7fe;
  box-shadow: 0 0 0 .2rem rgba(13,110,253,.25);
}

/* Material-ish design */
/* Material styling aligned with diretorio */
.usearch.usearch--material label { font-size: 0.9rem; color: #6b7280; font-weight: 600; }
.usearch.usearch--material input[type="text"],
.usearch.usearch--material input[type="search"],
.usearch.usearch--material select {
  border: 1.5px solid rgba(0,0,0,0.28);
  border-radius: 5px;
  padding: 12px 14px;
  background: #fff;
  appearance: none;
  transition: border-color .2s ease, box-shadow .2s ease;
}
.usearch.usearch--material select {
  background-image: linear-gradient(45deg, transparent 50%, #6b7280 50%), linear-gradient(135deg, #6b7280 50%, transparent 50%);
  background-position: calc(100% - 18px) calc(1em + 2px), calc(100% - 12px) calc(1em + 2px);
  background-size: 6px 6px, 6px 6px;
  background-repeat: no-repeat;
}
.usearch.usearch--material input:focus,
.usearch.usearch--material select:focus {
  outline: none;
  border-color: #2563eb;
  box-shadow: 0 0 0 3px rgba(37,99,235,0.15);
}
.usearch.usearch--material button[type="submit"] {
  border-radius: 5px;
  padding: 14px 18px;
  background: #2563eb;
  transition: all .2s linear;
}
.usearch.usearch--material button[type="submit"]:hover {
  filter: brightness(0.95);
  box-shadow: 0 4px 10px rgba(37,99,235,0.3);
}

/* Material container panel (matches diretorio-search base) */
.usearch.usearch--material {
  padding: 30px;
  background: #fff;
  border-radius: 5px;
  border: 1px #ddd solid;
}

/* Sidebar (stacked) spacing for material */
.usearch.usearch--material.usearch--sidebar > div { margin-bottom: 12px; }

/* Material floating label input (md-input) */
.usearch.usearch--material .md-input { position: relative; }
.usearch.usearch--material .md-input input[type="search"] {
  width: 100%;
  border: 1.5px solid rgba(0,0,0,0.28);
  border-radius: 8px;
  padding: 18px 14px 10px; /* extra top to make room for floating label */
  background: #fff;
  font-size: 1rem;
  transition: border-color .2s ease, box-shadow .2s ease;
}
.usearch.usearch--material .md-input input[type="search"]:focus {
  outline: none;
  border-color: #2563eb; /* primary */
  box-shadow: 0 0 0 3px rgba(37,99,235,0.15);
}
.usearch.usearch--material .md-input label {
  position: absolute;
  left: 12px;
  top: 50%;
  transform: translateY(-50%);
  background: #fff;
  padding: 0 4px;
  color: #6b7280; /* slate-500 */
  pointer-events: none;
  transition: all .15s ease;
}
.usearch.usearch--material .md-input input[type="search"]:focus + label,
.usearch.usearch--material .md-input input[type="search"]:not(:placeholder-shown) + label {
  top: 8px;
  transform: none;
  font-size: 12px;
  color: #2563eb;
}

/* Material outlined select with anchored label (md-select) */
.usearch.usearch--material .md-select { position: relative; }
.usearch.usearch--material .md-select label {
  position: absolute;
  left: 12px;
  top: -7px;
  padding: 0 6px;
  font-size: 12px;
  background: #fff;
  color: #6b7280;
  line-height: 120%;
}

/* Inline layout: match diretorio flex behavior for material */
.usearch.usearch--material.usearch--inline {
    display: grid;
    gap: 15px;  
    grid-template-columns: 1fr;
}
.usearch.usearch--material.usearch--inline > div { flex: 1 1 220px; }
.usearch.usearch--material.usearch--inline > div:first-child { flex: 2 1 320px; }
.usearch.usearch--material.usearch--inline button[type="submit"] { height: 100%; }
@media (max-width: 640px) {
  .usearch.usearch--material.usearch--inline > div { flex-basis: 100%; min-width: 100%; }
}

/* Grouping spacing for inline layout */
.usearch.usearch--inline > div,
.usearch.usearch--inline > button,
.usearch.usearch--inline > select,
.usearch.usearch--inline > input {
  margin: 0;
}

/* Sidebar compact tweaks */
.usearch.usearch--sidebar select,
.usearch.usearch--sidebar input[type="text"],
.usearch.usearch--sidebar input[type="search"] {
  min-height: 40px;
}
/* usearch - end */

/*custom loops - search*/
.search-result-item {
      
    margin-bottom: 20px;
    width: 100%;
}

.search-result-item .search-result-image a {
    display: block; /* Makes the image area a block-level link */
    text-decoration: none; /* Removes default link styling */
    height: 100%;
}

.search-result-item .search-result-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    
}

.search-result-item a:hover {
    opacity: 0.8; /* Visual cue for hover interaction */
}
.search-result-content {
    display: flex;
    align-content: center;
    flex-flow: column;
    justify-content: center;
    padding: 20px 30px;
}
.search-result-content h2 {
    font-size: 1.5em
}
/*custom loops - search - fim*/

/*search results page*/
.custom-search-results-wrapper {
    display: flex;
}
.custom-search-results {
    width: 100%
}
.custom-search-results .pagination {
    text-align: center;
}
/*search results page - fim*/



/* Responsive adjustments */
@media (max-width: 1024px) {
    .usearch.usearch--material.usearch--inline {
        flex-wrap: wrap;
    }
    /*destaques opcao a*/
    .adsi-destaques.adsi-destaques-grelha-opcaoa {
        grid-template-columns: repeat(4, 1fr);  
        grid-template-areas: 
            "destaque-a destaque-a destaque-a destaque-a"
            "destaque-b destaque-b destaque-c destaque-c"
            "destaque-d destaque-d destaque-e destaque-e"; 
        grid-auto-rows: auto;
        gap: 30px;
    }
    /*destaques opcao a - fim*/

    /*destaques opcao b*/
    .adsi-destaques.adsi-destaques-grelha-opcaob {
        grid-template-columns: repeat(4, 1fr);  
        grid-template-areas: 
            "destaque-a destaque-a destaque-a destaque-a"
            "destaque-b destaque-b destaque-c destaque-c"
            "destaque-d destaque-d destaque-e destaque-e"; 
        grid-auto-rows: auto;
        gap: 30px;
    }
    /*destaques opcao b - fim*/
}

@media (max-width: 768px) {
    /*destaques opcao a*/
    .adsi-destaques.adsi-destaques-grelha-opcaoa {
        grid-template-columns: repeat(1, 1fr);  
        grid-template-areas: 
            "destaque-a"
            "destaque-b"
            "destaque-c" 
            "destaque-d" 
            "destaque-e"; 
        grid-auto-rows: auto;
        gap: 30px;
    }
    /*destaques opcao a - fim*/

    /*destaques opcao b*/
    .adsi-destaques.adsi-destaques-grelha-opcaob {
        grid-template-columns: repeat(1, 1fr);  
        grid-template-areas: 
            "destaque-a"
            "destaque-b"
            "destaque-c" 
            "destaque-d" 
            "destaque-e"; 
        grid-auto-rows: auto;
        gap: 30px;
    }
    /*destaques opcao a - fim*/
    
    .adsi-destaques {
        grid-template-columns: 1fr; /* Single column layout on smaller screens */
        gap: 20px; /* Adjust gap for smaller screens */
    }
    .adsi-destaque-first .adsi-destaque-image img {
        height: auto; /* Adjust image height to auto on small screens */
       
    }
}
/*MODULO DE DESTAQUES - FIM*/

/*bootstrap*/
/* Main Container */
.main-content-wrapper {
    display: flex;
    flex-direction: column;
    max-width: 1200px;
    width: 100%;
    margin: 0 auto;
    gap: 50px;
    padding: 50px 0;
    box-sizing: border-box;
}

/* Responsive Layout - Tablet e Desktop */
@media (min-width: 992px) {
    .usearch.usearch--material.usearch--inline {
        grid-template-columns: 1fr 1fr;
    }
    
    /*balcao online*/
    
    .borec-item-doc-complete {
        grid-template-columns: 1fr 150px;
    }
    .borec-item-doc-right {
        flex-flow: column;
        gap: 5px;
    }
    
    /*balcao online - fim*/
    
    .main-content-wrapper {
        flex-direction: row;
    }
    
    /* Sidebar positioning - apenas em tablet landscape e desktop */
    .main-content-wrapper.sidebar-left {
        flex-direction: row-reverse;
    }
    .main-content-wrapper.sidebar-right {
        flex-direction: row;
    }
    
    /* Legacy classes (deprecated) */
    .main-content-wrapper.main-content-wrapper-sidebar-left {
        flex-direction: row;
    }
    .main-content-wrapper.main-content-wrapper-sidebar-right {
        flex-direction: row-reverse;
    }
    
    .main-sidebar {
        flex: 1; /* 1/3 */
        margin-bottom: 0;
    }
    .main-content {
        flex: 2; /* 2/3 */
    }

/* Larger Screens Adjustments */
    
    .bo-duas-colunas-grid {        
        grid-template-columns: 1fr 1fr;
    }
    
    /*reunioes*/
    .reuniao-archive-item-inside {
        grid-template-columns: 1fr 3fr;        
    }
    /*reunioes - fim*/
    
    .adsi-slide-item-caption.adsi-slide-item-caption-fundo {
        text-align: left
    }
}

/* Larger Screens Adjustments */


@media (min-width: 1024px) {

    
    /* Custom Archive Pages - layout base */
    .custom-archive-page {
        display: grid;
        gap: 3rem; /* 48px é mais acessível que 50px e mantém consistência com sistemas de grid */
    }

    /* Arquivo de serviços - Layouts responsivos com diferentes colunas */
    .custom-archive-page.core-cols-2 {
        grid-template-columns: repeat(2, 1fr);
    }

    .custom-archive-page.core-cols-3 {
        grid-template-columns: repeat(3, 1fr);
    }

    .custom-archive-page.core-cols-4 {
        grid-template-columns: repeat(4, 1fr);
    }

    /*archive pages*/
    .freguesias-archive-page, .mediacenter-archive-page {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 50px;
    }
    /*archive pages - fim*/

    /*mediacenter*/
    .mc-galeria-grid {
        display: grid;
        grid-template-columns: 1fr 1fr 1fr;
        gap: 30px;
    }

}

@media (min-width: 1280px) {
    .usearch.usearch--material.usearch--inline {
        grid-template-columns: 1fr 1fr 1fr auto;
    }

    .main-content-wrapper {
        max-width: var(--core-container-max);
    }
}
/*bootstrap - end*/

/* CORE PAGINATION (inspired by Astra) */
/* Works with WP core markup: .navigation.pagination > .nav-links > .page-numbers */
.navigation.pagination {
    display: inline-block;
    width: 100%;
    padding-top: 2em;
    text-align: center;
}
.navigation.pagination .nav-links {
    display: inline-block;
    width: 100%;
}
.navigation.pagination .page-numbers {
    display: inline-block;
    width: auto;
    min-width: 40px;
    min-height: 40px;
    line-height: 40px;
    font-size: 16px;
    font-weight: 500;
    color: var(--ast-global-color-2, inherit);
}
.navigation.pagination a.page-numbers,
.nav-links a.page-numbers {
    color: var(--ast-global-color-2, inherit);
}
.navigation.pagination a.page-numbers:hover,
.navigation.pagination a.page-numbers:focus,
.navigation.pagination > .page-numbers:hover:not(.dots),
.navigation.pagination > .page-numbers.current {
    color: var(--ast-global-color-1, inherit);
}
.navigation.pagination .prev.page-numbers,
.navigation.pagination .next.page-numbers {
    padding: 0 1.5em;
    height: 40px;
    line-height: 40px;
}
.navigation.pagination .prev.page-numbers { float: left; }
.navigation.pagination .next.page-numbers { float: right; }

/* Default shape adjustments similar to Astra */
.ast-pagination-default .post-page-numbers.current .page-link,
.ast-pagination-default .navigation.pagination .page-numbers.current {
    border-radius: 2px;
}

/* Icon sizing alignment for potential SVG arrows */
.navigation.pagination .prev svg,
.navigation.pagination .next svg {
    height: 16px;
    position: relative;
    top: 0.2em;
}
.navigation.pagination .prev svg { margin-right: 0.3em; }
.navigation.pagination .next svg { margin-left: 0.3em; }

/* Responsive tweaks */
@media (max-width: 544px) {
    .navigation.pagination .next:focus,
    .navigation.pagination .prev:focus {
        width: 100% !important;
    }
}
@media (max-width: 420px) {
    .navigation.pagination .prev.page-numbers,
    .navigation.pagination .next.page-numbers {
        width: 100%;
        text-align: center;
        margin: 0;
    }
    .navigation.pagination .next.page-numbers { margin-top: 10px; }
    .navigation.pagination .prev.page-numbers { margin-bottom: 10px; }
}

/* ===== Splide preloader ===== */
.core-gallery-splide { position: relative; }
.core-gallery-splide.is-loading .splide-preloader { opacity: 1; pointer-events: auto; }
.splide-preloader {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  background: rgba(255,255,255,0.85);
  transition: opacity .2s ease;
  opacity: 0;
  pointer-events: none;
  z-index: 2;
}
.splide-preloader .spinner {
  width: 28px;
  height: 28px;
  border: 3px solid #d1d5db; /* gray-300 */
  border-top-color: #2563eb;  /* primary */
  border-radius: 50%;
  animation: adsi-spin .8s linear infinite;
}
@keyframes adsi-spin { to { transform: rotate(360deg); } }

/* ========================================
   CoreButtons - Global Button System
   ======================================== */

/* Base button styles */
.core-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 0.625rem 1.25rem;
  font-size: 1rem;
  font-weight: 500;
  line-height: 1.5;
  text-decoration: none;
  border: 2px solid transparent;
  border-radius: 0.375rem;
  cursor: pointer;
  transition: all 0.2s ease-in-out;
  white-space: nowrap;
}

.core-button:focus {
  outline: 2px solid #2271b1;
  outline-offset: 2px;
}

/* Button sizes */
.core-button--sm {
  padding: 0.375rem 0.875rem;
  font-size: 0.875rem;
}

.core-button--md {
  padding: 0.625rem 1.25rem;
  font-size: 1rem;
}

.core-button--lg {
  padding: 0.875rem 1.75rem;
  font-size: 1.125rem;
}

/* Full width */
.core-button--full-width {
  width: 100%;
}

/* Icon positioning */
.core-button--with-icon.core-button--icon-left {
  flex-direction: row;
}

.core-button--with-icon.core-button--icon-right {
  flex-direction: row-reverse;
}

/* Primary button */
.core-button--primary {
  background: var(--adsi-color-primary);
  color: var(--adsi-color-white);
  border-color: var(--adsi-color-primary);
}

.core-button--primary:hover,
.core-button--primary:focus {
  background: color-mix(in srgb, var(--adsi-color-primary) 85%, black);
  border-color: color-mix(in srgb, var(--adsi-color-primary) 85%, black);
  color: var(--adsi-color-white);
}

/* Secondary button */
.core-button--secondary {
  background: var(--adsi-color-secondary);
  color: var(--adsi-color-white);
  border-color: var(--adsi-color-secondary);
}

.core-button--secondary:hover,
.core-button--secondary:focus {
  background: color-mix(in srgb, var(--adsi-color-secondary) 85%, black);
  border-color: color-mix(in srgb, var(--adsi-color-secondary) 85%, black);
  color: var(--adsi-color-white);
}

/* Outline Dark button */
.core-button--outline-dark {
  background: transparent;
  color: var(--adsi-color-primary);
  border-color: var(--adsi-color-primary);
}

.core-button--outline-dark:hover,
.core-button--outline-dark:focus {
  background: var(--adsi-color-primary);
  color: var(--adsi-color-white);
}

/* Outline Light button */
.core-button--outline-light {
  background: transparent;
  color: var(--adsi-color-white);
  border-color: var(--adsi-color-white);
}

.core-button--outline-light:hover,
.core-button--outline-light:focus {
  background: var(--adsi-color-white);
  color: var(--adsi-color-primary);
}

/* ========================================
   Button Hover Styles (Configurable via ACF)
   ======================================== */

/* Hover Style 1: Lift - Move button up with shadow */
.button-hover-lift.core-button:hover,
.button-hover-lift.core-button:focus {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.button-hover-lift.core-button:active {
  transform: translateY(0);
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

/* Hover Style 2: Scale - Increase size slightly */
.button-hover-scale.core-button:hover,
.button-hover-scale.core-button:focus {
  transform: scale(1.05);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
}

.button-hover-scale.core-button:active {
  transform: scale(1.02);
}

/* Hover Style 3: Glow - Add glowing effect */
.button-hover-glow.core-button:hover,
.button-hover-glow.core-button:focus {
  box-shadow: 0 0 20px rgba(0, 0, 0, 0.2), 0 0 40px rgba(0, 0, 0, 0.1);
}

.button-hover-glow.core-button--primary:hover,
.button-hover-glow.core-button--primary:focus {
  box-shadow: 0 0 20px color-mix(in srgb, var(--adsi-color-primary) 40%, transparent),
              0 0 40px color-mix(in srgb, var(--adsi-color-primary) 20%, transparent);
}

.button-hover-glow.core-button--secondary:hover,
.button-hover-glow.core-button--secondary:focus {
  box-shadow: 0 0 20px color-mix(in srgb, var(--adsi-color-secondary) 40%, transparent),
              0 0 40px color-mix(in srgb, var(--adsi-color-secondary) 20%, transparent);
}

/* Hover Style 4: Gradient - Transition to gradient on hover */
.button-hover-gradient.core-button--primary,
.button-hover-gradient.core-button--secondary {
  transition: background 0.6s ease, border-color 0.6s ease;
}

.button-hover-gradient.core-button--primary:hover,
.button-hover-gradient.core-button--primary:focus {
  background: linear-gradient(135deg, var(--adsi-color-primary) 0%, var(--adsi-color-secondary) 100%);
  border-color: var(--adsi-color-secondary);
}

.button-hover-gradient.core-button--secondary:hover,
.button-hover-gradient.core-button--secondary:focus {
  background: linear-gradient(135deg, var(--adsi-color-secondary) 0%, var(--adsi-color-primary) 100%);
  border-color: var(--adsi-color-primary);
}

.button-hover-gradient.core-button--outline-dark {
  position: relative;
  overflow: hidden;
}

.button-hover-gradient.core-button--outline-dark::before {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, var(--adsi-color-primary) 0%, var(--adsi-color-secondary) 100%);
  transition: left 0.4s ease;
  z-index: -1;
}

.button-hover-gradient.core-button--outline-dark:hover::before,
.button-hover-gradient.core-button--outline-dark:focus::before {
  left: 0;
}

.button-hover-gradient.core-button--outline-dark:hover,
.button-hover-gradient.core-button--outline-dark:focus {
  color: var(--adsi-color-white);
  border-color: var(--adsi-color-secondary);
}

/* Hover Style 5: Minimal - Just darken color (no transform) */
/* No additional styles needed - color darkening already applied in base button styles */

/* Disabled state */
.core-button:disabled,
.core-button.disabled {
  opacity: 0.5;
  cursor: not-allowed;
  pointer-events: none;
}

/* Accessibility - Reduced Motion */
@media (prefers-reduced-motion: reduce) {
  .core-button {
    transition: none;
  }
  
  .core-button:hover,
  .core-button:focus {
    transform: none;
  }
}

/* ========================================
   CoreButtons - Fim
   ======================================== */

/* Screen-reader only utility */
.sr-only {
  position: absolute;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0);
  white-space: nowrap; border: 0;
}

/* ========================================
   CLASSES UTILITÁRIAS GLOBAIS
   ======================================== */

/**
 * Classes de layout transversais usadas em vários módulos
 * Centraliza a gestão de espaçamento e layouts comuns
 */

/* Lista vertical com gap global dividido por 2 */
.reunioes-list,
.doc-recent__list,
.glossario-list {
    display: flex;
    flex-direction: column;
    gap: calc(var(--core-gap, 24px) / 2);
}
