/*
Theme Name: IPJA Blocks
Theme URI: https://www.ipjagyn.org.br/
Author: Igreja Presbiteriana do Jardim América
~Description: Tema editorial e acolhedor, desenvolvido para a IPJA e para o editor de blocos do WordPress.
Version: 0.3.0.3.0.3.0.3.0.3.0.3.0.3.0.3.0.4.0.4.0.4.0.4.0.4.0.4.5
Requires at least: 6.6
Requires PHP: 8.1
Text Domain: ipja-blocks
*/

@import url('https://fonts.googleapis.com/css2?family=Crimson+Pro:opsz,wght@8..72,400;8..72,500;8..72,600;8..72,700&family=Source+Sans+3:wght@400;500;600;700&display=swap');

:root { --wp--preset--spacing--70: clamp(4rem, 9vw, 9rem); }
html { scroll-behavior: smooth; }
body { overflow-x: hidden; }
.wp-site-blocks { overflow: clip; }
.wp-site-blocks > header { position: relative; z-index: 5; }
.ipja-kicker { letter-spacing: .13em; text-transform: uppercase; font-size: .74rem; font-weight: 700; }
.ipja-rule { width: 3rem; height: 2px; background: var(--wp--preset--color--gold); margin: 1.5rem 0; }
.ipja-image-placeholder { min-height: 22rem; background: linear-gradient(135deg, #d9ded4 0%, #a9b8aa 100%); position: relative; overflow: hidden; }
.ipja-image-placeholder::after { content: 'Espaço reservado para foto'; position: absolute; inset: auto 1.5rem 1.25rem; color: #173d30; font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; font-weight: 700; }
.ipja-image-placeholder::before { content: ''; position: absolute; width: 15rem; height: 15rem; border: 1px solid rgba(255,255,255,.65); border-radius: 50%; top: -5rem; right: -4rem; }
.ipja-card { height: 100%; border: 1px solid var(--wp--preset--color--line); box-shadow: 0 14px 38px rgba(19, 45, 35, .06); }
.ipja-card .wp-block-group { height: 100%; }
.ipja-hero { min-height: min(760px, calc(100vh - 80px)); display: flex; align-items: end; background: url('/wp-content/themes/ipja-blocks/assets/hero-exterior.jpeg') center / cover no-repeat; }
.ipja-hero .wp-block-cover__inner-container { width: 100%; max-width: 1240px; margin: 0 auto; padding: clamp(4rem, 8vw, 7.5rem) 2rem clamp(3rem, 6vw, 5rem); }
.ipja-hero h1 { max-width: 820px; text-wrap: balance; font-size: clamp(3.8rem, 8vw, 7.6rem) !important; letter-spacing: -.045em; }
.ipja-hero .wp-block-columns { align-items: flex-end; }
.ipja-hero-card { border-left: 2px solid var(--wp--preset--color--gold); backdrop-filter: blur(10px); }
.ipja-display { font-family: var(--wp--preset--font-family--serif); font-size: clamp(5rem, 15vw, 12rem); line-height: .72; letter-spacing: -.08em; color: var(--wp--preset--color--sage); opacity: .88; }
.ipja-manifesto { position: relative; }
.ipja-manifesto::before { content: ''; position: absolute; top: 4rem; left: -18vw; width: 34vw; height: 34vw; border: 1px solid var(--wp--preset--color--line); border-radius: 50%; pointer-events: none; }
.ipja-section-heading { max-width: 720px; text-wrap: balance; }
.ipja-life-grid .wp-block-column:nth-child(2) { transform: translateY(4rem); }
.ipja-life-grid .wp-block-column:nth-child(3) { transform: translateY(1.5rem); }
.ipja-life-card { min-height: 290px; transition: transform .25s ease, box-shadow .25s ease; }
.ipja-life-card:hover { transform: translateY(-8px); box-shadow: 0 22px 45px rgba(19,45,35,.15); }
.ipja-life-number { font-family: var(--wp--preset--font-family--serif); font-size: 4rem; line-height: .8; color: var(--wp--preset--color--gold); }
.ipja-visit { position: relative; overflow: hidden; }
/* A chamada final segue a mesma coluna de leitura das seções anteriores. */
.home .ipja-visit .alignwide > :where(:not(.alignleft):not(.alignright):not(.alignfull)) { max-width: 760px !important; }
.ipja-visit::after { content: 'IPJA'; position: absolute; right: -1rem; bottom: -3.2rem; font-family: var(--wp--preset--font-family--serif); font-size: clamp(8rem, 20vw, 18rem); line-height: 1; color: rgba(255,255,255,.06); pointer-events: none; }
.ipja-footer-link a { text-decoration: none; }
.ipja-page-hero { position: relative; overflow: hidden; }
.ipja-page-hero::after { content: ''; position: absolute; width: 38rem; height: 38rem; border: 1px solid rgba(23,61,48,.16); border-radius: 50%; right: -13rem; top: -15rem; pointer-events: none; }
.has-forest-deep-background-color.ipja-page-hero::after { border-color: rgba(255,255,255,.12); }
.ipja-page-hero > * { position: relative; z-index: 1; }
/* A abertura das páginas internas e seu conteúdo começam na mesma coluna. */
.ipja-page-hero .alignwide > :where(:not(.alignleft):not(.alignright):not(.alignfull)) { max-width: 760px !important; }
.ipja-page-section .wp-block-columns { gap: clamp(2rem, 4vw, 5rem); }
.ipja-info-grid > .wp-block-column { padding: 1.75rem 0; border-top: 1px solid var(--wp--preset--color--line); }
.ipja-info-grid > .wp-block-column h2, .ipja-info-grid > .wp-block-column h3 { margin-top: 0; }
.ipja-note { border-left: 3px solid var(--wp--preset--color--gold); }
.wp-block-embed { box-shadow: 0 18px 45px rgba(19,45,35,.14); }
.ipja-sermon-feed__intro { max-width: 700px; margin-bottom: clamp(2.5rem, 5vw, 5rem); }
.ipja-sermon-feed__intro h2 { font-size: clamp(2.3rem, 4vw, 4rem); text-wrap: balance; }
.ipja-sermon-feed__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1.5rem, 3vw, 2.5rem); }
.ipja-sermon-card { display: grid; gap: 1rem; }
.ipja-sermon-card__image { min-height: 220px; display: grid; place-items: center; background: linear-gradient(135deg, var(--wp--preset--color--forest), var(--wp--preset--color--forest-deep)); background-position: center; background-size: cover; text-decoration: none; position: relative; isolation: isolate; }
.ipja-sermon-card__image::before { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(16,44,34,.08), rgba(16,44,34,.72)); z-index: -1; }
.ipja-sermon-card__image span { color: white; border: 1px solid rgba(255,255,255,.8); padding: .55rem .9rem; font-size: .75rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.ipja-sermon-card .ipja-kicker { color: var(--wp--preset--color--gold); margin: 0; }
.ipja-sermon-card h3 { font-size: 1.6rem; margin: 0; line-height: 1.05; }
.ipja-sermon-card h3 a { text-decoration: none; }
.ipja-sermon-feed__more { margin-top: 3rem; }
.ipja-sermons-empty { padding: 2rem; background: var(--wp--preset--color--sage); border-left: 3px solid var(--wp--preset--color--gold); }
.has-forest-deep-background-color a { color: var(--wp--preset--color--white); }
.has-forest-deep-background-color a:hover { color: var(--wp--preset--color--sage); }
.wp-block-navigation .wp-block-navigation-item__content { text-decoration: none; }
.wp-block-button__link { transition: transform .2s ease, background-color .2s ease; }
.wp-block-button__link:hover { transform: translateY(-2px); }
@media (max-width: 781px) {
  .ipja-hero { min-height: 690px; }
  .ipja-hero .wp-block-cover__inner-container { padding-inline: 1.75rem; }
  .ipja-hero h1 { font-size: clamp(3.2rem, 14vw, 4.6rem) !important; }
  .ipja-life-grid .wp-block-column:nth-child(2), .ipja-life-grid .wp-block-column:nth-child(3) { transform: none; }
  .ipja-manifesto::before { display: none; }
  .ipja-page-hero::after { width: 22rem; height: 22rem; right: -10rem; top: -9rem; }
  .ipja-sermon-feed__grid { grid-template-columns: 1fr; }
}


/* Home: remove a margem automática entre grandes seções. */
.home main > :where(.wp-block-cover, .wp-block-group) { margin-block-start: 0 !important; }

/* Home: remove a margem entre cabeçalho, conteúdo e rodapé. */
.home main, .home footer { margin-block-start: 0 !important; }

/* Página Sobre: composição editorial alinhada às páginas novas. */
.page-id-12 main.wp-block-group {
  padding: 0 !important;
}
.page-id-12 main > .wp-block-post-title,
.page-id-12 main > .wp-block-separator {
  display: none;
}
.ipja-about-hero h1 {
  max-width: 890px;
  text-wrap: balance;
}
.ipja-about-intro .wp-block-column:first-child {
  max-width: 560px;
}
.ipja-about-church-image {
  margin: 0;
  height: 100%;
}
.ipja-about-church-image img {
  display: block;
  width: 100%;
  min-height: 480px;
  height: 100%;
  object-fit: cover;
}
.ipja-about-convictions .ipja-info-grid > .wp-block-column {
  border-color: rgba(255,255,255,.2);
}
.ipja-about-leaders {
  gap: clamp(1.25rem, 2.5vw, 2.5rem);
}
.ipja-about-leader .wp-block-image {
  margin: 0 0 1.5rem;
  overflow: hidden;
  background: var(--wp--preset--color--sage);
}
.ipja-about-leader .wp-block-image img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  transition: transform .35s ease;
}
.ipja-about-leader:hover .wp-block-image img {
  transform: scale(1.025);
}
.ipja-about-leader h3 {
  margin-bottom: .45rem;
}
.ipja-about-leader .ipja-kicker {
  margin-top: 0;
}
.ipja-about-cta h2,
.ipja-about-cta p {
  max-width: 720px;
}
@media (max-width: 781px) {
  .ipja-about-church-image img {
    min-height: 340px;
  }
}

