/*!
 * PRAXI — Site · Webmatica
 * Todos os seletores usam o prefixo .px- (ou #main). Nenhum depende das classes que o WordPress põe no <body>.
 */

/* ------------------------------------------------------------------ */
/* Tokens                                                              */
/* ------------------------------------------------------------------ */
:root {
  --px-paper: #ffffff;
  --px-mist: #f2f5f3;
  --px-mist-2: #e9eeeb;
  --px-line: #dbe2de;
  --px-ink: #17201b;
  --px-muted: #4f5a54;
  --px-steel: #8e9391;
  --px-green: #0b6f36;
  --px-green-deep: #07522a;
  --px-green-tint: #e5f0e9;
  --px-red: #c8140d;

  --px-display: 'Archivo PX', 'Archivo', 'Helvetica Neue', Arial, sans-serif;
  --px-text: 'Public Sans PX', 'Public Sans', system-ui, -apple-system, 'Segoe UI', Roboto, Arial, sans-serif;

  --px-wrap: 76rem;
  --px-gutter: clamp(1rem, 4vw, 2.5rem);
  --px-section: clamp(4rem, 9vw, 8rem);
  --px-radius: 4px;
  --px-ease: cubic-bezier(.2, .7, .2, 1);
  --px-header-h: 4.5rem;
}

