/* ============================================================
   Seção 6 — Final / CTA  +  Rodapé
   ============================================================ */
.cta { position: relative; overflow: hidden; color: #fff; isolation: isolate;
  padding: clamp(5rem, 12vw, 9rem) 0; }
.cta__bg { position: absolute; inset: 0; z-index: -2; }
.cta__bg img { width: 100%; height: 100%; object-fit: cover; object-position: center 35%; }
.cta__veil { position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(180deg, rgba(6,50,56,.82), rgba(6,50,56,.62) 45%, rgba(10,70,76,.86)); }
.cta__veil::after { content:""; position:absolute; inset:0;
  background: radial-gradient(70% 60% at 50% 30%, rgba(48,181,173,.28), transparent 70%); mix-blend-mode: screen; }

.cta__inner { text-align: center; max-width: 44ch; margin: 0 auto; }
.cta__logo { height: auto; width: clamp(220px, 32vw, 320px); margin: 0 auto 1.8rem;
  filter: drop-shadow(0 8px 26px rgba(0,0,0,.35)); }
.cta__title { font-size: var(--step-3); text-wrap: balance; margin-bottom: 1rem; }
.cta__title em { font-style: italic; color: var(--accent-300); }
.cta__sub { font-size: var(--step-1); color: rgba(255,255,255,.9); font-weight: 400; }
.cta__actions { display: flex; flex-wrap: wrap; gap: .8rem; justify-content: center; margin-top: 2rem; }
.cta__actions .btn { font-size: var(--step-0); padding: .9em 1.6em; }
.btn--wa { background: #25D366; color:#04331a; box-shadow: 0 10px 30px rgba(37,211,102,.4); }
.btn--wa:hover { box-shadow: 0 16px 40px rgba(37,211,102,.5); }

/* Endereço + botões de mapa na coluna de contato */
.footer__addr { align-items: flex-start !important; }
.footer__addr svg { margin-top: 2px; }
.footer__addr span { line-height: 1.45; }
.footer .map-btns { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 1.1rem; }
.footer .map-btn { display: inline-flex; align-items: center; gap: .5rem; background: #fff; color: #12333a; font-weight: 600;
  font-size: var(--step--1); padding: .6em 1em; border-radius: 999px; box-shadow: var(--shadow-sm);
  transition: transform .25s var(--ease), box-shadow .25s var(--ease); }
.footer .map-btn:hover { transform: translateY(-2px); box-shadow: var(--shadow); color: #0E5A62; }
.footer .map-btn svg { width: 18px; height: 18px; flex: 0 0 auto; color: inherit; }

.footer { background: var(--primary-900); color: rgba(255,255,255,.82); padding: clamp(3rem,6vw,4.5rem) 0 2rem; }
.footer__grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 2.4rem; }
.footer__brand img { width: clamp(140px, 15vw, 168px); height: auto; margin-bottom: 1.2rem; }
.footer__brand p { max-width: 34ch; font-size: var(--step--1); color: rgba(255,255,255,.66); }
.footer h4 { font-family: var(--font-sans); font-weight: 700; font-size: .82rem; text-transform: uppercase;
  letter-spacing: .12em; color: var(--accent-300); margin: 0 0 1rem; }
.footer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .6rem; }
.footer a { color: rgba(255,255,255,.82); font-size: var(--step--1); transition: color .2s; }
.footer a:hover { color: #fff; }
.footer__contact li { display: flex; align-items: center; gap: .6rem; font-size: var(--step--1); }
.footer__contact svg { width: 17px; height: 17px; color: var(--accent); flex: 0 0 auto; }
.footer__wa a { display: inline-flex; align-items: center; gap: .6rem; }
.footer__contact .wa-ic { width: 18px; height: 18px; color: #25D366; }
.footer__social { display: flex; gap: .6rem; margin-top: 1.1rem; }
.footer__social a { width: 40px; height: 40px; border-radius: 10px; display: grid; place-items: center;
  background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.14); color:#fff; }
.footer__social a:hover { background: var(--accent); color: #06282a; }
.footer__social svg { width: 20px; height: 20px; }
.footer__bottom { margin-top: 2.6rem; padding-top: 1.4rem; border-top: 1px solid rgba(255,255,255,.12);
  display: flex; flex-wrap: wrap; gap: .6rem 1.2rem; justify-content: space-between; font-size: .76rem; color: rgba(255,255,255,.55); }

@media (max-width: 820px) { .footer__grid { grid-template-columns: 1fr 1fr; } .footer__brand { grid-column: 1 / -1; } }
@media (max-width: 520px) { .footer__grid { grid-template-columns: 1fr; } }
