/* ==========================================================================
   Dra. Taís Matos 65013
   Identidade derivada do material gráfico oficial: branco com campos de cor
   saturada, tipografia condensada pesada em caixas de cor, padrão de quartos
   de círculo e sombra longa. As peças-chave (logotipo, número e as artes das
   pautas) entram como imagem oficial, não recriadas.
   ========================================================================== */

:root {
    /* Cores amostradas dos PNGs do material */
    --vermelho:     #E52629;
    --vermelho-esc: #B31D20;
    --magenta:      #D34FD3;
    --roxo:         #7B3F9D;
    --rosa:         #E0407F;
    --rosa-esc:     #952063;
    --turquesa:     #12B3C4;
    --ciano:        #00A0D0;
    --azul:         #123A78;
    --amarelo:      #F5B400;
    --laranja:      #F2600F;

    --creme:        #F1E9DC;
    --branco:       #FFFFFF;
    --tinta:        #17181B;
    --tinta-suave:  #55585F;
    --linha:        rgba(23, 24, 27, .12);

    /* Compatibilidade com o painel, que usa estes nomes */
    --coral:        var(--vermelho);
    --coral-escuro: var(--vermelho-esc);
    --creme-2:      #E7DDCB;

    --display:       'Anton', 'Arial Narrow', sans-serif;
    --display-suave: 'Baloo 2', 'Trebuchet MS', sans-serif;
    --corpo:         'Barlow', system-ui, -apple-system, sans-serif;
    --rotulo:        'Barlow Condensed', 'Barlow', sans-serif;

    --largura: 1180px;
    --raio:    16px;
    --sombra:  0 18px 40px -22px rgba(23, 24, 27, .45);

    /* Padrão de quartos de círculo, o mesmo do material impresso */
    --padrao: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='80' viewBox='0 0 80 80'%3E%3Cpath d='M0 40A40 40 0 0 1 40 0L40 40Z' fill='rgba(255,255,255,0.08)'/%3E%3Cpath d='M80 40A40 40 0 0 1 40 80L40 40Z' fill='rgba(255,255,255,0.08)'/%3E%3C/svg%3E");
}

*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }

body {
    margin: 0;
    background: var(--branco);
    color: var(--tinta);
    font-family: var(--corpo);
    font-size: 1.0625rem;
    line-height: 1.6;
    overflow-x: hidden;
}

img { max-width: 100%; height: auto; display: block; }
a { color: var(--vermelho-esc); }

:focus-visible { outline: 3px solid var(--tinta); outline-offset: 3px; border-radius: 3px; }

.container { width: min(100% - 2.5rem, var(--largura)); margin-inline: auto; }

.pular-para-conteudo {
    position: absolute; left: -9999px; top: 0; z-index: 999;
    background: var(--tinta); color: var(--branco); padding: .75rem 1.25rem;
}
.pular-para-conteudo:focus { left: 0; }

/* --------------------------------------------------------------------------
   Tipografia — condensada pesada, como nos cartazes
   -------------------------------------------------------------------------- */

h1, h2, h3 { margin: 0; font-weight: 400; }

.titulo {
    font-family: var(--display);
    text-transform: uppercase;
    line-height: .92;
    letter-spacing: .005em;
}

.titulo--gigante { font-size: clamp(2.8rem, 8vw, 6rem); }
.titulo--grande  { font-size: clamp(2.2rem, 5.5vw, 4rem); }
.titulo--medio   { font-size: clamp(1.6rem, 3.2vw, 2.4rem); }

/* Caixa de cor atrás da palavra, o recurso central do material */
.cx {
    display: inline-block;
    padding: .06em .22em .1em;
    margin: 0 .04em .12em 0;
    color: var(--branco);
    background: var(--cx-cor, var(--vermelho));
}
.cx--vermelho { --cx-cor: var(--vermelho); }
.cx--roxo     { --cx-cor: var(--roxo); }
.cx--rosa     { --cx-cor: var(--rosa); }
.cx--magenta  { --cx-cor: var(--magenta); }
.cx--turquesa { --cx-cor: var(--turquesa); }
.cx--azul     { --cx-cor: var(--azul); }
.cx--laranja  { --cx-cor: var(--laranja); }
.cx--amarelo  { --cx-cor: var(--amarelo); color: var(--tinta); }

