/* Seções das páginas. */
.secao { padding-block: var(--secao) 0; }
.secao__cabeca { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 24px; }
.secao__nota { font-family: var(--fonte-titulo); font-weight: 600; font-size: 1.125rem; text-transform: uppercase; color: var(--cor-acento); }

/* Hero */
.hero { padding-block: clamp(40px, 7vw, 88px) 0; display: flex; flex-direction: column; gap: 40px; }
.hero__titulo { font-family: var(--fonte-titulo); font-weight: 700; font-size: clamp(3.25rem, 10vw, 8.5rem); line-height: 0.92; text-transform: uppercase; color: #FFFFFF; }
.hero__linha { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 40px; }
.hero__foto { flex: 1 1 420px; min-width: 0; width: 100%; height: clamp(260px, 36vw, 400px); object-fit: cover; border-bottom: 6px solid var(--cor-acento); }
.hero__texto { flex: 1 1 340px; display: flex; flex-direction: column; gap: 22px; }
.hero__texto p { font-size: 1.25rem; color: var(--cor-texto-suave); }
.acoes { display: flex; flex-wrap: wrap; gap: 14px; }
@keyframes acende { 0% { opacity: .22; } 35% { opacity: .22; } 42% { opacity: 1; } 50% { opacity: .45; } 58% { opacity: 1; } 66% { opacity: .7; } 74%, 100% { opacity: 1; } }
@media (prefers-reduced-motion: no-preference) { .hero__titulo { animation: acende 1.1s linear .2s both; } }

/* Lista de serviços com disjuntor (assinatura do ofício) */
.servicos { border-top: 2px solid var(--cor-linha-forte); }
.servico { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 24px; padding: 20px 16px; margin-inline: -16px; border-bottom: 1px solid var(--cor-linha); transition: background-color .2s ease, border-color .2s ease; }
.servico:hover, .servico:focus-within { background: var(--cor-superficie); border-bottom-color: var(--cor-acento); }
.disjuntor { flex: none; position: relative; width: 24px; height: 46px; background: #06150E; border: 1px solid var(--cor-linha); }
.disjuntor span { position: absolute; left: 3px; top: 3px; width: 16px; height: 18px; background: var(--cor-acento); transition: transform .2s cubic-bezier(.3,1.6,.5,1), background-color .2s ease; }
@media (hover: hover) {
  .servico .disjuntor span { transform: translateY(20px); background: #5C6B62; }
  .servico:hover .disjuntor span, .servico:focus-within .disjuntor span { transform: none; background: var(--cor-acento); }
}
.servico__num { font-family: var(--fonte-titulo); font-weight: 700; font-size: 1.5rem; color: var(--cor-acento); min-width: 24px; text-align: center; transition: text-shadow .2s ease; }
.servico:hover .servico__num { text-shadow: 0 0 18px var(--cor-acento); }
.servico__nome { flex: 1 1 240px; font-family: var(--fonte-titulo); font-weight: 700; font-size: 1.875rem; line-height: 1.1; text-transform: uppercase; }
.servico__nome a { color: #FFFFFF; text-decoration: none; }
.servico__nome a:hover { text-decoration: underline; text-decoration-color: var(--cor-acento); text-underline-offset: 5px; }
.servico__texto { flex: 1 1 280px; color: var(--cor-texto-suave); }

/* Emergência */
.emergencia { margin-top: 40px; background: var(--cor-acento); color: var(--cor-fundo); padding: clamp(20px, 3vw, 32px); display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 32px; }
.emergencia__titulo { font-family: var(--fonte-titulo); font-weight: 700; font-size: clamp(1.75rem, 3.6vw, 2.5rem); line-height: 1; text-transform: uppercase; }
.emergencia p { font-weight: 600; }
@keyframes pulso { 0% { box-shadow: 0 0 0 0 rgba(12,35,24,.6); } 100% { box-shadow: 0 0 0 24px rgba(12,35,24,0); } }
@media (prefers-reduced-motion: no-preference) { .emergencia.visivel .botao { animation: pulso 1.1s ease-out 2; } }

/* Trabalhos */
.galeria { display: flex; flex-direction: column; gap: 16px; }
.galeria__linha { display: flex; flex-wrap: wrap; gap: 16px; }
.galeria figure { flex: 1 1 200px; display: flex; flex-direction: column; gap: 10px; }
.galeria figure.larga { flex: 2 1 320px; }
.galeria img { width: 100%; object-fit: cover; }
.galeria__linha--a img { height: clamp(220px, 28vw, 340px); }
.galeria__linha--b img { height: clamp(260px, 34vw, 420px); }
.galeria__linha--c img { height: clamp(180px, 20vw, 230px); }
.galeria .topo-img { object-position: center top; }

/* Sobre */
.sobre { margin-top: var(--secao); background: var(--cor-superficie); border-block: 1px solid var(--cor-linha); }
.sobre__linha { display: flex; flex-wrap: wrap; gap: 40px 48px; padding-block: clamp(48px, 7vw, 96px); }
.sobre__foto { flex: 0 1 260px; width: 260px; height: 320px; object-fit: cover; object-position: center 30%; border-bottom: 6px solid var(--cor-acento); }
.sobre__texto { flex: 1 1 320px; min-width: 0; display: flex; flex-direction: column; gap: 18px; }
.sobre__texto strong { color: #FFFFFF; font-weight: 600; }
.sobre__pontos { flex: 1 1 320px; display: flex; flex-direction: column; gap: 24px; }
.sobre__pontos li { border-top: 3px solid var(--cor-acento); padding-top: 14px; display: flex; flex-direction: column; gap: 6px; color: var(--cor-texto-suave); }
.sobre__pontos b { font-family: var(--fonte-titulo); font-weight: 700; font-size: 1.5rem; text-transform: uppercase; color: #FFFFFF; line-height: 1.1; }

/* Avaliações */
.avaliacoes { display: flex; flex-wrap: wrap; gap: 40px; }
.avaliacoes__cabeca { flex: 1 1 260px; display: flex; flex-direction: column; gap: 8px; }
.avaliacoes__lista { flex: 2 1 480px; }
.avaliacoes__lista li { padding-block: 22px; border-bottom: 1px solid var(--cor-linha); display: flex; flex-direction: column; gap: 8px; }
.avaliacoes__lista li:first-child { padding-top: 0; }
.avaliacoes__lista li:last-child { border-bottom: 0; padding-bottom: 0; }
.avaliacoes__lista blockquote { margin: 0; font-size: 1.25rem; }

/* Área e CTA final */
.faixa { border-top: 1px solid var(--cor-linha); padding-top: clamp(32px, 5vw, 56px); display: flex; flex-wrap: wrap; align-items: flex-start; gap: 20px 40px; }
.faixa > :first-child { flex: 1 1 320px; }
.faixa > :last-child { flex: 1 1 380px; display: flex; flex-direction: column; gap: 10px; }
.chamada { border-top: 2px solid var(--cor-linha-forte); padding-top: clamp(32px, 5vw, 56px); display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 28px; }
.chamada__titulo { flex: 1 1 480px; font-family: var(--fonte-titulo); font-weight: 700; font-size: clamp(2.6rem, 7vw, 5.75rem); line-height: 0.94; text-transform: uppercase; color: #FFFFFF; }
.chamada__acao { display: flex; flex-direction: column; gap: 10px; text-align: center; font-weight: 600; }
.chamada__acao a:not(.botao) { color: var(--cor-texto); }

/* Página de serviços */
.pagina-cabeca { padding-block: clamp(40px, 6vw, 72px) 0; display: flex; flex-direction: column; gap: 16px; }
.pagina-cabeca h1 { font-family: var(--fonte-titulo); font-weight: 700; font-size: clamp(2.75rem, 8vw, 6rem); line-height: 0.94; text-transform: uppercase; color: #FFFFFF; }
.pagina-cabeca p { max-width: 62ch; font-size: 1.1875rem; color: var(--cor-texto-suave); }
.detalhe { display: flex; flex-wrap: wrap; gap: 20px 48px; padding-block: 36px; border-bottom: 1px solid var(--cor-linha); }
.detalhe:first-child { border-top: 2px solid var(--cor-linha-forte); }
.detalhe__cabeca { flex: 1 1 300px; display: flex; flex-direction: column; align-items: flex-start; gap: 14px; }
.detalhe__cabeca h2 { font-family: var(--fonte-titulo); font-weight: 700; font-size: 2.25rem; line-height: 1.05; text-transform: uppercase; color: #FFFFFF; }
.detalhe__lista { flex: 2 1 420px; columns: 2 240px; column-gap: 40px; color: var(--cor-texto-suave); }
.detalhe__lista li { break-inside: avoid; padding: 7px 0 7px 18px; position: relative; }
.detalhe__lista li::before { content: ""; position: absolute; left: 0; top: 1.05em; width: 8px; height: 2px; background: var(--cor-acento); }

/* Contato e formulário */
.contato { display: flex; flex-wrap: wrap; gap: 48px; padding-top: 40px; border-top: 2px solid var(--cor-linha-forte); }
.contato__canais { flex: 1 1 320px; display: flex; flex-direction: column; gap: 22px; align-items: flex-start; }
.contato__canais ul { display: flex; flex-direction: column; gap: 12px; color: var(--cor-texto-suave); }
.contato__canais li, .contato__canais li a { display: flex; align-items: center; gap: 10px; }
.contato__canais li a { color: var(--cor-texto); min-height: 44px; }
.form { flex: 1 1 420px; background: var(--cor-superficie); border: 1px solid var(--cor-linha); padding: clamp(20px, 4vw, 36px); display: flex; flex-direction: column; gap: 18px; }
.form h2 { font-family: var(--fonte-titulo); font-weight: 700; font-size: 2rem; text-transform: uppercase; color: #FFFFFF; line-height: 1; }
.campo { display: flex; flex-direction: column; gap: 6px; }
.campo label { font-weight: 600; font-size: 0.9375rem; }
.campo label span { font-weight: 400; color: var(--cor-legenda); }
.campo input, .campo select, .campo textarea { font: inherit; color: var(--cor-texto); background: var(--cor-fundo); border: 1px solid #5E8A73; padding: 12px 14px; min-height: 48px; width: 100%; border-radius: 0; }
.campo textarea { resize: vertical; min-height: 110px; }
.campo [aria-invalid="true"] { border-color: var(--cor-erro); }
.campo__erro { color: var(--cor-erro); font-size: 0.9375rem; }
.aceite { display: flex; gap: 12px; align-items: flex-start; font-size: 0.9375rem; color: var(--cor-texto-suave); }
.aceite input { width: 22px; height: 22px; margin: 2px 0 0; flex: none; accent-color: var(--cor-acento); }
.pote { position: absolute; left: -9999px; }
.form__status { font-weight: 600; }
.form__status.erro { color: var(--cor-erro); }
.form__status.ok { color: var(--cor-acento); }
.form__finalidade { font-size: 0.875rem; color: var(--cor-legenda); }

/* Páginas legais e 404 */
.legal { max-width: 74ch; padding-top: 32px; display: flex; flex-direction: column; gap: 16px; color: var(--cor-texto-suave); }
.legal h2 { font-family: var(--fonte-titulo); font-weight: 700; font-size: 1.75rem; text-transform: uppercase; color: #FFFFFF; margin-top: 18px; line-height: 1.1; }
.legal ul { list-style: disc; padding-left: 22px; display: flex; flex-direction: column; gap: 6px; }
.legal table { border-collapse: collapse; width: 100%; font-size: 0.9375rem; }
.legal th, .legal td { text-align: left; vertical-align: top; padding: 10px 12px 10px 0; border-bottom: 1px solid var(--cor-linha); }
.legal th { color: #FFFFFF; }
.tabela-rolagem { overflow-x: auto; }
.erro404 { padding-block: clamp(56px, 10vw, 120px) 0; display: flex; flex-direction: column; align-items: flex-start; gap: 24px; }
.erro404 .disjuntor span { transform: translateY(20px); background: #5C6B62; }
