/* =========================================================================
   ACP Site Chrome — header + footer de referencia.
   Resolve docs/responsive/HEADER_LOGO_MOBILE_REQUIREMENTS__V01.md:
   logo 160/140/128px (nao 80x25), fundo com contraste garantido pelos
   tokens (nao um valor fixo que quebra em outro tema).
   ========================================================================= */

.acp-header {
  position: sticky; top: 0; z-index: 50;
  background: var(--acp-ink, #0b1820); color: #fff;
  border-bottom: 1px solid rgba(255,255,255,.08);
}
.acp-header__bar {
  max-inline-size: 1320px; margin-inline: auto;
  display: flex; align-items: center; gap: 1.5rem;
  padding-block: 1rem; padding-inline: clamp(1.25rem, 5vw, 2.5rem);
}
.acp-header__logo { display: flex; align-items: center; gap: .6rem; text-decoration: none; color: #fff; }
.acp-header__brand-image { display: block; width: auto; height: 58px; max-width: 230px; object-fit: contain; filter: drop-shadow(0 5px 16px rgba(0,0,0,.28)); }
.acp-header__mark { width: 40px; height: 40px; color: var(--acp-lime, #b7ff45); flex: 0 0 auto; }
.acp-header__mark svg { width: 100%; height: 100%; }
.acp-header__wordmark { font-weight: 800; font-size: 1.05rem; letter-spacing: -.01em; white-space: nowrap; }

.acp-header__nav { display: flex; align-items: center; gap: .3rem; margin-inline-start: 1rem; }
.acp-header__navlink {
  font: inherit; font-size: .92rem; font-weight: 700; color: #dfe8e4;
  background: none; border: 0; cursor: pointer; text-decoration: none;
  padding: .6rem .8rem; border-radius: 8px; display: inline-flex; align-items: center; gap: .3rem;
}
.acp-header__navlink:hover, .acp-header__navlink:focus-visible { background: rgba(255,255,255,.08); outline: none; }
.acp-header__cta { margin-inline-start: .4rem; padding: .66rem 1rem; border-radius: 999px; color: #102018; background: var(--acp-lime, #b7ff45); font-size: .84rem; font-weight: 850; text-decoration: none; transition: transform .2s ease, box-shadow .2s ease; }
.acp-header__cta:hover, .acp-header__cta:focus-visible { transform: translateY(-2px); box-shadow: 0 10px 30px rgba(183,255,69,.18); outline: 2px solid #fff; outline-offset: 2px; }

.acp-header__dropdown { position: relative; }
.acp-header__mega {
  position: absolute; top: calc(100% + .6rem); left: 0; z-index: 60;
  display: grid; grid-template-columns: repeat(3, minmax(160px, 1fr)); gap: 1.4rem;
  padding: 1.4rem; min-inline-size: 560px;
  background: #0d2028; border: 1px solid rgba(255,255,255,.1); border-radius: 14px;
  box-shadow: 0 20px 50px rgba(0,0,0,.4);
}
.acp-header__mega[hidden] { display: none; }
.acp-header__mega--compact { min-inline-size: 230px; grid-template-columns: 1fr; }
.acp-header__megatitle {
  display: block; margin-bottom: .5rem; font-size: .7rem; font-weight: 800;
  letter-spacing: .1em; text-transform: uppercase; color: var(--acp-lime, #b7ff45);
}
.acp-header__megacol { display: grid; gap: .1rem; }
.acp-header__megacol a {
  padding: .4rem .3rem; border-radius: 6px; color: #dfe8e4; font-size: .86rem;
  text-decoration: none;
}
.acp-header__megacol a:hover, .acp-header__megacol a:focus-visible { background: rgba(255,255,255,.06); outline: none; }

.acp-header__actions { margin-inline-start: auto; display: flex; align-items: center; gap: .5rem; }
.acp-header__icon {
  width: 38px; height: 38px; display: grid; place-items: center; border-radius: 50%;
  background: transparent; border: 1px solid rgba(255,255,255,.16); color: #fff; cursor: pointer;
}
.acp-header__icon:hover, .acp-header__icon:focus-visible { background: rgba(255,255,255,.08); outline: none; }

.acp-header__burger {
  display: none; width: 38px; height: 38px; border-radius: 8px; border: 1px solid rgba(255,255,255,.16);
  background: transparent; cursor: pointer; flex-direction: column; align-items: center; justify-content: center; gap: 4px;
}
.acp-header__burger span { width: 18px; height: 2px; background: #fff; border-radius: 2px; }

/* logo responsivo: 160 desktop / 140 tablet / 128 mobile, conforme o
   requisito ja documentado — nunca 80x25 outra vez. */
@media (max-width: 1100px) { .acp-header__wordmark { font-size: 1rem; } }
@media (max-width: 780px) {
  .acp-header__bar { position: relative; padding-block: .7rem; }
  .acp-header__brand-image { height: 48px; max-width: 190px; }
  .acp-header__nav { display: none; position: absolute; left: 1rem; right: 1rem; top: calc(100% + .2rem); z-index: 80; padding: .8rem; border: 1px solid rgba(255,255,255,.1); border-radius: 14px; background: #0b1f27; box-shadow: 0 20px 48px rgba(0,0,0,.35); }
  .acp-header__nav.is-open { display: grid; gap: .2rem; }
  .acp-header__navlink, .acp-header__cta { justify-content: flex-start; margin: 0; }
  .acp-header__mega { position: static; min-inline-size: 0; grid-template-columns: 1fr; margin-top: .4rem; box-shadow: none; }
  .acp-header__burger { display: flex; }
  .acp-header__wordmark { font-size: .92rem; }
  .acp-lang__toggle span:not(.acp-lang__flag) { display: none; } /* so a bandeira no mobile */
}

.acp-lang { position: relative; }
.acp-lang__toggle { display: inline-flex; align-items: center; gap: .35rem; min-height: 38px; padding: .4rem .65rem; border: 1px solid rgba(255,255,255,.16); border-radius: 999px; color: #fff; background: transparent; cursor: pointer; font: inherit; font-size: .72rem; font-weight: 850; }
.acp-lang__flag { font-size: 1rem; }
.acp-lang__menu { position: absolute; right: 0; top: calc(100% + .55rem); z-index: 90; width: 230px; max-height: 360px; overflow: auto; margin: 0; padding: .5rem; list-style: none; border: 1px solid rgba(255,255,255,.12); border-radius: 14px; background: #0b1f27; box-shadow: 0 18px 50px rgba(0,0,0,.38); }
.acp-lang__menu[hidden] { display: none; }
.acp-lang__link { display: flex; align-items: center; gap: .65rem; padding: .65rem .7rem; border-radius: 8px; color: #e7f0ec; text-decoration: none; font-size: .82rem; font-weight: 700; }
.acp-lang__link:hover, .acp-lang__link:focus-visible { background: rgba(255,255,255,.08); outline: none; }

/* =========================================================================
   FOOTER
   ========================================================================= */
.acp-footer { background: var(--acp-ink, #0b1820); color: #dfe8e4; }
.acp-footer__top {
  max-inline-size: 1320px; margin-inline: auto;
  padding: 3rem clamp(1.25rem, 5vw, 2.5rem) 2rem;
  display: grid; grid-template-columns: minmax(240px, 1fr) 2fr; gap: 3rem;
}
.acp-footer__wordmark { font-weight: 800; font-size: 1.1rem; }
.acp-footer__tag { margin: .6rem 0 1.1rem; color: #93a89f; font-size: .9rem; line-height: 1.6; max-inline-size: 32ch; }
.acp-footer__whats {
  display: inline-flex; align-items: center; gap: .5rem;
  padding: .6rem 1rem; border-radius: 999px; background: #25d366; color: #06210f;
  font-weight: 800; font-size: .85rem; text-decoration: none;
}
.acp-footer__whats:hover, .acp-footer__whats:focus-visible { filter: brightness(1.08); outline: none; }

.acp-footer__cols { display: grid; grid-template-columns: repeat(4, 1fr); gap: .3rem 1.5rem; align-content: start; }
.acp-footer__cols a { color: #dfe8e4; text-decoration: none; font-size: .88rem; padding: .35rem 0; }
.acp-footer__cols a:hover, .acp-footer__cols a:focus-visible { color: var(--acp-lime, #b7ff45); outline: none; }

.acp-footer__bottom {
  border-top: 1px solid rgba(255,255,255,.08);
  max-inline-size: 1320px; margin-inline: auto;
  padding: 1.1rem clamp(1.25rem, 5vw, 2.5rem);
  display: flex; flex-wrap: wrap; gap: .6rem 1.5rem; justify-content: space-between;
  font-size: .8rem; color: #93a89f;
}

@media (max-width: 780px) {
  .acp-footer__top { grid-template-columns: 1fr; }
  .acp-footer__cols { grid-template-columns: repeat(2, 1fr); }
}