.rotulo {
    font-family: var(--rotulo);
    font-weight: 600;
    font-size: .8125rem;
    letter-spacing: .34em;
    text-transform: uppercase;
    margin: 0;
}

.secao { padding: clamp(3.5rem, 8vw, 6.5rem) 0; }
.secao--estreita .container { max-width: 760px; }

.secao__chamada {
    font-size: clamp(1.05rem, 2vw, 1.28rem);
    color: var(--tinta-suave);
    max-width: 56ch;
    margin: 1.1rem 0 0;
}

/* --------------------------------------------------------------------------
   Campos de cor
   -------------------------------------------------------------------------- */

.campo-cor {
    position: relative;
    color: var(--branco);
    background-color: var(--campo-cor, var(--vermelho));
    background-image: var(--padrao);
    overflow: hidden;
}
.campo-cor .secao__chamada { color: rgba(255, 255, 255, .9); }
.campo-cor a:not(.botao) { color: var(--branco); }

.tema-ciano    { --campo-cor: #0090C0; --tema: var(--ciano);    --tema-2: var(--magenta); }
.tema-azul     { --campo-cor: #123A78; --tema: var(--azul);     --tema-2: var(--laranja); }
.tema-roxo     { --campo-cor: #7B3F9D; --tema: var(--roxo);     --tema-2: var(--amarelo); }
.tema-rosa     { --campo-cor: #C33070; --tema: var(--rosa);     --tema-2: var(--amarelo); }
.tema-magenta  { --campo-cor: #B83473; --tema: var(--rosa-esc); --tema-2: var(--vermelho); }
.tema-vermelho { --campo-cor: #E52629; --tema: var(--vermelho); --tema-2: var(--amarelo); }

/* --------------------------------------------------------------------------
   Botões
   -------------------------------------------------------------------------- */

.botao {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    font-family: var(--corpo);
    font-weight: 800;
    font-size: .95rem;
    letter-spacing: .06em;
    text-transform: uppercase;
    text-decoration: none;
    padding: 1rem 1.9rem;
    border: 0;
    cursor: pointer;
    transition: transform .16s ease, background-color .16s ease, color .16s ease;
}

.botao--principal { background: var(--vermelho); color: var(--branco); }
.botao--principal:hover { background: var(--vermelho-esc); transform: translateY(-2px); }

.botao--contorno { background: transparent; color: var(--tinta); box-shadow: inset 0 0 0 3px currentColor; }
.botao--contorno:hover { background: var(--tinta); color: var(--branco); transform: translateY(-2px); }

.botao--claro { background: var(--branco); color: var(--tinta); }
.botao--claro:hover { transform: translateY(-2px); }

.campo-cor .botao--contorno { color: var(--branco); }
.campo-cor .botao--contorno:hover { background: var(--branco); color: var(--tinta); }

.botao--largo { width: 100%; padding-block: 1.15rem; font-size: 1rem; }

/* --------------------------------------------------------------------------
   Cabeçalho
   -------------------------------------------------------------------------- */

.cabecalho {
    position: sticky; top: 0; z-index: 50;
    background: rgba(255, 255, 255, .95);
    backdrop-filter: blur(10px);
    border-bottom: 1px solid var(--linha);
}

.cabecalho__barra {
    display: flex; align-items: center; justify-content: space-between;
    gap: 1.5rem; padding: .6rem 0;
}

.marca { display: flex; align-items: center; gap: .8rem; text-decoration: none; }
.marca__assinatura { height: 52px; width: auto; }

.marca__numero {
    font-family: var(--display);
    font-size: 1.1rem;
    letter-spacing: .02em;
    background: var(--vermelho);
    color: var(--branco);
    padding: .18rem .5rem .1rem;
}

.menu { display: flex; align-items: center; gap: 1.6rem; }
.menu__links { display: flex; gap: 1.6rem; }

.menu a {
    font-family: var(--rotulo);
    font-weight: 600;
    font-size: 1.02rem;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--tinta);
    text-decoration: none;
    border-bottom: 3px solid transparent;
}
.menu a:hover, .menu a[aria-current="page"] { border-bottom-color: var(--vermelho); }
.menu .botao { padding: .65rem 1.3rem; font-size: .82rem; }

/* --------------------------------------------------------------------------
   Hero
   -------------------------------------------------------------------------- */

.hero { position: relative; background: var(--branco); overflow: hidden; }

.hero__grade {
    display: grid;
    grid-template-columns: 1.02fr .98fr;
    align-items: end;
    gap: 2rem;
    padding-top: clamp(2rem, 5vw, 3.5rem);
}

.hero__texto { padding-bottom: clamp(1rem, 2.2vw, 1.6rem); position: relative; z-index: 3; }

.hero__slogan { width: min(100%, 520px); margin-bottom: 1.6rem; }

.hero__linha {
    font-size: clamp(1.05rem, 2vw, 1.25rem);
    color: var(--tinta-suave);
    margin: 0 0 2rem;
    max-width: 38ch;
}

.hero__acoes { display: flex; flex-wrap: wrap; gap: .8rem; }

.hero__figura { position: relative; z-index: 2; display: flex; justify-content: center; align-items: flex-end; }

.hero__foto {
    position: relative; z-index: 2;
    width: 100%; max-width: 520px; height: auto;
    margin-bottom: -158px;
    filter: drop-shadow(0 26px 40px rgba(23, 24, 27, .22));
}

.hero__base {
    position: relative; z-index: 1;
    background: var(--vermelho);
    background-image: var(--padrao);
}

.hero__base-conteudo {
    display: flex; align-items: center;
    min-height: 158px; padding: 1.2rem 0;
}

.hero__numero { width: min(100%, 420px); }

/* --------------------------------------------------------------------------
   Faixa de credenciais e faixa de ícones
   -------------------------------------------------------------------------- */

.credenciais { background: var(--tinta); color: var(--branco); padding: 1.3rem 0; }

.credenciais__lista {
    display: flex; flex-wrap: wrap; align-items: center; justify-content: center;
    gap: .5rem 2rem; list-style: none; margin: 0; padding: 0;
}

.credenciais__lista li {
    display: flex; align-items: center; gap: 2rem;
    font-family: var(--rotulo); font-weight: 600;
    font-size: clamp(.92rem, 1.7vw, 1.15rem);
    letter-spacing: .16em; text-transform: uppercase;
}
.credenciais__lista li::after {
    content: ''; width: 8px; height: 8px; border-radius: 50%; background: var(--amarelo);
}
.credenciais__lista li:last-child::after { display: none; }

.faixa-icones {
    width: 100%; height: 56px;
    background-image: var(--faixa);
    background-repeat: repeat-x;
    background-size: auto 100%;
    background-position: left center;
}

/* --------------------------------------------------------------------------
   Sobre
   -------------------------------------------------------------------------- */

.sobre__grade {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
    gap: clamp(2rem, 6vw, 4.5rem);
    align-items: start;
}

.sobre__texto p { margin: 0 0 1.15rem; }

.sobre__assinatura {
    font-family: var(--display);
    text-transform: uppercase;
    font-size: clamp(1.5rem, 3vw, 2.2rem);
    line-height: 1;
    color: var(--roxo);
    margin: 2rem 0 0;
}

.sobre__ornamento { width: 190px; margin-top: 2rem; }

/* --------------------------------------------------------------------------
   Cartões das pautas
   -------------------------------------------------------------------------- */

.pautas__grade {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 1.2rem;
    margin-top: 2.8rem;
}

.pauta-cartao {
    position: relative;
    display: flex; flex-direction: column;
    background-color: var(--campo-cor);
    background-image: var(--padrao);
    color: var(--branco);
    text-decoration: none;
    padding: 1.6rem;
    min-height: 300px;
    overflow: hidden;
    transition: transform .2s ease;
}
.pauta-cartao:hover { transform: translateY(-6px); }

.pauta-cartao__arte {
    width: 100%;
    max-width: 260px;
    margin-bottom: auto;
    filter: drop-shadow(0 8px 18px rgba(0, 0, 0, .28));
}

.pauta-cartao__resumo {
    margin: 1.4rem 0 1rem;
    font-size: .98rem;
    color: rgba(255, 255, 255, .92);
}

.pauta-cartao__seta {
    font-family: var(--rotulo); font-weight: 600;
    letter-spacing: .16em; text-transform: uppercase;
    font-size: .82rem;
    display: flex; align-items: center; gap: .5rem;
}
.pauta-cartao:hover .pauta-cartao__seta { gap: .9rem; }

/* --------------------------------------------------------------------------
   Página de pauta
   -------------------------------------------------------------------------- */

.pauta-hero { padding: clamp(2.5rem, 6vw, 4.5rem) 0 clamp(3rem, 7vw, 5rem); }

.pauta-hero__arte {
    width: min(100%, 720px);
    margin: 0 0 2rem;
    filter: drop-shadow(0 14px 30px rgba(0, 0, 0, .3));
}

.pauta-hero__chamada {
    font-family: var(--display);
    text-transform: uppercase;
    font-size: clamp(1.4rem, 3.4vw, 2.4rem);
    line-height: 1.05;
    max-width: 22ch;
    margin: 0 0 1.6rem;
}

.pauta-hero__acoes { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 2rem; }

.migalha {
    display: flex; gap: .6rem; align-items: center;
    font-family: var(--rotulo); font-weight: 600;
    letter-spacing: .16em; text-transform: uppercase; font-size: .8rem;
    margin-bottom: 1.6rem;
}
.migalha a { text-decoration: none; opacity: .85; }
.migalha a:hover { opacity: 1; text-decoration: underline; }

.pauta-texto__grade {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
    gap: clamp(2rem, 6vw, 4.5rem);
    align-items: start;
}

.compromissos { display: grid; gap: 1rem; margin-top: 2.5rem; }

.compromisso {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 1.2rem;
    align-items: start;
    padding: 1.4rem;
    background: var(--branco);
    border-left: 8px solid var(--tema, var(--vermelho));
    box-shadow: var(--sombra);
}

.compromisso__n {
    font-family: var(--display);
    font-size: 2rem;
    line-height: 1;
    color: var(--tema, var(--vermelho));
}

.compromisso__titulo { font-family: var(--display); text-transform: uppercase; font-size: 1.25rem; line-height: 1.05; margin-bottom: .35rem; }
.compromisso__texto { margin: 0; color: var(--tinta-suave); font-size: .98rem; }

.outras-pautas { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 1rem; margin-top: 2.5rem; }

.outra-pauta {
    display: block; padding: 1.2rem; text-decoration: none; color: var(--branco);
    background-color: var(--campo-cor); background-image: var(--padrao);
    font-family: var(--display); text-transform: uppercase; font-size: 1.15rem; line-height: 1.05;
    transition: transform .18s ease;
}
.outra-pauta:hover { transform: translateY(-4px); }

/* --------------------------------------------------------------------------
   Formulário
   -------------------------------------------------------------------------- */

.cadastro { background-color: var(--campo-cor, var(--roxo)); background-image: var(--padrao); color: var(--branco); }

.cadastro__grade {
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
    gap: clamp(2rem, 5vw, 4rem);
    align-items: start;
}

.cadastro__intro { position: sticky; top: 92px; }

.cadastro__chamada { font-size: clamp(1.05rem, 2vw, 1.2rem); color: rgba(255,255,255,.9); margin: 1rem 0 0; max-width: 42ch; }

.cadastro__doacao { margin-top: 2.2rem; padding: 1.6rem; background: rgba(0, 0, 0, .2); }
.cadastro__doacao-titulo { font-family: var(--display); text-transform: uppercase; font-size: 1.6rem; margin: 0 0 .5rem; color: var(--amarelo); }
.cadastro__doacao-texto { margin: 0 0 1.2rem; font-size: .96rem; color: rgba(255,255,255,.86); }

.cadastro__caixa { background: var(--branco); color: var(--tinta); padding: clamp(1.5rem, 3.5vw, 2.3rem); box-shadow: 0 30px 60px -30px rgba(0,0,0,.6); }

.formulario { display: grid; gap: 1.1rem; }
.campo { display: grid; gap: .38rem; }
.campo label, .campo legend { font-weight: 600; font-size: .95rem; }
.campo__opcional { font-weight: 400; font-size: .82rem; color: var(--tinta-suave); }

.campo input[type="text"], .campo input[type="tel"], .campo input[type="email"],
.campo input[type="search"], .campo input[type="password"], .campo select, .campo textarea {
    width: 100%;
    font-family: inherit; font-size: 1rem; color: var(--tinta);
    background: var(--branco);
    border: 2px solid var(--linha);
    border-radius: 4px;
    padding: .8rem .95rem;
    transition: border-color .15s ease;
}
.campo textarea { resize: vertical; min-height: 84px; }
.campo input:focus, .campo select:focus, .campo textarea:focus { border-color: var(--tinta); outline: none; }
.campo input[aria-invalid="true"], .campo select[aria-invalid="true"] { border-color: var(--vermelho); }

.campo__erro { margin: 0; font-size: .88rem; font-weight: 600; color: var(--vermelho-esc); }

.campo--duplo { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.campo--duplo > div { display: grid; gap: .38rem; }

.campo--grupo { border: 0; margin: 0; padding: 0; }
.campo--grupo legend { padding: 0; margin-bottom: .55rem; }

.marcador { display: flex; align-items: flex-start; gap: .6rem; font-weight: 400; font-size: .97rem; padding: .28rem 0; cursor: pointer; }
.marcador input { flex: 0 0 auto; width: 20px; height: 20px; margin-top: .15rem; accent-color: var(--vermelho); }

.campo--consentimento { padding: 1rem; background: var(--creme); }
.campo--consentimento .marcador span { font-size: .92rem; line-height: 1.5; }

.formulario__nota { margin: 0; font-size: .86rem; color: var(--tinta-suave); text-align: center; }

.isca { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* --------------------------------------------------------------------------
   Avisos, confirmação, texto longo
   -------------------------------------------------------------------------- */

.aviso { padding: .95rem 1.1rem; margin-bottom: 1.2rem; font-size: .95rem; border-left: 6px solid; }
.aviso--erro { background: #FDECEA; color: #8C1F17; border-color: var(--vermelho); }
.aviso--ok   { background: #E7F6F7; color: #17565C; border-color: var(--turquesa); }

.confirmacao { max-width: 620px; text-align: center; }
.confirmacao__selo { width: 84px; height: 84px; margin: 0 auto 1.5rem; }
.confirmacao__texto { font-size: 1.12rem; color: var(--tinta-suave); margin: 1.1rem 0 2rem; }
.confirmacao__acoes { display: flex; flex-wrap: wrap; gap: .8rem; justify-content: center; }
.confirmacao__nota { margin-top: 2.4rem; font-family: var(--display); text-transform: uppercase; font-size: 1.4rem; color: var(--roxo); }

.texto-longo h2 { font-family: var(--display); text-transform: uppercase; font-size: 1.5rem; margin: 2.4rem 0 .6rem; }
.texto-longo p, .texto-longo li { color: var(--tinta-suave); }
.texto-longo ul { padding-left: 1.2rem; }
.texto-longo li { margin-bottom: .4rem; }
.texto-longo__data { margin-top: 3rem; padding-top: 1.2rem; border-top: 1px solid var(--linha); font-size: .9rem; }

/* --------------------------------------------------------------------------
   Rodapé
   -------------------------------------------------------------------------- */

.rodape { background: var(--tinta); color: var(--branco); padding: clamp(3rem, 6vw, 4.5rem) 0 2rem; }
.rodape a { color: var(--amarelo); }

.rodape__grade {
    display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 2.2rem; padding-bottom: 2.2rem; border-bottom: 1px solid rgba(255,255,255,.16);
}

.rodape__frase { font-family: var(--display); text-transform: uppercase; font-size: 1.6rem; line-height: 1.02; max-width: 16ch; margin: 0; }

.rodape__titulo { font-family: var(--rotulo); font-weight: 600; letter-spacing: .24em; text-transform: uppercase; font-size: .8rem; color: var(--amarelo); margin: 0 0 .8rem; }
.rodape ul { list-style: none; margin: 0; padding: 0; }
.rodape li { margin-bottom: .45rem; }
.rodape__pcdob { width: 150px; margin-top: 1.2rem; }

.rodape__legal { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem; padding-top: 1.5rem; font-size: .875rem; color: rgba(255,255,255,.72); }

.oculto-visual { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* --------------------------------------------------------------------------
   Movimento
   -------------------------------------------------------------------------- */

.surge { opacity: 0; transform: translateY(20px); transition: opacity .55s ease, transform .55s ease; }
.surge.visivel { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    .surge { opacity: 1; transform: none; transition: none; }
    *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

/* --------------------------------------------------------------------------
   Telas menores
   -------------------------------------------------------------------------- */

@media (max-width: 900px) {
    .hero__grade { grid-template-columns: 1fr; gap: 0; }
    .hero__texto { padding-bottom: 1.2rem; }
    .hero__slogan { margin-inline: auto; }
    .hero__linha { margin-inline: auto; text-align: center; }
    .hero__acoes { justify-content: center; }
    .hero__foto { max-width: 360px; margin-bottom: -128px; }
    .hero__base-conteudo { min-height: 128px; justify-content: center; }
    .hero__numero { max-width: 300px; }
    .sobre__grade, .pauta-texto__grade, .cadastro__grade { grid-template-columns: 1fr; }
    .cadastro__intro { position: static; }
    .menu__links { display: none; }
}

@media (max-width: 560px) {
    .credenciais__lista { flex-direction: column; gap: .4rem; }
    .credenciais__lista li::after { display: none; }
    .campo--duplo { grid-template-columns: 1fr; }
    .hero__acoes .botao, .confirmacao__acoes .botao, .pauta-hero__acoes .botao { width: 100%; }
    .marca__assinatura { height: 38px; }
    .compromisso { grid-template-columns: 1fr; gap: .5rem; }
}

/* Faixa de ícones do material impresso, em versão fina para o topo */
.faixa-icones--fina { height: 30px; }

/* ==========================================================================
   Hero — a informação do santinho reorganizada para tela: logotipo, slogan,
   foto e a tarja do número. As peças entram sem a sombra longa embutida,
   por isso encaixam no esquadro.
   ========================================================================== */

:root {
    --padrao-escuro: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='80' viewBox='0 0 80 80'%3E%3Cpath d='M0 40A40 40 0 0 1 40 0L40 40Z' fill='rgba(23,24,27,0.045)'/%3E%3Cpath d='M80 40A40 40 0 0 1 40 80L40 40Z' fill='rgba(23,24,27,0.045)'/%3E%3C/svg%3E");
}

.hero {
    position: relative;
    background-color: var(--creme);
    background-image: var(--padrao-escuro);
    overflow: hidden;
}

.hero__grade {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
    gap: clamp(1.2rem, 3vw, 2.2rem);
    align-items: end;
    padding-top: clamp(1rem, 2vw, 1.5rem);
}

.hero__texto { padding-bottom: clamp(1rem, 2.2vw, 1.6rem); position: relative; z-index: 3; }

.hero__rotulo { color: var(--vermelho); margin-bottom: .8rem; }

.hero__logo   { height: clamp(96px, 19svh, 182px); width: auto; max-width: 100%; margin-bottom: .85rem; }
.hero__slogan { height: clamp(62px, 11.5svh, 110px); width: auto; max-width: 100%; margin-bottom: .95rem; }

.hero__linha {
    font-size: clamp(.98rem, 1.6vw, 1.08rem);
    color: var(--tinta-suave);
    margin: 0 0 1.1rem;
    max-width: 36ch;
}

.hero__acoes { display: flex; flex-wrap: wrap; gap: .8rem; }

.hero__figura { position: relative; z-index: 2; display: flex; justify-content: center; align-items: flex-end; }

.hero__foto {
    height: clamp(280px, 58svh, 620px);
    width: auto;
    max-width: 100%;
    margin-bottom: -122px;
    filter: drop-shadow(0 22px 34px rgba(23, 24, 27, .25));
}

/* Tarja do número, no rodapé do hero, com a foto saindo de dentro dela */
.hero__tarja {
    position: relative;
    z-index: 1;
    background-color: var(--vermelho);
    background-image: var(--padrao);
}

.hero__tarja-conteudo {
    display: flex;
    align-items: center;
    gap: clamp(1.2rem, 3vw, 2.5rem);
    min-height: 122px;
    padding: .6rem 0 1.5rem;
    /* A foto ocupa a direita da tarja, então o conteúdo para antes dela. */
    padding-right: 47%;
}

.hero__numero { height: clamp(52px, 8svh, 78px); width: auto; max-width: 100%; }

.hero__creditos { color: var(--branco); }
.hero__pcdob { width: 132px; margin-bottom: .45rem; }
.hero__cnpj { margin: 0; font-size: .78rem; line-height: 1.4; white-space: nowrap; color: rgba(255, 255, 255, .9); }

/* No celular a composição vira vertical e centrada: identidade em cima, foto
   grande no meio, tarja do número logo abaixo dela e os botões por último.
   Ninguém disputa espaço com ninguém, e o número aparece em corpo grande. */
@media (max-width: 900px) {
    .hero        { display: flex; flex-direction: column; }
    .hero__grade { display: contents; }
    .hero__texto { display: contents; }

    .hero__intro, .hero__acao {
        width: min(100% - 2.5rem, var(--largura));
        margin-inline: auto;
        text-align: center;
    }

    .hero__intro  { order: 1; padding-top: .6rem; }
    .hero__figura { order: 2; justify-content: center; }
    .hero__tarja  { order: 3; }
    .hero__acao   { order: 4; padding: 1.4rem 0 1.9rem; }

    /* O rótulo repetiria o que a tarja já diz em corpo grande. */
    .hero__rotulo { display: none; }

    .hero__logo   { height: auto; width: min(56vw, 215px); margin: 0 auto .6rem; }
    .hero__slogan { height: auto; width: min(52vw, 200px); margin: 0 auto; }

    /* A foto é grande, mas o limite em svh a faz encolher em telas baixas
       para o número nunca sair da primeira visualização. */
    .hero__foto {
        height: auto;
        width: min(78vw, 320px, 32svh);
        max-width: none;
        margin-bottom: 0;
    }

    .hero__linha { margin: 0 auto 1.1rem; }
    .hero__acoes { justify-content: center; }
    .hero__acoes .botao { width: 100%; }

    .hero__tarja-conteudo {
        justify-content: center;
        padding-right: 0;
        padding-block: .6rem .9rem;
        min-height: 0;
    }
    .hero__numero   { height: auto; width: min(58vw, 225px); }
    .hero__creditos { display: none; }
}

/* --------------------------------------------------------------------------
   Bloco do formulário, logo abaixo do hero
   -------------------------------------------------------------------------- */

.abertura { padding: clamp(3rem, 7vw, 5rem) 0; }

.abertura__grade {
    display: grid;
    grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr);
    gap: clamp(2rem, 5vw, 4rem);
    align-items: start;
}

.abertura__intro { position: sticky; top: 92px; }
.abertura__rotulo { color: var(--vermelho); margin-bottom: .8rem; }
.abertura__titulo { font-size: clamp(2rem, 4.4vw, 3.2rem); }

.abertura__linha {
    font-size: clamp(1rem, 1.9vw, 1.15rem);
    color: var(--tinta-suave);
    margin: 1.1rem 0 0;
    max-width: 42ch;
}

.abertura__doacao {
    margin-top: 2rem;
    padding: 1.5rem;
    background: var(--creme);
    border-left: 8px solid var(--amarelo);
}
.abertura__doacao-titulo { font-family: var(--display); text-transform: uppercase; font-size: 1.45rem; margin: 0 0 .5rem; }
.abertura__doacao-texto { margin: 0 0 1.1rem; font-size: .95rem; color: var(--tinta-suave); }

.abertura__caixa {
    background: var(--branco);
    padding: clamp(1.4rem, 2.8vw, 2.2rem);
    box-shadow: 0 24px 50px -28px rgba(23, 24, 27, .45);
    border-top: 10px solid var(--vermelho);
}

@media (max-width: 980px) {
    .abertura__grade { grid-template-columns: 1fr; }
    .abertura__intro { position: static; }
}

/* Celulares de tela baixa: a foto cede um pouco mais para o número respirar. */
@media (max-width: 900px) and (max-height: 790px) {
    .hero__foto   { width: min(70vw, 265px, 29svh); }
    .hero__logo   { width: min(50vw, 190px); }
    .hero__slogan { width: min(47vw, 178px); }
}

/* --------------------------------------------------------------------------
   Comunidades de WhatsApp
   -------------------------------------------------------------------------- */

.grupos__grade {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(270px, 1fr));
    max-width: 100%;
    gap: 1.2rem;
    margin-top: 2.8rem;
}

.grupo-cartao {
    display: flex;
    flex-direction: column;
    padding: 1.8rem 1.6rem;
    color: var(--branco);
    background-color: var(--campo-cor);
    background-image: var(--padrao);
}

.grupo-cartao__chamada {
    font-family: var(--rotulo);
    font-weight: 600;
    letter-spacing: .2em;
    text-transform: uppercase;
    font-size: .78rem;
    margin: 0 0 .7rem;
    color: rgba(255, 255, 255, .85);
}

.grupo-cartao__titulo {
    font-family: var(--display);
    text-transform: uppercase;
    font-size: 1.7rem;
    line-height: 1;
    margin-bottom: .8rem;
}

.grupo-cartao__texto {
    margin: 0 0 1.6rem;
    font-size: .97rem;
    color: rgba(255, 255, 255, .92);
}

.grupo-cartao__botao { margin-top: auto; align-self: flex-start; }

/* Com um grupo só, o cartão ocupa a largura de leitura em vez de virar
   uma coluna estreita perdida na página. */
.grupos__grade--unico { grid-template-columns: minmax(0, 620px); }
.grupos__grade--unico .grupo-cartao { padding: 2.4rem 2.2rem; }
.grupos__grade--unico .grupo-cartao__titulo { font-size: 2.2rem; }

/* Convite ao grupo, usado na página de pauta e na confirmação */
.convite {
    background-color: var(--campo-cor, var(--vermelho));
    background-image: var(--padrao);
    color: var(--branco);
    padding: clamp(1.6rem, 3.5vw, 2.4rem);
    text-align: left;
}

.convite--largo {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(0, .9fr);
    gap: clamp(1.4rem, 3vw, 2.5rem);
    align-items: center;
}

.convite__rotulo {
    font-family: var(--rotulo);
    font-weight: 600;
    letter-spacing: .22em;
    text-transform: uppercase;
    font-size: .78rem;
    margin: 0 0 .6rem;
    color: rgba(255, 255, 255, .85);
}

.convite__titulo {
    font-family: var(--display);
    text-transform: uppercase;
    font-size: clamp(1.5rem, 3.2vw, 2.2rem);
    line-height: 1;
    margin-bottom: .7rem;
}

.convite__texto { margin: 0; font-size: .98rem; color: rgba(255, 255, 255, .92); }

.convite__acao { display: flex; flex-direction: column; align-items: flex-start; gap: .8rem; }
.convite__nota { margin: 0; font-size: .88rem; }
.convite__nota a { color: var(--branco); }

/* Na confirmação o convite fica centralizado e com respiro */
.confirmacao .convite { margin: 2rem 0; text-align: center; }
.confirmacao .convite .botao { margin-top: .4rem; }
.confirmacao .convite__nota { margin-top: 1rem; }

@media (max-width: 760px) {
    .convite--largo { grid-template-columns: 1fr; }
    .convite__acao { align-items: stretch; }
    .convite__acao .botao { width: 100%; }
    .grupo-cartao__botao { align-self: stretch; }
}
