/* =====================================================================
   ESPAÇO COMNVIDA E PROJETOS (layout novo montado pelo otovida-projetos.js)
   ===================================================================== */
/* enquanto o layout novo é montado, o antigo não pisca (aparece sozinho em 1,4 s se o JS não rodar) */
body.otv-site.single-projetos .projetos__inner__content:not(.otv-pj-done),
body.otv-site .wrap-page:has(> .proposito-wrapper):not(.otv-pj-done) { opacity: 0; animation: otvPjShow .01s linear 1.4s forwards; }
@keyframes otvPjShow { to { opacity: 1; } }
body.otv-site .otv-pj-src, body.otv-site .otv-pj-src-list { display: none !important; }
body.otv-site.otv-pj-page .wrap-page, body.otv-site.otv-cv-page .wrap-page { overflow: clip; background: #fff; }

body.otv-site :is(.otv-pj, .otv-cv, .otv-pj-more) { --pj-deep: #0E5A43; --pj-deeper: #04271D; --pj-teal: #00856F; --pj-lime: #B6D45A; --pj-lime2: #D6EA8C; --pj-pale: #EEF5E4; --pj-ink: #1C2B26; --pj-muted: #51655D; --pj-line: rgba(14, 90, 67, .12); --pj-out: cubic-bezier(.2, .8, .2, 1); color: var(--pj-ink); }
body.otv-site .otv-pj-wrap { position: relative; z-index: 1; width: min(1200px, calc(100% - 48px)); margin-left: auto; margin-right: auto; }

/* ----- peças comuns ----- */
body.otv-site .otv-pj-kicker {
  display: inline-flex; align-items: center; gap: 10px; margin: 0;
  font-size: 12.5px !important; font-weight: 800; line-height: 1.2; letter-spacing: .14em; text-transform: uppercase; color: var(--pj-teal);
}
body.otv-site .otv-pj-kicker span { color: inherit; font: inherit; letter-spacing: inherit; }
body.otv-site .otv-pj-kicker-ico { display: grid; place-items: center; flex: none; width: 36px; height: 36px; border-radius: 12px; background: var(--pj-pale); color: var(--pj-teal); }
body.otv-site .otv-pj-kicker-ico svg { width: 20px; height: 20px; }
body.otv-site .otv-pj-kicker-light { color: var(--pj-lime2); }
body.otv-site .otv-pj-kicker-light .otv-pj-kicker-ico { background: rgba(255, 255, 255, .1); color: var(--pj-lime); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .14); }
body.otv-site .otv-pj-tag { margin-left: 2px; padding: 5px 10px; border-radius: 999px; background: var(--pj-lime); color: var(--pj-deeper) !important; letter-spacing: .08em !important; }
body.otv-site .otv-pj-head { max-width: 820px; margin: 0 auto 44px; text-align: center; }
body.otv-site .otv-pj-head .otv-pj-kicker { justify-content: center; }
body.otv-site :is(.otv-pj, .otv-cv, .otv-pj-more) .otv-pj-h {
  max-width: none; margin: 14px auto 0 !important; padding: 0 !important;
  font-size: clamp(28px, 3vw, 42px) !important; font-weight: 800 !important; line-height: 1.12 !important; letter-spacing: -.02em;
  color: var(--pj-deep) !important; text-align: center !important; text-transform: none !important;
}
body.otv-site :is(.otv-pj, .otv-cv) .otv-pj-h-left { margin-left: 0 !important; text-align: left !important; }
body.otv-site :is(.otv-pj, .otv-cv) .otv-pj-sub { max-width: 680px; margin: 14px auto 0 !important; font-size: 17px !important; line-height: 1.65; color: var(--pj-muted) !important; }
body.otv-site .otv-pj-crumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0 0 26px; font-size: 13.5px; font-weight: 500; color: rgba(255, 255, 255, .7); }
body.otv-site .otv-pj-crumbs a { color: rgba(255, 255, 255, .7); text-decoration: none; }
body.otv-site .otv-pj-crumbs a:hover { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
body.otv-site .otv-pj-crumbs span { color: inherit; font-size: inherit; }
body.otv-site .otv-pj-crumbs [aria-current] { color: #fff; font-weight: 700; }
body.otv-site .otv-pj-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 52px; padding: 0 22px; border-radius: 999px;
  font-size: 15px; font-weight: 700; line-height: 1.2; text-decoration: none !important; white-space: nowrap;
  transition: transform .3s var(--pj-out, ease), background .25s ease, box-shadow .3s ease, color .25s ease;
}
body.otv-site .otv-pj-btn span { color: inherit; font-size: inherit; }
body.otv-site .otv-pj-btn svg { width: 18px; height: 18px; flex: none; transition: transform .3s ease; }
body.otv-site .otv-pj-btn:hover { transform: translateY(-2px); }
body.otv-site .otv-pj-btn:hover svg { transform: translateX(3px); }
body.otv-site .otv-pj-btn-lime { background: var(--pj-lime, #B6D45A); color: var(--pj-deeper, #04271D) !important; box-shadow: 0 16px 30px -18px rgba(0, 0, 0, .7); }
body.otv-site .otv-pj-btn-lime:hover { background: var(--pj-lime2, #D6EA8C); }
body.otv-site .otv-pj-btn-ico { display: grid; place-items: center; width: 36px; height: 36px; margin-left: -14px; border-radius: 50%; background: var(--pj-deeper, #04271D); color: var(--pj-lime, #B6D45A) !important; }
body.otv-site .otv-pj-btn-ico svg { width: 18px; height: 18px; }
body.otv-site .otv-pj-btn-ghost { color: var(--pj-deep, #0E5A43) !important; box-shadow: inset 0 0 0 1.5px rgba(14, 90, 67, .25); }
body.otv-site .otv-pj-btn-ghost:hover { background: var(--pj-pale, #EEF5E4); }
body.otv-site .otv-pj-btn-ghost-light { color: #fff !important; box-shadow: inset 0 0 0 1.5px rgba(255, 255, 255, .38); }
body.otv-site .otv-pj-btn-ghost-light:hover { background: rgba(255, 255, 255, .1); }
body.otv-site .otv-pj-btn-deep { background: var(--pj-deep) !important; color: #fff !important; border-radius: 999px !important; padding: 0 26px !important; font-size: 16px !important; }
body.otv-site .otv-pj-btn-deep:hover { background: var(--pj-deeper) !important; }
body.otv-site .otv-cv-dots { position: absolute; inset: 0; background-image: radial-gradient(rgba(214, 234, 140, .18) 1.2px, transparent 1.3px); background-size: 26px 26px; -webkit-mask-image: linear-gradient(115deg, transparent 30%, #000 70%); mask-image: linear-gradient(115deg, transparent 30%, #000 70%); }

/* ----- listas ----- */
body.otv-site :is(.otv-pj, .otv-cv) :is(.otv-pj-checks, .otv-pj-feats) { list-style: none !important; margin: 0 !important; padding: 0 !important; display: grid; gap: 12px; }
body.otv-site :is(.otv-pj, .otv-cv) :is(.otv-pj-checks, .otv-pj-feats) li {
  position: relative; margin: 0 !important; padding: 0 0 0 38px !important;
  font-size: 16px; line-height: 1.6; color: var(--pj-ink);
}
body.otv-site :is(.otv-pj, .otv-cv) :is(.otv-pj-checks, .otv-pj-feats) li::before {
  content: ""; position: absolute; left: 0; top: 1px; width: 26px; height: 26px; border-radius: 50%;
  background: var(--pj-pale) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2300856F' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.2 4.2L19 7'/%3E%3C/svg%3E") center / 15px no-repeat;
}
body.otv-site :is(.otv-pj, .otv-cv) :is(.otv-pj-checks, .otv-pj-feats) li strong { color: var(--pj-deep); font-weight: 700; }
body.otv-site .otv-pj-sec-body .otv-pj-checks { grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); column-gap: 28px; }

/* =====================================================================
   PROJETOS
   ===================================================================== */
body.otv-site .otv-pj-hero {
  position: relative; overflow: hidden; isolation: isolate; color: #fff;
  padding: 34px 0 0;
  background:
    radial-gradient(800px 520px at 86% 18%, rgba(182, 212, 90, .2), transparent 60%),
    radial-gradient(640px 420px at 8% 100%, rgba(0, 133, 111, .45), transparent 62%),
    linear-gradient(135deg, #0E5A43 0%, #073A2B 55%, #04271D 100%);
}
body.otv-site .otv-pj-hero.otv-no-cover { padding-bottom: 70px; }
body.otv-site .otv-pj-hero-bg { position: absolute; inset: 0; z-index: -1; pointer-events: none; }
body.otv-site :is(.otv-pj-hero-bg, .otv-cv-hero-bg) i { position: absolute; border-radius: 50%; filter: blur(2px); }
body.otv-site .otv-pj-hero-bg .b1 { width: 340px; height: 340px; right: -90px; top: -120px; background: radial-gradient(circle, rgba(182, 212, 90, .28), transparent 70%); animation: otvBlob 14s ease-in-out infinite alternate; }
body.otv-site .otv-pj-hero-bg .b2 { width: 260px; height: 260px; left: 32%; bottom: -120px; background: radial-gradient(circle, rgba(0, 133, 111, .5), transparent 70%); animation: otvBlob 18s ease-in-out infinite alternate-reverse; }
@keyframes otvBlob { from { transform: translate(0, 0) scale(1); } to { transform: translate(-30px, 24px) scale(1.12); } }
body.otv-site .otv-pj-hero-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 470px); gap: 40px; align-items: center; padding-bottom: 54px; }
body.otv-site .otv-pj-hero-main { position: relative; z-index: 2; }
body.otv-site .otv-pj .otv-pj-title {
  max-width: 720px; margin: 18px 0 16px !important; padding: 0 !important;
  font-size: clamp(32px, 4vw, 54px) !important; font-weight: 800 !important; line-height: 1.07 !important; letter-spacing: -.025em;
  color: #fff !important; text-align: left !important; text-transform: none !important; overflow-wrap: anywhere;
}
body.otv-site .otv-pj .otv-pj-lead {
  max-width: 600px; margin: 0 0 26px !important; padding: 0 !important;
  font-size: clamp(16.5px, 1.4vw, 19px) !important; font-weight: 500 !important; line-height: 1.6 !important; color: rgba(255, 255, 255, .82) !important; text-align: left !important;
}
body.otv-site .otv-pj-hero-act { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 28px; }
body.otv-site .otv-pj-support { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; padding-top: 22px; border-top: 1px solid rgba(255, 255, 255, .14); }
body.otv-site .otv-pj-support-l { font-size: 12px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: rgba(255, 255, 255, .62); }
body.otv-site .otv-pj-support-row { display: flex; flex-wrap: wrap; gap: 10px; }
body.otv-site .otv-pj-chip-logo { display: grid; place-items: center; height: 50px; min-width: 76px; padding: 6px 14px; border-radius: 14px; background: #fff; box-shadow: 0 12px 26px -16px rgba(0, 0, 0, .7); transition: transform .35s var(--pj-out); }
body.otv-site .otv-pj-chip-logo:hover { transform: translateY(-3px) scale(1.04); }
body.otv-site .otv-pj-chip-logo img { display: block; max-height: 34px; max-width: 108px; width: auto; height: auto; object-fit: contain; }
body.otv-site .otv-pj-chip-more { display: grid; place-items: center; height: 50px; min-width: 56px; padding: 0 12px; border-radius: 14px; background: var(--pj-lime); color: var(--pj-deeper) !important; font-weight: 800; text-decoration: none !important; }
body.otv-site .otv-pj-art { position: relative; z-index: 1; width: 100%; max-width: 470px; justify-self: end; aspect-ratio: 1 / 1; }

/* arte ilustrada */
body.otv-site .otv-art { display: block; width: 100%; height: 100%; overflow: visible; }
body.otv-site .otv-art-rings circle { stroke: rgba(214, 234, 140, .3); stroke-width: 1.4; transform-origin: 300px 300px; }
body.otv-site .otv-art-rings .r1 { stroke-dasharray: 4 10; animation: otvSpin 40s linear infinite; }
body.otv-site .otv-art-rings .r2 { stroke: rgba(255, 255, 255, .14); stroke-dasharray: 2 14; animation: otvSpin 60s linear infinite reverse; }
body.otv-site .otv-art-rings .r3 { stroke: rgba(214, 234, 140, .16); }
body.otv-site .otv-art-waves path { stroke: var(--pj-lime, #B6D45A); stroke-width: 6; opacity: 0; animation: otvWave 3.2s ease-out infinite; }
body.otv-site .otv-art-waves .w2 { stroke-width: 5; animation-delay: .5s; }
body.otv-site .otv-art-waves .w3 { stroke-width: 4; animation-delay: 1s; }
@keyframes otvWave { 0% { opacity: 0; } 20% { opacity: .9; } 70% { opacity: .15; } 100% { opacity: 0; } }
body.otv-site .otv-art-leaf .core { fill: var(--pj-lime, #B6D45A); filter: drop-shadow(0 18px 30px rgba(0, 0, 0, .35)); transform-origin: 300px 304px; animation: otvPulse 3.2s ease-in-out infinite; }
body.otv-site .otv-art-core-ico { fill: none; stroke: #04271D; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
@keyframes otvPulse { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.06); } }
body.otv-site .otv-art-orbit { transform-origin: 300px 300px; animation: otvSpin 26s linear infinite; }
body.otv-site .otv-art-orbit circle { fill: var(--pj-lime2, #D6EA8C); }
body.otv-site .otv-art-chip { animation: otvFloat 5.5s ease-in-out infinite alternate; animation-delay: calc(var(--i) * -1.1s); }
body.otv-site .otv-art-chip-bg { fill: rgba(255, 255, 255, .1); stroke: rgba(255, 255, 255, .24); stroke-width: 1.5; }
body.otv-site .otv-art-ico { fill: none; stroke: #fff; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
body.otv-site .otv-art-chip:nth-child(odd) .otv-art-ico { stroke: var(--pj-lime2, #D6EA8C); }
@keyframes otvFloat { from { translate: 0 -7px; } to { translate: 0 7px; } }
@keyframes otvSpin { to { transform: rotate(360deg); } }

body.otv-site .otv-pj-cover-wrap { position: relative; z-index: 2; }
body.otv-site .otv-pj-cover-wrap::before { content: ""; position: absolute; z-index: -1; left: -50vw; right: -50vw; top: 52%; bottom: 0; background: #fff; }
body.otv-site .otv-pj-cover { position: relative; overflow: hidden; aspect-ratio: 957 / 364; border-radius: 30px; background: #0B4D3A; box-shadow: 0 44px 80px -44px rgba(4, 39, 29, .75); }
body.otv-site .otv-pj-cover::after { content: ""; position: absolute; inset: 0; border-radius: inherit; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .08); pointer-events: none; }
body.otv-site .otv-pj .otv-pj-cover :is(figure, .wp-block-image) { width: 100%; height: 100%; margin: 0 !important; }
body.otv-site .otv-pj .otv-pj-cover img { display: block; width: 100% !important; height: 100% !important; max-width: none; object-fit: cover; border-radius: 0 !important; }

/* sobre */
body.otv-site .otv-pj-about { padding: 76px 0 70px; background: #fff; scroll-margin-top: 80px; }
body.otv-site .otv-pj-about-grid { display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: 72px; align-items: start; }
body.otv-site .otv-pj-about-grid.otv-no-toc { grid-template-columns: minmax(0, 880px); justify-content: center; }
body.otv-site .otv-pj-toc { position: sticky; top: 96px; padding: 22px 22px 14px; border-radius: 22px; background: #F4F8EE; }
body.otv-site .otv-pj-toc ol { list-style: none; margin: 12px 0 0; padding: 0; counter-reset: pjtoc; }
body.otv-site .otv-pj-toc li { margin: 0; padding: 0; }
body.otv-site .otv-pj-toc li + li { border-top: 1px solid var(--pj-line); }
body.otv-site .otv-pj-toc a { display: flex; gap: 10px; padding: 11px 0; font-size: 14px; font-weight: 600; line-height: 1.35; color: var(--pj-deep); text-decoration: none; transition: color .2s ease, transform .3s var(--pj-out); }
body.otv-site .otv-pj-toc a::before { counter-increment: pjtoc; content: counter(pjtoc, decimal-leading-zero); flex: none; min-width: 22px; padding-top: 2px; font-size: 11.5px; font-weight: 800; color: rgba(0, 133, 111, .55); }
body.otv-site .otv-pj-toc a:hover { color: var(--pj-teal); transform: translateX(3px); }
body.otv-site .otv-pj-prose > .otv-pj-kicker { margin-bottom: 18px; }
body.otv-site .otv-pj .otv-pj-prose p { max-width: none; margin: 0 0 1.15em; font-size: 17px; line-height: 1.8; color: var(--pj-ink) !important; }
body.otv-site .otv-pj .otv-pj-prose p.otv-pj-first {
  margin-bottom: 1.1em; padding-bottom: 1.1em; border-bottom: 1px solid var(--pj-line);
  font-size: clamp(19px, 1.6vw, 22px) !important; font-weight: 500; line-height: 1.6; color: var(--pj-deep) !important;
}
body.otv-site .otv-pj :is(.otv-pj-prose, .otv-pj-sec-body) strong { color: var(--pj-deep); }
body.otv-site .otv-pj :is(.otv-pj-prose, .otv-pj-sec-body) p a:not(.otv-pj-btn) { color: var(--pj-teal); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }

/* seções */
body.otv-site .otv-pj-secs { padding: 84px 0; background: linear-gradient(180deg, #F4F8EE 0%, #F8FBF3 100%); }
body.otv-site .otv-pj-secs .otv-pj-wrap { display: grid; gap: 28px; }
body.otv-site .otv-pj-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; }
body.otv-site .otv-pj-grid > .otv-pj-sec:last-child:nth-child(odd) { grid-column: 1 / -1; }
body.otv-site .otv-pj-sec {
  position: relative; overflow: hidden; scroll-margin-top: 96px;
  padding: clamp(26px, 3.2vw, 46px); border-radius: 30px; background: #fff;
  box-shadow: 0 1px 0 rgba(14, 90, 67, .05), 0 30px 60px -46px rgba(4, 39, 29, .5), inset 0 0 0 1px rgba(14, 90, 67, .07);
  transition: box-shadow .45s ease, transform .45s var(--pj-out);
}
body.otv-site .otv-pj-sec::after { content: ""; position: absolute; right: -70px; top: -70px; width: 210px; height: 210px; border-radius: 50%; background: radial-gradient(circle, rgba(182, 212, 90, .28), transparent 68%); pointer-events: none; }
body.otv-site .otv-pj-sec:hover { box-shadow: 0 1px 0 rgba(14, 90, 67, .05), 0 40px 70px -46px rgba(4, 39, 29, .6), inset 0 0 0 1px rgba(14, 90, 67, .1); }
body.otv-site .otv-pj-sec-head { position: relative; z-index: 1; display: flex; align-items: flex-start; gap: 16px; margin-bottom: 18px; }
body.otv-site .otv-pj-num { flex: none; display: inline-grid; place-items: center; min-width: 44px; height: 44px; padding: 0 10px; border-radius: 14px; background: var(--pj-deep); color: var(--pj-lime2); font-size: 14px; font-weight: 800; letter-spacing: .06em; }
body.otv-site .otv-pj .otv-pj-sec-h {
  max-width: none; margin: 4px 0 0 !important; padding: 0 !important;
  font-size: clamp(21px, 2vw, 28px) !important; font-weight: 800 !important; line-height: 1.22 !important; letter-spacing: -.015em;
  color: var(--pj-deep) !important; text-align: left !important; text-transform: none !important; background: none !important; border-radius: 0 !important;
}
body.otv-site .otv-pj-sec-body { position: relative; z-index: 1; }
body.otv-site .otv-pj .otv-pj-sec-body p { max-width: none; margin: 0 0 1em; font-size: 16px; line-height: 1.78; color: var(--pj-ink) !important; text-align: left !important; }
body.otv-site .otv-pj .otv-pj-sec-body p:last-child { margin-bottom: 0; }
body.otv-site .otv-pj .otv-pj-sec-body .otv-pj-mini-h { margin: 30px 0 16px !important; font-size: 19px !important; font-weight: 800 !important; color: var(--pj-deep) !important; }
body.otv-site .otv-pj-sec-body > * + :is(.otv-pj-checks, .otv-pj-stats, .otv-pj-steps, .otv-pj-places) { margin-top: 18px !important; }
body.otv-site .otv-pj .otv-pj-inline-img { margin: 22px 0 !important; }
body.otv-site .otv-pj .otv-pj-inline-img img { border-radius: 20px; }

/* etapas */
body.otv-site .otv-pj-steps { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 18px; margin-top: 8px; }
body.otv-site .otv-pj-step { position: relative; padding: 24px 22px 22px; border-radius: 24px; background: #F4F8EE; box-shadow: inset 0 0 0 1px rgba(14, 90, 67, .07); transition: transform .4s var(--pj-out), background .3s ease; }
body.otv-site .otv-pj-step:hover { transform: translateY(-4px); background: #EEF5E4; }
body.otv-site .otv-pj-step-n { display: block; margin-bottom: 12px; font-size: 40px; font-weight: 800; line-height: 1; letter-spacing: -.03em; color: var(--pj-lime); -webkit-text-stroke: 1px rgba(14, 90, 67, .25); }
body.otv-site .otv-pj .otv-pj-sec-body p.otv-pj-step-h { margin: 0 0 10px !important; font-size: 17px !important; font-weight: 800 !important; line-height: 1.3 !important; color: var(--pj-deep) !important; }
body.otv-site .otv-pj .otv-pj-sec-body p.otv-pj-step-p { font-size: 15px !important; line-height: 1.7 !important; }

/* números */
body.otv-site .otv-pj-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 16px; margin-top: 8px; }
body.otv-site .otv-pj-stat {
  position: relative; overflow: hidden; display: flex; flex-direction: column; gap: 10px;
  padding: 24px 22px; border-radius: 24px; color: #fff;
  background: radial-gradient(240px 140px at 100% 0%, rgba(182, 212, 90, .3), transparent 70%), linear-gradient(140deg, #0E5A43, #04271D);
  box-shadow: 0 24px 46px -30px rgba(4, 39, 29, .8);
  transition: transform .4s var(--pj-out);
}
body.otv-site .otv-pj-stat:hover { transform: translateY(-4px); }
body.otv-site .otv-pj-stat-n { font-size: clamp(34px, 3.4vw, 46px); font-weight: 800; line-height: 1; letter-spacing: -.03em; color: var(--pj-lime2); font-variant-numeric: tabular-nums; }
body.otv-site .otv-pj-stat-ico { display: grid; place-items: center; width: 50px; height: 50px; border-radius: 16px; background: rgba(255, 255, 255, .1); color: var(--pj-lime2); }
body.otv-site .otv-pj-stat-ico svg { width: 26px; height: 26px; }
body.otv-site .otv-pj .otv-pj-stat-t, body.otv-site .otv-pj .otv-pj-sec-body p.otv-pj-stat-t { margin: 0 !important; font-size: 15px !important; line-height: 1.55 !important; color: rgba(255, 255, 255, .86) !important; text-align: left !important; }
body.otv-site .otv-pj .otv-pj-sec-body .otv-pj-stat-t strong { color: #fff !important; }
body.otv-site .otv-pj-stats-big .otv-pj-stat-n { font-size: clamp(42px, 4.4vw, 60px); }

/* instituições (lista com cidade) */
body.otv-site .otv-pj .otv-pj-places { list-style: none !important; margin: 0 !important; padding: 0 !important; display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 12px; }
body.otv-site .otv-pj .otv-pj-places li { display: flex; align-items: center; gap: 12px; margin: 0 !important; padding: 12px 14px !important; border-radius: 18px; background: #F4F8EE; box-shadow: inset 0 0 0 1px rgba(14, 90, 67, .07); transition: transform .35s var(--pj-out), background .3s ease; }
body.otv-site .otv-pj .otv-pj-places li:hover { transform: translateY(-3px); background: #EEF5E4; }
body.otv-site .otv-pj-place-ico { display: grid; place-items: center; flex: none; width: 40px; height: 40px; border-radius: 12px; background: #fff; color: var(--pj-teal); box-shadow: 0 8px 18px -12px rgba(4, 39, 29, .5); }
body.otv-site .otv-pj-place-ico svg { width: 20px; height: 20px; }
body.otv-site .otv-pj-place-t { display: flex; flex-direction: column; line-height: 1.3; }
body.otv-site .otv-pj-place-t b { font-size: 15px; font-weight: 700; color: var(--pj-ink); }
body.otv-site .otv-pj-place-t em { font-size: 13px; font-style: normal; font-weight: 600; color: var(--pj-teal); }

/* chamada (ex.: pesquisa de satisfação) */
body.otv-site .otv-pj-sec.otv-pj-callout { padding-left: clamp(26px, 3.2vw, 46px); background: radial-gradient(420px 220px at 100% 0%, rgba(182, 212, 90, .42), transparent 70%), linear-gradient(135deg, #F6FBEA, #EAF4D8); box-shadow: inset 0 0 0 1px rgba(14, 90, 67, .1); }
body.otv-site .otv-pj-callout-ico { position: absolute; right: 30px; top: 30px; z-index: 1; display: grid; place-items: center; width: 64px; height: 64px; border-radius: 20px; background: var(--pj-deep); color: var(--pj-lime2); transform: rotate(6deg); }
body.otv-site .otv-pj-callout-ico svg { width: 32px; height: 32px; }
body.otv-site .otv-pj-callout .otv-pj-sec-head { padding-right: 80px; }
body.otv-site .otv-pj .otv-pj-actions { display: flex !important; flex-wrap: wrap; gap: 12px; margin: 22px 0 !important; padding: 0 !important; background: none !important; }
body.otv-site .otv-pj .otv-pj-actions .wp-block-button { width: auto !important; margin: 0 !important; }

/* galeria */
body.otv-site .otv-pj-gal { padding: 84px 0 70px; background: #fff; scroll-margin-top: 70px; }
body.otv-site .otv-pj-gal-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
body.otv-site .otv-pj-gal-n1 { grid-template-columns: minmax(0, 760px); justify-content: center; }
body.otv-site .otv-pj-gal-n2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
body.otv-site .otv-pj-gal-n4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
body.otv-site .otv-pj-ph {
  position: relative; display: block; overflow: hidden; padding: 0; border: 0; cursor: zoom-in;
  aspect-ratio: 4 / 3; border-radius: 24px; background: var(--pj-pale);
  box-shadow: 0 24px 44px -32px rgba(4, 39, 29, .6);
}
body.otv-site .otv-pj-gal-grid.otv-pj-gal-n3 .otv-pj-ph:first-child,
body.otv-site .otv-pj-gal-grid.otv-pj-gal-n6 .otv-pj-ph:first-child { grid-row: span 2; aspect-ratio: auto; }
body.otv-site .otv-pj-ph img { display: block; width: 100% !important; height: 100% !important; max-width: none; object-fit: cover; border-radius: 0 !important; transition: transform 1.2s var(--pj-out); }
body.otv-site .otv-pj-ph::after {
  content: ""; position: absolute; right: 14px; bottom: 14px; width: 42px; height: 42px; border-radius: 50%;
  background: rgba(255, 255, 255, .92) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230E5A43' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E") center / 18px no-repeat;
  opacity: 0; transform: scale(.8); transition: opacity .3s ease, transform .3s var(--pj-out);
}
body.otv-site .otv-pj-ph:hover img, body.otv-site .otv-pj-ph:focus-visible img { transform: scale(1.06); }
body.otv-site .otv-pj-ph:hover::after, body.otv-site .otv-pj-ph:focus-visible::after { opacity: 1; transform: none; }
body.otv-site .otv-lb { position: fixed; inset: 0; z-index: 100000; display: grid; grid-template-columns: 64px minmax(0, 1fr) 64px; align-items: center; gap: 10px; padding: 30px 16px; background: rgba(4, 25, 18, .92); opacity: 0; transition: opacity .25s ease; }
body.otv-site .otv-lb.is-on { opacity: 1; }
body.otv-site .otv-lb figure { margin: 0; display: grid; place-items: center; height: 100%; }
body.otv-site .otv-lb img { max-width: 100%; max-height: calc(100vh - 80px); border-radius: 16px; box-shadow: 0 30px 80px rgba(0, 0, 0, .5); }
body.otv-site .otv-lb button { display: grid; place-items: center; width: 52px; height: 52px; padding: 0; border: 0; border-radius: 50%; background: rgba(255, 255, 255, .12); color: #fff; font-size: 30px; line-height: 1; cursor: pointer; transition: background .2s ease; }
body.otv-site .otv-lb button:hover { background: rgba(255, 255, 255, .24); }
body.otv-site .otv-lb button svg { width: 22px; height: 22px; }
body.otv-site .otv-lb .otv-lb-p svg { transform: rotate(180deg); }
body.otv-site .otv-lb .otv-lb-x { position: absolute; top: 18px; right: 18px; }

/* newsletter */
body.otv-site .otv-pj-news { padding: 84px 0; background: linear-gradient(180deg, #F4F8EE, #fff); }
body.otv-site .otv-pj-news .otv-pj-head .otv-pj-btn { margin-top: 22px; }
body.otv-site .otv-pj-news .list-newsletter { padding: 0 56px; }
body.otv-site .otv-pj-news .newsletter-home-slide { padding: 16px 6px 30px; }
body.otv-site .otv-pj-news .card-newsletter__image-principal { height: 380px; border-radius: 20px; background: #fff; box-shadow: 0 26px 50px -34px rgba(4, 39, 29, .7); transition: transform .45s var(--pj-out), box-shadow .45s ease; }
body.otv-site .otv-pj-news .card-newsletter:hover .card-newsletter__image-principal { transform: translateY(-8px) rotate(-1deg); box-shadow: 0 40px 60px -34px rgba(4, 39, 29, .75); }
body.otv-site .otv-pj-news .card-newsletter__image-principal a.card-newsletter__image img { width: 100%; object-fit: cover; object-position: top; border-radius: 20px; }
body.otv-site .otv-pj-news .newsletter-swiper-text a { color: var(--pj-deep); font-weight: 700; text-decoration: none; }
body.otv-site .otv-pj-news :is(.swiper-button-prev, .swiper-button-next) { width: 46px; height: 46px; margin-top: -23px; border: 0; border-radius: 50%; background: #fff; box-shadow: 0 14px 28px -16px rgba(4, 39, 29, .6), inset 0 0 0 1.5px rgba(14, 90, 67, .14); }
body.otv-site .otv-pj-news .swiper-button-prev { left: 0; }
body.otv-site .otv-pj-news .swiper-button-next { right: 0; }
body.otv-site .otv-pj-news :is(.swiper-button-prev, .swiper-button-next)::after { background-color: var(--pj-deep); }
body.otv-site .otv-pj-news :is(.swiper-button-prev, .swiper-button-next):hover { background: var(--pj-deep); }
body.otv-site .otv-pj-news :is(.swiper-button-prev, .swiper-button-next):hover::after { background-color: #fff; }

/* ----- APOIADORES E PATROCINADORES (destaque) ----- */
body.otv-site .otv-sp {
  position: relative; overflow: hidden; isolation: isolate; padding: 96px 0 100px; color: #fff; scroll-margin-top: 60px;
  background:
    radial-gradient(700px 380px at 50% 0%, rgba(182, 212, 90, .2), transparent 65%),
    linear-gradient(160deg, #0E5A43 0%, #04271D 100%);
}
body.otv-site :is(.otv-sp, .otv-cv-imp) .otv-sp-deco { position: absolute; inset: 0; z-index: -1; pointer-events: none; }
body.otv-site :is(.otv-sp, .otv-cv-imp) .otv-sp-deco i { position: absolute; left: 50%; top: 50%; border-radius: 50%; border: 1.5px solid rgba(214, 234, 140, .1); transform: translate(-50%, -50%); }
body.otv-site :is(.otv-sp, .otv-cv-imp) .otv-sp-deco i:nth-child(1) { width: 560px; height: 560px; animation: otvRing 6s ease-out infinite; }
body.otv-site :is(.otv-sp, .otv-cv-imp) .otv-sp-deco i:nth-child(2) { width: 560px; height: 560px; animation: otvRing 6s ease-out 2s infinite; }
body.otv-site :is(.otv-sp, .otv-cv-imp) .otv-sp-deco i:nth-child(3) { width: 560px; height: 560px; animation: otvRing 6s ease-out 4s infinite; }
@keyframes otvRing { 0% { transform: translate(-50%, -50%) scale(.4); opacity: 0; } 25% { opacity: 1; } 100% { transform: translate(-50%, -50%) scale(2.4); opacity: 0; } }
body.otv-site .otv-sp .otv-pj-head { margin-bottom: 48px; }
body.otv-site .otv-sp .otv-pj-kicker { color: var(--pj-lime2); }
body.otv-site .otv-sp .otv-pj-kicker-ico { background: rgba(255, 255, 255, .1); color: var(--pj-lime); }
body.otv-site .otv-pj .otv-sp .otv-pj-h { color: #fff !important; }
body.otv-site .otv-sp-sub { max-width: 560px; margin: 14px auto 0; font-size: 16.5px; line-height: 1.6; color: rgba(255, 255, 255, .78); }
body.otv-site .otv-sp-card {
  position: relative; overflow: hidden; display: grid; place-items: center; flex: none;
  width: 216px; height: 122px; border-radius: 22px; background: #fff;
  box-shadow: 0 22px 40px -26px rgba(0, 0, 0, .75);
  transition: transform .45s var(--pj-out), box-shadow .45s ease;
}
body.otv-site .otv-sp-card img { display: block; max-width: 84%; max-height: 66%; width: 70%; height: auto; object-fit: contain; transition: transform .45s var(--pj-out); }
body.otv-site .otv-sp-card::after { content: ""; position: absolute; top: 0; bottom: 0; left: -60%; width: 40%; background: linear-gradient(100deg, transparent, rgba(255, 255, 255, .85), transparent); transform: skewX(-18deg); opacity: 0; pointer-events: none; }
body.otv-site .otv-sp-card:hover, body.otv-site .otv-sp-card.is-hot { transform: translateY(-6px) scale(1.05); box-shadow: 0 0 0 3px var(--pj-lime), 0 30px 50px -24px rgba(0, 0, 0, .8); }
body.otv-site .otv-sp-card:hover img { transform: scale(1.06); }
body.otv-site .otv-sp-card:hover::after, body.otv-site .otv-sp-card.is-hot::after { animation: otvShine .9s ease; }
@keyframes otvShine { 0% { left: -60%; opacity: 0; } 20% { opacity: 1; } 100% { left: 130%; opacity: 0; } }
/* muitas logos: faixas que deslizam */
body.otv-site .otv-sp-mq { position: relative; overflow: hidden; padding: 14px 0; -webkit-mask-image: linear-gradient(90deg, transparent, #000 9%, #000 91%, transparent); mask-image: linear-gradient(90deg, transparent, #000 9%, #000 91%, transparent); }
body.otv-site .otv-sp-mq + .otv-sp-mq { margin-top: 8px; }
body.otv-site .otv-sp-track { display: flex; width: max-content; animation: otvMarquee var(--dur, 40s) linear infinite; }
body.otv-site .otv-sp-rev .otv-sp-track { animation-direction: reverse; }
body.otv-site .otv-sp-mq:hover .otv-sp-track { animation-play-state: paused; }
body.otv-site .otv-sp-grp { display: flex; gap: 22px; padding-right: 22px; }
@keyframes otvMarquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
/* poucas logos: cartões grandes flutuando */
body.otv-site .otv-sp-grid { display: flex; flex-wrap: wrap; justify-content: center; gap: 26px; }
body.otv-site .otv-sp-grid .otv-sp-card { width: 270px; height: 160px; border-radius: 26px; animation: otvBob 5s ease-in-out infinite alternate; animation-delay: calc(var(--i) * -1.3s); }
body.otv-site .otv-sp-grid .otv-sp-card::after { animation: otvShine 1.1s ease 1.4s; animation-delay: calc(1.4s + var(--i) * .35s); }
body.otv-site .otv-sp-grid .otv-sp-card:hover { animation-play-state: paused; }
body.otv-site .otv-sp-grid.otv-sp-n1 .otv-sp-card, body.otv-site .otv-sp-grid.otv-sp-n2 .otv-sp-card { width: 320px; height: 186px; }
@keyframes otvBob { from { translate: 0 -6px; } to { translate: 0 6px; } }

/* ----- bloco final ----- */
body.otv-site .otv-pj-cta { padding: 80px 0 30px; background: #fff; }
body.otv-site .otv-sp + .otv-pj-cta { padding-top: 80px; }
body.otv-site .otv-pj-cta-card {
  position: relative; overflow: hidden; display: flex; align-items: center; justify-content: space-between; gap: 28px; flex-wrap: wrap;
  padding: 40px 44px; border-radius: 30px; color: #fff;
  background: radial-gradient(520px 260px at 100% 0%, rgba(182, 212, 90, .3), transparent 65%), linear-gradient(135deg, #0E5A43, #04271D);
  box-shadow: 0 34px 70px -40px rgba(4, 39, 29, .8);
}
body.otv-site .otv-pj-cta-art { position: absolute; inset: 0; pointer-events: none; }
body.otv-site .otv-pj-cta-art i { position: absolute; border-radius: 50%; border: 2px solid rgba(214, 234, 140, .2); pointer-events: none; }
body.otv-site .otv-pj-cta-art i:first-child { right: -60px; bottom: -90px; width: 250px; height: 250px; }
body.otv-site .otv-pj-cta-art i:last-child { right: 60px; top: -70px; width: 140px; height: 140px; border-color: rgba(255, 255, 255, .1); }
body.otv-site .otv-pj-cta-txt { position: relative; z-index: 1; max-width: 640px; }
body.otv-site .otv-pj-cta .otv-pj-kicker { margin-bottom: 10px; color: var(--pj-lime2); }
body.otv-site :is(.otv-pj, .otv-cv) .otv-pj-cta h2 { margin: 0 0 10px !important; padding: 0 !important; font-size: clamp(23px, 2.4vw, 32px) !important; font-weight: 800 !important; line-height: 1.2 !important; color: #fff !important; text-align: left !important; }
body.otv-site .otv-pj-cta-p { margin: 0 !important; font-size: 16px !important; line-height: 1.6; color: rgba(255, 255, 255, .85) !important; }
body.otv-site .otv-pj-cta-act { position: relative; z-index: 1; display: flex; flex-wrap: wrap; gap: 12px; }
body.otv-site .otv-pj-cta .otv-pj-btn-ghost { color: #fff !important; box-shadow: inset 0 0 0 1.5px rgba(255, 255, 255, .4); }
body.otv-site .otv-pj-cta .otv-pj-btn-ghost:hover { background: rgba(255, 255, 255, .1); }

/* ----- outros projetos ----- */
body.otv-site .otv-pj-more { padding: 70px 0 96px; background: #fff; }
body.otv-site .otv-pj-more-grid { display: flex; flex-wrap: wrap; justify-content: center; gap: 18px; }
body.otv-site .otv-pj-more-grid .otv-pj-tile { flex: 0 1 calc(33.333% - 12px); min-width: 280px; }
body.otv-site .otv-pj-tile {
  position: relative; display: flex; align-items: center; gap: 16px; min-height: 104px;
  padding: 18px 64px 18px 18px; border-radius: 24px; background: #fff; text-decoration: none !important;
  box-shadow: 0 1px 0 rgba(14, 90, 67, .05), 0 22px 44px -34px rgba(4, 39, 29, .5), inset 0 0 0 1px rgba(14, 90, 67, .08);
  transition: transform .45s var(--pj-out), background .35s ease, box-shadow .45s ease;
}
body.otv-site .otv-pj-tile-ico { display: grid; place-items: center; flex: none; width: 58px; height: 58px; border-radius: 18px; background: var(--pj-pale); color: var(--pj-teal); transition: background .35s ease, color .35s ease, transform .5s var(--pj-out); }
body.otv-site .otv-pj-tile-ico svg { width: 28px; height: 28px; }
body.otv-site .otv-pj-tile-txt { display: flex; flex-direction: column; gap: 4px; }
body.otv-site .otv-pj-tile-txt em { font-size: 11.5px; font-style: normal; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--pj-teal); transition: color .3s ease; }
body.otv-site .otv-pj-tile-txt strong { font-size: 16.5px; font-weight: 800; line-height: 1.3; color: var(--pj-deep); transition: color .3s ease; }
body.otv-site .otv-pj-tile-go { position: absolute; right: 18px; top: 50%; display: grid; place-items: center; width: 38px; height: 38px; margin-top: -19px; border-radius: 50%; color: var(--pj-deep); box-shadow: inset 0 0 0 1.5px rgba(14, 90, 67, .18); transition: background .3s ease, color .3s ease, transform .45s var(--pj-out), box-shadow .3s ease; }
body.otv-site .otv-pj-tile-go svg { width: 18px; height: 18px; }
body.otv-site .otv-pj-tile:hover, body.otv-site .otv-pj-tile:focus-visible { transform: translateY(-5px); background: var(--pj-deep); box-shadow: 0 34px 60px -34px rgba(4, 39, 29, .75); }
body.otv-site .otv-pj-tile:hover .otv-pj-tile-ico { background: rgba(255, 255, 255, .1); color: var(--pj-lime); transform: rotate(-6deg); }
body.otv-site .otv-pj-tile:hover .otv-pj-tile-txt em { color: var(--pj-lime2); }
body.otv-site .otv-pj-tile:hover .otv-pj-tile-txt strong { color: #fff; }
body.otv-site .otv-pj-tile:hover .otv-pj-tile-go { background: var(--pj-lime); color: var(--pj-deeper); box-shadow: none; transform: rotate(-45deg); }

/* =====================================================================
   ESPAÇO COMNVIDA
   ===================================================================== */
body.otv-site .otv-cv-hero {
  position: relative; overflow: hidden; isolation: isolate; color: #fff; padding: 34px 0 150px;
  background:
    radial-gradient(760px 520px at 82% 30%, rgba(182, 212, 90, .2), transparent 62%),
    radial-gradient(620px 420px at 0% 100%, rgba(0, 133, 111, .5), transparent 62%),
    linear-gradient(140deg, #0E5A43 0%, #073A2B 55%, #04271D 100%);
}
body.otv-site .otv-cv-hero-bg { position: absolute; inset: 0; z-index: -1; pointer-events: none; }
body.otv-site .otv-cv-hero-bg .b1 { width: 420px; height: 420px; right: -120px; top: -160px; background: radial-gradient(circle, rgba(182, 212, 90, .3), transparent 70%); animation: otvBlob 14s ease-in-out infinite alternate; }
body.otv-site .otv-cv-hero-bg .b2 { width: 300px; height: 300px; left: 38%; bottom: -150px; background: radial-gradient(circle, rgba(0, 133, 111, .55), transparent 70%); animation: otvBlob 18s ease-in-out infinite alternate-reverse; }
body.otv-site .otv-cv-hero-bg .b3 { width: 180px; height: 180px; left: -60px; top: 30%; background: radial-gradient(circle, rgba(214, 234, 140, .18), transparent 70%); animation: otvBlob 12s ease-in-out infinite alternate; }
body.otv-site .otv-cv-hero-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 500px); gap: 40px; align-items: center; }
body.otv-site .otv-cv-logo { margin: 0 0 22px; }
body.otv-site .otv-cv-logo img { display: block; width: auto !important; max-height: 58px; filter: brightness(0) invert(1); opacity: .95; }
body.otv-site .otv-cv .otv-cv-title {
  margin: 16px 0 16px !important; padding: 0 !important;
  font-size: clamp(44px, 6.2vw, 84px) !important; font-weight: 800 !important; line-height: .98 !important; letter-spacing: -.035em;
  color: #fff !important; text-align: left !important;
}
body.otv-site .otv-cv-lead { max-width: 560px; margin: 0 0 26px !important; font-size: clamp(17px, 1.5vw, 20px) !important; font-weight: 500; line-height: 1.6 !important; color: rgba(255, 255, 255, .84) !important; }
body.otv-site .otv-cv-chips { display: flex; flex-wrap: wrap; gap: 10px; }
body.otv-site .otv-cv-chip {
  display: inline-flex; align-items: center; gap: 9px; padding: 10px 16px 10px 12px; border-radius: 999px;
  background: rgba(255, 255, 255, .08); color: #fff !important; font-size: 14.5px; font-weight: 700; text-decoration: none !important;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .16); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
  transition: background .25s ease, transform .3s var(--pj-out), color .25s ease;
}
body.otv-site .otv-cv-chip svg { width: 19px; height: 19px; color: var(--pj-lime); transition: color .25s ease; }
body.otv-site .otv-cv-chip span { color: inherit; }
body.otv-site .otv-cv-chip:hover { background: var(--pj-lime); color: var(--pj-deeper) !important; transform: translateY(-2px); }
body.otv-site .otv-cv-chip:hover svg { color: var(--pj-deeper); }
/* órbita */
body.otv-site .otv-cv-orbit { position: relative; width: 100%; max-width: 500px; aspect-ratio: 1 / 1; justify-self: end; }
body.otv-site .otv-cv-orb-rings i { position: absolute; inset: 0; border-radius: 50%; border: 1.5px dashed rgba(214, 234, 140, .3); animation: otvSpin 70s linear infinite; }
body.otv-site .otv-cv-orb-rings i:nth-child(2) { inset: 16%; border-style: solid; border-color: rgba(255, 255, 255, .1); animation-direction: reverse; animation-duration: 90s; }
body.otv-site .otv-cv-orb-rings i:nth-child(3) { inset: 32%; border: 0; background: radial-gradient(circle, rgba(214, 234, 140, .3), transparent 70%); animation: otvPulse 4s ease-in-out infinite; }
body.otv-site .otv-cv-orb-core { position: absolute; left: 50%; top: 50%; width: 34%; aspect-ratio: 1 / 1; transform: translate(-50%, -50%); border-radius: 50%; display: grid; place-items: center; background: radial-gradient(circle at 30% 25%, #E2F2A6, #B6D45A 60%, #8DB43A); box-shadow: 0 30px 60px -20px rgba(0, 0, 0, .55), inset 0 -10px 24px rgba(4, 39, 29, .18); }
body.otv-site .otv-cv-orb-core span { display: grid; place-items: center; width: 64%; aspect-ratio: 1 / 1; color: #04271D; animation: otvSign 3.4s ease-in-out infinite; transform-origin: 50% 55%; }
body.otv-site .otv-cv-orb-core svg { width: 100%; height: 100%; overflow: visible; }
@keyframes otvSign { 0%, 100% { transform: rotate(-4deg) scale(1); } 50% { transform: rotate(4deg) scale(1.04); } }
@keyframes otvWaveHand { 0%, 60%, 100% { transform: rotate(0); } 15% { transform: rotate(-12deg); } 30% { transform: rotate(10deg); } 45% { transform: rotate(-6deg); } }
body.otv-site .otv-cv-orb-spin { position: absolute; inset: 0; animation: otvSpin 60s linear infinite; }
body.otv-site .otv-cv-orb-arm { position: absolute; inset: 8%; transform: rotate(var(--a)); pointer-events: none; }
body.otv-site .otv-cv-orb-arm > span { position: absolute; left: 50%; top: 0; transform: translate(-50%, -50%) rotate(calc(-1 * var(--a))); }
body.otv-site .otv-cv-orb-arm i {
  display: inline-flex; align-items: center; gap: 8px; padding: 9px 15px 9px 10px; border-radius: 999px; white-space: nowrap; font-style: normal;
  background: #fff; color: var(--pj-deep); font-size: 13.5px; font-weight: 700;
  box-shadow: 0 16px 30px -16px rgba(0, 0, 0, .6);
  animation: otvSpin 60s linear infinite reverse;
}
body.otv-site .otv-cv-orb-arm i svg { width: 18px; height: 18px; color: var(--pj-teal); }
body.otv-site .otv-cv-orb-arm i b { font-weight: 700; color: inherit; }
/* propósito */
body.otv-site .otv-cv-prop { position: relative; z-index: 3; margin-top: -100px; padding-bottom: 40px; }
body.otv-site .otv-cv-prop-card {
  position: relative; max-width: 980px; margin: 0 auto; padding: clamp(30px, 4.5vw, 60px);
  border-radius: 34px; background: #fff;
  box-shadow: 0 50px 90px -50px rgba(4, 39, 29, .55), inset 0 0 0 1px rgba(14, 90, 67, .07);
}
body.otv-site .otv-cv-quote { position: absolute; top: -30px; left: clamp(30px, 4.5vw, 60px); display: grid; place-items: center; width: 64px; height: 64px; border-radius: 20px; background: var(--pj-lime); color: var(--pj-deeper); box-shadow: 0 16px 30px -16px rgba(4, 39, 29, .6); transform: rotate(-6deg); }
body.otv-site .otv-cv-quote svg { width: 32px; height: 32px; fill: currentColor; stroke: none; }
body.otv-site .otv-cv .otv-cv-prop-h { margin: 8px 0 18px !important; font-size: clamp(26px, 2.6vw, 34px) !important; font-weight: 800 !important; color: var(--pj-deep) !important; text-align: left !important; }
body.otv-site .otv-cv .otv-cv-prop-txt p { margin: 0 0 1.1em !important; font-size: 17px !important; line-height: 1.8 !important; color: var(--pj-ink) !important; text-align: left !important; }
body.otv-site .otv-cv .otv-cv-prop-txt p:first-child { font-size: clamp(18px, 1.6vw, 21px) !important; font-weight: 500; color: var(--pj-deep) !important; }
body.otv-site .otv-cv-sigs { display: flex; flex-wrap: wrap; gap: 14px 34px; margin-top: 26px; padding-top: 24px; border-top: 1px solid var(--pj-line); }
body.otv-site .otv-cv-sig { display: grid; grid-template-columns: auto 1fr; grid-template-rows: auto auto; column-gap: 14px; align-items: center; }
body.otv-site .otv-cv-sig-ini { grid-row: 1 / span 2; display: grid; place-items: center; width: 50px; height: 50px; border-radius: 50%; background: var(--pj-deep); color: var(--pj-lime2); font-size: 16px; font-weight: 800; letter-spacing: .04em; }
body.otv-site .otv-cv-sig strong { display: block; font-size: 17px; font-weight: 800; color: var(--pj-deep); line-height: 1.2; }
body.otv-site .otv-cv-sig > span:last-child { display: block; font-size: 14px; color: var(--pj-muted); }
/* o espaço */
body.otv-site .otv-cv-intro { padding: 70px 0 90px; }
body.otv-site .otv-cv-intro-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 64px; align-items: center; }
body.otv-site .otv-cv-intro-txt .otv-pj-h { margin-top: 14px !important; margin-bottom: 20px !important; }
body.otv-site .otv-cv .otv-cv-intro-txt p { margin: 0 0 1.1em !important; font-size: 17px !important; line-height: 1.8 !important; color: var(--pj-ink) !important; text-align: left !important; }
body.otv-site .otv-cv .otv-cv-intro-txt p.otv-cv-first { font-size: clamp(18px, 1.6vw, 21px) !important; font-weight: 500; color: var(--pj-deep) !important; }
body.otv-site .otv-cv-photo { position: relative; margin: 0; padding: 0 0 26px 26px; }
body.otv-site .otv-cv-photo-deco { position: absolute; left: 0; bottom: 0; width: 78%; height: 78%; border-radius: 40% 60% 55% 45% / 50% 40% 60% 50%; background: linear-gradient(135deg, var(--pj-lime2), var(--pj-lime)); animation: otvMorph 12s ease-in-out infinite alternate; }
@keyframes otvMorph { 0% { border-radius: 40% 60% 55% 45% / 50% 40% 60% 50%; } 100% { border-radius: 58% 42% 40% 60% / 42% 58% 42% 58%; } }
body.otv-site .otv-cv-photo img { position: relative; display: block; width: 100% !important; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 30px !important; box-shadow: 0 40px 70px -40px rgba(4, 39, 29, .7); }
body.otv-site .otv-cv-badge { position: absolute; right: -18px; bottom: 50px; display: grid; grid-template-columns: auto 1fr; column-gap: 12px; align-items: center; max-width: 260px; padding: 14px 18px 14px 14px; border-radius: 20px; background: #fff; box-shadow: 0 26px 50px -28px rgba(4, 39, 29, .65); animation: otvBob 5s ease-in-out infinite alternate; }
body.otv-site .otv-cv-badge > span { grid-row: 1 / span 2; display: grid; place-items: center; width: 44px; height: 44px; border-radius: 14px; background: var(--pj-pale); color: var(--pj-teal); }
body.otv-site .otv-cv-badge svg { width: 22px; height: 22px; }
body.otv-site .otv-cv-badge b { font-size: 11.5px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--pj-teal); }
body.otv-site .otv-cv-badge em { font-size: 14px; font-style: normal; font-weight: 700; line-height: 1.3; color: var(--pj-deep); }
/* Libras */
body.otv-site .otv-cv-libras { padding: 90px 0; background: linear-gradient(180deg, #F4F8EE, #F8FBF3); scroll-margin-top: 70px; }
body.otv-site .otv-cv-libras-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; }
body.otv-site .otv-cv-lcard { position: relative; overflow: hidden; border-radius: 30px; background: #fff; box-shadow: 0 30px 60px -46px rgba(4, 39, 29, .5), inset 0 0 0 1px rgba(14, 90, 67, .07); transition: transform .45s var(--pj-out); }
body.otv-site .otv-cv-lcard:hover { transform: translateY(-5px); }
body.otv-site .otv-cv-lcard-art { position: relative; overflow: hidden; height: 150px; display: grid; place-items: center; background: radial-gradient(260px 160px at 85% 0%, rgba(182, 212, 90, .35), transparent 70%), linear-gradient(135deg, #0E5A43, #04271D); }
body.otv-site .otv-cv-lcard-1 .otv-cv-lcard-art { background: radial-gradient(260px 160px at 15% 0%, rgba(182, 212, 90, .35), transparent 70%), linear-gradient(135deg, #00856F, #0E5A43); }
body.otv-site .otv-cv-lcard-art span { position: relative; z-index: 1; display: grid; place-items: center; width: 84px; height: 84px; border-radius: 26px; background: rgba(255, 255, 255, .1); color: var(--pj-lime); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .18); animation: otvBob 4.5s ease-in-out infinite alternate; }
body.otv-site .otv-cv-lcard-art span svg { width: 44px; height: 44px; }
body.otv-site .otv-cv-lcard-art i { position: absolute; border-radius: 50%; border: 1.5px solid rgba(214, 234, 140, .2); }
body.otv-site .otv-cv-lcard-art i:nth-of-type(1) { width: 220px; height: 220px; right: -70px; top: -90px; }
body.otv-site .otv-cv-lcard-art i:nth-of-type(2) { width: 120px; height: 120px; left: -40px; bottom: -60px; border-color: rgba(255, 255, 255, .12); }
body.otv-site .otv-cv .otv-cv-lcard-h { margin: 28px 34px 18px !important; font-size: clamp(21px, 2vw, 26px) !important; font-weight: 800 !important; line-height: 1.25 !important; color: var(--pj-deep) !important; text-align: left !important; }
body.otv-site .otv-cv-lcard .otv-pj-checks { padding: 0 34px 34px !important; }
/* serviços */
body.otv-site .otv-cv-serv { padding: 90px 0; background: #fff; scroll-margin-top: 70px; }
body.otv-site .otv-cv-serv-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; align-items: start; }
body.otv-site .otv-cv-scard { position: relative; overflow: hidden; padding: clamp(28px, 3.4vw, 46px); border-radius: 30px; background: #fff; box-shadow: 0 1px 0 rgba(14, 90, 67, .05), 0 30px 60px -46px rgba(4, 39, 29, .5), inset 0 0 0 1px rgba(14, 90, 67, .08); }
body.otv-site .otv-cv-scard::after { content: ""; position: absolute; right: -80px; top: -80px; width: 230px; height: 230px; border-radius: 50%; background: radial-gradient(circle, rgba(182, 212, 90, .3), transparent 68%); pointer-events: none; }
body.otv-site .otv-cv-scard-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 18px; }
body.otv-site .otv-cv-scard-ico { display: grid; place-items: center; width: 64px; height: 64px; border-radius: 20px; background: var(--pj-deep); color: var(--pj-lime2); }
body.otv-site .otv-cv-scard-ico svg { width: 32px; height: 32px; }
body.otv-site .otv-cv-scard-tag { position: relative; z-index: 1; padding: 7px 14px; border-radius: 999px; background: var(--pj-pale); color: var(--pj-teal); font-size: 12.5px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
body.otv-site .otv-cv .otv-cv-scard-h { position: relative; z-index: 1; margin: 0 0 16px !important; font-size: clamp(21px, 2vw, 26px) !important; font-weight: 800 !important; line-height: 1.25 !important; color: var(--pj-deep) !important; text-align: left !important; }
body.otv-site .otv-cv .otv-cv-scard-body p { margin: 0 0 1em !important; font-size: 16px !important; line-height: 1.78 !important; color: var(--pj-ink) !important; text-align: left !important; }
body.otv-site .otv-cv-scard-body .otv-pj-feats { margin-top: 18px !important; }
body.otv-site .otv-cv-scard-body .otv-pj-feats li { padding: 14px 16px 14px 52px !important; border-radius: 18px; background: #F6FAF1; }
body.otv-site .otv-cv-scard-body .otv-pj-feats li::before { left: 14px; top: 15px; background-color: #fff; }
/* impacto */
body.otv-site .otv-cv-imp { position: relative; overflow: hidden; isolation: isolate; padding: 96px 0 100px; color: #fff; scroll-margin-top: 60px; background: radial-gradient(700px 380px at 50% 0%, rgba(182, 212, 90, .2), transparent 65%), linear-gradient(160deg, #0E5A43 0%, #04271D 100%); }
body.otv-site .otv-cv-imp .otv-pj-kicker { color: var(--pj-lime2); }
body.otv-site .otv-cv-imp .otv-pj-kicker-ico { background: rgba(255, 255, 255, .1); color: var(--pj-lime); }
body.otv-site .otv-cv .otv-cv-imp .otv-pj-h { color: #fff !important; }
body.otv-site .otv-cv .otv-cv-imp .otv-pj-sub { max-width: 820px; color: rgba(255, 255, 255, .8) !important; }
body.otv-site .otv-cv-imp-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
body.otv-site .otv-cv-icard { position: relative; padding: 30px 24px 28px; border-radius: 26px; background: rgba(255, 255, 255, .06); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .12); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); transition: transform .45s var(--pj-out), background .3s ease; }
body.otv-site .otv-cv-icard:hover { transform: translateY(-6px); background: rgba(255, 255, 255, .1); }
body.otv-site .otv-cv-icard-n { position: relative; display: grid; place-items: center; width: 64px; height: 64px; margin-bottom: 18px; }
body.otv-site .otv-cv-icard-n svg { position: absolute; inset: 0; width: 100%; height: 100%; transform: rotate(-90deg); }
body.otv-site .otv-cv-icard-n circle { fill: none; stroke: var(--pj-lime); stroke-width: 3; stroke-linecap: round; stroke-dasharray: 176; stroke-dashoffset: 0; }
body.otv-site .otv-cv-icard.otv-pj-sr circle { stroke-dashoffset: 176; }
body.otv-site .otv-cv-icard.otv-pj-sr.is-in circle { stroke-dashoffset: 0; transition: stroke-dashoffset 1.4s var(--pj-out) calc(var(--sr-d, 0s) + .2s); }
body.otv-site .otv-cv-icard-n b { font-size: 20px; font-weight: 800; color: var(--pj-lime2); }
body.otv-site .otv-cv .otv-cv-icard-h { margin: 0 0 10px !important; font-size: 19px !important; font-weight: 800 !important; line-height: 1.3 !important; color: #fff !important; }
body.otv-site .otv-cv .otv-cv-icard p { margin: 0 !important; font-size: 15px !important; line-height: 1.65 !important; color: rgba(255, 255, 255, .8) !important; }
body.otv-site .otv-cv .otv-pj-cta { padding-bottom: 96px; }

/* ----- página das newsletters ----- */
body.otv-site .otv-nl { padding-top: 40px; padding-bottom: 60px; background: radial-gradient(900px 420px at 92% 0%, rgba(182, 212, 90, .25), transparent 62%), linear-gradient(180deg, #F2F8EA 0, #fff 420px); }
body.otv-site .otv-nl h1 { margin: 10px 0 10px; font-size: clamp(36px, 4.4vw, 56px); font-weight: 800; letter-spacing: -.025em; color: #0E5A43; }
body.otv-site .otv-nl .otv-nl-intro { max-width: 620px; margin: 0 0 28px; font-size: 17px; line-height: 1.6; color: #51655D; }

/* ----- entrada das aberturas ----- */
body.otv-site .otv-anim :is(.otv-pj-hero-main, .otv-cv-hero-main) > *,
body.otv-site .otv-anim :is(.otv-pj-art, .otv-cv-orbit, .otv-pj-cover) { opacity: 0; transform: translateY(18px); }
body.otv-site .otv-anim.is-ready :is(.otv-pj-hero-main, .otv-cv-hero-main) > *,
body.otv-site .otv-anim.is-ready :is(.otv-pj-art, .otv-cv-orbit, .otv-pj-cover) { opacity: 1; transform: none; transition: opacity .7s ease var(--d, 0s), transform 1s var(--pj-out) var(--d, 0s); }
body.otv-site .otv-anim :is(.otv-pj-hero-main, .otv-cv-hero-main) > :nth-child(2) { --d: .06s; }
body.otv-site .otv-anim :is(.otv-pj-hero-main, .otv-cv-hero-main) > :nth-child(3) { --d: .12s; }
body.otv-site .otv-anim :is(.otv-pj-hero-main, .otv-cv-hero-main) > :nth-child(4) { --d: .18s; }
body.otv-site .otv-anim :is(.otv-pj-hero-main, .otv-cv-hero-main) > :nth-child(5) { --d: .24s; }
body.otv-site .otv-anim :is(.otv-pj-hero-main, .otv-cv-hero-main) > :nth-child(n+6) { --d: .3s; }
body.otv-site .otv-anim :is(.otv-pj-art, .otv-cv-orbit) { --d: .2s; transform: scale(.92); }
body.otv-site .otv-anim .otv-pj-cover { --d: .34s; }
/* ao rolar */
body.otv-site .otv-pj-sr { opacity: 0; transform: translateY(26px); }
body.otv-site .otv-pj-sr.is-in { opacity: 1; transform: none; transition: opacity .8s ease var(--sr-d, 0s), transform 1s var(--pj-out, ease) var(--sr-d, 0s); }

/* ----- tablet ----- */
@media (max-width: 1199px) {
  body.otv-site .otv-pj-hero-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 380px); }
  body.otv-site .otv-cv-hero-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 420px); }
  body.otv-site .otv-cv-imp-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body.otv-site .otv-pj-about-grid { grid-template-columns: 240px minmax(0, 1fr); gap: 48px; }
}
@media (max-width: 991px) {
  body.otv-site .otv-pj-hero-grid, body.otv-site .otv-cv-hero-grid { grid-template-columns: minmax(0, 1fr); gap: 10px; }
  body.otv-site .otv-pj-art { position: absolute; right: -90px; top: -40px; width: 380px; max-width: none; z-index: 0; pointer-events: none; }
  body.otv-site .otv-pj-art .otv-art { opacity: .22; }
  body.otv-site .otv-cv-orbit { justify-self: center; width: min(100%, 440px); margin-top: 30px; }
  body.otv-site .otv-cv-hero { padding-bottom: 130px; }
  body.otv-site .otv-pj-about { padding: 54px 0 50px; }
  body.otv-site .otv-pj-about-grid { grid-template-columns: minmax(0, 1fr); gap: 26px; }
  body.otv-site .otv-pj-toc { position: static; padding: 0; background: none; }
  body.otv-site .otv-pj-toc .otv-pj-kicker { display: none; }
  body.otv-site .otv-pj-toc ol { display: flex; gap: 8px; margin: 0 -24px; padding: 2px 24px 6px; overflow-x: auto; scrollbar-width: none; }
  body.otv-site .otv-pj-toc ol::-webkit-scrollbar { display: none; }
  body.otv-site .otv-pj-toc li + li { border-top: 0; }
  body.otv-site .otv-pj-toc a { white-space: nowrap; padding: 9px 15px; border-radius: 999px; background: var(--pj-pale); font-size: 13.5px; }
  body.otv-site .otv-pj-toc a::before { min-width: 0; padding-top: 1px; }
  body.otv-site .otv-pj-grid, body.otv-site .otv-cv-libras-grid, body.otv-site .otv-cv-serv-grid, body.otv-site .otv-cv-intro-grid { grid-template-columns: minmax(0, 1fr); }
  body.otv-site .otv-pj-secs, body.otv-site .otv-cv-libras, body.otv-site .otv-cv-serv { padding: 60px 0; }
  body.otv-site .otv-pj-secs .otv-pj-wrap, body.otv-site .otv-pj-grid { gap: 20px; }
  body.otv-site .otv-cv-intro-grid { gap: 40px; }
  body.otv-site .otv-cv-badge { right: 8px; }
}
@media (max-width: 767px) {
  body.otv-site .otv-pj-wrap { width: calc(100% - 32px); }
  body.otv-site .otv-pj-hero, body.otv-site .otv-cv-hero { padding-top: 22px; }
  body.otv-site .otv-pj-crumbs { margin-bottom: 18px; font-size: 12.5px; }
  body.otv-site .otv-pj .otv-pj-title { font-size: clamp(28px, 8vw, 36px) !important; }
  body.otv-site .otv-pj-hero-act .otv-pj-btn { flex: 1 1 auto; }
  body.otv-site .otv-pj-chip-logo { height: 44px; min-width: 64px; padding: 6px 10px; }
  body.otv-site .otv-pj-chip-logo img { max-height: 28px; max-width: 90px; }
  body.otv-site .otv-pj-hero-grid { padding-bottom: 36px; }
  body.otv-site .otv-pj-cover { aspect-ratio: 2 / 1; border-radius: 22px; }
  body.otv-site .otv-pj-art { width: 300px; right: -110px; top: -30px; }
  body.otv-site .otv-pj .otv-pj-prose p { font-size: 16px; }
  body.otv-site .otv-pj .otv-pj-prose p.otv-pj-first { font-size: 18px !important; }
  body.otv-site .otv-pj-sec { border-radius: 24px; padding: 24px 20px 26px; }
  body.otv-site .otv-pj-sec-head { gap: 12px; }
  body.otv-site .otv-pj-num { min-width: 38px; height: 38px; border-radius: 12px; font-size: 13px; }
  body.otv-site .otv-pj-callout-ico { width: 48px; height: 48px; right: 18px; top: 18px; border-radius: 14px; }
  body.otv-site .otv-pj-callout-ico svg { width: 24px; height: 24px; }
  body.otv-site .otv-pj-callout .otv-pj-sec-head { padding-right: 56px; }
  body.otv-site .otv-pj-gal-grid, body.otv-site .otv-pj-gal-n2, body.otv-site .otv-pj-gal-n4 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  body.otv-site .otv-pj-gal-grid.otv-pj-gal-n3 .otv-pj-ph:first-child, body.otv-site .otv-pj-gal-grid.otv-pj-gal-n6 .otv-pj-ph:first-child { grid-column: 1 / -1; grid-row: auto; aspect-ratio: 16 / 10; }
  body.otv-site .otv-pj-ph { border-radius: 18px; }
  body.otv-site .otv-lb { grid-template-columns: 44px minmax(0, 1fr) 44px; padding: 20px 6px; }
  body.otv-site .otv-lb button { width: 44px; height: 44px; }
  body.otv-site .otv-pj-news .list-newsletter { padding: 0; }
  body.otv-site .otv-sp { padding: 70px 0 76px; }
  body.otv-site .otv-sp-card { width: 170px; height: 98px; border-radius: 18px; }
  body.otv-site .otv-sp-grid { gap: 14px; }
  body.otv-site .otv-sp-grid .otv-sp-card, body.otv-site .otv-sp-grid.otv-sp-n1 .otv-sp-card, body.otv-site .otv-sp-grid.otv-sp-n2 .otv-sp-card { width: calc(50% - 7px); height: 116px; }
  body.otv-site .otv-sp-grid.otv-sp-n1 .otv-sp-card { width: 100%; max-width: 320px; }
  body.otv-site .otv-pj-cta-card { padding: 30px 22px; border-radius: 24px; }
  body.otv-site .otv-pj-cta-act, body.otv-site .otv-pj-cta-act .otv-pj-btn { width: 100%; }
  body.otv-site .otv-pj-more-grid .otv-pj-tile { flex-basis: 100%; min-width: 0; }
  body.otv-site .otv-pj-more { padding: 50px 0 64px; }
  body.otv-site :is(.otv-pj, .otv-cv, .otv-pj-more) .otv-pj-h { font-size: 26px !important; }
  body.otv-site .otv-cv .otv-cv-title { font-size: clamp(40px, 12vw, 54px) !important; }
  body.otv-site .otv-cv-orbit { width: min(100%, 330px); }
  body.otv-site .otv-cv-orb-arm { inset: 15%; }
  body.otv-site .otv-cv-orb-arm i { padding: 7px 11px 7px 8px; font-size: 12px; gap: 6px; }
  body.otv-site .otv-cv-orb-arm i svg { width: 15px; height: 15px; }
  body.otv-site .otv-cv-prop { margin-top: -80px; }
  body.otv-site .otv-cv-prop-card { border-radius: 26px; padding-top: 46px; }
  body.otv-site .otv-cv-quote { width: 54px; height: 54px; top: -24px; }
  body.otv-site .otv-cv-photo { padding: 0 0 18px 18px; }
  body.otv-site .otv-cv-badge { position: relative; right: auto; bottom: auto; margin: -36px 0 0 auto; }
  body.otv-site .otv-cv-imp-grid { grid-template-columns: minmax(0, 1fr); }
  body.otv-site .otv-cv-lcard-art { height: 120px; }
  body.otv-site .otv-cv .otv-cv-lcard-h { margin: 22px 22px 14px !important; }
  body.otv-site .otv-cv-lcard .otv-pj-checks { padding: 0 22px 26px !important; }
  body.otv-site .otv-cv-scard-body .otv-pj-feats li { padding: 12px 12px 12px 46px !important; }
  body.otv-site .otv-cv-scard-body .otv-pj-feats li::before { left: 12px; top: 13px; }
}

@media (prefers-reduced-motion: reduce) {
  body.otv-site :is(.otv-pj, .otv-cv) *, body.otv-site :is(.otv-pj, .otv-cv) *::after, body.otv-site :is(.otv-pj, .otv-cv) *::before { animation: none !important; transition: none !important; }
  body.otv-site .otv-sp-track { width: auto; flex-wrap: wrap; justify-content: center; }
  body.otv-site .otv-sp-grp { flex-wrap: wrap; justify-content: center; padding-right: 0; row-gap: 22px; }
  body.otv-site .otv-sp-grp[aria-hidden] { display: none; }
  body.otv-site .otv-sp-mq { -webkit-mask-image: none; mask-image: none; }
  body.otv-site .otv-art-waves path { opacity: .5; }
}
body.otv-site .otv-nl .newsletter__topo .row { justify-content: flex-start !important; }
body.otv-site .otv-nl .newsletter__topo .otv-nl-intro { max-width: none; }
body.otv-site .otv-nl .newsletter__topo .otv-pj-kicker { width: auto; }

/* cartões das edições (vale também para as edições carregadas em "Mostrar mais") */
body.otv-site .otv-nl .select-ano { appearance: none; -webkit-appearance: none; min-width: 200px; padding: 12px 44px 12px 18px; border: 0; border-radius: 999px; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230E5A43' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") right 16px center / 16px no-repeat; color: #0E5A43; font-size: 15px; font-weight: 700; box-shadow: 0 12px 26px -18px rgba(4, 39, 29, .6), inset 0 0 0 1.5px rgba(14, 90, 67, .16); cursor: pointer; }
body.otv-site .otv-nl .newsletter__wrap { padding: 30px 0 80px; }
body.otv-site .otv-nl .wrapper__newsletter-cards { margin-bottom: 24px; }
body.otv-site .otv-nl .newsletter-card { position: relative; height: 100%; padding: 16px; border-radius: 26px; background: #fff; box-shadow: 0 1px 0 rgba(14, 90, 67, .05), 0 26px 50px -36px rgba(4, 39, 29, .55), inset 0 0 0 1px rgba(14, 90, 67, .07); transition: transform .45s cubic-bezier(.2, .8, .2, 1), box-shadow .45s ease; }
body.otv-site .otv-nl .newsletter-card:hover { transform: translateY(-5px); box-shadow: 0 1px 0 rgba(14, 90, 67, .05), 0 36px 60px -36px rgba(4, 39, 29, .65), inset 0 0 0 1px rgba(14, 90, 67, .1); }
body.otv-site .otv-nl .newsletter-card__inner { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 22px; align-items: center; }
body.otv-site .otv-nl .newsletter-card__image { overflow: hidden; border-radius: 14px; aspect-ratio: 3 / 4.2; box-shadow: 0 16px 30px -18px rgba(4, 39, 29, .6); transform: rotate(-2deg); transition: transform .45s cubic-bezier(.2, .8, .2, 1); }
body.otv-site .otv-nl .newsletter-card:hover .newsletter-card__image { transform: rotate(0) scale(1.03); }
body.otv-site .otv-nl .newsletter-card__image img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: top; }
body.otv-site .otv-nl .newsletter-card__box-text__post-title h2 { margin: 0 0 6px; font-size: 21px; font-weight: 800; line-height: 1.25; color: #0E5A43; }
body.otv-site .otv-nl .newsletter-card__box-text__post-title p { margin: 0; font-size: 14.5px; line-height: 1.55; color: #51655D; }
body.otv-site .otv-nl .newsletter-card__buttons { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
body.otv-site .otv-nl .newsletter-card__buttons a { display: inline-flex; align-items: center; gap: 8px; margin: 0 !important; padding: 10px 16px; border: 0; border-radius: 999px; font-size: 13.5px; font-weight: 700; text-decoration: none; transition: background .25s ease, transform .3s ease; }
body.otv-site .otv-nl .newsletter-card__buttons a.saiba-mais { background: #0E5A43; color: #fff; }
body.otv-site .otv-nl .newsletter-card__buttons a.saiba-mais:hover { background: #04271D; transform: translateY(-1px); }
body.otv-site .otv-nl .newsletter-card__buttons a.download-pdf { color: #0E5A43; box-shadow: inset 0 0 0 1.5px rgba(14, 90, 67, .22); }
body.otv-site .otv-nl .newsletter-card__buttons a.download-pdf:hover { background: #EEF5E4; }
body.otv-site .otv-nl .newsletter-card__buttons a i { width: 14px; height: 14px; background-color: currentColor; }
body.otv-site .otv-nl .newsletter-card__year { position: absolute; top: 14px; right: 14px; padding: 5px 11px; border-radius: 999px; background: #D6EA8C; color: #04271D; font-size: 12px; font-weight: 800; letter-spacing: .06em; }
body.otv-site .otv-nl .bt--load-more { display: flex; margin: 16px auto 0; padding: 15px 30px; border: 0; border-radius: 999px; background: #B6D45A; color: #04271D; font-size: 14.5px; font-weight: 800; letter-spacing: .08em; cursor: pointer; box-shadow: 0 16px 30px -18px rgba(4, 39, 29, .7); transition: transform .3s ease, background .25s ease; }
body.otv-site .otv-nl .bt--load-more:hover { background: #D6EA8C; transform: translateY(-2px); }
@media (max-width: 575px) {
  body.otv-site .otv-nl .newsletter-card__inner { grid-template-columns: 110px minmax(0, 1fr); gap: 16px; }
  body.otv-site .otv-nl .newsletter-card__box-text__post-title h2 { font-size: 18px; padding-right: 50px; }
}

/* símbolo de Libras (duas mãos): traços de movimento piscando de leve */
body.otv-site .otv-libras { fill: currentColor; stroke: none; }
body.otv-site .otv-libras-m { animation: otvMarks 1.7s ease-in-out infinite; }
@keyframes otvMarks { 0%, 100% { opacity: 1; } 50% { opacity: .25; } }
body.otv-site .otv-art-libras { fill: #fff; }
body.otv-site .otv-art-chip:nth-child(odd) .otv-art-libras { fill: var(--pj-lime2, #D6EA8C); }
body.otv-site .otv-art-core-ico .otv-art-libras { fill: #04271D; }
body.otv-site .otv-cv-chip .otv-libras { color: var(--pj-lime); }
body.otv-site .otv-cv-chip:hover .otv-libras { color: var(--pj-deeper); }
body.otv-site .otv-art-libras { stroke: none; }
body.otv-site .otv-art-core-ico .otv-art-ico { stroke: #04271D; stroke-width: 1.7; }

/* =====================================================================
   VERSÃO MAIS ALEGRE: fotos reais, cores, formas e animações
   ===================================================================== */
body.otv-site :is(.otv-pj, .otv-cv) { --joy-y: #FFC83D; --joy-c: #FF7B5C; --joy-s: #42B8E8; --joy-l: #9B8CF2; --joy-g: #B6D45A; --joy-p: #F27AB0; }

/* formas coloridas flutuando */
body.otv-site .otv-joy-confetti { position: absolute; inset: 0; z-index: 0; overflow: hidden; pointer-events: none; }
body.otv-site .otv-joy-confetti i { position: absolute; left: var(--x); top: var(--y); width: 14px; height: 14px; opacity: .85; transform: rotate(var(--r)) scale(var(--s)); animation: otvConf var(--d) ease-in-out var(--dl) infinite alternate; }
body.otv-site .otv-joy-confetti-soft i { opacity: .4; }
body.otv-site .otv-c-dot { border-radius: 50%; background: var(--c); }
body.otv-site .otv-c-ring { width: 20px !important; height: 20px !important; border-radius: 50%; border: 3.5px solid var(--c); }
body.otv-site .otv-c-tri { width: 0 !important; height: 0 !important; border-left: 10px solid transparent; border-right: 10px solid transparent; border-bottom: 17px solid var(--c); }
body.otv-site .otv-c-squig { width: 36px !important; height: 16px !important; border-top: 4px solid var(--c); border-radius: 50% 50% 0 0; }
body.otv-site .otv-c-star { width: 18px !important; height: 18px !important; background: var(--c); clip-path: polygon(50% 0, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%); }
body.otv-site .otv-c-plus { width: 18px !important; height: 18px !important; background: linear-gradient(var(--c), var(--c)) center / 100% 4px no-repeat, linear-gradient(var(--c), var(--c)) center / 4px 100% no-repeat; }
@keyframes otvConf { from { translate: 0 -12px; rotate: -12deg; } to { translate: 0 14px; rotate: 18deg; } }

/* fotos com moldura e paralaxe */
body.otv-site .otv-joy-img { display: block; overflow: hidden; translate: 0 var(--par, 0); transition: translate .2s linear; }
body.otv-site .otv-joy-img img { display: block; width: 100% !important; height: 100% !important; max-width: none; object-fit: cover; border-radius: 0 !important; }

/* títulos que sobem palavra por palavra */
body.otv-site .otv-w { display: inline-block; overflow: hidden; vertical-align: top; padding-bottom: .12em; margin-bottom: -.12em; }
body.otv-site .otv-w > span { display: inline-block; transform: translateY(110%); }
body.otv-site .is-ready .otv-w > span { transform: none; transition: transform .9s cubic-bezier(.2, .8, .2, 1) calc(var(--wi) * 55ms + .12s); }
body.otv-site .otv-pj:not(.otv-anim) .otv-w > span { transform: none; }

/* ----- Espaço Comnvida: abertura clara e colorida ----- */
body.otv-site .otv-cv-hero-joy {
  color: var(--pj-ink);
  background:
    radial-gradient(520px 380px at 88% 18%, rgba(255, 200, 61, .32), transparent 65%),
    radial-gradient(560px 420px at 10% 92%, rgba(66, 184, 232, .2), transparent 65%),
    radial-gradient(480px 360px at 55% 0%, rgba(182, 212, 90, .3), transparent 65%),
    linear-gradient(170deg, #FBFDF5 0%, #F1F8E6 100%);
}
body.otv-site .otv-cv-hero-joy .otv-cv-hero-bg .b1 { background: radial-gradient(circle, rgba(255, 123, 92, .22), transparent 70%); }
body.otv-site .otv-cv-hero-joy .otv-cv-hero-bg .b2 { background: radial-gradient(circle, rgba(155, 140, 242, .2), transparent 70%); }
body.otv-site .otv-cv-hero-joy .otv-cv-hero-bg .b3 { background: radial-gradient(circle, rgba(182, 212, 90, .35), transparent 70%); }
body.otv-site .otv-cv-hero-joy .otv-cv-dots { background-image: radial-gradient(rgba(14, 90, 67, .12) 1.2px, transparent 1.3px); }
body.otv-site .otv-cv-hero-joy .otv-pj-crumbs, body.otv-site .otv-cv-hero-joy .otv-pj-crumbs a { color: var(--pj-muted); }
body.otv-site .otv-cv-hero-joy .otv-pj-crumbs [aria-current] { color: var(--pj-deep); }
body.otv-site .otv-cv-hero-joy .otv-pj-crumbs a:hover { color: var(--pj-deep); }
body.otv-site .otv-cv-hero-joy .otv-cv-logo img { filter: none; opacity: 1; }
body.otv-site .otv-cv-hero-joy .otv-pj-kicker-light { color: var(--pj-teal); }
body.otv-site .otv-cv-hero-joy .otv-pj-kicker-light .otv-pj-kicker-ico { background: #fff; color: var(--pj-deep); box-shadow: 0 10px 22px -14px rgba(4, 39, 29, .5); }
body.otv-site .otv-cv .otv-cv-hero-joy .otv-cv-title { color: var(--pj-deep) !important; }
body.otv-site .otv-cv-t1 { display: block; color: var(--pj-deep); }
body.otv-site .otv-cv-t2 { display: inline-block; white-space: nowrap; }
body.otv-site .otv-cv-l { display: inline-block; color: var(--c); }
body.otv-site .otv-anim .otv-cv-l { opacity: 0; transform: translateY(40%) rotate(-12deg) scale(.6); }
body.otv-site .otv-anim.is-ready .otv-cv-l { opacity: 1; transform: none; transition: opacity .5s ease calc(.25s + var(--li) * 70ms), transform .8s cubic-bezier(.3, 1.6, .5, 1) calc(.25s + var(--li) * 70ms); animation: otvBounce 3.6s ease-in-out calc(1.6s + var(--li) * .12s) infinite; }
@keyframes otvBounce { 0%, 70%, 100% { translate: 0 0; } 80% { translate: 0 -8px; } 90% { translate: 0 2px; } }
body.otv-site .otv-cv-hero-joy .otv-cv-lead { color: var(--pj-muted) !important; }
body.otv-site .otv-cv-hero-joy .otv-cv-chip { background: #fff; color: var(--pj-deep) !important; box-shadow: 0 12px 24px -16px rgba(4, 39, 29, .45), inset 0 0 0 1.5px color-mix(in srgb, var(--c) 45%, transparent); }
body.otv-site .otv-cv-hero-joy .otv-cv-chip svg, body.otv-site .otv-cv-hero-joy .otv-cv-chip .otv-libras { color: var(--c); }
body.otv-site .otv-cv-hero-joy .otv-cv-chip:hover { background: var(--c); color: var(--pj-deeper) !important; transform: translateY(-3px) rotate(-2deg); }
body.otv-site .otv-cv-hero-joy .otv-cv-chip:hover svg, body.otv-site .otv-cv-hero-joy .otv-cv-chip:hover .otv-libras { color: var(--pj-deeper); }
/* órbita no fundo claro, com fotos das crianças */
body.otv-site .otv-cv-hero-joy .otv-cv-orb-rings i { border-color: rgba(14, 90, 67, .2); }
body.otv-site .otv-cv-hero-joy .otv-cv-orb-rings i:nth-child(2) { border-color: rgba(255, 123, 92, .25); border-style: dashed; }
body.otv-site .otv-cv-hero-joy .otv-cv-orb-rings i:nth-child(3) { background: radial-gradient(circle, rgba(255, 200, 61, .35), transparent 70%); }
body.otv-site .otv-cv-hero-joy .otv-cv-orb-arm { inset: 20%; }
body.otv-site .otv-cv-hero-joy .otv-cv-orb-arm i { box-shadow: 0 14px 26px -14px rgba(4, 39, 29, .45), 0 0 0 1px rgba(14, 90, 67, .06); }
body.otv-site .otv-cv-hero-joy .otv-cv-orb-arm:nth-child(6n+1) i svg { color: #E8603E; }
body.otv-site .otv-cv-hero-joy .otv-cv-orb-arm:nth-child(6n+2) i svg { color: #1D8FC4; }
body.otv-site .otv-cv-hero-joy .otv-cv-orb-arm:nth-child(6n+3) i svg { color: #7A68E0; }
body.otv-site .otv-cv-hero-joy .otv-cv-orb-arm:nth-child(6n+4) i svg { color: #D24F92; }
body.otv-site .otv-cv-hero-joy .otv-cv-orb-arm:nth-child(6n+5) i svg { color: #D38E00; }
body.otv-site .otv-cv-hero-joy .otv-cv-orb-core { box-shadow: 0 30px 60px -24px rgba(4, 39, 29, .45), 0 0 0 10px rgba(255, 255, 255, .7), inset 0 -10px 24px rgba(4, 39, 29, .15); }
body.otv-site .otv-cv-bubs { position: absolute; inset: 0; animation: otvSpin 80s linear infinite reverse; pointer-events: none; }
body.otv-site .otv-cv-bub-arm { position: absolute; inset: 3%; transform: rotate(var(--a)); }
body.otv-site .otv-cv-bub { position: absolute; left: 50%; top: 0; width: 19%; min-width: 64px; aspect-ratio: 1 / 1; transform: translate(-50%, -50%) rotate(calc(-1 * var(--a))); }
body.otv-site .otv-cv-bub img { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: 50%; border: 5px solid #fff; box-shadow: 0 0 0 3px var(--c), 0 18px 30px -14px rgba(4, 39, 29, .55); animation: otvSpin 80s linear infinite; }

/* fotinhas extras ao lado da foto do espaço */
body.otv-site .otv-cv-mini { position: absolute; z-index: 2; width: 128px; aspect-ratio: 1 / 1; border-radius: 50%; border: 5px solid #fff; box-shadow: 0 0 0 3px var(--c), 0 20px 34px -16px rgba(4, 39, 29, .6); }
body.otv-site .otv-cv-mini0 { top: -34px; right: -20px; }
body.otv-site .otv-cv-mini1 { left: -26px; top: 38%; width: 104px; }
body.otv-site .otv-cv-mini img { border-radius: 50% !important; }

/* faixa de polaroides */
body.otv-site .otv-pol-sec { position: relative; overflow: hidden; padding: 80px 0 70px; background: linear-gradient(180deg, #fff, #FFF9EC 60%, #fff); }
body.otv-site .otv-pol-sec .otv-pj-head { margin-bottom: 30px; }
body.otv-site .otv-pol-mq { position: relative; z-index: 1; overflow: hidden; padding: 26px 0 18px; -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); }
body.otv-site .otv-pol-track { display: flex; width: max-content; animation: otvMarquee var(--dur, 60s) linear infinite; }
body.otv-site .otv-pol-rev .otv-pol-track { animation-direction: reverse; }
body.otv-site .otv-pol-mq:hover .otv-pol-track { animation-play-state: paused; }
body.otv-site .otv-pol-grp { display: flex; gap: 30px; padding-right: 30px; align-items: center; }
body.otv-site .otv-pol {
  position: relative; flex: none; width: 236px; margin: 0; padding: 12px 12px 14px; border-radius: 6px; background: #fff;
  box-shadow: 0 22px 40px -24px rgba(4, 39, 29, .55), 0 0 0 1px rgba(14, 90, 67, .05);
  transform: rotate(var(--rot)); transition: transform .45s cubic-bezier(.3, 1.4, .5, 1), box-shadow .4s ease;
}
body.otv-site .otv-pol::before { content: ""; position: absolute; left: 50%; top: -12px; width: 86px; height: 24px; margin-left: -43px; background: var(--tape); opacity: .78; transform: rotate(-3deg); border-radius: 3px; box-shadow: 0 2px 4px rgba(0, 0, 0, .08); }
body.otv-site .otv-pol img { display: block; width: 100% !important; height: auto !important; aspect-ratio: 1 / 1; object-fit: cover; border-radius: 3px !important; }
body.otv-site .otv-pol figcaption { margin-top: 10px; font-family: 'Dancing Script', cursive !important; font-size: 21px; font-weight: 700; line-height: 1.1; text-align: center; color: var(--pj-deep); }
body.otv-site .otv-pol:hover { transform: rotate(0) scale(1.07); box-shadow: 0 34px 50px -24px rgba(4, 39, 29, .6); z-index: 2; }

/* destaques coloridos */
body.otv-site .otv-hl { position: relative; overflow: hidden; padding: 84px 0; background: linear-gradient(180deg, #fff 0%, #FFFBF1 100%); scroll-margin-top: 70px; }
body.otv-site .otv-hl-grid { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; perspective: 900px; }
body.otv-site .otv-hl-n3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
body.otv-site .otv-hl-card {
  position: relative; overflow: hidden; padding: 28px 24px 30px; border-radius: 28px; background: #fff;
  box-shadow: 0 1px 0 rgba(14, 90, 67, .05), 0 26px 50px -36px rgba(4, 39, 29, .5), inset 0 0 0 1px rgba(14, 90, 67, .07);
  transform-style: preserve-3d; transition: transform .5s cubic-bezier(.2, .8, .2, 1), box-shadow .45s ease;
}
body.otv-site .otv-hl-card::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 6px; background: var(--c); }
body.otv-site .otv-hl-card:hover { box-shadow: 0 1px 0 rgba(14, 90, 67, .05), 0 36px 60px -34px rgba(4, 39, 29, .6), inset 0 0 0 1px rgba(14, 90, 67, .1); }
body.otv-site .otv-hl-card.is-tilt { transform: perspective(800px) rotateX(var(--ty)) rotateY(var(--tx)) translateY(-4px); transition: transform .12s linear; }
body.otv-site .otv-hl-ico { position: relative; z-index: 1; display: grid; place-items: center; width: 62px; height: 62px; margin-bottom: 20px; border-radius: 20px; background: color-mix(in srgb, var(--c) 22%, #fff); color: color-mix(in srgb, var(--c) 55%, #04271D); transform: rotate(-6deg); transition: transform .5s cubic-bezier(.3, 1.6, .5, 1); }
body.otv-site .otv-hl-ico svg { width: 30px; height: 30px; }
body.otv-site .otv-hl-ico .otv-libras { width: 34px; height: 34px; }
body.otv-site .otv-hl-card:hover .otv-hl-ico { transform: rotate(6deg) scale(1.08); }
body.otv-site .otv-pj .otv-hl-h, body.otv-site .otv-cv .otv-hl-h { position: relative; z-index: 1; margin: 0 0 10px !important; font-size: 19px !important; font-weight: 800 !important; line-height: 1.25 !important; color: var(--pj-deep) !important; text-align: left !important; }
body.otv-site .otv-pj .otv-hl-p, body.otv-site .otv-cv .otv-hl-p { position: relative; z-index: 1; margin: 0 !important; font-size: 15px !important; line-height: 1.65 !important; color: var(--pj-muted) !important; text-align: left !important; }
body.otv-site .otv-hl-blob { position: absolute; right: -44px; bottom: -44px; width: 130px; height: 130px; border-radius: 50%; background: var(--c); opacity: .14; animation: otvBlob 9s ease-in-out infinite alternate; }
body.otv-site .otv-hl-card.otv-pj-sr { transform: translateY(34px) scale(.94) rotate(-2deg); }
body.otv-site .otv-hl-card.otv-pj-sr.is-in { transform: none; transition: opacity .7s ease var(--sr-d, 0s), transform .9s cubic-bezier(.3, 1.4, .5, 1) var(--sr-d, 0s); }
body.otv-site .otv-hl-news { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 420px) minmax(0, 1fr); align-items: center; gap: 0; margin-top: 28px; overflow: hidden; border-radius: 28px; background: linear-gradient(120deg, #FFF4D6, #FFE6DD); box-shadow: inset 0 0 0 1px rgba(232, 96, 62, .15); }
body.otv-site .otv-hl-news-ph { height: 100%; min-height: 220px; }
body.otv-site .otv-hl-news-ph img { display: block; width: 100% !important; height: 100% !important; max-width: none; object-fit: cover; border-radius: 0 !important; }
body.otv-site .otv-hl-news-t { padding: 30px 36px; }
body.otv-site .otv-hl-news-tag { display: inline-flex; align-items: center; gap: 8px; padding: 7px 14px 7px 10px; border-radius: 999px; background: #FF7B5C; color: #fff; font-size: 12.5px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; animation: otvPulse 2.6s ease-in-out infinite; }
body.otv-site .otv-hl-news-tag svg { width: 16px; height: 16px; }
body.otv-site .otv-hl-news-tag b { color: inherit; font-weight: 800; }
body.otv-site .otv-pj .otv-hl-news-t h3 { margin: 14px 0 8px !important; font-size: 22px !important; font-weight: 800 !important; line-height: 1.25 !important; color: var(--pj-deep) !important; text-align: left !important; }
body.otv-site .otv-pj .otv-hl-news-t p { margin: 0 !important; font-size: 16px !important; line-height: 1.65 !important; color: var(--pj-ink) !important; text-align: left !important; }

/* mosaico de fotos */
body.otv-site .otv-joy-gal { background: linear-gradient(180deg, #fff, #F6FAEF); }
body.otv-site .otv-joy-masonry { columns: 3 240px; column-gap: 16px; }
body.otv-site .otv-joy-masonry.otv-joy-m1 { columns: 1; max-width: 760px; margin: 0 auto; }
body.otv-site .otv-joy-masonry.otv-joy-m2 { columns: 2 240px; max-width: 980px; margin: 0 auto; }
body.otv-site .otv-joy-masonry .otv-joy-ph { display: block; width: 100%; margin: 0 0 16px; aspect-ratio: auto; break-inside: avoid; border-radius: 22px; background: color-mix(in srgb, var(--c) 18%, #fff); }
body.otv-site .otv-joy-masonry .otv-joy-ph img { width: 100% !important; height: auto !important; }
body.otv-site .otv-joy-masonry .otv-joy-ph:hover { box-shadow: 0 0 0 4px var(--c), 0 28px 50px -30px rgba(4, 39, 29, .7); }
body.otv-site .otv-joy-masonry .otv-joy-ph.otv-pj-sr { transform: translateY(26px) scale(.96); }

/* colagem de fotos na abertura dos projetos */
body.otv-site .otv-pj-col { position: relative; z-index: 1; width: 100%; max-width: 480px; aspect-ratio: 1 / 1; justify-self: end; }
body.otv-site .otv-pj-col > .otv-art { position: absolute; inset: 0; }
body.otv-site .otv-pj-col .otv-art-chip, body.otv-site .otv-pj-col .otv-art-leaf { display: none; }
body.otv-site .otv-pj-col-ph { position: absolute; overflow: hidden; translate: 0 var(--par, 0); transition: translate .2s linear; background: #0B4D3A; }
body.otv-site .otv-pj-col-ph img { display: block; width: 100% !important; height: 100% !important; max-width: none; object-fit: cover; border-radius: 0 !important; }
body.otv-site .otv-pj-col-0 { left: 12%; top: 13%; width: 66%; aspect-ratio: 1 / 1; border: 6px solid rgba(255, 255, 255, .95); border-radius: 46% 54% 50% 50% / 52% 46% 54% 48%; box-shadow: 0 40px 70px -30px rgba(0, 0, 0, .55); animation: otvMorph 12s ease-in-out infinite alternate; }
body.otv-site .otv-pj-col-1 { right: 0; top: 2%; width: 31%; aspect-ratio: 1 / 1; border-radius: 50%; border: 5px solid #fff; box-shadow: 0 0 0 3px #FFC83D, 0 24px 40px -18px rgba(0, 0, 0, .55); }
body.otv-site .otv-pj-col-2 { left: 0; bottom: 4%; width: 29%; aspect-ratio: 1 / 1; border-radius: 50%; border: 5px solid #fff; box-shadow: 0 0 0 3px #42B8E8, 0 24px 40px -18px rgba(0, 0, 0, .55); }
body.otv-site .otv-pj-col-chip { position: absolute; z-index: 2; display: grid; place-items: center; width: 54px; height: 54px; border-radius: 18px; background: var(--c); color: #04271D; box-shadow: 0 16px 28px -14px rgba(0, 0, 0, .5); animation: otvBob 4.5s ease-in-out infinite alternate; }
body.otv-site .otv-pj-col-chip svg { width: 26px; height: 26px; }
body.otv-site .otv-pj-col-chip .otv-libras { width: 30px; height: 30px; }
body.otv-site .otv-pj-col-chip0 { right: 8%; bottom: 12%; transform: rotate(8deg); }
body.otv-site .otv-pj-col-chip1 { left: 4%; top: 6%; transform: rotate(-10deg); animation-delay: -1.5s; width: 46px; height: 46px; }
body.otv-site .otv-pj-col-chip2 { right: 34%; bottom: -2%; transform: rotate(-4deg); animation-delay: -2.8s; }

/* Comnvida: cartões de Libras com foto */
body.otv-site .otv-cv-lcard-art.otv-has-ph { height: 230px; }
body.otv-site .otv-cv-lcard-art.otv-has-ph .otv-cv-lcard-img { position: absolute; inset: 0; width: 100% !important; height: 100% !important; max-width: none; object-fit: cover; border-radius: 0 !important; transition: transform 1.2s cubic-bezier(.2, .8, .2, 1); }
body.otv-site .otv-cv-lcard-art.otv-has-ph::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(4, 39, 29, 0) 40%, rgba(4, 39, 29, .55)); }
body.otv-site .otv-cv-lcard-art.otv-has-ph span { position: absolute; left: 22px; bottom: -30px; z-index: 2; width: 68px; height: 68px; border-radius: 22px; background: #FFC83D; color: #04271D; box-shadow: 0 16px 30px -14px rgba(4, 39, 29, .6); animation: none; }
body.otv-site .otv-cv-lcard-1 .otv-cv-lcard-art.otv-has-ph span { background: #42B8E8; }
body.otv-site .otv-cv-lcard-art.otv-has-ph span svg { width: 36px; height: 36px; }
body.otv-site .otv-cv-lcard-art.otv-has-ph i { display: none; }
body.otv-site .otv-cv-lcard:has(.otv-has-ph) { overflow: visible; }
body.otv-site .otv-cv-lcard-art.otv-has-ph { overflow: visible; border-radius: 30px 30px 0 0; }
body.otv-site .otv-cv-lcard-art.otv-has-ph .otv-cv-lcard-img, body.otv-site .otv-cv-lcard-art.otv-has-ph::after { border-radius: 30px 30px 0 0 !important; }
body.otv-site .otv-cv-lcard:hover .otv-cv-lcard-img { transform: scale(1.04); }
body.otv-site .otv-cv-lcard:has(.otv-has-ph) .otv-cv-lcard-h { margin-top: 46px !important; }
/* Comnvida: serviços com foto */
body.otv-site .otv-cv-scard-ph { position: relative; height: 230px; margin: calc(-1 * clamp(28px, 3.4vw, 46px)) calc(-1 * clamp(28px, 3.4vw, 46px)) 24px; }
body.otv-site .otv-cv-scard.otv-has-ph .otv-cv-scard-top { margin-top: -58px; position: relative; z-index: 2; }
body.otv-site .otv-cv-scard.otv-has-ph .otv-cv-scard-ico { border: 4px solid #fff; background: #FF7B5C; color: #fff; }
body.otv-site .otv-cv-scard.otv-has-ph + .otv-cv-scard.otv-has-ph .otv-cv-scard-ico { background: #9B8CF2; }
body.otv-site .otv-cv-scard.otv-has-ph .otv-cv-scard-tag { margin-top: 40px; }
body.otv-site .otv-cv-scard.otv-has-ph::after { display: none; }
/* Comnvida: a família aprende junto */
body.otv-site .otv-cv-fam { position: relative; overflow: hidden; padding: 90px 0; background: linear-gradient(160deg, #FFF8E6 0%, #FFFDF6 55%, #EEF8FB 100%); }
body.otv-site .otv-cv-fam-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 64px; align-items: center; }
body.otv-site .otv-cv-fam-col { position: relative; aspect-ratio: 1.05 / 1; }
body.otv-site .otv-cv-fam-ph { position: absolute; border: 6px solid #fff; box-shadow: 0 30px 56px -30px rgba(4, 39, 29, .6); }
body.otv-site .otv-cv-fam-ph0 { left: 0; top: 8%; width: 74%; aspect-ratio: 4 / 3; border-radius: 30px; transform: rotate(-3deg); }
body.otv-site .otv-cv-fam-ph1 { right: 0; bottom: 0; width: 46%; aspect-ratio: 1 / 1; border-radius: 50%; box-shadow: 0 0 0 4px #FF7B5C, 0 30px 56px -30px rgba(4, 39, 29, .6); }
body.otv-site .otv-cv-fam-ph2 { right: 4%; top: 0; width: 38%; aspect-ratio: 4 / 3; border-radius: 22px; transform: rotate(5deg); box-shadow: 0 0 0 4px #42B8E8, 0 30px 56px -30px rgba(4, 39, 29, .6); }
body.otv-site .otv-cv .otv-cv-fam-lead { margin: 18px 0 24px !important; font-size: 18px !important; line-height: 1.7 !important; color: var(--pj-ink) !important; }
body.otv-site .otv-cv-fam-cards { display: grid; gap: 14px; }
body.otv-site .otv-cv-fam-card { position: relative; display: flex; align-items: flex-start; gap: 16px; padding: 18px 20px; border-radius: 22px; background: #fff; text-decoration: none !important; box-shadow: 0 20px 40px -32px rgba(4, 39, 29, .55), inset 0 0 0 1px rgba(14, 90, 67, .07); transition: transform .4s cubic-bezier(.2, .8, .2, 1), box-shadow .35s ease; }
body.otv-site a.otv-cv-fam-card { padding-right: 64px; }
body.otv-site .otv-cv-fam-card:hover { transform: translateY(-4px); box-shadow: 0 30px 50px -30px rgba(4, 39, 29, .6), inset 0 0 0 2px var(--c); }
body.otv-site .otv-cv-fam-ico { display: grid; place-items: center; flex: none; width: 52px; height: 52px; border-radius: 16px; background: color-mix(in srgb, var(--c) 22%, #fff); color: color-mix(in srgb, var(--c) 55%, #04271D); }
body.otv-site .otv-cv-fam-ico svg { width: 26px; height: 26px; }
body.otv-site .otv-cv-fam-ct { display: flex; flex-direction: column; gap: 4px; }
body.otv-site .otv-cv-fam-ct strong { font-size: 17px; font-weight: 800; color: var(--pj-deep); }
body.otv-site .otv-cv-fam-ct span { font-size: 14.5px; line-height: 1.6; color: var(--pj-muted); }
body.otv-site .otv-cv-fam-go { position: absolute; right: 18px; top: 50%; display: grid; place-items: center; width: 36px; height: 36px; margin-top: -18px; border-radius: 50%; background: var(--c); color: #04271D; transition: transform .35s ease; }
body.otv-site .otv-cv-fam-go svg { width: 17px; height: 17px; }
body.otv-site .otv-cv-fam-card:hover .otv-cv-fam-go { transform: translateX(3px) rotate(-12deg); }
/* Comnvida: impacto mais colorido */
body.otv-site .otv-cv-icard:nth-child(4n+1) { --c: #FFC83D; }
body.otv-site .otv-cv-icard:nth-child(4n+2) { --c: #FF7B5C; }
body.otv-site .otv-cv-icard:nth-child(4n+3) { --c: #42B8E8; }
body.otv-site .otv-cv-icard:nth-child(4n+4) { --c: #B6D45A; }
body.otv-site .otv-cv-icard-n circle { stroke: var(--c); }
body.otv-site .otv-cv-icard-n b { color: var(--c); }
body.otv-site .otv-cv-icard::before { content: ""; position: absolute; left: 24px; right: 24px; top: 0; height: 4px; border-radius: 0 0 4px 4px; background: var(--c); }
body.otv-site .otv-cv-icard:hover { transform: translateY(-6px) rotate(-1deg); }

/* números das seções dos projetos em cores alternadas */
body.otv-site .otv-pj-secs .otv-pj-sec:nth-of-type(4n+2) .otv-pj-num { background: #FF7B5C; color: #fff; }
body.otv-site .otv-pj-secs .otv-pj-sec:nth-of-type(4n+3) .otv-pj-num { background: #42B8E8; color: #fff; }
body.otv-site .otv-pj-secs .otv-pj-sec:nth-of-type(4n+4) .otv-pj-num { background: #9B8CF2; color: #fff; }
body.otv-site .otv-pj-step:nth-child(4n+2) .otv-pj-step-n { color: #FF9C82; }
body.otv-site .otv-pj-step:nth-child(4n+3) .otv-pj-step-n { color: #7FD0F0; }
body.otv-site .otv-pj-step:nth-child(4n+4) .otv-pj-step-n { color: #B9AEF6; }

@media (max-width: 1199px) {
  body.otv-site .otv-hl-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 991px) {
  body.otv-site .otv-pj-col { justify-self: center; width: min(100%, 400px); margin: 6px auto 0; }
  body.otv-site .otv-cv-fam-grid { grid-template-columns: minmax(0, 1fr); gap: 40px; }
  body.otv-site .otv-cv-fam-col { width: min(100%, 520px); margin: 0 auto; }
  body.otv-site .otv-hl-news { grid-template-columns: minmax(0, 1fr); }
  body.otv-site .otv-hl-news-ph { min-height: 0; aspect-ratio: 16 / 9; }
}
@media (max-width: 767px) {
  body.otv-site .otv-hl { padding: 60px 0; }
  body.otv-site .otv-hl-grid { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  body.otv-site .otv-hl-card { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: 16px; padding: 22px 20px; border-radius: 22px; }
  body.otv-site .otv-hl-ico { grid-row: span 2; width: 52px; height: 52px; margin: 0; border-radius: 16px; }
  body.otv-site .otv-hl-ico svg { width: 26px; height: 26px; }
  body.otv-site .otv-pj .otv-hl-h, body.otv-site .otv-cv .otv-hl-h { font-size: 17px !important; margin-bottom: 6px !important; }
  body.otv-site .otv-hl-news-t { padding: 24px 22px; }
  body.otv-site .otv-pol-sec { padding: 56px 0 48px; }
  body.otv-site .otv-pol { width: 180px; padding: 9px 9px 11px; }
  body.otv-site .otv-pol figcaption { font-size: 18px; }
  body.otv-site .otv-pol-grp { gap: 22px; padding-right: 22px; }
  body.otv-site .otv-joy-masonry { columns: 2 140px; column-gap: 10px; }
  body.otv-site .otv-joy-masonry .otv-joy-ph { margin-bottom: 10px; border-radius: 16px; }
  body.otv-site .otv-cv-hero-joy .otv-cv-orb-arm { inset: 21%; }
  body.otv-site .otv-cv-bub { min-width: 0; width: 20%; }
  body.otv-site .otv-cv-bub img { border-width: 3px; box-shadow: 0 0 0 2px var(--c), 0 12px 20px -10px rgba(4, 39, 29, .55); }
  body.otv-site .otv-cv-mini { width: 84px; border-width: 4px; }
  body.otv-site .otv-cv-mini0 { top: -22px; right: -6px; }
  body.otv-site .otv-cv-mini1 { left: -8px; width: 70px; }
  body.otv-site .otv-cv-fam { padding: 60px 0; }
  body.otv-site .otv-cv .otv-cv-fam-lead { font-size: 16.5px !important; }
  body.otv-site .otv-cv-lcard-art.otv-has-ph, body.otv-site .otv-cv-scard-ph { height: 190px; }
  body.otv-site .otv-pj-col-chip { width: 44px; height: 44px; border-radius: 14px; }
  body.otv-site .otv-pj-col-chip svg { width: 22px; height: 22px; }
}
@media (prefers-reduced-motion: reduce) {
  body.otv-site .otv-joy-confetti i, body.otv-site .otv-pol-track, body.otv-site .otv-cv-bubs, body.otv-site .otv-cv-bub img, body.otv-site .otv-cv-l { animation: none !important; }
  body.otv-site .otv-pol-track { width: auto; flex-wrap: wrap; justify-content: center; }
  body.otv-site .otv-pol-grp { flex-wrap: wrap; justify-content: center; padding-right: 0; row-gap: 30px; }
  body.otv-site .otv-pol-grp[aria-hidden] { display: none; }
  body.otv-site .otv-pol-mq { -webkit-mask-image: none; mask-image: none; }
}
body.otv-site .otv-cv .otv-cv-title span { font-size: inherit !important; font-weight: inherit !important; line-height: inherit !important; letter-spacing: inherit; font-family: inherit; }
body.otv-site .otv-cv .otv-cv-title .otv-cv-t1 { color: var(--pj-deep) !important; }
body.otv-site .otv-cv .otv-cv-title .otv-cv-l { color: var(--c) !important; }
body.otv-site .otv-pj .otv-pj-title span { font-size: inherit !important; font-weight: inherit !important; line-height: inherit !important; color: inherit !important; font-family: inherit; }
/* formas coloridas da abertura longe do texto */
body.otv-site :is(.otv-pj-hero, .otv-cv-hero) > .otv-joy-confetti { -webkit-mask-image: linear-gradient(90deg, #000 0, #000 3%, transparent 5%, transparent 50%, #000 56%); mask-image: linear-gradient(90deg, #000 0, #000 3%, transparent 5%, transparent 50%, #000 56%); }
@media (max-width: 991px) {
  body.otv-site :is(.otv-pj-hero, .otv-cv-hero) > .otv-joy-confetti { -webkit-mask-image: linear-gradient(180deg, transparent 0, transparent 55%, #000 62%); mask-image: linear-gradient(180deg, transparent 0, transparent 55%, #000 62%); }
}
@media (max-width: 767px) {
  body.otv-site .otv-cv-hero-joy .otv-cv-orb-spin { display: none; }
  body.otv-site .otv-cv-hero-joy .otv-cv-bub { width: 24%; }
}
