/* ============================================================
   Páginas de campanha (/slug) — blocos
   Usa os tokens do site.min.css (:root já carregado antes).
   ============================================================ */

.lp-sec { padding: 64px 0; }
.lp-sec.fundo-creme { background: var(--creme); }
.lp-sec.fundo-pattern { background-color: var(--branco); background-image: var(--bg-pattern-url, none); background-repeat: repeat; background-size: auto; }
.lp-wrap { width: min(960px, 90vw); margin-inline: auto; }
.lp-wrap-largo { width: min(1200px, 92vw); margin-inline: auto; }

.lp-sec .sec-linha { border: 0; width: 70px; border-top: 3px solid var(--terracota); border-radius: 3px; margin: 16px auto 34px; }
.lp-sec.alinha-esquerda .sec-titulo { text-align: left; }
.lp-sec.alinha-esquerda .sec-linha { margin-left: 0; }

/* ---------- Hero ---------- */
.lp-hero { background: linear-gradient(135deg, var(--creme) 0%, var(--creme-2) 100%); padding: 78px 0 68px; text-align: center; position: relative; overflow: hidden; }
.lp-hero.tem-bg { background-size: cover; background-repeat: no-repeat; background-position: var(--lp-foco, 50% 50%); display: flex; align-items: center; }
.lp-hero.tem-bg::before { content: ''; position: absolute; inset: 0; background: rgba(239, 235, 229, var(--lp-veu, .88)); }
.lp-hero .lp-wrap { position: relative; z-index: 1; }
.lp-hero.tem-bg .lp-wrap { flex: 0 1 auto; }

/* Altura da seção (escolhida no painel) */
.lp-hero.alt-compacta { padding: 48px 0 42px; }
.lp-hero.alt-padrao   { padding: 78px 0 68px; }
.lp-hero.alt-grande   { padding: 112px 0 100px; }
.lp-hero.alt-tela     { padding: 90px 0; }
/* Só com foto de fundo faz sentido esticar a seção (evita corte da imagem) */
.lp-hero.tem-bg.alt-compacta { min-height: 320px; }
.lp-hero.tem-bg.alt-padrao   { min-height: 470px; }
.lp-hero.tem-bg.alt-grande   { min-height: 640px; }
.lp-hero.tem-bg.alt-tela     { min-height: calc(100vh - 76px); min-height: calc(100svh - 76px); }

/* Posição e largura do bloco de texto */
.lp-hero-txt { margin-inline: auto; }
.lp-hero.larg-estreita .lp-hero-txt { max-width: 560px; }
.lp-hero.larg-media    .lp-hero-txt { max-width: 760px; }
.lp-hero.larg-larga    .lp-hero-txt { max-width: 100%; }
.lp-hero.txt-esquerda { text-align: left; }
.lp-hero.txt-direita  { text-align: right; }
.lp-hero.txt-esquerda .lp-hero-txt { margin-left: 0; margin-right: auto; }
.lp-hero.txt-direita  .lp-hero-txt { margin-left: auto; margin-right: 0; }
/* Alinhado à lateral ganha um respiro maior para fugir da foto */
.lp-hero.txt-esquerda .lp-wrap,
.lp-hero.txt-direita  .lp-wrap { width: min(1140px, 92vw); }
.lp-hero.txt-esquerda .lp-hero-texto { margin-inline: 0; }
.lp-hero.txt-direita  .lp-hero-texto { margin-left: auto; margin-right: 0; }

