/* =============================================================================
   Igreja Presbiteriana Pioneira de Brasília — ippioneira.com.br
   Cores e tipografia do manual de marca 2026 (identidade_visual_2026).
   Montserrat para texto, Cormorant Garamond itálico só para versículos.
   ============================================================================= */
@font-face {
    font-family: 'Montserrat';
    src: url('fonts/montserrat.woff2') format('woff2');
    font-weight: 100 900;
    font-display: swap;
}
@font-face {
    font-family: 'Cormorant';
    src: url('fonts/cormorant-italico.woff2') format('woff2');
    font-weight: 300 700;
    font-style: italic;
    font-display: swap;
}

:root {
    --verde: #1F4A2C;          /* verde pioneiro */
    --verde2: #163822;         /* verde fundo */
    --folha: #8CBF3F;          /* verde folha, destaque */
    --musgo: #5C8A3A;          /* verde musgo, texto sobre claro */
    --grafite: #4A5550;
    --areia: #F4F1E8;
    --ouro: #C9A34A;
    --tinta: #1C2420;
    --linha: #E2DED1;
    --raio: 16px;
    --raio-sm: 10px;
    --sombra: 0 2px 10px rgba(28, 36, 32, .06);
    --sombra-fwd: 0 14px 34px rgba(28, 36, 32, .14);
    --trans: .22s ease;
}

* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    font-family: 'Montserrat', system-ui, -apple-system, 'Segoe UI', sans-serif;
    font-size: 16px;
    line-height: 1.6;
    color: var(--tinta);
    background: #fff;
    -webkit-font-smoothing: antialiased;
}
img, svg, iframe { max-width: 100%; }
.container { width: min(1180px, 100% - 48px); margin: 0 auto; }
.serif { font-family: 'Cormorant', Georgia, serif; font-style: italic; }
.pular {
    position: absolute; left: -9999px; top: 0; background: var(--folha); color: var(--verde2);
    padding: 12px 18px; font-weight: 700; z-index: 200;
}
.pular:focus { left: 12px; top: 12px; }