/* ------------------------------------------------------------------ */
/* Base (o documento é gerado pelo plugin; o tema não carrega CSS aqui) */
/* ------------------------------------------------------------------ */
.px-site *, .px-site *::before, .px-site *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-padding-top: calc(var(--px-header-h) + 1rem); }
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }
body.px-site {
  margin: 0;
  background: var(--px-paper);
  color: var(--px-ink);
  font-family: var(--px-text);
  font-size: 1.0625rem;
  line-height: 1.65;
  font-weight: 400;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: clip;
}
:where(.px-site) :where(img, video, svg, canvas) { display: block; max-width: 100%; }
:where(.px-site) :where(img) { height: auto; }
:where(.px-site) :where(a) { color: var(--px-green); text-underline-offset: .18em; text-decoration-thickness: 1px; }
:where(.px-site) :where(a:hover) { color: var(--px-green-deep); }
.px-site :focus-visible { outline: 3px solid var(--px-green); outline-offset: 3px; border-radius: 2px; }
:where(.px-site) :where(p, ul, ol, h1, h2, h3, h4, figure, blockquote) { margin: 0; }
:where(.px-site) :where(ul[role="list"], ol[role="list"]) { list-style: none; padding: 0; }
:where(.px-site) :where(button, input, select, textarea) { font: inherit; color: inherit; }
.px-main { display: block; outline: none; }
.px-sr { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.px-skip { position: absolute; left: 1rem; top: -4rem; z-index: 100; padding: .75rem 1rem; background: var(--px-ink); color: #fff !important; border-radius: var(--px-radius); text-decoration: none; transition: top .2s; }
.px-skip:focus { top: 1rem; }

.px-wrap { width: 100%; max-width: calc(var(--px-wrap) + 2 * var(--px-gutter)); margin-inline: auto; padding-inline: var(--px-gutter); }
.px-section { padding-block: var(--px-section); }
.px-section--mist { background: var(--px-mist); }
.px-section--tight { padding-block: clamp(3rem, 6vw, 5rem); }

/* ------------------------------------------------------------------ */
/* Tipografia                                                          */
/* ------------------------------------------------------------------ */
.px-h1, .px-h2, .px-h3, .px-display {
  font-family: var(--px-display);
  font-stretch: 116%;
  font-weight: 760;
  letter-spacing: -.022em;
  color: var(--px-ink);
  text-wrap: balance;
}
.px-display { font-size: clamp(2.35rem, 4.4vw, 4.25rem); line-height: 1; letter-spacing: -.03em; font-stretch: 112%; }
.px-h1 { font-size: clamp(2.2rem, 5vw, 4rem); line-height: 1.02; letter-spacing: -.03em; }
.px-h2 { font-size: clamp(1.75rem, 3.4vw, 2.75rem); line-height: 1.08; }
.px-h3 { font-size: clamp(1.25rem, 1.9vw, 1.55rem); line-height: 1.2; font-stretch: 108%; font-weight: 700; letter-spacing: -.01em; }
.px-lead { font-size: clamp(1.125rem, 1.6vw, 1.3rem); line-height: 1.55; color: var(--px-muted); max-width: 38em; text-wrap: pretty; }
.px-prose { max-width: 42em; }
.px-prose > * + * { margin-top: 1.1em; }
.px-prose h2 { font-family: var(--px-display); font-stretch: 110%; font-weight: 720; font-size: 1.5rem; line-height: 1.2; margin-top: 2.2em; letter-spacing: -.01em; }
.px-prose ul, .px-prose ol { padding-left: 1.25em; }
.px-prose li + li { margin-top: .4em; }
.px-prose li::marker { color: var(--px-green); }
.px-kicker { font-size: .95rem; font-weight: 600; color: var(--px-green); margin-bottom: 1rem; display: flex; align-items: center; gap: .6rem; }
.px-kicker::before { content: ""; width: 1.5rem; height: 2px; background: currentColor; }
.px-muted { color: var(--px-muted); }
.px-small { font-size: .9rem; }

/* Cabeçalho de secção: título à esquerda, texto à direita */
.px-head { display: grid; gap: 1.25rem; margin-bottom: clamp(2.5rem, 5vw, 4rem); }
@media (min-width: 900px) {
  .px-head { grid-template-columns: 5fr 7fr; gap: 3rem; align-items: end; }
  .px-head--row { grid-template-columns: 1fr auto; }
  .px-head--solo { grid-template-columns: minmax(0, 46rem); }
}

/* ------------------------------------------------------------------ */
/* Botões e ligações                                                   */
/* ------------------------------------------------------------------ */
.px-btn {
  --b: var(--px-green);
  display: inline-flex; align-items: center; justify-content: center; gap: .6rem;
  min-height: 3.1rem; padding: .8rem 1.4rem;
  border: 2px solid var(--b); border-radius: var(--px-radius);
  background: var(--b); color: #fff !important;
  font-family: var(--px-display); font-stretch: 108%; font-weight: 650; font-size: 1rem; line-height: 1.1;
  text-decoration: none; cursor: pointer;
  transition: background-color .2s var(--px-ease), border-color .2s var(--px-ease), color .2s var(--px-ease), transform .2s var(--px-ease);
}
.px-btn { position: relative; overflow: hidden; isolation: isolate; }
.px-btn::before { content: ""; position: absolute; inset: -2px; z-index: -1; background: var(--px-sweep, var(--px-green-deep)); transform: translate3d(-101%, 0, 0) skewX(-12deg); transform-origin: left; transition: transform .45s var(--px-ease); }
.px-btn:hover::before, .px-btn:focus-visible::before { transform: translate3d(0, 0, 0) skewX(0); }
.px-btn:active { transform: translateY(1px); }
.px-btn--ghost { background: rgba(255, 255, 255, .7); color: var(--px-ink) !important; border-color: var(--px-ink); --px-sweep: var(--px-ink); }
.px-btn--ghost:hover { color: #fff !important; }
.px-btn[disabled], .px-btn[aria-busy="true"] { opacity: .7; cursor: progress; }
.px-btn__arrow { width: 1.1em; height: 1.1em; transition: transform .25s var(--px-ease); }
.px-btn:hover .px-btn__arrow { transform: translateX(3px); }
.px-actions { display: flex; flex-wrap: wrap; gap: .75rem; }
.px-link { font-weight: 600; text-decoration: underline; text-underline-offset: .25em; white-space: nowrap; }

/* ------------------------------------------------------------------ */
/* Cabeçalho                                                           */
/* ------------------------------------------------------------------ */
.px-header {
  position: sticky; top: 0; z-index: 40;
  background: rgba(255, 255, 255, .94);
  -webkit-backdrop-filter: saturate(1.4) blur(10px); backdrop-filter: saturate(1.4) blur(10px);
  border-bottom: 1px solid transparent;
  transition: border-color .25s, box-shadow .25s, transform .4s var(--px-ease);
}
.px-header.is-tucked { transform: translate3d(0, calc(-100% - 48px), 0); }
.px-progress { position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; background: var(--px-green); transform: scaleX(0); transform-origin: left; pointer-events: none; }
.px-header.is-scrolled { border-bottom-color: var(--px-line); box-shadow: 0 6px 24px -18px rgba(23, 32, 27, .35); }
.px-header__bar { display: flex; align-items: center; gap: 1.5rem; min-height: var(--px-header-h); flex-wrap: wrap; }
.px-header__logo { display: block; flex: none; padding-block: .6rem; }
.px-header__logo img { width: 8.25rem; height: auto; }
.px-nav { margin-left: auto; }
.px-nav__list { display: flex; flex-wrap: wrap; gap: .25rem 1.6rem; list-style: none; margin: 0; padding: 0; }
.px-nav__list a {
  position: relative; display: inline-block; padding: .5rem 0;
  color: var(--px-ink); text-decoration: none; font-weight: 550; font-size: .98rem;
}
.px-nav__list a::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: .2rem; height: 2px;
  background: var(--px-green); transform: scaleX(0); transform-origin: left; transition: transform .25s var(--px-ease);
}
.px-nav__list a:hover::after, .px-nav__list a[aria-current="page"]::after { transform: scaleX(1); }
.px-nav__list a[aria-current="page"] { color: var(--px-green-deep); }
.px-header__cta { flex: none; min-height: 2.6rem; padding: .55rem 1rem; font-size: .95rem; }
.px-nav-toggle {
  display: none; margin-left: auto; align-items: center; gap: .5rem;
  min-height: 2.75rem; padding: .5rem .9rem; border: 1px solid var(--px-line); border-radius: var(--px-radius);
  background: #fff; font-weight: 600; cursor: pointer;
}
.px-nav-toggle__icon { width: 1.1rem; height: .8rem; position: relative; }
.px-nav-toggle__icon span { position: absolute; left: 0; right: 0; height: 2px; background: currentColor; transition: transform .25s var(--px-ease), opacity .2s; }
.px-nav-toggle__icon span:nth-child(1) { top: 0; }
.px-nav-toggle__icon span:nth-child(2) { top: calc(50% - 1px); }
.px-nav-toggle__icon span:nth-child(3) { bottom: 0; }
.px-nav-toggle[aria-expanded="true"] .px-nav-toggle__icon span:nth-child(1) { transform: translateY(.35rem) rotate(45deg); }
.px-nav-toggle[aria-expanded="true"] .px-nav-toggle__icon span:nth-child(2) { opacity: 0; }
.px-nav-toggle[aria-expanded="true"] .px-nav-toggle__icon span:nth-child(3) { transform: translateY(-.35rem) rotate(-45deg); }

/* Mobile: sem JS o menu fica visível por baixo do logótipo; com JS vira painel */
@media (max-width: 959px) {
  .px-header__cta { display: none; }
  .px-nav { margin-left: 0; width: 100%; padding-bottom: .5rem; }
  .px-nav__list { gap: 0 1.25rem; }
  .px-js .px-nav-toggle { display: inline-flex; }
  .px-js .px-nav { display: none; padding: .5rem 0 1.25rem; border-top: 1px solid var(--px-line); }
  .px-js .px-header.is-open .px-nav { display: block; }
  .px-js .px-nav__list { flex-direction: column; }
  .px-js .px-nav__list a { font-family: var(--px-display); font-stretch: 112%; font-size: 1.35rem; font-weight: 700; padding: .55rem 0; }
  .px-js .px-nav .px-btn { display: inline-flex; margin-top: 1rem; }
}
.px-nav .px-btn { display: none; }

/* ------------------------------------------------------------------ */
/* Hero (home)                                                         */
/* ------------------------------------------------------------------ */
.px-hero { position: relative; isolation: isolate; overflow: hidden; min-height: min(56rem, calc(100svh - var(--px-header-h))); display: flex; align-items: stretch; }
.px-hero__media { position: absolute; inset: 0; z-index: -2; background: var(--px-mist); }
.px-hero__media img, .px-hero__media video { width: 100%; height: 100%; object-fit: cover; }
.px-hero__media video { position: absolute; inset: 0; opacity: 0; transition: opacity 1.2s var(--px-ease); }
.px-hero__media video.is-playing { opacity: 1; }
/* véu claro: forte à esquerda (texto), mais leve à direita (logótipo) */
.px-hero::before {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background:
    linear-gradient(90deg, rgba(255,255,255,.95) 0%, rgba(255,255,255,.9) 38%, rgba(255,255,255,.7) 62%, rgba(255,255,255,.62) 100%),
    linear-gradient(0deg, rgba(255,255,255,.9) 0%, rgba(255,255,255,0) 28%);
}
.px-hero__inner { display: grid; gap: 2rem; align-content: center; padding-block: clamp(2.5rem, 6vw, 5rem) clamp(2rem, 4vw, 3rem); width: 100%; }
.px-hero__copy { max-width: 42rem; }
.px-hero__title { margin-bottom: 1.5rem; }
.px-hero__lead { margin-bottom: 2rem; color: #333d37; }
.px-hero__facts { display: flex; flex-wrap: wrap; gap: .5rem 2rem; list-style: none; margin: 0; padding: 1.5rem 0 0; border-top: 1px solid rgba(23, 32, 27, .14); font-size: .95rem; color: #333d37; }
.px-hero__facts li { display: flex; align-items: center; gap: .55rem; }
.px-hero__facts li::before { content: ""; width: .45rem; height: .45rem; background: var(--px-green); transform: rotate(45deg); flex: none; }
@media (min-width: 960px) {
  .px-hero__inner { grid-template-columns: minmax(0, 11fr) minmax(0, 10fr); grid-template-rows: 1fr auto; column-gap: 2.5rem; }
  .px-hero__copy { grid-row: 1; align-self: center; }
  .px-3d { grid-column: 2; grid-row: 1; align-self: center; }
  .px-hero__facts { grid-column: 1 / -1; }
}

/* Título a entrar palavra a palavra (só depois de o JS marcar) */
.px-words .px-wm { display: inline-block; overflow: hidden; vertical-align: top; padding-bottom: .14em; margin-bottom: -.14em; }
.px-words .px-w { display: inline-block; }
.px-words.is-armed .px-w { opacity: 0; transform: translate3d(0, 105%, 0) rotate(4deg); transform-origin: left bottom; }
.px-words.is-armed.is-in .px-w { opacity: 1; transform: none; transition: opacity .5s var(--px-ease), transform .85s cubic-bezier(.16, 1, .3, 1); transition-delay: calc(var(--i) * 65ms + 80ms); }

/* Logótipo 3D — imagem visível até o WebGL desenhar */
.px-3d { position: relative; width: calc(100% + 3rem); margin-right: -3rem; aspect-ratio: 2.55 / 1; max-width: 54rem; justify-self: end; will-change: transform; }
.px-3d__fallback { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; transition: opacity .6s var(--px-ease); }
.px-3d__fallback img { width: 88%; height: auto; }
.px-3d__canvas { position: absolute; inset: 0; width: 100% !important; height: 100% !important; opacity: 0; transition: opacity .6s var(--px-ease); }
.px-3d.is-3d-ready .px-3d__canvas { opacity: 1; }
.px-3d.is-3d-ready .px-3d__fallback { opacity: 0; }
@media (max-width: 959px) {
  .px-3d { order: -1; width: 100%; max-width: 28rem; justify-self: start; aspect-ratio: 2.55 / 1; margin: 0 0 0 -.5rem; }
}

/* ------------------------------------------------------------------ */
/* Cabeçalho de página interior                                        */
/* ------------------------------------------------------------------ */
.px-pagehead { background: var(--px-mist); padding-block: clamp(2rem, 5vw, 4rem) clamp(3rem, 7vw, 5.5rem); position: relative; overflow: hidden; }
.px-pagehead__grid { display: grid; gap: 2.5rem; align-items: end; }
.px-pagehead .px-h1 { margin-block: 1.25rem 1.25rem; max-width: 16em; }
.px-pagehead__media { position: relative; border-radius: var(--px-radius); overflow: hidden; aspect-ratio: 4 / 3; background: var(--px-mist-2); }
.px-pagehead__media img { width: 100%; height: 100%; object-fit: cover; }
@media (min-width: 960px) { .px-pagehead__grid--media { grid-template-columns: 7fr 5fr; } }
.px-crumbs ol { display: flex; flex-wrap: wrap; gap: .25rem .5rem; list-style: none; margin: 0; padding: 0; font-size: .9rem; color: var(--px-muted); }
.px-crumbs li + li::before { content: "/"; margin-right: .5rem; color: var(--px-steel); }
.px-crumbs a { color: var(--px-muted); }

/* ------------------------------------------------------------------ */
/* Serviços em linhas com foto                                         */
/* ------------------------------------------------------------------ */
.px-rows { display: grid; gap: clamp(3rem, 7vw, 6rem); }
.px-row { display: grid; gap: 1.75rem; align-items: center; }
.px-row__media { position: relative; overflow: hidden; border-radius: var(--px-radius); aspect-ratio: 4 / 3; background: var(--px-mist-2); }
.px-row__media img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.001); transition: transform 1.2s var(--px-ease); }
.px-row:hover .px-row__media img { transform: scale(1.035); }
.px-row__body .px-h3 { margin-bottom: .9rem; }
.px-row__body > p { color: var(--px-muted); max-width: 34em; }
.px-ticks { list-style: none; margin: 1.25rem 0 0; padding: 0; display: grid; gap: .55rem; }
.px-ticks li { position: relative; padding-left: 1.6rem; }
.px-ticks li::before { content: ""; position: absolute; left: .1rem; top: .62em; width: .75rem; height: .4rem; border-left: 2px solid var(--px-green); border-bottom: 2px solid var(--px-green); transform: rotate(-45deg); }
.px-ticks--cols { grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); column-gap: 2rem; }
.px-row__more { margin-top: 1.5rem; }
@media (min-width: 900px) {
  .px-row { grid-template-columns: 6fr 5fr; gap: clamp(2.5rem, 5vw, 5rem); }
  .px-row:nth-child(even) .px-row__media { order: 2; }
}

/* ------------------------------------------------------------------ */
/* Números                                                             */
/* ------------------------------------------------------------------ */
.px-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); gap: 0; list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--px-line); }
.px-stat { padding: 1.75rem 1.5rem 1.75rem 0; border-bottom: 1px solid var(--px-line); }
.px-stat__n { display: block; font-family: var(--px-display); font-stretch: 125%; font-weight: 800; font-size: clamp(3rem, 7vw, 5.25rem); line-height: 1; letter-spacing: -.04em; color: var(--px-green); font-variant-numeric: tabular-nums; }
.px-stat__l { display: block; margin-top: .6rem; font-weight: 600; }
.px-stat__d { display: block; color: var(--px-muted); font-size: .95rem; }
@media (min-width: 720px) { .px-stat + .px-stat { padding-left: 1.5rem; border-left: 1px solid var(--px-line); } }