/* A página Sobre começa diretamente após o cabeçalho. */
.page-id-12 main > .wp-block-post-content { margin-block-start: 0 !important; }

/* Sem margem automática entre o cabeçalho e o conteúdo institucional. */
.page-id-12 main { margin-block-start: 0 !important; }

/* Sem espaçamento automático antes do rodapé na página Sobre. */
.page-id-12 footer { margin-block-start: 0 !important; }

/* Páginas editoriais: seções de largura total, sem lacunas automáticas. */
.page-template-template-plain .wp-block-post-content:has(> .ipja-page-hero) {
  max-width: none !important;
  width: 100%;
}
.page-template-template-plain .wp-block-post-content:has(> .ipja-page-hero) > .alignfull {
  width: 100vw;
  max-width: 100vw;
  margin-inline: calc(50% - 50vw) !important;
  margin-block-start: 0 !important;
}
.page-template-template-plain:has(.ipja-page-hero) main,
.page-template-template-plain:has(.ipja-page-hero) footer {
  margin-block-start: 0 !important;
}

/* Qualquer página com hero começa e termina sem margem automática. */
body:has(.ipja-page-hero) main,
body:has(.ipja-page-hero) footer {
  margin-block-start: 0 !important;
}

/* Espaçamento confortável em telas pequenas, inclusive nas seções em largura total. */
@media (max-width: 781px) {
  .wp-block-post-content > .ipja-page-section,
  .wp-block-post-content > .wp-block-group.alignwide,
  .wp-block-post-content > .wp-block-group.alignfull > .alignwide {
    padding-inline: clamp(1.25rem, 6vw, 2rem) !important;
  }
  .wp-block-navigation__responsive-container-open {
    min-width: 44px;
    min-height: 44px;
    margin: -10px;
    padding: 10px;
  }
  .wp-block-navigation__responsive-container {
    padding: 1.5rem;
  }
  .wp-block-navigation__responsive-container-content {
    gap: 1.25rem;
  }
}

/* Todo conteúdo iniciado por hero usa a mesma moldura editorial. */
body:has(.ipja-page-hero) main > .wp-block-post-title,
body:has(.ipja-page-hero) main > .wp-block-separator { display: none; }
body:has(.ipja-page-hero) main > .wp-block-post-content { width: 100%; max-width: none !important; margin-block-start: 0 !important; }
body:has(.ipja-page-hero) .wp-block-post-content > .alignfull { width: 100vw; max-width: 100vw; margin-inline: calc(50% - 50vw) !important; margin-block-start: 0 !important; }

@media (max-width: 781px) {
  .home .ipja-manifesto { padding-inline: 1.5rem !important; }
  .home .ipja-hero .wp-block-cover__inner-container { padding-inline: 1.5rem !important; }
}

/* Remove o block-gap herdado quando a página começa com hero. */
body:has(.ipja-page-hero) main { row-gap: 0 !important; }

body:has(.ipja-page-hero) main { padding-block: 0 !important; }
