.sepsa-menu-abre { display: inline-flex; }

@media (width < 80rem) {
    .sepsa-topo { position: relative; }
    .sepsa-menu.aberto {
        display: flex;
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        flex-direction: column;
        align-items: stretch;
        padding: 0.5rem 1.25rem 1rem;
        background: #fff;
        box-shadow: 0 12px 24px rgba(0, 0, 0, 0.08);
    }
}

@media (width >= 80rem) {
    .sepsa-menu-abre { display: none; }
}

@media (width < 48rem) {
    .tema-sepsa .px-margin { padding-inline: 1.25rem; }
    .tema-sepsa .text-display-hero { font-size: 2.5rem; }
    .tema-sepsa .text-headline-xl { font-size: 2.125rem; }
}

[data-sanfona-item] [data-sanfona-resposta] { display: none; }
[data-sanfona-item].aberto [data-sanfona-resposta] { display: block; }
[data-sanfona-item].aberto [data-sanfona] .material-symbols-outlined { rotate: 180deg; }

.sepsa-texto { color: #20252a; font-size: 1.0625rem; line-height: 1.75; }
.sepsa-texto > * + * { margin-top: 1.1rem; }
.sepsa-texto h2, .sepsa-texto h3 { font-family: "Noto Serif", Georgia, serif; color: #0053a6; line-height: 1.3; }
.sepsa-texto h2 { font-size: 1.75rem; }
.sepsa-texto h3 { font-size: 1.35rem; }
.sepsa-texto a { color: #0053a6; text-decoration: underline; }
.sepsa-texto img { max-width: 100%; height: auto; border-radius: 0.5rem; }
.sepsa-texto ul { list-style: disc; padding-left: 1.4rem; }
.sepsa-texto ol { list-style: decimal; padding-left: 1.4rem; }
.sepsa-texto iframe { width: 100%; aspect-ratio: 16 / 9; height: auto; border: 0; border-radius: 0.5rem; }

/* ---------- Home: seções novas (prefixo sh-) ---------- */
.sh-container { max-width: 80rem; margin-inline: auto; padding-inline: 2rem; }
.sh-sobre { display: block; font-family: Manrope, sans-serif; font-size: .75rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: #a98608; }
.sh-titulo { font-family: "Noto Serif", Georgia, serif; font-size: clamp(1.9rem, 3.2vw, 2.6rem); line-height: 1.15; color: #0053a6; margin-top: .4rem; }
.sh-lead { margin-top: .8rem; max-width: 40rem; color: #43474e; font-size: 1.0625rem; line-height: 1.65; }
.sh-link { display: inline-flex; align-items: center; gap: .35rem; color: #0053a6; font-weight: 600; white-space: nowrap; }
.sh-link:hover { color: #a98608; }
.sh-link .material-symbols-outlined { font-size: 18px; transition: transform .2s; }
.sh-link:hover .material-symbols-outlined { transform: translateX(3px); }
.sh-cabeca { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 1rem 2rem; margin-bottom: 2.5rem; }
.sh-secao { padding-block: 5.5rem; background: #fff; }
.sh-secao-clara { background: #f3f6fa; }

/* Destaques */
.sh-destaques { background: #0053a6; color: #fff; }
.sh-destaques-grade { display: grid; grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); }
.sh-destaque { display: flex; align-items: center; gap: .9rem; padding: 1.5rem 1rem; border-left: 1px solid rgba(255,255,255,.14); }
.sh-destaque:first-child { border-left: 0; }
.sh-destaque-icone { font-size: 30px; color: #e0cf8b; }
.sh-destaque-rotulo { display: block; font-size: .75rem; letter-spacing: .08em; text-transform: uppercase; color: rgba(255,255,255,.72); }
.sh-destaque-valor { display: block; font-family: "Noto Serif", Georgia, serif; font-size: 1.35rem; font-weight: 600; line-height: 1.25; }

/* Cartões da estrutura */
.sh-cartoes { display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: 15rem; gap: 1rem; }
.sh-cartao { position: relative; overflow: hidden; border-radius: 1rem; background: #0053a6; box-shadow: 0 6px 18px rgba(0, 40, 90, .12); }
.sh-cartao-grande { grid-column: span 2; grid-row: span 2; }
.sh-cartao-largo { grid-column: span 2; }
.sh-cartao img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.sh-cartao:hover img { transform: scale(1.06); }
.sh-cartao::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(0, 35, 75, .82) 0%, rgba(0, 35, 75, .15) 55%, rgba(0, 35, 75, 0) 100%); }
.sh-cartao-texto { position: absolute; z-index: 1; left: 0; right: 0; bottom: 0; padding: 1.1rem 1.25rem; color: #fff; display: flex; flex-direction: column; gap: .25rem; }
.sh-cartao-texto strong { font-family: "Noto Serif", Georgia, serif; font-size: 1.2rem; font-weight: 600; }
.sh-cartao-grande .sh-cartao-texto strong { font-size: 1.7rem; }
.sh-cartao-texto span { font-size: .9rem; line-height: 1.45; color: rgba(255,255,255,.85); }

/* Faixa da natureza */
.sh-natureza { position: relative; background-size: cover; background-position: center; background-attachment: fixed; padding-block: 9rem; }
.sh-natureza::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(0, 40, 85, .7) 0%, rgba(0, 40, 85, .2) 60%, rgba(0, 40, 85, 0) 100%); }
.sh-natureza blockquote { position: relative; max-width: 36rem; color: #fff; }
.sh-natureza p { font-family: "Noto Serif", Georgia, serif; font-style: italic; font-size: clamp(1.6rem, 3vw, 2.3rem); line-height: 1.3; }
.sh-natureza span { display: block; margin-top: 1rem; color: #e0cf8b; font-weight: 600; letter-spacing: .06em; }

/* Galeria */
.sh-galeria { display: grid; grid-template-columns: repeat(4, 1fr); gap: .75rem; }
.sh-galeria-item { display: block; overflow: hidden; border-radius: .75rem; aspect-ratio: 4 / 3; background: #dfe6ee; }
.sh-galeria-item img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease, filter .3s; }
.sh-galeria-item:hover img { transform: scale(1.07); filter: brightness(1.05); }

/* Chamada final */
.sh-associe { background: #fff; padding-block: 5.5rem; overflow: hidden; }
.sh-associe-grade { display: grid; grid-template-columns: 1fr 1.1fr; align-items: center; gap: 3.5rem; }
.sh-associe-texto p { margin-top: .9rem; max-width: 30rem; color: #43474e; font-size: 1.0625rem; line-height: 1.65; }
.sh-associe-foto { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 1.25rem; box-shadow: 0 20px 45px rgba(0, 40, 90, .18); }
.sh-botoes { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.75rem; }
.sh-botao { display: inline-flex; align-items: center; gap: .5rem; padding: .9rem 1.4rem; border-radius: .75rem; font-weight: 700; transition: background .2s, color .2s, border-color .2s; }
.sh-botao .material-symbols-outlined { font-size: 20px; }
.sh-botao-ouro { background: #a98608; color: #fff; }
.sh-botao-ouro:hover { background: #8c6f06; }
.sh-botao-vazado { border: 2px solid #0053a6; color: #0053a6; }
.sh-botao-vazado:hover { background: #0053a6; color: #fff; }

@media (width < 64rem) {
    .sh-cartoes { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 13rem; }
    .sh-galeria { grid-template-columns: repeat(3, 1fr); }
    .sh-galeria-item:nth-child(n+7) { display: none; }
    .sh-natureza { background-attachment: scroll; }
    .sh-associe-grade { grid-template-columns: 1fr; gap: 2.5rem; }
}
@media (width < 40rem) {
    .sh-container { padding-inline: 1.25rem; }
    .sh-secao { padding-block: 4rem; }
    .sh-cartoes { grid-template-columns: 1fr; grid-auto-rows: 14rem; }
    .sh-cartao-grande, .sh-cartao-largo { grid-column: auto; grid-row: span 1; }
    .sh-galeria { grid-template-columns: repeat(2, 1fr); }
    .sh-destaque { border-left: 0; border-top: 1px solid rgba(255,255,255,.14); }
    .sh-destaque:first-child { border-top: 0; }
}

/* ---------- O Clube (prefixo oc-) ---------- */
.oc-topo { position: relative; background-size: cover; background-position: center 60%; color: #fff; }
.oc-topo::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(0, 40, 85, .78) 0%, rgba(0, 40, 85, .45) 55%, rgba(0, 40, 85, .15) 100%); }
.oc-topo-conteudo { position: relative; padding-block: 3rem 6rem; min-height: 520px; display: flex; flex-direction: column; justify-content: flex-end; }
.oc-trilha { position: absolute; top: 1.5rem; display: flex; gap: .5rem; font-size: .8rem; color: rgba(255,255,255,.8); }
.oc-trilha a:hover { color: #fff; }
.oc-trilha strong { color: #fff; font-weight: 600; }
.oc-selo { display: inline-flex; align-items: center; gap: .4rem; align-self: flex-start; padding: .35rem .9rem; border-radius: 999px; background: rgba(255,255,255,.14); backdrop-filter: blur(6px); color: #e0cf8b; font-size: .75rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.oc-selo .material-symbols-outlined { font-size: 16px; }
.oc-topo h1 { margin-top: 1.25rem; max-width: 46rem; font-family: "Noto Serif", Georgia, serif; font-size: clamp(2.2rem, 4.6vw, 3.6rem); line-height: 1.12; }
.oc-topo p { margin-top: 1.1rem; max-width: 40rem; font-size: 1.125rem; line-height: 1.65; color: rgba(255,255,255,.88); }

.oc-metricas { background: #0053a6; color: #fff; }
.oc-metricas-grade { display: grid; grid-template-columns: repeat(4, 1fr); }
.oc-metrica { padding: 1.6rem 1rem; border-left: 1px solid rgba(255,255,255,.14); }
.oc-metrica:first-child { border-left: 0; }
.oc-metrica span { display: block; font-size: .75rem; letter-spacing: .08em; text-transform: uppercase; color: rgba(255,255,255,.72); }
.oc-metrica strong { display: block; margin-top: .2rem; font-family: "Noto Serif", Georgia, serif; font-size: 1.6rem; font-weight: 600; }

.oc-cabeca-centro { text-align: center; max-width: 40rem; margin: 0 auto 3.5rem; }
.oc-cabeca-centro .sh-lead { margin-inline: auto; }

.oc-capitulos { display: flex; flex-direction: column; gap: 5rem; }
.oc-capitulo { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 3.5rem; }
.oc-capitulo img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 1.25rem; box-shadow: 0 20px 45px rgba(0, 40, 90, .16); }
.oc-capitulo-invertido img { order: 2; }
.oc-capitulo-selo { display: inline-block; padding: .3rem .75rem; border-radius: .4rem; background: rgba(169, 134, 8, .12); color: #8c6f06; font-size: .75rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.oc-capitulo h3 { margin-top: .9rem; font-family: "Noto Serif", Georgia, serif; font-size: clamp(1.5rem, 2.4vw, 2rem); line-height: 1.25; color: #0053a6; }
.oc-capitulo p { margin-top: 1rem; color: #43474e; font-size: 1.0625rem; line-height: 1.75; }

.oc-linha { position: relative; display: grid; grid-template-columns: repeat(6, 1fr); gap: 1.25rem; padding-top: 2.25rem; }
.oc-linha::before { content: ""; position: absolute; top: .55rem; left: 0; right: 0; height: 2px; background: linear-gradient(90deg, #a98608, #0053a6); }
.oc-linha li { position: relative; }
.oc-linha li::before { content: ""; position: absolute; top: -2.05rem; left: 0; width: 1.1rem; height: 1.1rem; border-radius: 50%; background: #fff; border: 4px solid #a98608; }
.oc-linha li:last-child::before { border-color: #0053a6; }
.oc-linha-ano { display: block; font-family: "Noto Serif", Georgia, serif; font-size: 1.6rem; font-weight: 600; color: #0053a6; }
.oc-linha strong { display: block; margin-top: .15rem; font-size: .8rem; letter-spacing: .06em; text-transform: uppercase; color: #8c6f06; }
.oc-linha p { margin-top: .5rem; font-size: .92rem; line-height: 1.55; color: #43474e; }

.oc-pilares { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
.oc-pilar { padding: 2rem; border-radius: 1.25rem; background: #f3f6fa; }
.oc-pilar-icone { display: inline-flex; align-items: center; justify-content: center; width: 3.25rem; height: 3.25rem; border-radius: 50%; background: #0053a6; color: #fff; font-size: 26px; }
.oc-pilar h3 { margin-top: 1.1rem; font-family: "Noto Serif", Georgia, serif; font-size: 1.3rem; color: #0053a6; }
.oc-pilar p { margin-top: .6rem; color: #43474e; line-height: 1.65; }

.oc-diretoria { display: grid; grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr)); gap: 1rem; }
.oc-pessoa { display: flex; align-items: center; gap: 1rem; padding: 1.25rem; border-radius: 1rem; background: #fff; box-shadow: 0 4px 14px rgba(0, 40, 90, .07); }
.oc-pessoa img, .oc-pessoa-inicial { width: 4rem; height: 4rem; border-radius: 50%; object-fit: cover; flex-shrink: 0; }
.oc-pessoa-inicial { display: flex; align-items: center; justify-content: center; background: #dbe6f3; color: #0053a6; }
.oc-pessoa strong { display: block; color: #0053a6; font-weight: 700; }
.oc-pessoa span { display: block; margin-top: .15rem; font-size: .88rem; color: #8c6f06; font-weight: 600; }

.oc-documentos { display: grid; gap: .6rem; }
.oc-documentos a { display: flex; align-items: center; gap: .9rem; padding: 1rem 1.25rem; border-radius: .75rem; background: #f3f6fa; color: #0053a6; font-weight: 600; transition: background .2s; }
.oc-documentos a:hover { background: #e3ebf5; }
.oc-documentos a span { flex: 1; }

@media (width < 64rem) {
    .oc-metricas-grade { grid-template-columns: repeat(2, 1fr); }
    .oc-metrica:nth-child(3) { border-left: 0; }
    .oc-capitulo { grid-template-columns: 1fr; gap: 1.75rem; }
    .oc-capitulo-invertido img { order: 0; }
    .oc-linha { grid-template-columns: 1fr; gap: 1.75rem; padding-top: 0; padding-left: 2.25rem; }
    .oc-linha::before { top: 0; bottom: 0; left: .5rem; right: auto; width: 2px; height: auto; background: linear-gradient(180deg, #a98608, #0053a6); }
    .oc-linha li::before { top: .45rem; left: -2.25rem; }
    .oc-pilares { grid-template-columns: 1fr; }
}
@media (width < 40rem) {
    .oc-topo-conteudo { min-height: 440px; padding-bottom: 4rem; }
}

/* ---------- Estrutura & Lazer (prefixo el-) ---------- */
.el-grupo + .el-grupo { margin-top: 3.5rem; }
.el-grupo-titulo { display: flex; align-items: center; gap: 1rem; margin-bottom: 1.25rem; font-family: "Noto Serif", Georgia, serif; font-size: 1.45rem; color: #0053a6; }
.el-grupo-titulo::after { content: ""; flex: 1; height: 1px; background: #d6dee8; }
.el-ambientes { display: grid; grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); gap: 1.25rem; }
.el-ambiente { margin: 0; border-radius: 1rem; overflow: hidden; background: #fff; box-shadow: 0 6px 18px rgba(0, 40, 90, .09); transition: box-shadow .3s, transform .3s; }
.el-ambiente:hover { box-shadow: 0 14px 30px rgba(0, 40, 90, .16); transform: translateY(-3px); }
.el-ambiente img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.el-ambiente figcaption { padding: 1.1rem 1.25rem 1.3rem; }
.el-ambiente strong { display: block; font-family: "Noto Serif", Georgia, serif; font-size: 1.15rem; color: #0053a6; }
.el-ambiente span { display: block; margin-top: .35rem; color: #43474e; font-size: .95rem; line-height: 1.55; }
.el-horarios { margin-top: 1.4rem; display: grid; gap: .55rem; }
.el-horarios li { display: flex; align-items: center; gap: .6rem; padding: .75rem 1rem; border-radius: .75rem; background: #fff; color: #43474e; }
.el-horarios .material-symbols-outlined { color: #a98608; font-size: 20px; }
.el-horarios strong { margin-left: auto; color: #0053a6; text-align: right; }

/* ---------- Galeria: sombras leves sobre as fotos ---------- */
.gl-sombra-destaque { background: linear-gradient(0deg, rgba(0, 83, 166, .55) 0%, rgba(0, 83, 166, 0) 45%); }
@media (width >= 64rem) {
    .gl-sombra-destaque { background: linear-gradient(90deg, rgba(0, 83, 166, 0) 70%, rgba(0, 83, 166, .9) 100%); }
}
.gl-sombra-capa { background: linear-gradient(0deg, rgba(0, 35, 75, .78) 0%, rgba(0, 35, 75, .3) 35%, rgba(0, 35, 75, 0) 60%); transition: background .3s; }
.group:hover .gl-sombra-capa { background: linear-gradient(0deg, rgba(0, 35, 75, .85) 0%, rgba(0, 35, 75, .35) 40%, rgba(0, 35, 75, 0) 65%); }

/* ---------- Agenda de eventos (prefixo ag-) ---------- */
.ag-lista { display: grid; grid-template-columns: repeat(auto-fill, minmax(19rem, 1fr)); gap: 1.25rem; }
.ag-evento { display: flex; flex-direction: column; border-radius: 1rem; overflow: hidden; background: #fff; box-shadow: 0 4px 14px rgba(0, 40, 90, .08); transition: box-shadow .3s, transform .3s; }
a.ag-evento:hover { box-shadow: 0 12px 28px rgba(0, 40, 90, .15); transform: translateY(-3px); }
.ag-evento-capa { position: relative; aspect-ratio: 16 / 9; background: #dbe6f3; }
.ag-evento-capa img { width: 100%; height: 100%; object-fit: cover; }
.ag-evento-sem-capa { display: flex; width: 100%; height: 100%; align-items: center; justify-content: center; color: #0053a6; }
.ag-evento-sem-capa .material-symbols-outlined { font-size: 44px; opacity: .5; }
.ag-evento-data { position: absolute; left: 1rem; bottom: -1.6rem; display: flex; flex-direction: column; align-items: center; justify-content: center; min-width: 4.2rem; padding: .55rem .6rem; border-radius: .75rem; background: #0053a6; color: #fff; box-shadow: 0 6px 16px rgba(0, 40, 90, .25); line-height: 1; }
.ag-evento-data strong { font-family: "Noto Serif", Georgia, serif; font-size: 1.7rem; color: #e0cf8b; }
.ag-evento-data span { margin-top: .3rem; font-size: .7rem; font-weight: 700; letter-spacing: .1em; }
.ag-evento-texto { display: flex; flex-direction: column; gap: .45rem; flex: 1; padding: 2.3rem 1.25rem 1.35rem; }
.ag-evento-periodo { display: inline-flex; align-items: center; gap: .35rem; font-size: .8rem; font-weight: 600; color: #8c6f06; }
.ag-evento-periodo .material-symbols-outlined { font-size: 16px; }
.ag-evento h3 { font-family: "Noto Serif", Georgia, serif; font-size: 1.2rem; line-height: 1.3; color: #0053a6; }
.ag-evento p { color: #43474e; font-size: .93rem; line-height: 1.55; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.ag-evento-link { margin-top: auto; padding-top: .4rem; display: inline-flex; align-items: center; gap: .3rem; color: #0053a6; font-weight: 700; font-size: .9rem; }
.ag-evento-link .material-symbols-outlined { font-size: 17px; transition: transform .2s; }
a.ag-evento:hover .ag-evento-link .material-symbols-outlined { transform: translateX(3px); }
.ag-vazio { display: flex; flex-wrap: wrap; align-items: center; gap: 1.25rem 1.5rem; padding: 1.75rem 2rem; border-radius: 1rem; background: #fff; box-shadow: 0 4px 14px rgba(0, 40, 90, .06); }
.ag-vazio > div { flex: 1; min-width: 14rem; }
.ag-vazio strong { display: block; font-family: "Noto Serif", Georgia, serif; font-size: 1.2rem; color: #0053a6; }
.ag-vazio p { margin-top: .3rem; color: #43474e; }
.ag-vazio-icone { display: inline-flex; align-items: center; justify-content: center; width: 3.5rem; height: 3.5rem; border-radius: 50%; background: #dbe6f3; color: #0053a6; font-size: 28px; }

/* ---------- Contato (prefixo ct-) ---------- */
.ct-topo .oc-topo-conteudo { min-height: 420px; padding-bottom: 7rem; }
.ct-canais-faixa { position: relative; z-index: 2; margin-top: -4rem; }
.ct-canais { display: grid; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); gap: 1rem; }
.ct-canal { display: flex; flex-direction: column; gap: .2rem; padding: 1.5rem; border-radius: 1rem; background: #fff; box-shadow: 0 10px 28px rgba(0, 40, 90, .12); transition: transform .25s, box-shadow .25s; }
.ct-canal:hover { transform: translateY(-3px); box-shadow: 0 16px 34px rgba(0, 40, 90, .18); }
.ct-canal-icone { display: inline-flex; align-items: center; justify-content: center; width: 2.75rem; height: 2.75rem; margin-bottom: .6rem; border-radius: .75rem; background: #0053a6; color: #fff; font-size: 22px; }
.ct-canal-rotulo { font-size: .75rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: #8c6f06; }
.ct-canal strong { font-family: "Noto Serif", Georgia, serif; font-size: 1.15rem; font-weight: 600; color: #0053a6; overflow-wrap: anywhere; }
.ct-canal-acao { margin-top: .5rem; display: inline-flex; align-items: center; gap: .3rem; font-size: .88rem; font-weight: 600; color: #43474e; }
.ct-canal-acao .material-symbols-outlined { font-size: 16px; transition: transform .2s; }
.ct-canal:hover .ct-canal-acao .material-symbols-outlined { transform: translateX(3px); }

.ct-grade { display: grid; grid-template-columns: 1.45fr 1fr; gap: 2.5rem; align-items: start; }
.ct-form-caixa { padding: 2.5rem; border-radius: 1.25rem; background: #f3f6fa; }
.ct-form-lead { margin-top: .6rem; color: #43474e; line-height: 1.6; }
.ct-form { display: flex; flex-direction: column; gap: 1.1rem; margin-top: 1.75rem; }
.ct-linha { display: grid; grid-template-columns: 1fr 1fr; gap: 1.1rem; }
.ct-campo { display: flex; flex-direction: column; gap: .4rem; }
.ct-campo label { font-size: .88rem; font-weight: 600; color: #20252a; }
.ct-campo label span { color: #a98608; }
.ct-campo input, .ct-campo select, .ct-campo textarea { width: 100%; padding: .8rem 1rem; border: 1px solid #d6dee8; border-radius: .7rem; background: #fff; color: #20252a; font: inherit; outline: none; transition: border-color .2s, box-shadow .2s; }
.ct-campo textarea { resize: vertical; min-height: 8rem; }
.ct-campo input:focus, .ct-campo select:focus, .ct-campo textarea:focus { border-color: #0053a6; box-shadow: 0 0 0 3px rgba(0, 83, 166, .15); }
.ct-select { position: relative; }
.ct-select select { appearance: none; padding-right: 2.5rem; cursor: pointer; }
.ct-select .material-symbols-outlined { position: absolute; right: .8rem; top: 50%; transform: translateY(-50%); color: #43474e; pointer-events: none; }
.ct-aceite { display: flex; align-items: flex-start; gap: .7rem; cursor: pointer; font-size: .85rem; line-height: 1.55; color: #43474e; }
.ct-aceite input { margin-top: .2rem; width: 1rem; height: 1rem; accent-color: #0053a6; flex-shrink: 0; }
.ct-erro { display: flex; align-items: flex-start; gap: .5rem; padding: .9rem 1rem; border-radius: .7rem; background: #fde8e8; color: #8a1c1c; font-size: .92rem; }
.ct-enviar { align-self: flex-start; border: 0; cursor: pointer; font: inherit; font-weight: 700; }

.ct-lateral { display: flex; flex-direction: column; gap: 1rem; }
.ct-horarios { padding: 1.75rem; border-radius: 1.25rem; background: #0053a6; color: #fff; }
.ct-horarios h3 { display: flex; align-items: center; gap: .5rem; font-size: .8rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: #e0cf8b; }
.ct-horarios h3 .material-symbols-outlined { font-size: 20px; }
.ct-horarios ul { margin-top: 1rem; display: flex; flex-direction: column; }
.ct-horarios li { display: flex; justify-content: space-between; gap: 1rem; padding: .75rem 0; border-top: 1px solid rgba(255,255,255,.14); }
.ct-horarios li:first-child { border-top: 0; padding-top: 0; }
.ct-horarios li span { color: rgba(255,255,255,.75); }
.ct-horarios li strong { text-align: right; font-weight: 600; }
.ct-endereco { display: flex; gap: 1rem; padding: 1.5rem; border-radius: 1.25rem; background: #fff; border: 1px solid #e3e9f0; }
.ct-endereco-icone { display: inline-flex; align-items: center; justify-content: center; width: 2.5rem; height: 2.5rem; flex-shrink: 0; border-radius: 50%; background: #dbe6f3; color: #0053a6; font-size: 22px; }
.ct-endereco h3 { font-family: "Noto Serif", Georgia, serif; font-size: 1.15rem; color: #0053a6; }
.ct-endereco p { margin: .35rem 0 .7rem; color: #43474e; line-height: 1.55; }

.ct-mapa { height: 440px; background: #dfe6ee; }
.ct-mapa iframe { width: 100%; height: 100%; border: 0; display: block; }

.ct-faq { max-width: 52rem; }
.ct-perguntas { display: flex; flex-direction: column; gap: .75rem; }
.ct-pergunta { border-radius: 1rem; background: #fff; overflow: hidden; }
.ct-pergunta button { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.2rem 1.5rem; text-align: left; font-family: "Noto Serif", Georgia, serif; font-size: 1.08rem; color: #0053a6; cursor: pointer; background: none; border: 0; }
.ct-pergunta button .material-symbols-outlined { color: #a98608; transition: rotate .2s; }
.ct-resposta { padding: 0 1.5rem 1.3rem; color: #43474e; line-height: 1.65; }

@media (width < 64rem) {
    .ct-grade { grid-template-columns: 1fr; }
}
@media (width < 40rem) {
    .ct-linha { grid-template-columns: 1fr; }
    .ct-form-caixa { padding: 1.5rem; }
    .ct-mapa { height: 320px; }
}