/* ------------------------------------------------------------------ */
/* Porquê a PRAXI                                                      */
/* ------------------------------------------------------------------ */
.px-why { display: grid; gap: 2.25rem; grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); list-style: none; margin: 0; padding: 0; }
.px-why li { padding-top: 1.25rem; border-top: 3px solid var(--px-green); }
.px-why .px-h3 { margin-bottom: .6rem; }
.px-why p { color: var(--px-muted); }
.px-badge { display: inline-flex; align-items: center; gap: .75rem; margin-top: 1rem; }
.px-badge img { width: 4.5rem; height: auto; }

/* ------------------------------------------------------------------ */
/* Faixa com imagem (parallax leve)                                    */
/* ------------------------------------------------------------------ */
.px-band { position: relative; overflow: hidden; isolation: isolate; min-height: clamp(22rem, 52vw, 36rem); display: flex; align-items: flex-end; }
.px-band__img { position: absolute; inset: -8% 0; z-index: -2; }
.px-band__img img { width: 100%; height: 100%; object-fit: cover; }
.px-band::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(0deg, rgba(255,255,255,.96) 0%, rgba(255,255,255,.85) 32%, rgba(255,255,255,0) 70%); }
.px-band__body { padding-block: 2.5rem clamp(2.5rem, 5vw, 4rem); }
.px-band__body .px-h2 { max-width: 18em; }
.px-band__body p { margin-top: 1rem; max-width: 36em; color: #333d37; }
.px-parallax { will-change: transform; }

/* ------------------------------------------------------------------ */
/* Galeria de eventos                                                  */
/* ------------------------------------------------------------------ */
.px-gallery { columns: 2 12rem; column-gap: .75rem; list-style: none; margin: 0; padding: 0; }
.px-gallery li { break-inside: avoid; margin-bottom: .75rem; position: relative; overflow: hidden; border-radius: var(--px-radius); background: var(--px-mist-2); }
.px-gallery img { width: 100%; transition: transform 1s var(--px-ease); }
.px-gallery li:hover img { transform: scale(1.03); }
.px-gallery figcaption { position: absolute; left: .75rem; bottom: .75rem; margin-right: .75rem; padding: .4rem .7rem; background: rgba(255, 255, 255, .95); border-radius: 3px; font-size: .88rem; font-weight: 600; line-height: 1.3; }
@media (min-width: 900px) { .px-gallery { columns: 3; column-gap: 1rem; } .px-gallery li { margin-bottom: 1rem; } }

/* ------------------------------------------------------------------ */
/* Notícias                                                            */
/* ------------------------------------------------------------------ */
.px-news__list { display: grid; gap: 2rem; grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); list-style: none; margin: 0; padding: 0; }
.px-news__link { display: grid; gap: .75rem; color: var(--px-ink) !important; text-decoration: none; }
.px-news__media { display: block; aspect-ratio: 16 / 10; overflow: hidden; border-radius: var(--px-radius); background: var(--px-mist-2); }
.px-news__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--px-ease); }
.px-news__ph { display: block; width: 100%; height: 100%; background:
  linear-gradient(135deg, transparent calc(50% - 2px), rgba(200, 20, 13, .35) calc(50% - 2px), rgba(200, 20, 13, .35) calc(50% + 2px), transparent calc(50% + 2px)) center / 3rem 3rem no-repeat,
  linear-gradient(45deg, transparent calc(50% - 2px), rgba(11, 111, 54, .35) calc(50% - 2px), rgba(11, 111, 54, .35) calc(50% + 2px), transparent calc(50% + 2px)) center / 3rem 3rem no-repeat,
  var(--px-mist-2); }
.px-news__date { font-size: .88rem; color: var(--px-muted); }
.px-news__title { font-family: var(--px-display); font-stretch: 106%; font-weight: 680; font-size: 1.2rem; line-height: 1.3; text-wrap: balance; }
.px-news__link:hover .px-news__title { color: var(--px-green-deep); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .2em; }
.px-news__link:hover img { transform: scale(1.04); }