/* Véu em degradê: mais forte do lado do texto, mais leve sobre a foto */
.lp-hero.tem-bg.veu-grad.txt-esquerda::before { background: linear-gradient(90deg, rgba(239,235,229, var(--lp-veu, .88)) 0%, rgba(239,235,229, var(--lp-veu, .88)) 38%, rgba(239,235,229, var(--lp-veu-fraco, .25)) 100%); }
.lp-hero.tem-bg.veu-grad.txt-direita::before  { background: linear-gradient(270deg, rgba(239,235,229, var(--lp-veu, .88)) 0%, rgba(239,235,229, var(--lp-veu, .88)) 38%, rgba(239,235,229, var(--lp-veu-fraco, .25)) 100%); }
.lp-hero.tem-bg.veu-grad.txt-centro::before   { background: linear-gradient(90deg, rgba(239,235,229, var(--lp-veu-fraco, .25)) 0%, rgba(239,235,229, var(--lp-veu, .88)) 26%, rgba(239,235,229, var(--lp-veu, .88)) 74%, rgba(239,235,229, var(--lp-veu-fraco, .25)) 100%); }
.lp-eyebrow { display: inline-block; font-size: 13px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: var(--terracota-f); background: rgba(185, 104, 83, .12); padding: 8px 18px; border-radius: 99px; margin-bottom: 20px; }
.lp-h1 { font-family: var(--f-titulo); font-style: italic; font-weight: 600; font-size: clamp(30px, 4.6vw, 50px); color: var(--terracota); line-height: 1.18; }
.lp-hero-texto { font-size: clamp(15px, 1.4vw, 19px); font-weight: 600; line-height: 1.6; color: var(--terracota-t); max-width: 680px; margin: 20px auto 0; }
.lp-btn { display: inline-block; margin-top: 32px; background: var(--terracota-f); color: #fff; font-weight: 600; font-size: 17px; letter-spacing: .6px; padding: 15px 40px; border-radius: 40px; box-shadow: 0 8px 22px rgba(185, 104, 83, .4); transition: transform .2s, box-shadow .2s; }
.lp-btn:hover { transform: translateY(-2px); box-shadow: 0 12px 28px rgba(185, 104, 83, .5); }

/* ---------- Texto ---------- */
.lp-conteudo { font-size: clamp(15px, 1.2vw, 18px); font-weight: 400; line-height: 1.8; color: var(--oliva-t); }
.lp-conteudo p { margin-bottom: 15px; }
.lp-conteudo p:last-child { margin-bottom: 0; }
.lp-conteudo h2, .lp-conteudo h3 { font-family: var(--f-titulo); font-style: italic; color: var(--terracota-t); margin: 24px 0 10px; }
.lp-conteudo ul, .lp-conteudo ol { margin: 0 0 16px 22px; }
.lp-conteudo li { margin-bottom: 8px; }
.lp-conteudo a { color: var(--terracota-t); text-decoration: underline; }
.lp-conteudo img { max-width: 100%; height: auto; border-radius: 12px; margin: 12px 0; }
.lp-conteudo blockquote { border-left: 3px solid var(--oliva); padding: 6px 18px; font-style: italic; margin: 18px 0; }
.lp-conteudo .ql-align-center { text-align: center; }
.lp-conteudo .ql-align-right { text-align: right; }
.lp-conteudo .ql-align-justify { text-align: justify; }

/* ---------- Imagem ---------- */
.lp-imagem img { width: 100%; height: auto; border-radius: var(--raio); box-shadow: var(--sombra); }
.lp-legenda { text-align: center; font-size: 13.5px; margin-top: 12px; opacity: .8; }

/* ---------- Imagem + Texto ---------- */
.lp-2col { display: grid; grid-template-columns: 1fr 1.1fr; gap: 44px; align-items: center; }
.lp-2col.img-direita .lp-2col-img { order: 2; }
.lp-2col-img img { width: 100%; height: auto; border-radius: var(--raio); box-shadow: var(--sombra); }
.lp-2col .sec-titulo { text-align: left; }
.lp-2col .sec-linha { margin-left: 0; margin-bottom: 22px; }

/* ---------- Vídeo ---------- */
.lp-video { position: relative; aspect-ratio: 16 / 9; border-radius: var(--raio); overflow: hidden; box-shadow: var(--sombra); background: #2b2f27; }
.lp-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* ---------- Cards ---------- */
.lp-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.lp-card { background: var(--branco); border-radius: var(--raio); box-shadow: var(--sombra); border: 1px solid rgba(112, 126, 100, .10); padding: 38px 28px; text-align: center; transition: transform .25s, box-shadow .25s; }
.lp-card:hover { transform: translateY(-6px); box-shadow: 0 18px 40px rgba(112, 126, 100, .18); }
.lp-card h3 { font-family: var(--f-titulo); font-style: italic; font-weight: 600; font-size: clamp(22px, 2vw, 30px); color: var(--oliva-t); margin-bottom: 16px; line-height: 1.2; }
.lp-card .txt, .lp-card .txt p { font-size: clamp(14px, 1.1vw, 17px); font-weight: 300; line-height: 1.65; color: var(--oliva-t); }
.lp-card .txt p { margin-bottom: 8px; }
.lp-card .txt p:last-child { margin-bottom: 0; }

/* ---------- FAQ ---------- */
.lp-faq-lista { background: var(--branco); border-radius: var(--raio); box-shadow: var(--sombra); padding: 10px 30px; }
.lp-faq-item { border-bottom: 1px solid rgba(112, 126, 100, .15); }
.lp-faq-item:last-child { border-bottom: 0; }
.lp-faq-item summary { list-style: none; cursor: pointer; display: flex; align-items: center; gap: 14px; padding: 18px 4px; font-family: var(--f-titulo); font-weight: 600; font-size: 18px; color: var(--oliva-t); }
.lp-faq-item summary::-webkit-details-marker { display: none; }
.lp-faq-item summary::before { content: '\25BE'; color: var(--oliva); flex-shrink: 0; transition: transform .25s; }
.lp-faq-item[open] summary::before { transform: rotate(180deg); }
.lp-faq-resposta { padding: 0 4px 20px 30px; font-size: 16px; line-height: 1.65; }
.lp-faq-resposta p { margin-bottom: 10px; }
.lp-faq-resposta p:last-child { margin-bottom: 0; }

/* ---------- CTA final ---------- */
.lp-cta { background: linear-gradient(135deg, var(--oliva) 0%, var(--oliva-escuro) 100%); text-align: center; padding: 66px 0; color: #fff; }
.lp-cta h2 { font-family: var(--f-titulo); font-style: italic; font-weight: 600; font-size: clamp(26px, 3vw, 38px); }
.lp-cta .lp-cta-texto { opacity: .92; margin-top: 12px; font-size: clamp(15px, 1.2vw, 18px); line-height: 1.6; max-width: 640px; margin-inline: auto; }
.lp-cta .lp-btn { background: #fff; color: var(--oliva-escuro); box-shadow: 0 8px 22px rgba(0, 0, 0, .2); }
.lp-cta .lp-btn:hover { box-shadow: 0 12px 28px rgba(0, 0, 0, .28); }

/* ---------- Responsivo ---------- */
@media (max-width: 992px) {
    .lp-cards { grid-template-columns: repeat(2, 1fr); }
    .lp-2col { grid-template-columns: 1fr; gap: 28px; }
    .lp-2col.img-direita .lp-2col-img { order: 0; }
}
@media (max-width: 640px) {
    .lp-sec { padding: 48px 0; }
    .lp-cards { grid-template-columns: 1fr; }
    .lp-faq-lista { padding: 6px 18px; }
    .lp-faq-item summary { font-size: 16px; }
    .lp-faq-resposta { font-size: 14px; }
    .lp-hero { padding: 56px 0 50px; }
    .lp-hero.alt-compacta { padding: 40px 0 34px; }
    .lp-hero.alt-padrao   { padding: 56px 0 50px; }
    .lp-hero.alt-grande   { padding: 76px 0 68px; }
    .lp-hero.alt-tela     { padding: 60px 0; }
    .lp-hero.tem-bg.alt-compacta { min-height: 260px; }
    .lp-hero.tem-bg.alt-padrao   { min-height: 400px; }
    .lp-hero.tem-bg.alt-grande   { min-height: 540px; }
    .lp-hero.tem-bg.alt-tela     { min-height: calc(100vh - 66px); min-height: calc(100svh - 66px); }
    /* No celular a foto fica atrás do texto inteiro: véu chapado garante leitura */
    .lp-hero.tem-bg.veu-grad.txt-esquerda::before,
    .lp-hero.tem-bg.veu-grad.txt-direita::before,
    .lp-hero.tem-bg.veu-grad.txt-centro::before { background: rgba(239, 235, 229, var(--lp-veu, .88)); }
    .lp-hero.txt-esquerda .lp-wrap,
    .lp-hero.txt-direita  .lp-wrap { width: min(1140px, 90vw); }
}