/* --------------------------------------------------------------- botoes */
.btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 9px;
    padding: 13px 26px; border: 2px solid transparent; border-radius: 100px;
    font-family: inherit; font-size: 15.5px; font-weight: 700; text-decoration: none;
    cursor: pointer; transition: var(--trans); white-space: nowrap;
}
.btn--lg { padding: 16px 32px; font-size: 16.5px; }
.btn--folha { background: var(--folha); color: var(--verde2); }
.btn--folha:hover { background: #7cae33; transform: translateY(-2px); }
.btn--linha { border-color: rgba(255, 255, 255, .55); color: #fff; }
.btn--linha:hover { background: rgba(255, 255, 255, .12); border-color: #fff; }
.btn--linha.btn--esc { border-color: var(--verde); color: var(--verde); }
.btn--linha.btn--esc:hover { background: var(--verde); color: #fff; }

.kicker {
    display: inline-flex; align-items: center; gap: 12px;
    font-size: 12.5px; font-weight: 700; letter-spacing: .3em; text-transform: uppercase;
    color: var(--folha); margin-bottom: 16px;
}
.kicker::before { content: ""; width: 34px; height: 3px; background: currentColor; }
.kicker--esc { color: var(--musgo); }

/* --------------------------------------------------------------- cabecalho */
.hd {
    position: sticky; top: 0; z-index: 100;
    background: rgba(22, 56, 34, .96);
    backdrop-filter: blur(8px);
    border-bottom: 1px solid rgba(255, 255, 255, .10);
}
.hd__in { display: flex; align-items: center; justify-content: space-between; gap: 24px; height: 76px; }
.hd__logo img { display: block; height: 46px; width: auto; }
.hd__nav { display: flex; align-items: center; gap: 28px; }
.hd__nav a { color: #E8EDE6; text-decoration: none; font-size: 15px; font-weight: 600; transition: var(--trans); }
.hd__nav a:hover { color: var(--folha); }
.hd__cta { padding: 10px 20px; font-size: 14.5px; }
.hd__cta:hover { color: var(--verde2); }
.hd__menu { display: none; width: 44px; height: 44px; background: none; border: 0; cursor: pointer; flex-direction: column; justify-content: center; gap: 5px; }
.hd__menu span { display: block; height: 2px; background: #fff; border-radius: 2px; transition: var(--trans); }

/* --------------------------------------------------------------- hero */
.hero {
    position: relative; overflow: hidden;
    background: radial-gradient(120% 90% at 72% 18%, #2a5f39 0%, var(--verde) 48%, var(--verde2) 100%);
    color: #fff;
    padding: 84px 0 88px;
}
/* O simbolo fica inteiro dentro da tela: cortado, ele vira um borrao sem leitura.
   Acompanha a largura da janela e nunca passa da borda direita. */
/* O simbolo agora e fundo do cartao, nao concorrente dele. */
.hero__marca {
    position: absolute; right: clamp(70px, 7vw, 150px); top: 50%; transform: translateY(-54%);
    width: clamp(260px, 24vw, 400px); opacity: .07; pointer-events: none;
}
.hero__grid { position: relative; display: grid; grid-template-columns: 1.08fr .92fr; gap: 54px; align-items: center; }
.hero__txt { max-width: 620px; }
.hero h1 {
    font-size: clamp(34px, 5.2vw, 56px); font-weight: 800; line-height: 1.08;
    letter-spacing: -.02em; margin-bottom: 22px;
}
.hero h1 em { display: block; font-family: 'Cormorant', Georgia, serif; font-weight: 500; color: var(--folha); font-size: 1.04em; margin-top: 2px; }
.hero__sub { font-size: 18px; line-height: 1.65; color: #D8E4D4; max-width: 620px; margin-bottom: 34px; }
.hero__ctas { display: flex; gap: 14px; flex-wrap: wrap; margin-bottom: 44px; }
.hero__verso {
    font-size: 21px; line-height: 1.5; color: #CFE0C8;
    border-left: 3px solid var(--folha); padding-left: 20px; max-width: 540px;
}
.hero__verso span { display: block; font-family: 'Montserrat', sans-serif; font-style: normal; font-size: 12.5px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--folha); margin-top: 10px; }

/* --------------------------------------------------------------- secoes */
.sec { padding: 86px 0; }
.sec--areia { background: var(--areia); }
.sec--verde { background: var(--verde); color: #fff; }
.sec__head { max-width: 720px; margin-bottom: 46px; }
.sec h2 { font-size: clamp(27px, 3.4vw, 38px); font-weight: 800; line-height: 1.18; letter-spacing: -.015em; color: var(--verde); }
.sec--verde h2 { color: #fff; }
.sec__sub { font-size: 17px; color: var(--grafite); margin-top: 14px; }
.sec--verde .sec__sub { color: #CBDAC5; }

/* cultos */
.cultos { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.cultos .culto__hora { font-size: 40px; }
.culto {
    position: relative; background: #fff; border: 1px solid var(--linha); border-radius: var(--raio);
    padding: 32px 28px 30px; transition: var(--trans);
}
.culto:hover { box-shadow: var(--sombra-fwd); transform: translateY(-3px); }
.culto--destaque { background: var(--verde); border-color: var(--verde); color: #fff; }
.culto__selo {
    position: absolute; top: -13px; left: 28px; background: var(--folha); color: var(--verde2);
    font-size: 11.5px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase;
    padding: 6px 14px; border-radius: 100px;
}
.culto__dia { display: block; font-size: 13px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--musgo); }
.culto--destaque .culto__dia { color: var(--folha); }
.culto__hora { display: block; font-size: 44px; font-weight: 800; line-height: 1.1; color: var(--verde); margin: 4px 0 10px; }
.culto--destaque .culto__hora { color: #fff; }
.culto h3 { font-size: 19.5px; font-weight: 700; margin-bottom: 10px; }
.culto p { font-size: 15px; color: var(--grafite); }
.culto--destaque p { color: #CBDAC5; }
.aviso { margin-top: 26px; font-size: 15px; color: var(--grafite); }
.aviso a { color: var(--musgo); font-weight: 700; }

/* quem somos */
.quem { display: grid; grid-template-columns: 1.25fr .75fr; gap: 46px; align-items: start; }
.quem__txt p { font-size: 16.5px; color: var(--grafite); margin-top: 16px; }
.quem__txt strong { color: var(--tinta); }
.lista { list-style: none; display: grid; gap: 11px; margin-top: 26px; }
.lista li { position: relative; padding-left: 30px; font-size: 16px; }
.lista li::before {
    content: ""; position: absolute; left: 0; top: 8px; width: 15px; height: 8px;
    border-left: 3px solid var(--folha); border-bottom: 3px solid var(--folha); transform: rotate(-45deg);
}
.quem__card { background: var(--verde); color: #fff; border-radius: var(--raio); padding: 34px 30px; }
.quem__card h3 { font-size: 20px; font-weight: 700; margin-bottom: 14px; }
.quem__card p { font-size: 15.5px; color: #CBDAC5; }
.quem__card .serif { font-size: 20px; line-height: 1.45; color: #fff; margin-top: 22px; border-top: 1px solid rgba(255,255,255,.18); padding-top: 22px; }
.quem__card .serif span { display: block; font-family: 'Montserrat', sans-serif; font-style: normal; font-size: 12px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--folha); margin-top: 10px; }

/* primeira visita */
.visita__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.visita { background: var(--areia); border-radius: var(--raio); padding: 28px 26px; }
.visita h3 { font-size: 18px; font-weight: 700; color: var(--verde); margin-bottom: 9px; }
.visita p { font-size: 15.2px; color: var(--grafite); }
.visita--cta { background: var(--verde); color: #fff; display: flex; flex-direction: column; align-items: flex-start; }
.visita--cta h3 { color: var(--folha); }
.visita--cta p { color: #CBDAC5; margin-bottom: 18px; }

/* ministerios */
.min__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.min { background: rgba(255, 255, 255, .07); border: 1px solid rgba(255, 255, 255, .14); border-radius: var(--raio); padding: 26px 24px; }
.min h3 { font-size: 20px; font-weight: 800; color: var(--folha); margin-bottom: 8px; }
.min p { font-size: 15px; color: #CBDAC5; }

/* contribua */
.contrib { display: grid; grid-template-columns: 1.1fr .9fr; gap: 46px; align-items: center; }
.contrib__txt p { font-size: 16.5px; color: var(--grafite); margin-top: 16px; }
.contrib__txt .serif { font-size: 21px; line-height: 1.45; color: var(--verde); border-left: 3px solid var(--folha); padding-left: 20px; margin-top: 26px; }
.contrib__txt .serif span { display: block; font-family: 'Montserrat', sans-serif; font-style: normal; font-size: 12px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--musgo); margin-top: 10px; }
.contrib__card { background: #fff; border: 2px solid var(--verde); border-radius: var(--raio); padding: 34px 30px; text-align: center; }
.contrib__rot { display: block; font-size: 12px; font-weight: 800; letter-spacing: .22em; text-transform: uppercase; color: var(--musgo); }
.contrib__pix { display: block; font-size: 22px; font-weight: 800; color: var(--verde); margin: 10px 0 22px; word-break: break-all; }
.contrib__nota { font-size: 13px; line-height: 1.55; color: var(--grafite); margin-top: 18px; }

/* onde estamos */
.local { display: grid; grid-template-columns: 1fr 1.1fr; background: #fff; border: 1px solid var(--linha); border-radius: var(--raio); overflow: hidden; box-shadow: var(--sombra); }
.local__info { padding: 38px 34px; }
.local__info h3 { font-size: 22px; font-weight: 800; color: var(--verde); margin-bottom: 14px; }
.local__end { font-size: 16.5px; line-height: 1.65; color: var(--grafite); margin-bottom: 22px; }
.local__hor { list-style: none; display: grid; gap: 10px; margin-bottom: 26px; }
.local__hor li { font-size: 15.5px; padding-left: 16px; position: relative; }
.local__hor li::before { content: ""; position: absolute; left: 0; top: 10px; width: 7px; height: 7px; border-radius: 50%; background: var(--folha); }
.local__hor span { font-weight: 700; color: var(--verde); }
.local__acoes { display: flex; gap: 10px; flex-wrap: wrap; }
.local__mapa { min-height: 400px; background: var(--areia); }
.local__mapa iframe { width: 100%; height: 100%; min-height: 400px; border: 0; display: block; }

/* chamada final */
.cta { background: radial-gradient(120% 120% at 20% 10%, #2a5f39 0%, var(--verde) 50%, var(--verde2) 100%); color: #fff; padding: 82px 0; text-align: center; }
.cta__in { max-width: 760px; }
.cta h2 { font-size: clamp(27px, 3.6vw, 40px); font-weight: 800; line-height: 1.16; letter-spacing: -.015em; margin-bottom: 16px; }
.cta p { font-size: 17.5px; color: #CFE0C8; margin-bottom: 30px; }
.cta__acoes { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; }

/* rodape */
.ft { background: var(--verde2); color: #CBDAC5; padding: 62px 0 0; }
.ft__grid { display: grid; grid-template-columns: 1.3fr .85fr .85fr; gap: 40px; padding-bottom: 46px; }
.ft__logo { height: 54px; width: auto; margin-bottom: 18px; }
.ft p, .ft span { font-size: 14.5px; line-height: 1.7; }
.ft h4 { font-size: 13px; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; color: #fff; margin-bottom: 14px; }
.ft__grid a { display: block; font-size: 14.5px; color: #CBDAC5; text-decoration: none; margin-bottom: 9px; }
.ft__grid a:hover { color: var(--folha); }
.ft__redes { margin-top: 16px; }
.ft__redes a { display: inline-flex; align-items: center; gap: 9px; font-weight: 600; }
.ft__base { border-top: 1px solid rgba(255, 255, 255, .12); padding: 20px 0; }
.ft__base .container { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.ft__base span { font-size: 13px; color: #9FB199; }
.ft__base .serif { font-size: 16px; color: #BDD0B6; }

/* --------------------------------------------------------------- responsivo */
@media (max-width: 980px) {
    .cultos, .visita__grid, .min__grid { grid-template-columns: repeat(2, 1fr); }
    .quem, .contrib, .local { grid-template-columns: 1fr; }
    .local__mapa, .local__mapa iframe { min-height: 320px; }
    .hero__marca { opacity: .055; }
    .ft__grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 720px) {
    .container { width: calc(100% - 32px); }
    .hd__nav {
        position: fixed; inset: 76px 0 auto; flex-direction: column; align-items: stretch; gap: 0;
        background: var(--verde2); padding: 8px 20px 22px; display: none;
        border-bottom: 1px solid rgba(255,255,255,.12);
    }
    .hd__nav.aberto { display: flex; }
    .hd__nav a { padding: 14px 0; border-bottom: 1px solid rgba(255,255,255,.08); }
    .hd__cta { margin-top: 14px; justify-content: center; border-bottom: 0; }
    .hd__menu { display: flex; }
    .hd__menu.aberto span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
    .hd__menu.aberto span:nth-child(2) { opacity: 0; }
    .hd__menu.aberto span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
    .hero { padding: 62px 0 68px; }
    .sec { padding: 60px 0; }
    .cultos, .visita__grid, .min__grid, .ft__grid { grid-template-columns: 1fr; }
    .hero__ctas .btn, .cta__acoes .btn { flex: 1 1 100%; }
    .local__info { padding: 30px 22px; }
    .contrib__card { padding: 28px 20px; }
}
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    * { transition: none !important; }
}

/* --------------------------------------------------------------- provas no hero */
.hero__provas { list-style: none; display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 0; }
.hero__provas li {
    display: inline-flex; align-items: center; gap: 8px;
    background: rgba(255, 255, 255, .10); border: 1px solid rgba(255, 255, 255, .20);
    border-radius: 100px; padding: 7px 16px; font-size: 13.5px; font-weight: 600; color: #E3EEDF;
}
.hero__provas li::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--folha); }

/* --------------------------------------------------------------- pregacao */
.preg__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.preg { background: rgba(255, 255, 255, .07); border: 1px solid rgba(255, 255, 255, .14); border-radius: var(--raio); padding: 30px 26px; }
.preg__n {
    display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%;
    background: var(--folha); color: var(--verde2); font-weight: 800; font-size: 18px; margin-bottom: 16px;
}
.preg h3 { font-size: 19.5px; font-weight: 700; color: #fff; margin-bottom: 9px; }
.preg p { font-size: 15.2px; color: #CBDAC5; }
.preg__nota {
    margin-top: 30px; background: rgba(0, 0, 0, .18); border-left: 4px solid var(--folha);
    border-radius: var(--raio-sm); padding: 26px 28px;
    display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap;
}
.preg__nota p { font-size: 16.5px; line-height: 1.6; color: #D8E4D4; max-width: 680px; }
.preg__nota strong { color: #fff; }

/* --------------------------------------------------------------- no que cremos */
.cremos__simbolos { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; margin-bottom: 34px; }
.simbolo { background: var(--areia); border-radius: var(--raio); padding: 30px 26px; border-top: 4px solid var(--folha); }
.simbolo h3 { font-size: 19px; font-weight: 700; color: var(--verde); margin-bottom: 10px; }
.simbolo p { font-size: 15.2px; color: var(--grafite); }
.cremos__base { display: grid; grid-template-columns: 1fr 1fr; gap: 26px; align-items: stretch; }
.cremos__solas { background: #fff; border: 1px solid var(--linha); border-radius: var(--raio); padding: 30px 28px; }
.cremos__solas ul { list-style: none; display: grid; gap: 12px; margin-top: 6px; }
.cremos__solas li { font-size: 15.8px; color: var(--grafite); padding-left: 22px; position: relative; }
.cremos__solas li::before { content: ""; position: absolute; left: 0; top: 10px; width: 8px; height: 8px; border-radius: 50%; background: var(--folha); }
.cremos__solas strong { color: var(--verde); }
.cremos__card { background: var(--verde); color: #fff; border-radius: var(--raio); padding: 32px 30px; display: flex; flex-direction: column; align-items: flex-start; }
.cremos__card .serif { font-size: 21px; line-height: 1.45; color: #fff; }
.cremos__card .serif span { display: block; font-family: 'Montserrat', sans-serif; font-style: normal; font-size: 12px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--folha); margin-top: 10px; }
.cremos__card p + p { font-size: 15.5px; color: #CBDAC5; margin: 20px 0 22px; }
.cremos__card strong { color: #fff; }
.cremos__card .btn { border-color: rgba(255,255,255,.5); color: #fff; }
.cremos__card .btn:hover { background: rgba(255,255,255,.14); }

/* --------------------------------------------------------------- barra fixa de acao */
.barra {
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 95;
    background: rgba(22, 56, 34, .97); backdrop-filter: blur(8px);
    border-top: 1px solid rgba(255, 255, 255, .14);
    transform: translateY(110%); transition: transform .3s ease;
    padding: 12px 0 calc(12px + env(safe-area-inset-bottom));
}
.barra.aparece { transform: translateY(0); }
.barra__in { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.barra__txt { color: #E3EEDF; font-size: 15px; line-height: 1.35; }
.barra__txt strong { display: block; color: #fff; font-size: 16.5px; font-weight: 700; }
.barra__acoes { display: flex; gap: 10px; flex-wrap: wrap; }
.barra .btn { padding: 11px 22px; font-size: 14.5px; }
@media (max-width: 720px) {
    .barra__txt { display: none; }
    .barra__in { justify-content: stretch; }
    .barra__acoes { flex: 1; }
    .barra__acoes .btn { flex: 1; justify-content: center; }
}
body.tem-barra { padding-bottom: 0; }

@media (max-width: 980px) {
    .preg__grid, .cremos__simbolos { grid-template-columns: repeat(2, 1fr); }
    .cremos__base { grid-template-columns: 1fr; }
}
@media (max-width: 720px) {
    .preg__grid, .cremos__simbolos { grid-template-columns: 1fr; }
    .preg__nota { padding: 22px 20px; }
    .preg__nota .btn { width: 100%; justify-content: center; }
}

/* --------------------------------------------------------------- cartao do hero */
.hero__card {
    position: relative;
    background: rgba(255, 255, 255, .07);
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: var(--raio);
    padding: 32px 30px 30px;
    backdrop-filter: blur(4px);
    box-shadow: 0 20px 50px rgba(0, 0, 0, .22);
}
.hero__card-rot { display: block; font-size: 11.5px; font-weight: 800; letter-spacing: .24em; text-transform: uppercase; color: var(--folha); }
.hero__card-dia { display: flex; align-items: baseline; gap: 12px; margin-top: 8px; }
.hero__card-dia strong { font-size: 25px; font-weight: 800; color: #fff; }
.hero__card-dia span { font-size: 42px; font-weight: 800; line-height: 1; color: var(--folha); }
.hero__card-nome { font-size: 17px; color: #D8E4D4; margin-top: 2px; padding-bottom: 20px; border-bottom: 1px solid rgba(255,255,255,.16); }
.hero__card-lista { list-style: none; display: grid; gap: 9px; margin: 20px 0 22px; }
.hero__card-lista li { font-size: 14.8px; color: #CBDAC5; padding-left: 16px; position: relative; }
.hero__card-lista li::before { content: ""; position: absolute; left: 0; top: 9px; width: 6px; height: 6px; border-radius: 50%; background: var(--folha); }
.hero__card-lista span { font-weight: 700; color: #fff; }
.hero__card-end { font-size: 14.5px; line-height: 1.6; color: #CBDAC5; margin-bottom: 18px; }
.hero__card-btn { width: 100%; }
.hero__card-nota { font-size: 16.5px; line-height: 1.45; color: #CFE0C8; margin-top: 22px; padding-top: 20px; border-top: 1px solid rgba(255,255,255,.16); }
.hero__card-nota span { display: block; font-family: 'Montserrat', sans-serif; font-style: normal; font-size: 11px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--folha); margin-top: 8px; }

@media (max-width: 980px) {
    .hero__grid { grid-template-columns: 1fr; gap: 36px; }
    .hero__txt { max-width: none; }
    .hero__marca { right: -140px; width: 380px; opacity: .05; }
}
@media (max-width: 720px) {
    .hero__card { padding: 26px 22px 24px; }
    .hero__card-dia span { font-size: 36px; }
}

/* --------------------------------------------------------------- selo de 66 anos */
.quem__selo { font-size: 16px; color: var(--grafite); background: #fff; border-left: 4px solid var(--folha); border-radius: 0 var(--raio-sm) var(--raio-sm) 0; padding: 12px 18px; margin-top: 16px; }
.quem__selo strong { color: var(--verde); }

/* --------------------------------------------------------------- fale conosco */
.fale { display: grid; grid-template-columns: 1fr 1fr; gap: 46px; align-items: start; }
.fale__txt p { font-size: 16.5px; color: var(--grafite); margin-top: 16px; }
.fale__alt { font-size: 15px; margin-top: 22px; }
.fale__alt a { color: var(--musgo); font-weight: 700; }
.fm { background: #fff; border: 1px solid var(--linha); border-radius: var(--raio); padding: 32px 30px; box-shadow: var(--sombra); }
.fm__dupla { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.fm__grp { margin-bottom: 16px; }
.fm__grp label { display: block; font-size: 13.5px; font-weight: 700; color: var(--verde); margin-bottom: 6px; }
.fm__grp input, .fm__grp select, .fm__grp textarea {
    width: 100%; padding: 13px 15px; font-family: inherit; font-size: 15.5px; color: var(--tinta);
    background: #fff; border: 1px solid var(--linha); border-radius: var(--raio-sm); outline: none;
    transition: var(--trans);
}
.fm__grp textarea { resize: vertical; min-height: 86px; line-height: 1.5; }
.fm__grp input:focus, .fm__grp select:focus, .fm__grp textarea:focus { border-color: var(--musgo); box-shadow: 0 0 0 3px rgba(140, 191, 63, .18); }
.fm__grp input.is-erro { border-color: #C0392B; }
.fm__hp { position: absolute !important; left: -9999px !important; width: 1px !important; height: 1px !important; }
.fm__enviar {
    width: 100%; padding: 15px 26px; background: var(--folha); color: var(--verde2);
    border: 0; border-radius: 100px; font-family: inherit; font-size: 16.5px; font-weight: 700;
    cursor: pointer; transition: var(--trans);
}
.fm__enviar:hover { background: #7cae33; }
.fm__enviar:disabled { opacity: .7; cursor: not-allowed; }
.fm__seguro { font-size: 12.8px; color: var(--grafite); text-align: center; margin-top: 12px; }
@media (max-width: 980px) { .fale { grid-template-columns: 1fr; } }
@media (max-width: 720px) { .fm { padding: 26px 20px; } .fm__dupla { grid-template-columns: 1fr; gap: 0; } }

.local__email { margin-bottom: 20px; }
.local__email a { font-size: 15.5px; font-weight: 600; color: var(--musgo); text-decoration: none; }
.local__email a:hover { text-decoration: underline; }
.ft__grid a[href^="mailto:"] { margin-top: 10px; }

/* --------------------------------------------------------------- culto ao vivo */
.vivo { display: grid; grid-template-columns: 1.55fr .45fr; gap: 24px; align-items: stretch; }
.vivo__player { position: relative; border-radius: var(--raio); overflow: hidden; background: #000; aspect-ratio: 16 / 9; }
.vivo__player iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.vivo__lado { background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.16); border-radius: var(--raio); padding: 28px 26px; display: flex; flex-direction: column; }
.vivo__rot { font-size: 11.5px; font-weight: 800; letter-spacing: .22em; text-transform: uppercase; color: var(--folha); }
.vivo__dia { font-size: 25px; font-weight: 800; color: #fff; margin: 6px 0 12px; }
.vivo__lado p { font-size: 15px; color: #CBDAC5; margin-bottom: auto; padding-bottom: 20px; }
.vivo__lado .btn { width: 100%; margin-top: 10px; }

.serm__head { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin: 42px 0 18px; flex-wrap: wrap; }
.serm__head h3 { font-size: 21px; font-weight: 700; color: #fff; }
.serm__head a { font-size: 14.5px; font-weight: 700; color: var(--folha); text-decoration: none; }
.serm__head a:hover { text-decoration: underline; }
.serm__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.serm { display: block; background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.14); border-radius: var(--raio-sm); overflow: hidden; text-decoration: none; transition: var(--trans); }
.serm:hover { transform: translateY(-3px); border-color: var(--folha); }
.serm img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; background: #000; }
.serm__txt { padding: 16px 16px 18px; }
.serm__data { font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--folha); }
.serm h3 { font-size: 15.5px; line-height: 1.35; font-weight: 600; color: #fff; margin-top: 6px; }

@media (max-width: 980px) {
    .vivo { grid-template-columns: 1fr; }
    .serm__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 720px) { .serm__grid { grid-template-columns: 1fr 1fr; gap: 12px; } .serm h3 { font-size: 14px; } }

.serm img { background: #163822; }
@media (min-width: 721px) and (max-width: 1150px) { .hd__nav { gap: 15px; } .hd__nav a { font-size: 14px; } }

/* --------------------------------------------------------------- PIX com QR Code */
.contrib__qr { display: block; width: 240px; height: 240px; margin: 14px auto 10px; }
.contrib__comoler { font-size: 14px; color: var(--grafite); margin-bottom: 18px; }
.contrib__chave { border-top: 1px solid var(--linha); padding-top: 18px; }
.contrib__botoes { display: grid; gap: 10px; margin-top: 16px; }
.contrib__botoes .btn { width: 100%; }
@media (max-width: 720px) { .contrib__qr { width: 200px; height: 200px; } }

/* --------------------------------------------------------------- credito do desenvolvedor */
.ft__dev a { color: var(--folha); font-weight: 700; text-decoration: none; }
.ft__dev a:hover { text-decoration: underline; }
@media (max-width: 720px) { .ft__base .container { gap: 10px; } }