/* ------------------------------------------------------------------ */
/* Logótipos de clientes                                               */
/* ------------------------------------------------------------------ */
.px-logos { display: grid; grid-template-columns: repeat(auto-fill, minmax(8.5rem, 1fr)); gap: 0; list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--px-line); border-left: 1px solid var(--px-line); }
.px-logos li { display: flex; align-items: center; justify-content: center; padding: 1.25rem; aspect-ratio: 3 / 2; border-right: 1px solid var(--px-line); border-bottom: 1px solid var(--px-line); background: #fff; }
.px-logos img { max-height: 3.25rem; width: auto; max-width: 100%; object-fit: contain; filter: grayscale(1) contrast(1.05); opacity: .78; transition: filter .3s, opacity .3s; }
.px-logos li:hover img { filter: none; opacity: 1; }
.px-logos--partners { grid-template-columns: repeat(auto-fill, minmax(10rem, 1fr)); }

/* ------------------------------------------------------------------ */
/* Chamada final                                                       */
/* ------------------------------------------------------------------ */
.px-cta { background: var(--px-green); color: #fff; position: relative; overflow: hidden; }
.px-cta .px-h2 { color: #fff; max-width: 15em; }
.px-cta p { color: rgba(255, 255, 255, .88); margin-top: 1rem; max-width: 34em; }
.px-cta__grid { display: grid; gap: 2rem; align-items: end; position: relative; z-index: 1; }
@media (min-width: 900px) { .px-cta__grid { grid-template-columns: 1fr auto; } }
.px-cta .px-btn { --b: #fff; --px-sweep: var(--px-green-tint); color: var(--px-green-deep) !important; }
.px-cta .px-btn--ghost { background: transparent; color: #fff !important; border-color: rgba(255,255,255,.7); --px-sweep: #fff; }
.px-cta .px-btn--ghost:hover { color: var(--px-green-deep) !important; border-color: #fff; }
.px-cta__x { position: absolute; right: -4rem; top: 50%; width: 22rem; height: 22rem; transform: translateY(-50%); opacity: .12; pointer-events: none; }
.px-cta__x::before, .px-cta__x::after { content: ""; position: absolute; left: 50%; top: -10%; width: 14px; height: 120%; background: #fff; transform-origin: center; }
.px-cta__x::before { transform: translateX(-50%) rotate(35deg); }
.px-cta__x::after { transform: translateX(-50%) rotate(-35deg); }

/* ------------------------------------------------------------------ */
/* Valores / colunas de texto                                          */
/* ------------------------------------------------------------------ */
.px-values { display: flex; flex-wrap: wrap; gap: .6rem; list-style: none; margin: 1.75rem 0 0; padding: 0; }
.px-values li { padding: .45rem .9rem; border: 1px solid var(--px-line); border-radius: 999px; background: #fff; font-weight: 600; font-size: .95rem; }
.px-split { display: grid; gap: 2.5rem; }
@media (min-width: 900px) { .px-split { grid-template-columns: 5fr 7fr; gap: 4rem; } }
.px-cols { display: grid; gap: 2.5rem; grid-template-columns: repeat(auto-fit, minmax(17rem, 1fr)); }
.px-cols h3 { margin-bottom: .6rem; }
.px-cols p { color: var(--px-muted); }
.px-figure { border-radius: var(--px-radius); overflow: hidden; background: var(--px-mist-2); }
.px-figure img { width: 100%; height: 100%; object-fit: cover; }

/* Índice de serviços (âncoras) */
.px-index { display: flex; flex-wrap: wrap; gap: .5rem; list-style: none; margin: 2rem 0 0; padding: 0; }
.px-index a { display: inline-block; padding: .55rem 1rem; border: 1px solid var(--px-line); border-radius: var(--px-radius); background: #fff; color: var(--px-ink); text-decoration: none; font-weight: 600; font-size: .95rem; transition: border-color .2s, color .2s; }
.px-index a:hover { border-color: var(--px-green); color: var(--px-green-deep); }

/* ------------------------------------------------------------------ */
/* Vagas                                                               */
/* ------------------------------------------------------------------ */
.px-jobs { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--px-line); }
.px-job { display: grid; gap: .5rem 2rem; padding: 1.5rem 0; border-bottom: 1px solid var(--px-line); align-items: center; }
.px-job__t { font-family: var(--px-display); font-stretch: 108%; font-weight: 700; font-size: 1.3rem; line-height: 1.25; }
.px-job__meta { color: var(--px-muted); font-size: .95rem; }
.px-job .px-link { justify-self: start; }
@media (min-width: 760px) { .px-job { grid-template-columns: 1fr auto auto; } }

/* ------------------------------------------------------------------ */
/* Formulários                                                         */
/* ------------------------------------------------------------------ */
.px-formwrap { display: grid; gap: 3rem; }
.px-formwrap > *, .px-split > *, .px-row > *, .px-pagehead__grid > * { min-width: 0; }
.px-aside a, .px-contact__v a, .px-footer a { overflow-wrap: anywhere; }
@media (min-width: 960px) { .px-formwrap { grid-template-columns: 4fr 7fr; gap: 5rem; } }
.px-form { display: grid; gap: 1.25rem; }
.px-form__grid { display: grid; gap: 1.25rem; grid-template-columns: minmax(0, 1fr); }
.px-form__grid > * { min-width: 0; }
@media (min-width: 640px) { .px-form__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } .px-form__grid .px-wide { grid-column: 1 / -1; } }
.px-field { display: grid; gap: .4rem; min-width: 0; }
fieldset.px-field { min-width: 0; min-inline-size: 0; }
.px-field label, .px-field legend { font-weight: 600; font-size: .95rem; }
.px-field .px-req { color: var(--px-red); margin-left: .15em; text-decoration: none; }
.px-field__hint { font-size: .88rem; color: var(--px-muted); }
.px-input {
  width: 100%; min-height: 3.1rem; padding: .7rem .9rem;
  border: 1px solid #b9c3bd; border-radius: var(--px-radius); background: #fff;
  font-size: 1rem; line-height: 1.4;
  transition: border-color .15s, box-shadow .15s;
}
.px-input:hover { border-color: #8f9b94; }
.px-input:focus { outline: none; border-color: var(--px-green); box-shadow: 0 0 0 3px rgba(11, 111, 54, .22); }
textarea.px-input { min-height: 9rem; resize: vertical; }
select.px-input { appearance: none; -webkit-appearance: none; padding-right: 2.5rem; background-image: linear-gradient(45deg, transparent 50%, var(--px-ink) 50%), linear-gradient(-45deg, transparent 50%, var(--px-ink) 50%); background-position: calc(100% - 1.25rem) 55%, calc(100% - .9rem) 55%; background-size: .35rem .35rem; background-repeat: no-repeat; }
.px-field.is-invalid .px-input { border-color: var(--px-red); box-shadow: 0 0 0 3px rgba(200, 20, 13, .14); }
.px-field__error { font-size: .88rem; color: #a3110b; font-weight: 600; }
.px-field__error:empty { display: none; }
.px-check { display: flex; gap: .7rem; align-items: flex-start; font-size: .95rem; }
.px-check input { width: 1.2rem; height: 1.2rem; margin-top: .2rem; accent-color: var(--px-green); flex: none; }
.px-file { position: relative; display: grid; gap: .3rem; padding: 1.25rem; border: 1.5px dashed #a8b4ad; border-radius: var(--px-radius); background: #fff; transition: border-color .2s, background-color .2s; }
.px-file:hover, .px-file.is-drag { border-color: var(--px-green); background: var(--px-green-tint); }
.px-file input[type="file"] { font-size: .95rem; width: 100%; max-width: 100%; min-width: 0; }
.px-file__name { font-weight: 600; color: var(--px-green-deep); }
.px-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.px-form__status { padding: 1rem 1.15rem; border-radius: var(--px-radius); font-weight: 600; border-left: 4px solid; }
.px-form__status.is-ok { background: var(--px-green-tint); border-color: var(--px-green); color: var(--px-green-deep); }
.px-form__status.is-error { background: #fdecea; border-color: var(--px-red); color: #8a0f0a; }
.px-form__foot { display: flex; flex-wrap: wrap; gap: 1rem 1.5rem; align-items: center; }
.px-form__note { font-size: .88rem; color: var(--px-muted); }
.px-aside { display: grid; gap: 1.75rem; align-content: start; }
.px-aside .px-h2 { margin-bottom: .25rem; }

/* Contactos */
.px-contact { list-style: none; margin: 0; padding: 0; display: grid; gap: 1.25rem; }
.px-contact dt, .px-contact__k { display: block; font-size: .9rem; color: var(--px-muted); }
.px-contact__v { display: block; font-family: var(--px-display); font-stretch: 106%; font-weight: 650; font-size: 1.2rem; line-height: 1.35; }
.px-contact__v a { color: var(--px-ink); text-decoration: none; border-bottom: 1px solid var(--px-line); transition: border-color .2s, color .2s; }
.px-contact__v a:hover { color: var(--px-green-deep); border-bottom-color: var(--px-green); }
.px-social { display: flex; gap: .5rem; list-style: none; margin: 0; padding: 0; }
.px-social a { display: inline-flex; align-items: center; justify-content: center; width: 2.75rem; height: 2.75rem; border: 1px solid var(--px-line); border-radius: 50%; color: var(--px-ink); background: #fff; transition: border-color .2s, color .2s, background-color .2s; }
.px-social a:hover { border-color: var(--px-green); color: #fff; background: var(--px-green); }
.px-social svg { width: 1.1rem; height: 1.1rem; }

.px-map { position: relative; border-radius: var(--px-radius); overflow: hidden; background: var(--px-mist-2); height: clamp(20rem, 42vw, 30rem); }
.px-map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.px-map__ph { position: absolute; inset: 0; display: grid; place-content: center; gap: 1rem; text-align: center; padding: 1.5rem;
  background:
    repeating-linear-gradient(0deg, transparent 0 39px, rgba(23,32,27,.05) 39px 40px),
    repeating-linear-gradient(90deg, transparent 0 39px, rgba(23,32,27,.05) 39px 40px),
    var(--px-mist);
}
.px-map__ph p { max-width: 28em; color: var(--px-muted); font-size: .95rem; }
.px-map__ph .px-actions { justify-content: center; }

/* Documento (Canal de denúncias, Código) */
.px-doc { display: flex; flex-wrap: wrap; align-items: center; gap: 1.25rem 2rem; padding: 1.5rem; border: 1px solid var(--px-line); border-radius: var(--px-radius); background: #fff; max-width: 42em; }
.px-doc__icon { width: 3rem; height: 3.6rem; flex: none; border: 2px solid var(--px-green); border-radius: 3px; position: relative; display: grid; place-items: end center; padding-bottom: .4rem; font-size: .65rem; font-weight: 800; color: var(--px-green); letter-spacing: .04em; }
.px-doc__body { flex: 1 1 14rem; }
.px-doc__t { font-weight: 700; }

/* ------------------------------------------------------------------ */
/* Rodapé                                                              */
/* ------------------------------------------------------------------ */
.px-footer { background: var(--px-mist); border-top: 1px solid var(--px-line); font-size: .95rem; }
.px-footer__grid { display: grid; gap: 2.5rem; padding-block: clamp(3rem, 6vw, 5rem); grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); }
.px-footer__brand img { width: 9rem; }
.px-footer__brand p { margin-top: 1rem; color: var(--px-muted); max-width: 22em; }
.px-footer h2 { font-family: var(--px-display); font-stretch: 108%; font-size: 1rem; font-weight: 700; margin-bottom: 1rem; }
.px-footer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .5rem; }
.px-footer a { color: var(--px-ink); text-decoration: none; }
.px-footer a:hover { color: var(--px-green-deep); text-decoration: underline; }
.px-footer__seals { display: flex; flex-wrap: wrap; gap: 1rem; align-items: center; margin-top: 1.25rem; }
.px-footer__seals a { display: inline-flex; align-items: center; gap: .5rem; padding: .4rem .6rem; border: 1px solid var(--px-line); border-radius: var(--px-radius); background: #fff; }
.px-footer__seals a:hover { border-color: var(--px-green); text-decoration: none; }
.px-footer__seals img { height: 2.4rem; width: auto; }
.px-footer__bar { display: flex; flex-wrap: wrap; gap: .75rem 2rem; justify-content: space-between; align-items: center; padding-block: 1.25rem; border-top: 1px solid var(--px-line); color: var(--px-muted); font-size: .9rem; }
.px-footer__dev { display: inline-flex; align-items: center; gap: .5rem; color: var(--px-muted) !important; }
.px-footer__dev img { width: 1.9rem; height: auto; }

/* ------------------------------------------------------------------ */
/* Aviso de cookies                                                    */
/* ------------------------------------------------------------------ */
.px-cookies { position: fixed; z-index: 60; left: 1rem; right: 1rem; bottom: 1rem; max-width: 26rem; margin-left: auto; padding: 1.25rem; background: #fff; border: 1px solid var(--px-line); border-radius: 6px; box-shadow: 0 18px 40px -20px rgba(23, 32, 27, .45); font-size: .92rem; }
.px-cookies[hidden] { display: none; }
.px-cookies p { color: var(--px-muted); }
.px-cookies .px-actions { margin-top: 1rem; }
.px-cookies .px-btn { min-height: 2.6rem; padding: .5rem 1rem; font-size: .95rem; }
.px-cookies.is-in { animation: px-up .45s var(--px-ease) both; }
@keyframes px-up { from { opacity: 0; transform: translateY(1rem); } to { opacity: 1; transform: none; } }

/* ------------------------------------------------------------------ */
/* Entrada ao fazer scroll — só depois de o JS marcar o elemento       */
/* ------------------------------------------------------------------ */
.px-reveal.is-armed { opacity: 0; transform: translate3d(0, 24px, 0); }
.px-reveal.is-armed.is-in { opacity: 1; transform: none; transition: opacity .8s var(--px-ease), transform .9s var(--px-ease); transition-delay: var(--d, 0ms); }

/* ------------------------------------------------------------------ */
/* Movimento reduzido                                                  */
/* ------------------------------------------------------------------ */
@media (prefers-reduced-motion: reduce) {
  .px-site *, .px-site *::before, .px-site *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; transition-delay: 0ms !important; scroll-behavior: auto !important; }
  .px-reveal.is-armed, .px-words.is-armed .px-w { opacity: 1 !important; transform: none !important; }
  .px-parallax { transform: none !important; }
  .px-hero__media video { display: none; }
}

/* Impressão */
@media print {
  .px-header, .px-cookies, .px-hero__media, .px-3d, .px-footer__seals, .px-map { display: none !important; }
  .px-hero::before { display: none; }
}


/* ------------------------------------------------------------------ */
/* Movimento (v1.1)                                                    */
/* Tudo só com transform/opacity; sem JS nada fica escondido.          */
/* ------------------------------------------------------------------ */

/* Hero: entrada orquestrada depois do título */
.px-js .px-hero .px-intro { animation: px-rise .9s var(--px-ease) backwards; animation-delay: var(--d, 0ms); }
@keyframes px-rise { from { opacity: 0; transform: translate3d(0, 22px, 0); } to { opacity: 1; transform: none; } }
.px-hero__copy, .px-hero__facts { will-change: transform, opacity; }
.px-hero__media img { animation: px-kenburns 18s ease-out both; }
@keyframes px-kenburns { from { transform: scale(1.08); } to { transform: scale(1); } }

/* Fotos: painel verde corre e revela a imagem */
.px-wipe { position: relative; overflow: hidden; }
.px-wipe::after { content: ""; position: absolute; inset: 0; z-index: 2; background: var(--px-green); transform: translate3d(-101%, 0, 0); pointer-events: none; }
.px-wipe.is-armed img { opacity: 0; }
.px-wipe.is-armed.is-in img { opacity: 1; transition: opacity .01s linear calc(var(--d, 0ms) + 520ms); }
.px-wipe.is-armed.is-in::after { animation: px-wipe 1.15s cubic-bezier(.76, 0, .24, 1) both; animation-delay: var(--d, 0ms); }
@keyframes px-wipe { 0% { transform: translate3d(-101%, 0, 0); } 45%, 55% { transform: translate3d(0, 0, 0); } 100% { transform: translate3d(101%, 0, 0); } }
.px-row:nth-child(even) .px-wipe::after { background: var(--px-green-deep); }
.px-drift { will-change: transform; transform: scale(1.14); }

/* Linha dos «kickers» desenha-se */
.px-kicker::before { transform-origin: left; transition: transform .8s var(--px-ease) .15s; }
.px-reveal.is-armed .px-kicker::before { transform: scaleX(0); }
.px-reveal.is-armed.is-in .px-kicker::before { transform: scaleX(1); }

/* Números: barra cresce por cima de cada número */
.px-stat { position: relative; }
.px-stat::before { content: ""; position: absolute; left: 0; right: 0; top: -1px; height: 3px; background: var(--px-green); transform-origin: left; }
.px-stat + .px-stat::before { left: 1.5rem; }
@media (max-width: 719px) { .px-stat + .px-stat::before { left: 0; } }
.px-stats.is-armed .px-stat::before { transform: scaleX(0); }
.px-stats.is-armed.is-in .px-stat::before { transform: scaleX(1); transition: transform 1.2s var(--px-ease); }
.px-stats.is-in .px-stat:nth-child(2)::before { transition-delay: .15s; }
.px-stats.is-in .px-stat:nth-child(3)::before { transition-delay: .3s; }

/* Faixa de clientes */
.px-marquee { position: relative; overflow: hidden; padding-block: .5rem; }
.px-marquee__track { display: flex; width: max-content; will-change: transform; }
.px-marquee__list { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 1.5rem 3.5rem; list-style: none; margin: 0; padding: 0 1.75rem; }
.px-marquee.is-moving .px-marquee__list { flex-wrap: nowrap; }
.px-marquee.is-moving::before, .px-marquee.is-moving::after { content: ""; position: absolute; top: 0; bottom: 0; width: clamp(2rem, 8vw, 7rem); z-index: 1; pointer-events: none; }
.px-marquee.is-moving::before { left: 0; background: linear-gradient(90deg, var(--px-paper), rgba(255,255,255,0)); }
.px-marquee.is-moving::after { right: 0; background: linear-gradient(-90deg, var(--px-paper), rgba(255,255,255,0)); }
.px-marquee img { height: 3.4rem; width: auto; max-width: 9.5rem; object-fit: contain; filter: grayscale(1); opacity: .72; transition: filter .3s, opacity .3s, transform .3s var(--px-ease); }
.px-marquee li:hover img { filter: none; opacity: 1; transform: scale(1.06); }
.px-marquee:not(.is-moving) .px-marquee__track { width: auto; }

/* Parceiros */
.px-partners { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; list-style: none; margin: 0; padding: 0; }
@media (min-width: 860px) { .px-partners { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.25rem; } }
.px-partner { display: flex; align-items: center; justify-content: center; min-height: 9.5rem; padding: 1.75rem 1.5rem; background: #fff; border: 1px solid var(--px-line); border-radius: 6px; transition: border-color .3s, box-shadow .3s, transform .35s var(--px-ease); }
.px-partner img { height: var(--h, 3.5rem); width: auto; max-width: 100%; object-fit: contain; transition: transform .4s var(--px-ease); }
.px-partner:hover { border-color: var(--px-green); box-shadow: 0 18px 36px -24px rgba(11, 111, 54, .5); transform: translate3d(0, -4px, 0); }
.px-partner:hover img { transform: scale(1.05); }
@media (max-width: 859px) { .px-partner img { height: calc(var(--h, 3.5rem) * .78); } }

/* Galeria e notícias: zoom suave em hover já definido; cartões de valores sobem um pouco */
.px-why li { transition: transform .4s var(--px-ease); }
.px-why li:hover { transform: translate3d(0, -4px, 0); }

/* X da chamada final acompanha o scroll */
.px-cta__x { will-change: transform; }

@media (prefers-reduced-motion: reduce) {
  .px-hero__media img { animation: none; }
  .px-wipe::after { display: none; }
  .px-wipe.is-armed img { opacity: 1 !important; }
  .px-drift { transform: none !important; }
  .px-header.is-tucked { transform: none; }
}

/* ------------------------------------------------------------------ */
/* Formulários WPForms com o estilo PRAXI (v1.3)                       */
/* Tudo dentro de .px-wpf: não toca em formulários fora destas páginas */
/* Funciona com a marcação «moderna» (variáveis) e com a «clássica».   */
/* ------------------------------------------------------------------ */
.px-wpf {
  --wpforms-field-border-radius: var(--px-radius);
  --wpforms-field-background-color: #fff;
  --wpforms-field-border-color: #b9c3bd;
  --wpforms-field-border-color-spare: #b9c3bd;
  --wpforms-field-border-size: 1px;
  --wpforms-field-text-color: var(--px-ink);
  --wpforms-field-menu-color: #fff;
  --wpforms-field-size-input-height: 3.1rem;
  --wpforms-field-size-font-size: 1rem;
  --wpforms-field-size-line-height: 1.4;
  --wpforms-field-size-padding-h: .9rem;
  --wpforms-field-size-input-spacing: .4rem;
  --wpforms-field-size-checkbox-size: 1.15rem;
  --wpforms-label-color: var(--px-ink);
  --wpforms-label-sublabel-color: var(--px-muted);
  --wpforms-label-error-color: #a3110b;
  --wpforms-label-size-font-size: .95rem;
  --wpforms-label-size-line-height: 1.35;
  --wpforms-label-size-sublabel-font-size: .85rem;
  --wpforms-button-background-color: var(--px-green);
  --wpforms-button-border-color: var(--px-green);
  --wpforms-button-text-color: #fff;
  --wpforms-button-border-radius: var(--px-radius);
  --wpforms-button-size-height: 3.1rem;
  --wpforms-button-size-font-size: 1rem;
  --wpforms-button-size-padding-h: 1.4rem;
  --wpforms-button-size-margin-top: .5rem;
  --wpforms-container-padding: 0;
  font-family: var(--px-text);
}
.px-wpf .wpforms-container { margin: 0 !important; max-width: none; }
.px-wpf .wpforms-form { font-family: var(--px-text); }

/* Grelha: campos marcados com «px-f-half» (Definições do campo → Avançado → Classes CSS) ficam a meia largura */
.px-wpf .wpforms-field-container { display: grid; grid-template-columns: minmax(0, 1fr); column-gap: 1.25rem; }
.px-wpf .wpforms-field-container > * { min-width: 0; }
@media (min-width: 640px) {
  .px-wpf .wpforms-field-container { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .px-wpf .wpforms-field-container > .wpforms-field { grid-column: 1 / -1; }
  .px-wpf .wpforms-field-container > .wpforms-field.px-f-half { grid-column: auto; }
}
.px-wpf .wpforms-field { padding: 0 0 1.25rem !important; margin: 0 !important; clear: none !important; }
.px-wpf .wpforms-field.wpforms-field-hidden, .px-wpf .wpforms-field[style*="display: none"] { padding: 0 !important; }

/* Etiquetas */
.px-wpf .wpforms-field-label { font-family: var(--px-text) !important; font-weight: 600 !important; font-size: .95rem !important; color: var(--px-ink) !important; margin: 0 0 .4rem !important; line-height: 1.35 !important; }
.px-wpf .wpforms-required-label { color: var(--px-red) !important; font-weight: 600; }
.px-wpf .wpforms-field-sublabel, .px-wpf .wpforms-field-description { font-size: .88rem !important; color: var(--px-muted) !important; line-height: 1.45 !important; }
.px-wpf .wpforms-field-description { margin-top: .4rem !important; }

/* Campos */
.px-wpf input[type="text"], .px-wpf input[type="email"], .px-wpf input[type="tel"], .px-wpf input[type="number"],
.px-wpf input[type="url"], .px-wpf input[type="date"], .px-wpf select, .px-wpf textarea {
  width: 100% !important; max-width: 100% !important; min-height: 3.1rem;
  padding: .7rem .9rem !important; border: 1px solid #b9c3bd !important; border-radius: var(--px-radius) !important;
  background-color: #fff !important; color: var(--px-ink) !important; box-shadow: none !important;
  font: inherit !important; font-size: 1rem !important; line-height: 1.4 !important;
  transition: border-color .15s, box-shadow .15s !important;
}
.px-wpf textarea { min-height: 9rem; resize: vertical; }
.px-wpf input:hover, .px-wpf select:hover, .px-wpf textarea:hover { border-color: #8f9b94 !important; }
.px-wpf input:focus, .px-wpf select:focus, .px-wpf textarea:focus { outline: none !important; border-color: var(--px-green) !important; box-shadow: 0 0 0 3px rgba(11, 111, 54, .22) !important; }
.px-wpf ::placeholder { color: #7b857f !important; opacity: 1; }
.px-wpf .wpforms-field-row { max-width: none !important; }

/* Escolhas */
.px-wpf .wpforms-field-checkbox ul, .px-wpf .wpforms-field-radio ul, .px-wpf .wpforms-field-gdpr-checkbox ul { padding: 0 !important; margin: 0 !important; list-style: none !important; }
.px-wpf .wpforms-field-checkbox li, .px-wpf .wpforms-field-radio li, .px-wpf .wpforms-field-gdpr-checkbox li { display: flex !important; gap: .7rem; align-items: flex-start; margin: 0 0 .5rem !important; padding: 0 !important; }
.px-wpf input[type="checkbox"], .px-wpf input[type="radio"] { width: 1.2rem !important; height: 1.2rem !important; margin: .18rem 0 0 !important; accent-color: var(--px-green); flex: none; }
.px-wpf .wpforms-field-label-inline { font-size: .95rem !important; color: var(--px-ink) !important; line-height: 1.5 !important; }
.px-wpf .wpforms-field-label-inline a { color: var(--px-green); }

/* Upload (Pro) */
.px-wpf .wpforms-uploader { border: 1.5px dashed #a8b4ad !important; border-radius: var(--px-radius) !important; background: #fff !important; transition: border-color .2s, background-color .2s; }
.px-wpf .wpforms-uploader:hover, .px-wpf .wpforms-uploader.dz-drag-hover { border-color: var(--px-green) !important; background: var(--px-green-tint) !important; }
.px-wpf .wpforms-uploader .modern-title { color: var(--px-ink) !important; font-family: var(--px-text) !important; }
.px-wpf .wpforms-uploader .modern-title span { color: var(--px-green) !important; text-decoration: underline; }
.px-wpf input[type="file"] { font-size: .95rem; max-width: 100%; }

/* Layout (Pro): colunas internas do campo «Layout» */
.px-wpf .wpforms-layout-row { gap: 1.25rem; margin: 0 !important; }

/* Erros */
.px-wpf .wpforms-error, .px-wpf em.wpforms-error, .px-wpf label.wpforms-error { display: block; margin-top: .35rem !important; font-style: normal !important; font-size: .88rem !important; font-weight: 600 !important; color: #a3110b !important; }
.px-wpf .wpforms-has-error input, .px-wpf .wpforms-has-error select, .px-wpf .wpforms-has-error textarea,
.px-wpf input.wpforms-error, .px-wpf select.wpforms-error, .px-wpf textarea.wpforms-error { border-color: var(--px-red) !important; box-shadow: 0 0 0 3px rgba(200, 20, 13, .14) !important; }
.px-wpf .wpforms-error-container, .px-wpf .wpforms-error-alert { padding: 1rem 1.15rem !important; border: 0 !important; border-left: 4px solid var(--px-red) !important; border-radius: var(--px-radius) !important; background: #fdecea !important; color: #8a0f0a !important; font-weight: 600; margin-bottom: 1.25rem !important; }

/* Botão */
.px-wpf .wpforms-submit-container { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; padding: .25rem 0 0 !important; margin: 0 !important; }
.px-wpf button[type="submit"].wpforms-submit, .px-wpf .wpforms-submit {
  position: relative; overflow: hidden; isolation: isolate;
  min-height: 3.1rem !important; height: auto !important; padding: .8rem 1.4rem !important;
  border: 2px solid var(--px-green) !important; border-radius: var(--px-radius) !important;
  background: var(--px-green) !important; color: #fff !important; box-shadow: none !important;
  font-family: var(--px-display) !important; font-stretch: 108%; font-weight: 650 !important; font-size: 1rem !important; line-height: 1.1 !important;
  cursor: pointer; transition: background-color .2s, transform .2s var(--px-ease) !important;
}
.px-wpf .wpforms-submit::before { content: ""; position: absolute; inset: -2px; z-index: -1; background: var(--px-green-deep); transform: translate3d(-101%, 0, 0) skewX(-12deg); transition: transform .45s var(--px-ease); }
.px-wpf .wpforms-submit:hover::before, .px-wpf .wpforms-submit:focus-visible::before { transform: none; }
.px-wpf .wpforms-submit:hover { background: var(--px-green) !important; }
.px-wpf .wpforms-submit:focus-visible { outline: 3px solid var(--px-green) !important; outline-offset: 3px !important; }
.px-wpf .wpforms-submit:active { transform: translateY(1px); }
.px-wpf .wpforms-submit[disabled] { opacity: .7; cursor: progress; }
.px-wpf .wpforms-submit-spinner { width: 1.6rem; height: 1.6rem; }

/* Confirmação */
.px-wpf .wpforms-confirmation-container-full, .px-wpf .wpforms-confirmation-container {
  margin: 0 !important; padding: 1.5rem 1.5rem 1.5rem 3.75rem !important; position: relative;
  border: 0 !important; border-left: 4px solid var(--px-green) !important; border-radius: var(--px-radius) !important;
  background: var(--px-green-tint) !important; color: var(--px-green-deep) !important; font-weight: 600; font-size: 1.05rem;
}
.px-wpf .wpforms-confirmation-container-full::before, .px-wpf .wpforms-confirmation-container::before {
  content: ""; position: absolute; left: 1.4rem; top: 1.65rem; width: .95rem; height: .5rem;
  border-left: 3px solid var(--px-green); border-bottom: 3px solid var(--px-green); transform: rotate(-45deg);
}
.px-wpf .wpforms-confirmation-container-full p, .px-wpf .wpforms-confirmation-container p { margin: 0 !important; }
@media (prefers-reduced-motion: no-preference) {
  .px-wpf .wpforms-confirmation-container-full, .px-wpf .wpforms-confirmation-container { animation: px-rise .6s var(--px-ease) both; }
}
/* honeypot e afins continuam escondidos */
.px-wpf .wpforms-field-hp { display: none !important; }
.px-wpf .wpforms-error-noscript { display: block; padding: 1rem 1.15rem; border-left: 4px solid var(--px-red); border-radius: var(--px-radius); background: #fdecea; color: #8a0f0a; font-weight: 600; margin-bottom: 1.25rem; }
.px-wpf select { padding-right: 2.5rem !important; text-overflow: ellipsis; }

/* ------------------------------------------------------------------ */
/* Testemunhos em vídeo (v1.4) — o YouTube só carrega com o clique      */
/* ------------------------------------------------------------------ */
.px-videos { display: grid; gap: 1.25rem; grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); list-style: none; margin: 0; padding: 0; }
.px-video { display: grid; gap: .3rem; color: var(--px-ink) !important; text-decoration: none; }
.px-video__media { position: relative; display: block; aspect-ratio: 16 / 9; overflow: hidden; border-radius: 6px; background: var(--px-green); }
.px-video__media img, .px-video__media iframe { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; border: 0; }
.px-video__media img { transition: transform .7s var(--px-ease), filter .4s; }
.px-video__play { position: absolute; left: 50%; top: 50%; width: 3.6rem; height: 3.6rem; margin: -1.8rem 0 0 -1.8rem; display: grid; place-items: center; border-radius: 50%; background: #fff; color: var(--px-green); box-shadow: 0 10px 30px -10px rgba(0,0,0,.45); transition: transform .35s var(--px-ease), background-color .25s, color .25s; }
.px-video__play svg { width: 1.5rem; height: 1.5rem; margin-left: .15rem; }
.px-video__play::after { content: ""; position: absolute; inset: -6px; border-radius: 50%; border: 2px solid rgba(255,255,255,.7); opacity: 0; transform: scale(.85); }
.px-video:hover .px-video__media img, .px-video:focus-visible .px-video__media img { transform: scale(1.05); filter: brightness(.92); }
.px-video:hover .px-video__play, .px-video:focus-visible .px-video__play { transform: scale(1.08); background: var(--px-green); color: #fff; }
@media (prefers-reduced-motion: no-preference) {
  .px-video:hover .px-video__play::after { animation: px-ping 1.4s var(--px-ease) infinite; }
}
@keyframes px-ping { 0% { opacity: .9; transform: scale(.85); } 100% { opacity: 0; transform: scale(1.35); } }
.px-video__name { margin-top: .55rem; font-family: var(--px-display); font-stretch: 108%; font-weight: 700; font-size: 1.15rem; line-height: 1.25; }
.px-video__hint { font-size: .9rem; color: var(--px-green); font-weight: 600; }
.px-video.is-playing .px-video__play, .px-video.is-playing .px-video__hint { display: none; }

/* Coluna lateral do formulário acompanha o scroll */
@media (min-width: 960px) { .px-aside--sticky { position: sticky; top: calc(var(--px-header-h) + 1.5rem); align-self: start; } }

/* WPForms: só campos a preencher nas páginas PRAXI (recurso, caso o servidor não os retire) */
.px-wpf .wpforms-field-html, .px-wpf .wpforms-field-content, .px-wpf .wpforms-field-divider { display: none !important; }
.px-wpf .wpforms-field-layout:not(:has(input, select, textarea)) { display: none !important; }
.px-wpf .wpforms-field-layout { padding-bottom: 0 !important; }
.px-wpf .wpforms-field-layout .wpforms-field-layout-columns, .px-wpf .wpforms-layout-row { display: flex; flex-wrap: wrap; gap: 0 1.25rem; }
.px-wpf .wpforms-layout-column { min-width: 0; padding: 0 !important; }
@media (max-width: 639px) { .px-wpf .wpforms-layout-column { width: 100% !important; flex: 1 1 100% !important; } }
/* Telefone internacional (Pro): espaço para a bandeira */
.px-wpf .iti { width: 100%; display: block; }
.px-wpf .iti input[type="tel"], .px-wpf .iti--allow-dropdown input[type="tel"] { padding-left: 3.4rem !important; }
.px-wpf .iti__selected-flag, .px-wpf .iti__country-container { border-radius: var(--px-radius) 0 0 var(--px-radius); }
/* Linhas com dois campos (Número / Validade) */
.px-wpf .wpforms-field-row { display: flex; gap: 0 1.25rem; }
.px-wpf .wpforms-field-row .wpforms-field-row-block { flex: 1 1 0; min-width: 0; padding: 0 !important; width: auto !important; }
.px-wpf .wpforms-field-row::before, .px-wpf .wpforms-field-row::after { content: none !important; display: none !important; }
/* Upload clássico */
.px-wpf .wpforms-field-file-upload input[type="file"] { width: 100%; padding: 1rem; border: 1.5px dashed #a8b4ad; border-radius: var(--px-radius); background: #fff; cursor: pointer; color: var(--px-muted); transition: border-color .2s, background-color .2s; }
.px-wpf .wpforms-field-file-upload input[type="file"]:hover { border-color: var(--px-green); background: var(--px-green-tint); }
.px-wpf input[type="file"]::file-selector-button { margin-right: .9rem; padding: .55rem 1rem; border: 2px solid var(--px-green); border-radius: var(--px-radius); background: #fff; color: var(--px-green-deep); font: inherit; font-weight: 600; cursor: pointer; transition: background-color .2s, color .2s; }
.px-wpf input[type="file"]:hover::file-selector-button { background: var(--px-green); color: #fff; }
.px-wpf .wpforms-field-row { margin: 0 !important; padding: 0 !important; max-width: none !important; }
.px-wpf .wpforms-field-row .wpforms-field-row-block { margin: 0 !important; }
.px-testimonials { padding-top: 0; }

/* ------------------------------------------------------------------ */
/* Vídeo no topo do Recrutamento (v1.5)                                 */
/* ------------------------------------------------------------------ */
@media (min-width: 960px) { .px-pagehead__grid--video { grid-template-columns: 5fr 6fr; align-items: center; } }
.px-hvideo { position: relative; margin: 0; aspect-ratio: 16 / 9; background: #1f8f45; border-radius: 6px; box-shadow: 0 30px 60px -36px rgba(23, 32, 27, .55); }
.px-hvideo__poster { position: absolute; inset: 0; display: block; }
.px-hvideo__poster img { width: 100%; height: 100%; object-fit: cover; }
.px-hvideo__frame { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; opacity: 0; pointer-events: none; transition: opacity .8s var(--px-ease); }
.px-hvideo.is-live .px-hvideo__frame { opacity: 1; }
.px-hvideo.is-live .px-hvideo__poster .px-video__play { opacity: 0; }
.px-hvideo .px-video__play { transition: opacity .3s, transform .35s var(--px-ease), background-color .25s, color .25s; }
.px-hvideo__poster:hover .px-video__play { transform: scale(1.08); background: var(--px-green); color: #fff; }
.px-hvideo__bar { position: absolute; z-index: 3; right: .75rem; bottom: .75rem; display: flex; gap: .5rem; }
.px-hvideo__bar[hidden] { display: none; }
.px-hvideo__btn { display: inline-flex; align-items: center; gap: .5rem; min-height: 2.6rem; padding: .45rem .9rem; border: 0; border-radius: 999px; background: rgba(255, 255, 255, .95); color: var(--px-ink); font-weight: 600; font-size: .92rem; cursor: pointer; box-shadow: 0 8px 20px -10px rgba(0, 0, 0, .5); transition: background-color .2s, color .2s, transform .2s var(--px-ease); }
.px-hvideo__btn:hover { background: var(--px-green); color: #fff; }
.px-hvideo__btn:active { transform: scale(.96); }
.px-hvideo__btn--icon { width: 2.6rem; padding: 0; justify-content: center; }
.px-hvideo__btn svg { width: 1.2rem; height: 1.2rem; flex: none; }
.px-hvideo__btn .px-hv-on, .px-hvideo__btn.is-on .px-hv-off { display: none; }
.px-hvideo__btn.is-on .px-hv-on { display: inline; }
.px-hvideo__btn .px-hv-play, .px-hvideo__btn.is-paused .px-hv-pause { display: none; }
.px-hvideo__btn.is-paused .px-hv-play { display: inline; }
.px-hvideo__btn.is-on { background: var(--px-green); color: #fff; }
.px-hvideo__cap { position: absolute; left: .75rem; bottom: .75rem; z-index: 2; padding: .35rem .7rem; border-radius: 3px; background: rgba(255, 255, 255, .95); font-size: .88rem; font-weight: 600; pointer-events: none; }
@media (max-width: 520px) { .px-hvideo__cap { display: none; } }
@media (prefers-reduced-motion: no-preference) {
  .px-hvideo__btn[data-px-hv="sound"]:not(.is-on) { animation: px-nudge 2.4s 2.5s var(--px-ease) 2 both; }
}
@keyframes px-nudge { 0%, 100% { transform: none; } 10% { transform: scale(1.08); } 20% { transform: none; } }
