/*
Theme Name: Paróquia Matriz
Description: Block theme da Paróquia de Nossa Senhora da Estrela - Ribeira Grande. Editável no Editor do Site (Gutenberg).
Version: 2.4
Requires at least: 6.5
*/

/* Secções */
.matriz-section { padding: 96px 72px; }
.matriz-section.alt { background: var(--wp--preset--color--surface); border-top: 1px solid var(--wp--preset--color--line); border-bottom: 1px solid var(--wp--preset--color--line); }
/* Fundo azul com a ilustração da igreja (img/igreja-linha.svg, Recraft) */
.matriz-hero, .matriz-banner { position: relative; background: linear-gradient(135deg, #01345e 0%, #0b2440 60%, #051729 100%); }
.matriz-hero::before, .matriz-banner::before {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: url(img/igreja-linha.svg) right bottom / auto 100% no-repeat;
  -webkit-mask-image: linear-gradient(90deg, transparent 30%, #000 60%); mask-image: linear-gradient(90deg, transparent 30%, #000 60%);
  opacity: .35;
}
.matriz-hero::before { background-size: 70% auto; }
.matriz-hero > *, .matriz-banner > * { position: relative; }
@media (max-width: 781px) {
  .matriz-hero::before, .matriz-banner::before { opacity: .18; background-size: 160% auto; -webkit-mask-image: none; mask-image: none; }
  .is-layout-grid { grid-template-columns: 1fr !important; }
  ul.matriz-cats { padding: 32px 16px 0 !important; }
}
.matriz-hero { padding: 140px 72px; }
.matriz-banner { padding: 88px 72px; }
.matriz-hero h1 { font-size: clamp(40px, 6vw, 68px); line-height: 1.05; }
@media (max-width: 781px) { .matriz-section, .matriz-hero, .matriz-banner { padding-left: 16px; padding-right: 16px; } .matriz-section { padding-top: 56px; padding-bottom: 56px; } }

/* Texto auxiliar */
.eyebrow, .eyebrow a { font-size: 12.5px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--wp--preset--color--gold); }
.meta { font-size: 13.5px; color: var(--wp--preset--color--muted); }

/* Cartões */
.card { border: 1px solid var(--wp--preset--color--line); border-radius: 4px; overflow: hidden; background: var(--wp--preset--color--surface); transition: box-shadow .15s ease, transform .15s ease; }
.card:hover { box-shadow: 0 12px 28px -12px rgb(39 29 23 / .18); transform: translateY(-2px); }
.card-body, .card.padded { padding: 22px; }
.card .wp-block-post-featured-image { margin: 0; }
.card .wp-block-post-featured-image img { aspect-ratio: 16/9; width: 100%; object-fit: cover; display: block; }
.matriz-thumb a { aspect-ratio: 16/9; display: flex; align-items: center; justify-content: center; background: linear-gradient(140deg, #01345e, #0b3350); }

/* Tabelas de horário */
.matriz-table table { border-collapse: collapse; width: 100%; background: var(--wp--preset--color--surface); }
.matriz-table th { text-align: left; font-size: 12.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--wp--preset--color--muted); }
.matriz-table th, .matriz-table td { border: 0; border-bottom: 1px solid var(--wp--preset--color--line); padding: 18px 20px; }

/* Filtros de categorias em pílulas */
.matriz-cats { list-style: none; padding: 40px 72px 0 !important; margin: 0; display: flex; flex-wrap: wrap; gap: 12px; }
.matriz-cats + .wp-block-query { padding-top: 40px; margin-top: 0; }
.matriz-cats li a { display: inline-block; padding: 9px 18px; border-radius: 20px; border: 1px solid var(--wp--preset--color--line); font-size: 13.5px; }
.matriz-cats li.current-cat a { background: var(--wp--preset--color--navy); color: var(--wp--preset--color--surface); border-color: transparent; }

/* Paginação */
.wp-block-query-pagination .page-numbers { padding: 8px 14px; border: 1px solid var(--wp--preset--color--line); border-radius: 3px; }
.wp-block-query-pagination .page-numbers.current { background: var(--wp--preset--color--navy); color: var(--wp--preset--color--surface); }

/* Header / footer */
.matriz-header { padding: 20px 72px; border-bottom: 1px solid var(--wp--preset--color--line); background: var(--wp--preset--color--surface); }
.matriz-header .current-menu-item > a { font-weight: 600; color: var(--wp--preset--color--navy); border-bottom: 1.5px solid currentColor; padding-bottom: 4px; }
.matriz-footer { padding: 80px 72px 24px; }
.matriz-footer a { color: inherit; }
@media (max-width: 781px) { .matriz-header, .matriz-footer { padding-left: 16px; padding-right: 16px; } }

a:hover { opacity: .75; }

/* Botão principal sobre fundo azul */
.matriz-hero .wp-block-button:not(.is-style-outline) .wp-block-button__link { background: var(--wp--preset--color--gold); color: var(--wp--preset--color--navy-dark); }

/* Ícones dos grupos e movimentos */
.matriz-icon { width: 56px; height: 56px; border-radius: 50%; background: var(--wp--preset--color--navy); display: flex; align-items: center; justify-content: center; }

/* ---- Calendário (Events Manager) com o aspeto do mockup ---- */
.matriz-calendario { gap: 56px; }
.matriz-calendario .em.pixelbones { --font-family: var(--wp--preset--font-family--sans); font-family: var(--wp--preset--font-family--sans); }
.matriz-calendario .em-calendar { --accent-color: var(--wp--preset--color--navy); --border-color: var(--wp--preset--color--line); padding: 0; }
.matriz-calendario .em-cal-nav { margin-bottom: 24px !important; }
.matriz-calendario .em-cal-nav .em-month-picker { font-family: var(--wp--preset--font-family--serif) !important; font-size: 26px !important; font-weight: 600 !important; color: var(--wp--preset--color--ink) !important; border: 0 !important; background: none !important; padding: 0 !important; }
.matriz-calendario .em-calnav-today { display: none !important; }
.matriz-calendario .em-calnav { width: 34px; height: 34px; border: 1px solid var(--wp--preset--color--line); border-radius: 4px; display: inline-flex !important; align-items: center; justify-content: center; }
.matriz-calendario .em-calnav svg { width: 12px; height: 12px; }
.matriz-calendario .em-cal-head { background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--line); border-bottom: 0; border-radius: 4px 4px 0 0; }
.matriz-calendario .em-cal-head .em-cal-day { font-size: 12px !important; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--wp--preset--color--muted) !important; padding: 12px 0 !important; }
.matriz-calendario .em-cal-body { border: 1px solid var(--wp--preset--color--line) !important; border-radius: 0 0 4px 4px; background: var(--wp--preset--color--surface); --grid-auto-rows: 76px !important; }
.matriz-calendario .em-cal-body .em-cal-day { border-color: #ede9e2 !important; }
.matriz-calendario .em-cal-day-date { font-size: 13px !important; }
.matriz-calendario .em-cal-day.eventful .em-cal-day-date { font-weight: 600; color: var(--wp--preset--color--navy); }
.matriz-calendario .em-cal-day-date.today span, .matriz-calendario .em-cal-day.today .em-cal-day-date span { background: var(--wp--preset--color--navy) !important; color: #fff !important; border-radius: 50%; }
.matriz-legenda { display: flex; align-items: center; gap: 8px; margin-top: 16px; }
.matriz-legenda .dot { width: 8px; height: 8px; border-radius: 50%; display: inline-block; }
.matriz-legenda .dot-gold { margin-left: 16px; }
.dot-navy { background: var(--wp--preset--color--navy); } .dot-gold { background: var(--wp--preset--color--gold); }

/* Próximos eventos (lista) e cartão de evento numa notícia */
.matriz-calendario h2 { font-size: 22px; margin-bottom: 20px; }
.matriz-calendario .em-events-list, .matriz-calendario .em.em-list { display: flex; flex-direction: column; gap: 14px; }
.matriz-evento { display: flex; gap: 16px; padding: 16px; border: 1px solid var(--wp--preset--color--line); border-radius: 4px; background: var(--wp--preset--color--surface); margin-bottom: 14px; text-decoration: none; }
.matriz-evento-data { width: 52px; height: 52px; flex-shrink: 0; border-radius: 4px; background: var(--wp--preset--color--navy); color: #fdf8f0; display: flex; flex-direction: column; align-items: center; justify-content: center; line-height: 1.1; }
.matriz-evento.grupo .matriz-evento-data { background: var(--wp--preset--color--gold); color: var(--wp--preset--color--ink); }
.matriz-evento-data span { font-size: 11px; letter-spacing: .04em; text-transform: uppercase; }
.matriz-evento-data strong { font-size: 17px; }
.matriz-evento-info { display: flex; flex-direction: column; gap: 2px; }
.matriz-evento-info strong, .matriz-evento-info strong a { font-size: 15px; color: var(--wp--preset--color--ink); }
.matriz-evento-info > span { font-size: 13px; color: var(--wp--preset--color--muted); }
.matriz-evento-ligado { margin-top: 32px !important; }
@media (max-width: 781px) { .matriz-calendario { gap: 32px; } }
.matriz-calendario .em-cal-nav .month { padding-left: 0 !important; margin-left: 0 !important; }
.matriz-calendario .em-cal-nav .month form { padding: 0 !important; }
.matriz-calendario .em-events-list, .matriz-calendario .em.em-list { gap: 0; }
.matriz-calendario .em-events-list > :not(.matriz-evento) { margin: 0 !important; padding: 0 !important; border: 0 !important; }
.matriz-evento-info strong a, .matriz-calendario .matriz-evento-info a { text-decoration: none; color: var(--wp--preset--color--ink) !important; }

/* Página do evento */
.matriz-evento-meta { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 20px; margin-bottom: 32px; }
.matriz-evento-meta .card p { margin: 0; }
.matriz-evento-meta .card .eyebrow { margin-bottom: 8px; }
.matriz-evento-meta ul { list-style: none; padding: 0; margin: 0; }
.matriz-evento-notas:empty { display: none; }
.matriz-evento-botoes { display: flex; flex-wrap: wrap; gap: 12px; margin: 32px 0; }
/* O CSS do Events Manager pinta os links a azul: repor as cores dos botões do tema. */
.matriz-evento-botoes .wp-block-button__link { background: var(--wp--preset--color--navy) !important; color: var(--wp--preset--color--surface) !important; border: 1.5px solid var(--wp--preset--color--navy) !important; text-decoration: none; }
.matriz-evento-botoes .is-style-outline .wp-block-button__link { background: transparent !important; color: var(--wp--preset--color--navy) !important; }

/* ---- Menu responsivo ---- */
.matriz-header { flex-wrap: nowrap !important; gap: 16px; }
.matriz-header .wp-block-image img { max-width: 100%; }
.wp-block-navigation__responsive-container-open svg,
.wp-block-navigation__responsive-container-close svg { width: 28px; height: 28px; }
@media (max-width: 781px) {
  .matriz-header { padding-top: 14px; padding-bottom: 14px; }
  .matriz-header .wp-block-image { flex: 1 1 auto; min-width: 0; }
  .matriz-header .wp-block-image img { height: 44px !important; width: auto !important; }
}

/* Menu aberto (overlay) */
.wp-block-navigation__responsive-container.is-menu-open {
  background: linear-gradient(160deg, #01345e 0%, #051729 100%) !important;
  color: #fdf8f0 !important;
  padding: 24px 24px 40px !important;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close { color: #fdf8f0; top: 22px; right: 20px; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 72px !important; align-items: stretch !important; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { align-items: stretch !important; gap: 0 !important; width: 100%; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { width: 100%; border-bottom: 1px solid rgb(253 248 240 / .14); }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
  display: block; width: 100%; padding: 18px 0 !important; text-align: left;
  font-family: var(--wp--preset--font-family--serif); font-size: 28px; font-weight: 500; color: #fdf8f0 !important;
}
.wp-block-navigation__responsive-container.is-menu-open .current-menu-item > a { color: var(--wp--preset--color--gold) !important; border: 0; }

/* Ecrãs "Em breve" e "Manutenção" */
.matriz-ecra { min-height: 100vh; min-height: 100dvh; display: flex; flex-direction: column; justify-content: center; }
.matriz-ecra .meta { color: rgb(253 248 240 / .7); }
.matriz-ecra .wp-block-image { margin-bottom: 32px; }
.error404 .wp-block-search { max-width: 480px; }
.error404 .wp-block-search__button { background: var(--wp--preset--color--navy); color: #fff; border: 0; }
.matriz-header .wp-block-navigation__container { flex-wrap: nowrap !important; gap: clamp(20px, 2.6vw, 40px) !important; white-space: nowrap; }
.matriz-ecra .wp-block-image img { height: 88px !important; }
.custo-chamada { font-size: .8em; opacity: .75; white-space: nowrap; }

/* Contactos (página Paróquia) */
.matriz-contactos { gap: 32px; align-items: stretch !important; }
.matriz-contactos .contacto { gap: 10px !important; height: 100%; }
.matriz-contactos .contacto p { margin: 0; }
.matriz-contactos .contacto .matriz-icon { width: 48px; height: 48px; margin-bottom: 6px; }
.matriz-contactos .contacto a { text-decoration: none; }
.matriz-contactos .custo-chamada { display: inline-block; margin-top: 2px; }
.contacto-acao { margin-top: auto !important; padding-top: 8px; font-size: 14px; font-weight: 600; }
.contacto-acao a { color: var(--wp--preset--color--navy); }
.matriz-mapa { height: 100%; min-height: 360px; border: 1px solid var(--wp--preset--color--line); border-radius: 4px; overflow: hidden; }
.matriz-mapa iframe { width: 100%; height: 100%; min-height: 360px; border: 0; display: block; }
.matriz-contactos .custo-chamada { white-space: normal; }

/* Página Direto */
.matriz-direto { aspect-ratio: 16/9; width: 100%; background: #051729; border-radius: 4px; overflow: hidden; margin-bottom: 8px; }
.matriz-direto iframe { width: 100%; height: 100%; border: 0; display: block; }
.nav-direto > a::before { content: ""; display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: #d93025; margin-right: 8px; vertical-align: middle; animation: matriz-pulso 1.6s ease-in-out infinite; }
@keyframes matriz-pulso { 50% { opacity: .35; } }
@media (prefers-reduced-motion: reduce) { .nav-direto > a::before { animation: none; } }

/* Menu ☰ abaixo de 1200px (o bloco de navegação só o faz abaixo de 600px) */
.matriz-header .wp-block-image { flex-shrink: 0; }
@media (max-width: 1199px) {
  .matriz-header .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex !important; }
  .matriz-header .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none !important; }
}

/* Barra de consentimento de cookies */
.matriz-cookies { position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 1000; max-width: 720px; margin: 0 auto; padding: 20px 24px; display: flex; gap: 20px; align-items: center; flex-wrap: wrap; background: var(--wp--preset--color--navy-dark); color: #fdf8f0; border-radius: 6px; box-shadow: 0 12px 32px rgb(0 0 0 / .25); font-size: 14px; }
.matriz-cookies[hidden] { display: none; }
.matriz-cookies p { margin: 0; flex: 1 1 280px; }
.matriz-cookies .wp-block-buttons { gap: 10px; }
.matriz-cookies .is-style-outline .wp-block-button__link { background: transparent; color: #fdf8f0; border: 1.5px solid currentColor; }
.matriz-cookies .wp-block-button:not(.is-style-outline) .wp-block-button__link { background: var(--wp--preset--color--gold); color: var(--wp--preset--color--ink); }
