/* ==========================================================================
   OSV · Design System v2 — BIBLIOTECA DE COMPONENTES
   Depende de tokens.css. Prefixo: osv-. Componentes leem só --s-* e --osv-*.
   Ordem: reset → base → superfícies → layout → fundos → tipografia → efeitos de texto
   → botões → tags → cards → mídia → seções especiais → navegação → formulário
   → acordeão → carrossel → faixa → lightbox → rodapé → barra fixa → motion → utilitários
   ========================================================================== */

/* ── Reset ─────────────────────────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box}
*{margin:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{min-height:100vh;font-family:var(--osv-f-texto);font-size:var(--osv-ts-corpo);line-height:var(--osv-lh-corpo);
  background:var(--s-fundo);color:var(--s-texto);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:clip}
img,video,svg{display:block;max-width:100%}
img,video{height:auto}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer;background:none;border:0;padding:0}
a{color:inherit;text-decoration:none}
ul[role=list],ol[role=list]{list-style:none;padding:0}
h1,h2,h3,h4{font-weight:inherit;font-size:inherit;text-wrap:balance}
p{text-wrap:pretty}

/* ── Base e acessibilidade ─────────────────────────────────────────────── */
:focus-visible{outline:2px solid var(--s-foco);outline-offset:3px;border-radius:4px}
::selection{background:var(--osv-laranja);color:#1A0F05}
.osv-sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.osv-pular{position:absolute;left:var(--osv-e-4);top:-100px;z-index:200;padding:var(--osv-e-3) var(--osv-e-5);
  background:var(--osv-laranja);color:#1A0F05;border-radius:var(--osv-r-pilula);font-weight:700}
.osv-pular:focus{top:var(--osv-e-4)}

/* ── Superfícies (aplicação) ───────────────────────────────────────────── */
.osv-sup--escuro,.osv-sup--grafite,.osv-sup--branco,.osv-sup--laranja{background:var(--s-fundo);color:var(--s-texto)}

/* ── Layout ────────────────────────────────────────────────────────────── */
.osv-secao{position:relative;isolation:isolate;overflow:clip;padding-block:var(--osv-secao-y)}
.osv-secao--compacta{padding-block:calc(var(--osv-secao-y) * .55)}
.osv-secao--sem-topo{padding-top:0}
.osv-container{width:100%;max-width:calc(var(--osv-largura) + var(--osv-gutter) * 2);margin-inline:auto;padding-inline:var(--osv-gutter)}
.osv-container--larga{max-width:calc(var(--osv-largura-larga) + var(--osv-gutter) * 2)}
.osv-container--estreita{max-width:calc(var(--osv-largura-estreita) + var(--osv-gutter) * 2)}

/* Grade automática: <div class="osv-grade" style="--min:260px"> */
.osv-grade{display:grid;gap:var(--gap,var(--osv-e-4));grid-template-columns:repeat(auto-fit,minmax(min(var(--min,240px),100%),1fr))}
.osv-grade--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.osv-grade--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.osv-grade--4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:900px){.osv-grade--3,.osv-grade--4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.osv-grade--2,.osv-grade--3,.osv-grade--4{grid-template-columns:1fr}}
.osv-grade>*,.osv-dupla>*{min-width:0}

/* Dupla: texto + mídia */
.osv-dupla{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,5rem);align-items:center}
.osv-dupla--6040{grid-template-columns:1.2fr .8fr}
.osv-dupla--4060{grid-template-columns:.8fr 1.2fr}
.osv-dupla--invertida>:first-child{order:2}
@media(max-width:860px){.osv-dupla,.osv-dupla--6040,.osv-dupla--4060{grid-template-columns:1fr}.osv-dupla--invertida>:first-child{order:0}}

.osv-pilha{display:flex;flex-direction:column;gap:var(--gap,var(--osv-e-4))}
.osv-linha{display:flex;flex-wrap:wrap;align-items:center;gap:var(--gap,var(--osv-e-3))}
.osv-centro{text-align:center;margin-inline:auto}
.osv-centro .osv-linha,.osv-centro.osv-linha{justify-content:center}

/* Cabeçalho de seção: rótulo + título + lead */
.osv-cab{display:flex;flex-direction:column;gap:var(--osv-e-4);max-width:760px;margin-bottom:clamp(2rem,4vw,3.5rem)}
.osv-cab--centro{align-items:center;text-align:center;margin-inline:auto}
.osv-cab--lado{max-width:none;flex-direction:row;justify-content:space-between;align-items:flex-end;flex-wrap:wrap}

/* ── Fundos (camadas combináveis) ──────────────────────────────────────── */
/* <div class="osv-fundo osv-fundo--brilho osv-fundo--grade" aria-hidden="true"></div> como 1º filho da seção */
.osv-fundo{position:absolute;inset:0;z-index:var(--osv-z-fundo);pointer-events:none;overflow:hidden}
.osv-fundo::before,.osv-fundo::after{content:"";position:absolute;inset:0}
.osv-fundo--brilho{background:
  radial-gradient(60% 55% at var(--brilho-x,85%) var(--brilho-y,0%),var(--s-brilho),transparent 70%),
  radial-gradient(45% 45% at calc(100% - var(--brilho-x,85%)) 100%,var(--s-brilho-2),transparent 70%)}
.osv-fundo--brilho-centro{background:radial-gradient(55% 60% at 50% 40%,var(--s-brilho),transparent 70%)}
.osv-fundo--brilho-base{background:radial-gradient(70% 60% at 50% 110%,var(--s-brilho),transparent 70%)}
.osv-fundo--grade::before{background-image:linear-gradient(var(--s-grade) 1px,transparent 1px),linear-gradient(90deg,var(--s-grade) 1px,transparent 1px);
  background-size:72px 72px;-webkit-mask-image:radial-gradient(70% 60% at 50% 30%,#000,transparent);mask-image:radial-gradient(70% 60% at 50% 30%,#000,transparent)}
/* Mapa: grade de latitude/longitude com o equador em laranja — DERIVADO da paleta cartográfica do manual */
.osv-fundo--mapa::before{background:
  linear-gradient(transparent calc(50% - 1px),rgba(245,142,38,.35) calc(50% - 1px),rgba(245,142,38,.35) 50%,transparent 50%),
  repeating-linear-gradient(0deg,transparent 0 63px,var(--s-mapa) 63px 64px),
  repeating-radial-gradient(ellipse 120% 70% at 50% 50%,transparent 0 95px,var(--s-mapa) 95px 96px);
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 30%,#000 70%,transparent);mask-image:linear-gradient(90deg,transparent,#000 30%,#000 70%,transparent);opacity:.8}
.osv-fundo--grao::after{opacity:var(--s-grao-op);mix-blend-mode:var(--s-grao-mix);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
/* Foto de fundo com véu: <div class="osv-fundo osv-fundo--foto"><img src="…" alt=""></div> */
.osv-fundo--foto img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:var(--foco,center)}
.osv-fundo--foto::after{z-index:1;background:linear-gradient(180deg,color-mix(in srgb,var(--s-fundo) 55%,transparent),color-mix(in srgb,var(--s-fundo) 80%,transparent) 60%,var(--s-fundo))}
/* Fade para a próxima seção (evita corte seco entre superfícies) */
.osv-fundo--fade-base{background:linear-gradient(to bottom,transparent 70%,var(--s-fundo-alt))}

/* ── Tipografia ────────────────────────────────────────────────────────── */
.osv-mega,.osv-d1,.osv-d2,.osv-d3,.osv-d4{font-family:var(--osv-f-display);font-weight:800;color:var(--s-texto)}
.osv-mega{font-size:var(--osv-ts-mega);line-height:.92;letter-spacing:var(--osv-tr-display)}
.osv-d1{font-size:var(--osv-ts-d1);line-height:var(--osv-lh-display);letter-spacing:var(--osv-tr-display)}
.osv-d2{font-size:var(--osv-ts-d2);line-height:1;letter-spacing:var(--osv-tr-titulo)}
.osv-d3{font-size:var(--osv-ts-d3);line-height:var(--osv-lh-titulo);letter-spacing:-.02em;font-weight:700}
.osv-d4{font-size:var(--osv-ts-d4);line-height:1.1;letter-spacing:-.015em;font-weight:700}
.osv-lead{font-size:var(--osv-ts-lead);line-height:1.55;color:var(--s-texto-2);max-width:56ch}
.osv-cab--centro .osv-lead,.osv-centro .osv-lead{margin-inline:auto}
.osv-texto{color:var(--s-texto-2);max-width:var(--osv-medida)}
.osv-texto strong,.osv-lead strong{color:var(--s-texto);font-weight:700}
.osv-peq{font-size:var(--osv-ts-peq);color:var(--s-texto-3)}

/* Rótulo (eyebrow) */
.osv-rotulo{display:inline-flex;align-items:center;gap:.6em;font:700 var(--osv-ts-rotulo)/1.2 var(--osv-f-texto);
  letter-spacing:var(--osv-tr-rotulo);text-transform:uppercase;color:var(--s-rotulo)}
.osv-rotulo--traco::before{content:"";width:24px;height:1px;background:currentColor}

/* Pílula de status — com ponto pulsando */
.osv-pilula{display:inline-flex;align-items:center;gap:.65em;padding:.55em 1.1em;font:600 var(--osv-ts-rotulo)/1.2 var(--osv-f-texto);
  letter-spacing:.14em;text-transform:uppercase;color:var(--s-texto);background:var(--s-pilula);border:1px solid var(--s-linha);border-radius:var(--osv-r-pilula);
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.osv-pilula__ponto{width:7px;height:7px;border-radius:50%;background:var(--osv-laranja);animation:osv-pulso 2.4s infinite}
.osv-pilula__sep{width:1px;height:1em;background:var(--s-linha-forte)}
@keyframes osv-pulso{0%{box-shadow:0 0 0 0 rgba(245,142,38,.6)}70%{box-shadow:0 0 0 10px rgba(245,142,38,0)}100%{box-shadow:0 0 0 0 rgba(245,142,38,0)}}

/* ── Efeitos de texto ──────────────────────────────────────────────────── */
/* Palavra manuscrita: assinatura da marca. MÁX. 1 por título. */
.osv-script{font-family:var(--osv-f-script);font-style:italic;font-weight:400;font-size:calc(1em * var(--osv-script-escala));line-height:inherit;letter-spacing:-.01em;
  color:var(--s-script);padding-right:.04em}
.osv-script--solta{display:block;font-size:.62em;letter-spacing:0;margin-bottom:.15em}
/* Palavra apagada no título (contraste de leitura: "Gaste menos") */
.osv-suave{color:var(--s-texto-3)}
/* Gradiente laranja no texto (do manual: "ama viajar") — usar em 1-2 palavras */
.osv-grad{background:linear-gradient(135deg,var(--osv-laranja-fundo),var(--osv-laranja) 45%,var(--osv-laranja-claro));
  -webkit-background-clip:text;background-clip:text;color:transparent}
/* Sublinhado de caneta (traço manuscrito laranja sob a palavra) */
.osv-sublinha{position:relative;white-space:nowrap}
.osv-sublinha::after{content:"";position:absolute;left:-2%;right:-2%;bottom:-.12em;height:.32em;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 20' preserveAspectRatio='none'%3E%3Cpath d='M3 14 C 50 4, 120 2, 197 9' fill='none' stroke='%23F58E26' stroke-width='4' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat center/100% 100%;
  transform-origin:left;transform:scaleX(var(--traco,1));transition:transform 1s var(--osv-ease) .3s}
.js .osv-sublinha[data-revelar]::after,.js [data-revelar] .osv-sublinha::after{--traco:0}
.js .is-visivel .osv-sublinha::after,.js .osv-sublinha.is-visivel::after{--traco:1}
/* Palavras que giram: <span class="osv-roda"><span>Peru</span><span>Paris</span><span>Noronha</span></span> */
.osv-roda{display:inline-grid;vertical-align:bottom;height:1.05em;max-width:100%;overflow:hidden;color:var(--s-script)}
.osv-roda>span{grid-area:1/1;transform:translateY(110%);opacity:0;transition:transform .8s var(--osv-ease),opacity .5s}
.osv-roda>span.is-ativa{transform:none;opacity:1}
.osv-roda>span.is-saindo{transform:translateY(-110%);opacity:0}
.osv-roda:not(.is-pronta)>span:first-child{transform:none;opacity:1}
/* Número grande (estatística) */
.osv-stat{display:flex;flex-direction:column;gap:var(--osv-e-1)}
.osv-stat__numero{font:800 var(--osv-ts-numero)/1 var(--osv-f-display);letter-spacing:-.03em;color:var(--s-texto);font-variant-numeric:tabular-nums}
.osv-stat__legenda{font:600 var(--osv-ts-rotulo)/1.3 var(--osv-f-texto);letter-spacing:.14em;text-transform:uppercase;color:var(--s-texto-3)}
.osv-stats{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--osv-e-6) clamp(2rem,6vw,5rem)}
.osv-stats--divisores>*+*{padding-left:clamp(2rem,6vw,5rem);border-left:1px solid var(--s-linha)}
@media(max-width:600px){.osv-stats--divisores>*+*{padding-left:0;border-left:0}}
/* Listas */
.osv-lista{display:flex;flex-direction:column;gap:var(--osv-e-3);padding:0;list-style:none}
.osv-lista li{display:grid;grid-template-columns:22px 1fr;gap:var(--osv-e-3);color:var(--s-texto-2)}
.osv-lista li::before{content:"";width:22px;height:22px;border-radius:50%;margin-top:.1em;
  background:var(--osv-laranja) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 12.5l4 4 8-9' fill='none' stroke='%231A0F05' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/14px no-repeat}
.osv-lista--x li::before{background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 7l10 10M17 7L7 17' fill='none' stroke='%23999' stroke-width='2.5' stroke-linecap='round'/%3E%3C/svg%3E") center/14px no-repeat;border:1px solid var(--s-linha-forte)}
/* Citação grande */
.osv-citacao{font:700 clamp(1.5rem,1.1rem + 1.8vw,2.5rem)/1.15 var(--osv-f-display);letter-spacing:-.02em;color:var(--s-texto)}
.osv-citacao::before{content:"“";color:var(--s-rotulo)}
.osv-citacao::after{content:"”";color:var(--s-rotulo)}

/* Rota pontilhada (motivo do logo: pin → linha tracejada → avião) */
.osv-rota{display:block;width:100%;max-width:var(--rota-w,260px);height:auto;color:var(--osv-sepia);overflow:visible}
.osv-rota__linha{fill:none;stroke:currentColor;stroke-width:1.5;stroke-dasharray:4 6;stroke-linecap:round}
.osv-rota__aviao{fill:var(--osv-laranja)}
.osv-rota__pin{fill:var(--osv-laranja)}
/* A linha flui no sentido da viagem (pin → avião). O avião voa pela mesma curva via <animateMotion rotate="auto">. */
.osv-rota__linha{animation:osv-rota-fluxo 1.2s linear infinite}
@keyframes osv-rota-fluxo{from{stroke-dashoffset:20}to{stroke-dashoffset:0}}

/* ── Botões ────────────────────────────────────────────────────────────── */
/* Texto SEMPRE dentro de <span> — o brilho do ::after passaria por cima do rótulo. */
.osv-btn{--btn-bg:transparent;--btn-cor:var(--s-texto);--btn-borda:transparent;
  position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.6em;min-height:52px;padding:.95em 1.65em;
  font:700 .9375rem/1.1 var(--osv-f-texto);letter-spacing:.01em;color:var(--btn-cor);background:var(--btn-bg);border:1px solid var(--btn-borda);
  border-radius:var(--osv-r-pilula);overflow:hidden;isolation:isolate;text-align:center;
  transition:transform var(--osv-dur-media) var(--osv-ease),box-shadow var(--osv-dur-media) var(--osv-ease),background-color var(--osv-dur-media),border-color var(--osv-dur-media)}
.osv-btn>span{position:relative;z-index:1}
.osv-btn__seta{transition:transform var(--osv-dur-media) var(--osv-ease)}
.osv-btn:hover .osv-btn__seta{transform:translateX(4px)}
.osv-btn:active{transform:translateY(0) scale(.98)}
.osv-btn--primario{--btn-bg:var(--s-acento);--btn-cor:var(--s-acento-texto);box-shadow:var(--osv-glow-botao)}
.osv-btn--primario:hover{transform:translateY(-2px);box-shadow:var(--osv-glow-botao-hover)}
.osv-sup--laranja .osv-btn--primario{box-shadow:0 10px 30px -10px rgba(26,15,5,.5)}
/* Brilho que atravessa (sweep) — Black Human */
.osv-btn--primario::after{content:"";position:absolute;inset:0;z-index:0;transform:translateX(-120%);
  background:linear-gradient(100deg,transparent 30%,rgba(255,255,255,.45) 50%,transparent 70%)}
.osv-btn--primario:hover::after{transform:translateX(120%);transition:transform .9s var(--osv-ease)}
.osv-btn--brilho::after{animation:osv-sweep 3.6s var(--osv-ease) infinite}
@keyframes osv-sweep{0%,55%{transform:translateX(-120%)}100%{transform:translateX(120%)}}
.osv-btn--contorno{--btn-borda:var(--s-linha-forte)}
.osv-btn--contorno:hover{--btn-borda:var(--s-texto);background:var(--s-grade)}
.osv-btn--vidro{--btn-bg:var(--s-pilula);--btn-borda:var(--s-linha);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.osv-btn--vidro:hover{--btn-borda:var(--s-linha-forte)}
.osv-btn--link{min-height:0;padding:.2em 0;border-radius:0;color:var(--s-rotulo);overflow:visible}
.osv-btn--link::before{content:"";position:absolute;left:0;right:0;bottom:-2px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform var(--osv-dur-media) var(--osv-ease)}
.osv-btn--link:hover::before{transform:scaleX(1);transform-origin:left}
.osv-btn--grande{min-height:64px;padding:1.1em 2.2em;font-size:1.0625rem}
.osv-btn--bloco{display:flex;width:100%}
.osv-btn--peq{min-height:40px;padding:.6em 1.15em;font-size:.8125rem}
/* Botão com subtítulo (CTA de oferta) */
.osv-btn__pilha{display:flex;flex-direction:column;align-items:center;gap:.25em}
.osv-btn__sub{font-size:.75rem;font-weight:500;opacity:.75;letter-spacing:.02em}
.osv-ctas{display:flex;flex-wrap:wrap;align-items:center;gap:var(--osv-e-3)}
.osv-centro .osv-ctas,.osv-cab--centro .osv-ctas{justify-content:center}
.osv-microcopy{display:flex;flex-wrap:wrap;gap:.4em 1.2em;font-size:var(--osv-ts-peq);color:var(--s-texto-3)}
.osv-microcopy>span::before{content:"✓ ";color:var(--s-rotulo);font-weight:700}
@media(max-width:600px){.osv-ctas .osv-btn:not(.osv-btn--link){width:100%}}

/* ── Tags e selos ──────────────────────────────────────────────────────── */
.osv-tags{display:flex;flex-wrap:wrap;gap:6px}
.osv-tag{display:inline-flex;align-items:center;gap:.4em;padding:.35em .8em;font-size:.75rem;font-weight:500;color:var(--s-texto-2);border:1px solid var(--s-linha);border-radius:var(--osv-r-pilula)}
.osv-selo{display:inline-flex;align-items:center;gap:.4em;padding:.35em .75em;font:700 .6875rem/1.2 var(--osv-f-texto);letter-spacing:.12em;text-transform:uppercase;
  color:var(--s-acento-texto);background:var(--s-acento);border-radius:var(--osv-r-pilula)}
.osv-selo--neutro{color:var(--s-texto-2);background:transparent;border:1px solid var(--s-linha-forte)}
.osv-selo--cf{color:#0B2A0C;background:var(--osv-verde)} /* Close Friends — verde é exclusivo disso */

/* ── Cards ─────────────────────────────────────────────────────────────── */
/* Card de vidro (base de quase tudo) */
.osv-card{position:relative;display:flex;flex-direction:column;gap:var(--osv-e-3);padding:clamp(1.4rem,2.5vw,2rem);
  background:var(--s-vidro);border:1px solid var(--s-linha);border-radius:var(--osv-r-card);
  transition:transform var(--osv-dur-media) var(--osv-ease),border-color var(--osv-dur-media),box-shadow var(--osv-dur-media) var(--osv-ease)}
a.osv-card:hover,.osv-card--hover:hover{transform:translateY(-4px);border-color:color-mix(in srgb,var(--osv-laranja) 55%,transparent);box-shadow:0 24px 50px -28px var(--s-sombra)}
.osv-card__num{font:700 .8125rem/1 var(--osv-f-texto);color:var(--s-rotulo);font-variant-numeric:tabular-nums}
.osv-card__icone{display:grid;place-items:center;width:48px;height:48px;border-radius:14px;color:var(--s-rotulo);
  background:color-mix(in srgb,var(--osv-laranja) 12%,transparent);border:1px solid color-mix(in srgb,var(--osv-laranja) 25%,transparent)}
.osv-card__icone svg{width:22px;height:22px}
.osv-card__titulo{font:800 var(--osv-ts-d4)/1.08 var(--osv-f-display);letter-spacing:-.02em;color:var(--s-texto);margin-top:auto}
.osv-card__num+.osv-card__titulo,.osv-card__icone+.osv-card__titulo{margin-top:var(--osv-e-6)}
.osv-card__texto{font-size:.9375rem;color:var(--s-texto-2)}
.osv-card__canto{position:absolute;top:clamp(1.4rem,2.5vw,2rem);right:clamp(1.4rem,2.5vw,2rem)}
.osv-card__rodape{margin-top:auto;padding-top:var(--osv-e-4)}
.osv-card--trancado{border-style:dashed}
.osv-card--destaque{border-color:color-mix(in srgb,var(--osv-laranja) 60%,transparent);box-shadow:0 30px 80px -40px var(--s-sombra),inset 0 1px 0 rgba(255,255,255,.08)}
.osv-card--solido{background:var(--s-vidro-solido)}

/* Card com foto no topo */
.osv-cfoto{display:flex;flex-direction:column;overflow:hidden;background:var(--s-vidro);border:1px solid var(--s-linha);border-radius:var(--osv-r-card);
  transition:transform var(--osv-dur-media) var(--osv-ease),box-shadow var(--osv-dur-media) var(--osv-ease)}
.osv-cfoto:hover{transform:translateY(-4px);box-shadow:0 24px 50px -28px var(--s-sombra)}
.osv-cfoto__img{aspect-ratio:16/10;overflow:hidden}
.osv-cfoto__img img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--osv-ease)}
.osv-cfoto:hover .osv-cfoto__img img{transform:scale(1.05)}
.osv-cfoto__corpo{display:flex;flex-direction:column;gap:var(--osv-e-2);padding:var(--osv-e-5)}
.osv-cfoto__corpo .osv-btn--link{margin-top:var(--osv-e-2);align-self:flex-start}

/* Pôster vertical — linguagem das capas da área de membros */
.osv-poster{position:relative;display:flex;flex-direction:column;justify-content:space-between;aspect-ratio:3/4.3;padding:var(--osv-e-5);
  border-radius:var(--osv-r-poster);overflow:hidden;isolation:isolate;color:#fff}
.osv-poster__img{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--osv-ease)}
.osv-poster::before{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(180deg,rgba(12,10,8,.82) 0%,rgba(12,10,8,.35) 34%,transparent 52%,rgba(12,10,8,.2) 64%,rgba(196,112,15,.92) 100%)}
.osv-poster:hover .osv-poster__img{transform:scale(1.06)}
.osv-poster__titulo{font:900 clamp(1.5rem,1.1rem + 1.2vw,2rem)/.92 var(--osv-f-display);letter-spacing:-.03em;text-transform:uppercase;text-shadow:0 2px 20px rgba(0,0,0,.5)}
.osv-poster__titulo .osv-script{--s-script:var(--osv-laranja-claro);display:block;font-size:.9em;line-height:1;letter-spacing:-.01em;text-transform:none;margin-top:.1em;
  text-shadow:0 2px 16px rgba(0,0,0,.7)}
.osv-poster__rodape{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--osv-e-3)}
.osv-poster__pub{font-size:.8125rem;line-height:1.35;max-width:24ch;color:#fff;text-shadow:0 1px 8px rgba(0,0,0,.35)}
.osv-poster__icone{flex:none;display:grid;place-items:center;width:48px;height:48px;border-radius:50%;font:700 .875rem var(--osv-f-texto);
  background:rgba(20,12,6,.78);color:#fff;transition:transform var(--osv-dur-media) var(--osv-ease)}
.osv-poster:hover .osv-poster__icone{transform:scale(1.1)}

/* Depoimento */
.osv-depo{display:flex;flex-direction:column;gap:var(--osv-e-5);padding:clamp(1.4rem,2.5vw,2rem);background:var(--s-vidro);border:1px solid var(--s-linha);border-radius:var(--osv-r-card)}
.osv-depo__texto{font-size:1.0625rem;line-height:1.55;color:var(--s-texto)}
.osv-depo__destaque{display:inline-block;font:800 var(--osv-ts-d3)/1 var(--osv-f-display);letter-spacing:-.02em;color:var(--s-rotulo)}
.osv-depo__autor{display:flex;align-items:center;gap:var(--osv-e-3);margin-top:auto}
.osv-depo__avatar{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;flex:none;font:800 .9375rem var(--osv-f-display);
  color:var(--s-acento-texto);background:var(--s-acento);overflow:hidden}
.osv-depo__avatar img{width:100%;height:100%;object-fit:cover}
.osv-depo__nome{font-weight:700;font-size:.9375rem;color:var(--s-texto)}
.osv-depo__meta{font-size:.8125rem;color:var(--s-texto-3)}
/* Print real (WhatsApp) dentro de moldura */
.osv-print{position:relative;border-radius:var(--osv-r-card);overflow:hidden;border:1px solid var(--s-linha);background:#fff;box-shadow:0 30px 60px -30px var(--s-sombra)}
.osv-print img{width:100%}
.osv-print figcaption{position:absolute;left:12px;bottom:12px;padding:.35em .8em;font-size:.75rem;font-weight:700;color:#fff;background:rgba(12,10,8,.75);border-radius:var(--osv-r-pilula)}

/* Passos (timeline com rota pontilhada) */
.osv-passos{position:relative;display:grid;grid-template-columns:repeat(var(--n,3),minmax(0,1fr));gap:var(--osv-e-6);counter-reset:passo}
.osv-passos::before{content:"";position:absolute;top:28px;left:calc(100% / var(--n,3) / 2);right:calc(100% / var(--n,3) / 2);border-top:1.5px dashed var(--osv-sepia);opacity:.7}
.osv-passo{position:relative;display:flex;flex-direction:column;gap:var(--osv-e-3);text-align:center;align-items:center}
.osv-passo__marca{display:grid;place-items:center;width:56px;height:56px;border-radius:50%;font:800 1.125rem var(--osv-f-display);
  color:var(--s-acento-texto);background:var(--s-acento);box-shadow:0 0 0 8px var(--s-fundo),var(--osv-glow-botao)}
.osv-passo__marca:empty::before{counter-increment:passo;content:counter(passo,decimal-leading-zero)}
.osv-passo .osv-card__texto{max-width:32ch}
@media(max-width:760px){.osv-passos{grid-template-columns:1fr}.osv-passos::before{top:28px;bottom:28px;left:28px;right:auto;border-top:0;border-left:1.5px dashed var(--osv-sepia)}
  .osv-passo{text-align:left;align-items:flex-start;padding-left:80px}.osv-passo__marca{position:absolute;left:0;top:0}}

/* Comparativo (Outros × OSV) */
.osv-compara{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--s-linha);border-radius:var(--osv-r-card);overflow:hidden}
.osv-compara__col{display:flex;flex-direction:column;gap:var(--osv-e-4);padding:clamp(1.4rem,3vw,2.5rem)}
.osv-compara__col--osv{background:var(--s-vidro);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--osv-laranja) 45%,transparent);border-radius:var(--osv-r-card)}
.osv-compara__col:not(.osv-compara__col--osv){opacity:.85}
@media(max-width:700px){.osv-compara{grid-template-columns:1fr}}

/* Oferta / plano */
.osv-oferta{position:relative;display:flex;flex-direction:column;gap:var(--osv-e-4);padding:clamp(1.6rem,3vw,2.5rem);background:var(--s-vidro);
  border:1px solid color-mix(in srgb,var(--osv-laranja) 55%,transparent);border-radius:calc(var(--osv-r-card) + 4px);box-shadow:0 40px 100px -40px var(--s-sombra)}
.osv-oferta__de{font-size:.9375rem;color:var(--s-texto-3);text-decoration:line-through}
.osv-oferta__preco{display:flex;align-items:baseline;gap:.25em;font:800 clamp(2.75rem,2rem + 3vw,4rem)/1 var(--osv-f-display);letter-spacing:-.04em;color:var(--s-texto)}
.osv-oferta__preco small{font-size:.35em;font-weight:700;letter-spacing:0;color:var(--s-texto-2)}
.osv-oferta__avista{font-size:.9375rem;color:var(--s-texto-2)}
.osv-oferta hr{border:0;border-top:1px solid var(--s-linha)}
/* Selo de garantia */
.osv-garantia{display:flex;align-items:center;gap:var(--osv-e-4)}
.osv-garantia__selo{display:grid;place-items:center;flex:none;width:76px;height:76px;border-radius:50%;text-align:center;
  border:1.5px dashed var(--osv-laranja);color:var(--s-rotulo);font:800 1.5rem/0.9 var(--osv-f-display)}
.osv-garantia__selo small{display:block;font:700 .5625rem/1.2 var(--osv-f-texto);letter-spacing:.12em;text-transform:uppercase}

/* Revelação trancada (teaser estilo Black) */
.osv-trancado{position:relative;display:flex;flex-direction:column;gap:var(--osv-e-3);min-height:220px;padding:clamp(1.4rem,2.5vw,2rem);
  border:1px dashed var(--s-linha-forte);border-radius:var(--osv-r-card);overflow:hidden;background:
  repeating-linear-gradient(135deg,transparent 0 14px,var(--s-grade) 14px 15px)}
.osv-trancado__cadeado{display:inline-flex;align-items:center;gap:.5em;align-self:flex-start;padding:.4em .8em;font:700 .6875rem/1 var(--osv-f-texto);letter-spacing:.14em;text-transform:uppercase;
  color:var(--s-rotulo);border:1px solid var(--s-linha);border-radius:var(--osv-r-pilula);background:var(--s-fundo)}
.osv-trancado__borrado{filter:blur(6px);user-select:none;opacity:.6}

/* Data de evento */
.osv-data{display:inline-flex;align-items:stretch;border:1px solid var(--s-linha);border-radius:var(--osv-r-card);overflow:hidden;background:var(--s-vidro)}
.osv-data__dia{display:grid;place-items:center;padding:var(--osv-e-4) var(--osv-e-5);font:900 clamp(2.5rem,2rem + 2vw,3.75rem)/0.85 var(--osv-f-display);color:var(--s-acento-texto);background:var(--s-acento)}
.osv-data__info{display:flex;flex-direction:column;justify-content:center;gap:2px;padding:var(--osv-e-4) var(--osv-e-5)}
.osv-data__mes{font:800 1.25rem/1 var(--osv-f-display);text-transform:uppercase;color:var(--s-texto)}

/* Fundador */
.osv-fundador{display:grid;grid-template-columns:auto 1fr;gap:var(--osv-e-4);align-items:center}
.osv-fundador__foto{width:72px;height:72px;border-radius:50%;object-fit:cover;border:2px solid var(--osv-laranja)}
.osv-fundador__nome{font:800 1.25rem/1.1 var(--osv-f-display);color:var(--s-texto)}
.osv-fundador__papel{font-size:.875rem;color:var(--s-texto-2)}

/* ── Mídia ─────────────────────────────────────────────────────────────── */
.osv-vitrine{position:relative;border-radius:var(--osv-r-midia);overflow:hidden;border:1px solid var(--s-linha);
  box-shadow:0 40px 120px -30px var(--s-sombra);isolation:isolate}
.osv-vitrine>img,.osv-vitrine>video{width:100%;aspect-ratio:var(--proporcao,21/9);object-fit:cover;object-position:var(--foco,center)}
.osv-vitrine--16x9{--proporcao:16/9}.osv-vitrine--4x5{--proporcao:4/5}.osv-vitrine--9x16{--proporcao:9/16}.osv-vitrine--1x1{--proporcao:1/1}
@media(max-width:700px){.osv-vitrine:not(.osv-vitrine--4x5):not(.osv-vitrine--9x16):not(.osv-vitrine--1x1){--proporcao:4/3}}
.osv-vitrine__legenda{position:absolute;inset:auto 0 0 0;z-index:1;padding:clamp(1rem,3vw,1.75rem);color:rgba(255,255,255,.82);font-size:.875rem;
  background:linear-gradient(to top,rgba(12,10,8,.9),transparent)}
.osv-vitrine__legenda b{display:block;font:700 clamp(1.125rem,1rem + .6vw,1.375rem)/1.2 var(--osv-f-display);color:#fff}
/* Selo flutuante sobre a mídia */
.osv-flutuante{position:absolute;z-index:2;display:flex;align-items:center;gap:var(--osv-e-3);padding:var(--osv-e-3) var(--osv-e-4);
  background:rgba(12,10,8,.72);color:#fff;border:1px solid rgba(255,255,255,.14);border-radius:16px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);
  font-size:.8125rem;box-shadow:0 20px 40px -20px rgba(0,0,0,.6)}
.osv-flutuante b{display:block;font:800 1.125rem/1.1 var(--osv-f-display)}
/* Botão de play */
.osv-play{position:absolute;left:50%;top:50%;z-index:2;translate:-50% -50%;display:grid;place-items:center;width:84px;height:84px;border-radius:50%;
  background:var(--osv-laranja);color:#1A0F05;box-shadow:0 0 0 12px rgba(245,142,38,.22);transition:transform var(--osv-dur-media) var(--osv-ease)}
.osv-play:hover{transform:scale(1.08)}
.osv-play svg{width:28px;height:28px;margin-left:4px}

/* ── Navegação ─────────────────────────────────────────────────────────── */
.osv-topo{position:fixed;inset:0 0 auto 0;z-index:var(--osv-z-cabecalho);transition:transform .5s var(--osv-ease),background-color .4s,border-color .4s;
  border-bottom:1px solid transparent}
.osv-topo__barra{display:flex;align-items:center;justify-content:space-between;gap:var(--osv-e-5);height:76px}
.osv-topo__logo img{height:40px;width:auto}
.osv-topo__links{display:flex;gap:clamp(1rem,2.5vw,2rem);font-size:.875rem;font-weight:500;color:var(--s-texto-2)}
.osv-topo__links a:hover{color:var(--s-texto)}
.osv-topo.is-solido{background:color-mix(in srgb,var(--s-fundo) 82%,transparent);border-color:var(--s-linha);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
.osv-topo.is-escondido{transform:translateY(-100%)}
.osv-topo__menu-btn{display:none;width:44px;height:44px;border-radius:50%;border:1px solid var(--s-linha)}
.osv-topo__menu-btn span{display:block;width:18px;height:1.5px;margin:4px auto;background:currentColor;transition:transform .3s}
@media(max-width:860px){.osv-topo__links,.osv-topo .osv-btn{display:none}.osv-topo__menu-btn{display:block}}
.osv-menu{position:fixed;inset:0;z-index:calc(var(--osv-z-cabecalho) + 1);display:flex;flex-direction:column;justify-content:center;gap:var(--osv-e-5);
  padding:var(--osv-e-8) var(--osv-gutter);background:var(--s-fundo);opacity:0;visibility:hidden;transition:opacity .35s,visibility .35s}
.osv-menu.is-aberto{opacity:1;visibility:visible}
.osv-menu a:not(.osv-btn){font:800 2.25rem/1.1 var(--osv-f-display);letter-spacing:-.03em}
.osv-menu__fechar{position:absolute;top:16px;right:var(--osv-gutter);width:44px;height:44px;border-radius:50%;border:1px solid var(--s-linha);font-size:1.25rem}

/* ── Formulário ────────────────────────────────────────────────────────── */
.osv-captura{display:flex;gap:6px;padding:6px;max-width:480px;background:var(--s-pilula);border:1px solid var(--s-linha-forte);border-radius:var(--osv-r-pilula);
  transition:border-color .3s,box-shadow .3s}
.osv-captura:focus-within{border-color:var(--osv-laranja);box-shadow:0 0 0 4px rgba(245,142,38,.15)}
.osv-captura input{flex:1;min-width:0;padding:0 1.1em;background:transparent;border:0;outline:0;font-size:1rem}
.osv-captura input::placeholder{color:var(--s-texto-3)}
.osv-captura .osv-btn{min-height:48px;flex:none}
.osv-centro .osv-captura{margin-inline:auto}
@media(max-width:480px){.osv-captura{flex-direction:column;border-radius:var(--osv-r-card)}.osv-captura input{min-height:48px}}
.osv-campo{display:flex;flex-direction:column;gap:var(--osv-e-2)}
.osv-campo label{font-size:.8125rem;font-weight:700;color:var(--s-texto-2)}
.osv-campo input,.osv-campo select,.osv-campo textarea{min-height:52px;padding:.8em 1.2em;background:var(--s-pilula);border:1px solid var(--s-linha-forte);
  border-radius:var(--osv-r-pilula);outline:0;transition:border-color .3s,box-shadow .3s}
.osv-campo textarea{border-radius:var(--osv-r-card);min-height:120px}
.osv-campo :is(input,select,textarea):focus{border-color:var(--osv-laranja);box-shadow:0 0 0 4px rgba(245,142,38,.15)}
/* Erro: três sinais (borda dupla + marcador + aria-invalid) — nunca só cor */
.osv-campo [aria-invalid=true]{border-width:2px;border-color:#E5484D}
.osv-erro{display:none;font-size:.8125rem;font-weight:600;color:var(--s-texto)}
.osv-erro::before{content:"⚠ ";color:#E5484D}
[aria-invalid=true]~.osv-erro,.osv-captura[data-erro]+.osv-erro{display:block}
.osv-aviso-lgpd{font-size:.75rem;color:var(--s-texto-3);max-width:480px}
.osv-centro .osv-aviso-lgpd{margin-inline:auto}
.osv-aviso-lgpd a{text-decoration:underline}

/* ── Acordeão (FAQ) ────────────────────────────────────────────────────── */
.osv-acordeao{display:flex;flex-direction:column;gap:var(--osv-e-3)}
.osv-acordeao__item{border:1px solid var(--s-linha);border-radius:var(--osv-r-card);background:var(--s-vidro);transition:border-color .3s}
.osv-acordeao__item.is-aberto{border-color:color-mix(in srgb,var(--osv-laranja) 45%,transparent)}
.osv-acordeao__gatilho{display:flex;align-items:center;justify-content:space-between;gap:var(--osv-e-4);width:100%;padding:var(--osv-e-5);text-align:left;
  font:700 1.0625rem/1.3 var(--osv-f-texto);color:var(--s-texto)}
.osv-acordeao__mais{position:relative;flex:none;width:28px;height:28px;border-radius:50%;border:1px solid var(--s-linha-forte);transition:transform .45s var(--osv-ease),background .3s}
.osv-acordeao__mais::before,.osv-acordeao__mais::after{content:"";position:absolute;left:50%;top:50%;width:11px;height:1.5px;background:currentColor;translate:-50% -50%}
.osv-acordeao__mais::after{rotate:90deg;transition:rotate .45s var(--osv-ease)}
.is-aberto .osv-acordeao__mais{background:var(--osv-laranja);border-color:var(--osv-laranja);color:#1A0F05}
.is-aberto .osv-acordeao__mais::after{rotate:0deg}
.osv-acordeao__painel{display:grid;grid-template-rows:0fr;transition:grid-template-rows .5s var(--osv-ease)}
.is-aberto>.osv-acordeao__painel{grid-template-rows:1fr}
.osv-acordeao__painel>div{overflow:hidden}
.osv-acordeao__painel p{padding:0 var(--osv-e-5) var(--osv-e-5);color:var(--s-texto-2);max-width:var(--osv-medida)}

/* ── Carrossel (scroll-snap + setas) ───────────────────────────────────── */
.osv-carrossel{position:relative}
.osv-carrossel__trilho{display:grid;grid-auto-flow:column;grid-auto-columns:var(--item,min(78%,300px));gap:var(--osv-e-4);overflow-x:auto;scroll-snap-type:x mandatory;
  scroll-padding-inline:var(--osv-gutter);padding-bottom:var(--osv-e-2);scrollbar-width:none;overscroll-behavior-x:contain}
.osv-carrossel__trilho::-webkit-scrollbar{display:none}
.osv-carrossel__trilho>*{scroll-snap-align:start}
.osv-carrossel__setas{display:flex;gap:var(--osv-e-2)}
.osv-carrossel__seta{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;border:1px solid var(--s-linha-forte);color:var(--s-texto);transition:background .3s,border-color .3s,opacity .3s}
.osv-carrossel__seta:hover{background:var(--osv-laranja);border-color:var(--osv-laranja);color:#1A0F05}
.osv-carrossel__seta[disabled]{opacity:.3;pointer-events:none}

/* ── Faixa (marquee) ───────────────────────────────────────────────────── */
.osv-faixa{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent)}
.osv-faixa__trilho{display:flex;width:max-content;animation:osv-faixa var(--duracao,40s) linear infinite}
.osv-faixa:hover .osv-faixa__trilho{animation-play-state:paused}
.osv-faixa__item{display:flex;align-items:center;gap:clamp(1.5rem,3vw,3rem);padding-right:clamp(1.5rem,3vw,3rem);white-space:nowrap;
  font:800 clamp(1.75rem,1.2rem + 2.4vw,3.25rem)/1 var(--osv-f-display);letter-spacing:-.03em;color:var(--s-texto)}
.osv-faixa__item i{font-style:normal;color:var(--osv-laranja);font-size:.6em}
.osv-faixa--contorno .osv-faixa__item{color:transparent;-webkit-text-stroke:1px var(--s-linha-forte)}
@keyframes osv-faixa{to{transform:translateX(-50%)}}

/* ── Lightbox ──────────────────────────────────────────────────────────── */
.osv-lightbox{position:fixed;inset:0;z-index:var(--osv-z-modal);display:grid;place-items:center;padding:var(--osv-gutter);background:rgba(8,6,4,.92);
  opacity:0;visibility:hidden;transition:opacity .35s,visibility .35s}
.osv-lightbox.is-aberto{opacity:1;visibility:visible}
.osv-lightbox__quadro{width:min(100%,1100px)}
.osv-lightbox__quadro :is(video,iframe,img){width:100%;aspect-ratio:16/9;border-radius:var(--osv-r-midia);background:#000;border:0}
.osv-lightbox__fechar{position:absolute;top:16px;right:16px;width:48px;height:48px;border-radius:50%;color:#fff;border:1px solid rgba(255,255,255,.25);font-size:1.25rem}

/* ── Rodapé ────────────────────────────────────────────────────────────── */
.osv-rodape{padding-block:var(--osv-e-10) var(--osv-e-6);border-top:1px solid var(--s-linha)}
.osv-rodape__grade{display:grid;grid-template-columns:1.6fr repeat(3,1fr);gap:var(--osv-e-7)}
@media(max-width:760px){.osv-rodape__grade{grid-template-columns:1fr 1fr}.osv-rodape__grade>:first-child{grid-column:1/-1}}
.osv-rodape h4{font:700 var(--osv-ts-rotulo)/1.2 var(--osv-f-texto);letter-spacing:var(--osv-tr-rotulo);text-transform:uppercase;color:var(--s-texto-3);margin-bottom:var(--osv-e-4)}
.osv-rodape ul{display:flex;flex-direction:column;gap:var(--osv-e-2);list-style:none;padding:0;font-size:.9375rem;color:var(--s-texto-2)}
.osv-rodape ul a:hover{color:var(--s-texto)}
.osv-rodape__base{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--osv-e-3);margin-top:var(--osv-e-9);padding-top:var(--osv-e-5);border-top:1px solid var(--s-linha);font-size:.8125rem;color:var(--s-texto-3)}

/* ── Barra fixa de oferta (aparece depois do hero) ─────────────────────── */
.osv-barra{position:fixed;left:50%;bottom:16px;z-index:var(--osv-z-barra);display:flex;align-items:center;gap:var(--osv-e-4);width:min(calc(100% - 24px),720px);
  padding:8px 8px 8px 20px;background:color-mix(in srgb,var(--osv-noite) 88%,transparent);color:#fff;border:1px solid rgba(255,255,255,.14);border-radius:var(--osv-r-pilula);
  -webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:0 20px 50px -20px rgba(0,0,0,.7);
  translate:-50% 150%;transition:translate .6s var(--osv-ease)}
.osv-barra.is-visivel{translate:-50% 0}
.osv-barra__texto{flex:1;min-width:0;font-size:.875rem;line-height:1.3}
.osv-barra__texto b{display:block;font:800 1rem var(--osv-f-display)}
.osv-barra .osv-btn{--s-acento:var(--osv-laranja);--s-acento-texto:#1A0F05;min-height:44px;flex:none}
@media(max-width:480px){.osv-barra__texto span{display:none}}

/* ── Movimento ─────────────────────────────────────────────────────────── */
/* Sem JS tudo aparece. O runtime adiciona .js no <html>. */
.js [data-revelar]{opacity:0;transform:translateY(28px);transition:opacity var(--osv-dur-lenta) var(--osv-ease),transform var(--osv-dur-lenta) var(--osv-ease);transition-delay:var(--atraso,0ms)}
.js [data-revelar=esquerda]{transform:translateX(-36px)}
.js [data-revelar=direita]{transform:translateX(36px)}
.js [data-revelar=escala]{transform:scale(.94)}
.js [data-revelar=cortina]{opacity:1;transform:none;clip-path:inset(0 0 100% 0)}
.js [data-revelar].is-visivel{opacity:1;transform:none;clip-path:inset(0 0 0 0)}
.js [data-revelar=cortina]{transition:clip-path 1.1s var(--osv-ease)}
/* Grupo escalonado: o runtime aplica --atraso em cada filho */
.js [data-revelar-grupo]>*{opacity:0;transform:translateY(24px);transition:opacity .8s var(--osv-ease),transform .8s var(--osv-ease);transition-delay:var(--atraso,0ms)}
.js [data-revelar-grupo].is-visivel>*{opacity:1;transform:none}
/* Ambientes */
.osv-flutua{animation:osv-flutua 6s ease-in-out infinite}
@keyframes osv-flutua{50%{transform:translateY(-10px)}}
.osv-gira-lento{animation:osv-gira 60s linear infinite}
@keyframes osv-gira{to{rotate:360deg}}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
  .js [data-revelar],.js [data-revelar-grupo]>*{opacity:1;transform:none;clip-path:none}
  .osv-faixa__trilho{animation:none}
}

/* ── Utilitários ───────────────────────────────────────────────────────── */
.osv-mt-0{margin-top:0}.osv-mt-2{margin-top:var(--osv-e-2)}.osv-mt-4{margin-top:var(--osv-e-4)}.osv-mt-6{margin-top:var(--osv-e-6)}.osv-mt-8{margin-top:var(--osv-e-8)}.osv-mt-10{margin-top:var(--osv-e-10)}
.osv-mb-0{margin-bottom:0}
.osv-largura-texto{max-width:var(--osv-medida)}
.osv-relativo{position:relative}
.osv-cor-acento{color:var(--s-rotulo)}
@media(max-width:760px){.osv-so-desktop{display:none!important}}
@media(min-width:761px){.osv-so-mobile{display:none!important}}

@media print{.osv-topo,.osv-barra,.osv-fundo,.osv-faixa{display:none!important}.js [data-revelar],.js [data-revelar-grupo]>*{opacity:1!important;transform:none!important}}

/* ==========================================================================
   v2.1 — REPERTÓRIO 21st, ADAPTADO AO OSV (escolhas do Lucas, 2026-10-04)
   Fundos animados · heróis · entradas de texto · botões especiais · bento · feixe · depoimentos
   Regra: cada fundo ANIMADO é um <div class="osv-fundo osv-fundo--X"> próprio (pode haver vários na seção).
   ========================================================================== */

/* ── Fundos animados ───────────────────────────────────────────────────── */
/* 1C · Chão de mapa em perspectiva (movimento de avanço) */
.osv-fundo--chao::before{inset:var(--chao-topo,48%) -50% -30% -50%;transform:perspective(420px) rotateX(64deg);transform-origin:top;
  background-image:linear-gradient(var(--s-chao,rgba(245,142,38,.34)) 1px,transparent 1px),linear-gradient(90deg,var(--s-chao,rgba(245,142,38,.34)) 1px,transparent 1px);
  background-size:52px 52px;-webkit-mask-image:linear-gradient(to bottom,transparent,#000 35%);mask-image:linear-gradient(to bottom,transparent,#000 35%);
  animation:osv-chao 3.2s linear infinite}
.osv-fundo--chao::after{background:radial-gradient(60% 22% at 50% var(--chao-topo,48%),var(--s-brilho),transparent 70%)}
@keyframes osv-chao{to{background-position:0 52px}}
.osv-sup--branco{--s-chao:rgba(245,142,38,.28)}

/* 2C · Holofotes de fim de tarde (manchas de luz que derivam) */
.osv-fundo--holofotes{background:radial-gradient(30% 30% at 55% 55%,var(--s-brilho-2),transparent 70%)}
.osv-fundo--holofotes::before,.osv-fundo--holofotes::after{inset:auto;width:min(60vw,560px);aspect-ratio:1;border-radius:50%;filter:blur(70px);opacity:var(--s-holofote-op,.75);
  animation:osv-deriva 16s ease-in-out infinite alternate}
.osv-fundo--holofotes::before{left:-10%;top:-20%;background:rgba(245,142,38,.6)}
.osv-fundo--holofotes::after{right:-12%;bottom:-25%;background:rgba(196,112,15,.55);animation-duration:21s;animation-direction:alternate-reverse}
@keyframes osv-deriva{to{transform:translate(12%,10%) scale(1.15)}}
.osv-sup--branco{--s-holofote-op:.28}

/* Aurora de pôr do sol — faixa de luz que ondula */
.osv-fundo--aurora::before{inset:-20% -30% auto -30%;height:70%;filter:blur(60px);opacity:var(--s-holofote-op,.75);
  background:linear-gradient(100deg,transparent 10%,rgba(245,142,38,.55) 30%,rgba(78,59,49,.7) 45%,rgba(249,168,74,.5) 60%,transparent 85%);background-size:200% 100%;
  animation:osv-aurora 18s ease-in-out infinite alternate;transform:rotate(-6deg)}
@keyframes osv-aurora{to{background-position:100% 0;transform:rotate(-2deg) translateY(6%)}}

/* Acima das nuvens — nuvens suaves que passam devagar */
.osv-fundo--nuvens::before{inset:0 -100% 0 0;opacity:var(--s-nuvem-op,.09);
  background:
   radial-gradient(14% 9% at 10% 30%,#fff,transparent 70%),radial-gradient(18% 10% at 22% 34%,#fff,transparent 70%),
   radial-gradient(12% 8% at 45% 70%,#fff,transparent 70%),radial-gradient(20% 11% at 58% 74%,#fff,transparent 70%),
   radial-gradient(15% 9% at 80% 40%,#fff,transparent 70%),radial-gradient(10% 7% at 88% 44%,#fff,transparent 70%);
  background-size:50% 100%;filter:blur(6px);animation:osv-nuvens 60s linear infinite}
@keyframes osv-nuvens{to{transform:translateX(-50%)}}
.osv-sup--branco{--s-nuvem-op:0}
.osv-sup--branco .osv-fundo--nuvens::before{opacity:.6;filter:blur(10px) drop-shadow(0 0 0 #E8E6E3);background-color:transparent;mix-blend-mode:multiply;
  background-image:radial-gradient(14% 9% at 10% 30%,#EEECEA,transparent 70%),radial-gradient(18% 10% at 22% 34%,#EEECEA,transparent 70%),radial-gradient(20% 11% at 58% 74%,#EEECEA,transparent 70%),radial-gradient(15% 9% at 80% 40%,#EEECEA,transparent 70%)}

/* Raios de sol — leque de luz girando devagar a partir de um canto */
.osv-fundo--raios::before{inset:-60%;left:calc(var(--raios-x,85%) - 60%);top:-80%;
  background:repeating-conic-gradient(from 0deg at 50% 50%,rgba(245,142,38,.16) 0 6deg,transparent 6deg 18deg);
  -webkit-mask-image:radial-gradient(closest-side,#000,transparent);mask-image:radial-gradient(closest-side,#000,transparent);animation:osv-gira 90s linear infinite}
.osv-sup--branco .osv-fundo--raios::before{background:repeating-conic-gradient(from 0deg at 50% 50%,rgba(245,142,38,.12) 0 6deg,transparent 6deg 18deg)}

/* Topografia — curvas de nível (mapa de relevo) */
.osv-fundo--topo::before{opacity:.9;
  background:
   repeating-radial-gradient(ellipse 60% 45% at 18% 30%,transparent 0 22px,var(--s-mapa) 22px 23px),
   repeating-radial-gradient(ellipse 50% 60% at 85% 80%,transparent 0 26px,var(--s-mapa) 26px 27px);
  -webkit-mask-image:linear-gradient(120deg,#000,transparent 55%,#000);mask-image:linear-gradient(120deg,#000,transparent 55%,#000);
  animation:osv-topo 30s ease-in-out infinite alternate}
@keyframes osv-topo{to{transform:scale(1.08) translate(-2%,1%)}}

/* ── Heróis ────────────────────────────────────────────────────────────── */
.osv-hero{position:relative;isolation:isolate;overflow:clip;min-height:min(100svh,920px);display:grid;align-items:center;
  padding:calc(76px + var(--osv-e-9)) 0 var(--osv-e-10)}
.osv-hero--curto{min-height:0}

/* Janela de avião — moldura com a foto do destino + nuvens passando */
.osv-janela{position:relative;width:min(100%,var(--janela-w,360px));aspect-ratio:3/4;margin-inline:auto;padding:16px;border-radius:44% 44% 44% 44% / 32% 32% 32% 32%;
  background:linear-gradient(145deg,#2A231D,#0F0C09);box-shadow:inset 0 2px 0 rgba(255,255,255,.08),0 40px 90px -30px rgba(0,0,0,.8),0 0 0 1px rgba(255,255,255,.06)}
.osv-janela__vidro{position:relative;width:100%;height:100%;overflow:hidden;border-radius:inherit;box-shadow:inset 0 0 0 6px #0B0907,inset 0 0 40px rgba(0,0,0,.7)}
.osv-janela__vidro img{width:100%;height:100%;object-fit:cover;object-position:var(--foco,center);animation:osv-respira 16s ease-in-out infinite alternate}
.osv-janela__vidro::before{content:"";position:absolute;inset:0;z-index:1;opacity:.5;
  background:radial-gradient(30% 12% at 20% 25%,#fff,transparent 70%),radial-gradient(35% 14% at 70% 60%,#fff,transparent 70%);filter:blur(8px);animation:osv-nuvens 14s linear infinite;width:200%}
.osv-janela__vidro::after{content:"";position:absolute;inset:0;z-index:2;background:linear-gradient(115deg,rgba(255,255,255,.18),transparent 35%)}
.osv-janela__persiana{position:absolute;left:16px;right:16px;top:16px;height:14%;z-index:3;border-radius:44% 44% 8px 8px / 100% 100% 8px 8px;background:linear-gradient(#3A3028,#221B15)}
@keyframes osv-respira{to{transform:scale(1.08)}}

/* Cartão de embarque — origem → destino, com rota e canhoto picotado */
.osv-embarque{position:relative;display:grid;grid-template-columns:1fr auto;width:min(100%,560px);border-radius:22px;color:var(--osv-tinta);background:#FBFAF8;
  box-shadow:0 40px 90px -30px rgba(0,0,0,.7);overflow:hidden;text-align:left}
.osv-embarque__corpo{padding:22px 26px;display:flex;flex-direction:column;gap:14px}
.osv-embarque__topo{display:flex;justify-content:space-between;align-items:center;font:700 .6875rem/1 var(--osv-f-texto);letter-spacing:.16em;text-transform:uppercase;color:var(--osv-tinta-3)}
.osv-embarque__topo b{color:var(--osv-laranja-fundo)}
.osv-embarque__rota{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px}
.osv-embarque__iata{font:900 clamp(2.5rem,2rem + 2.5vw,3.75rem)/.9 var(--osv-f-display);letter-spacing:-.03em;color:var(--osv-tinta)}
.osv-embarque__iata small{display:block;margin-top:6px;font:600 .75rem/1 var(--osv-f-texto);letter-spacing:0;color:var(--osv-tinta-3)}
.osv-embarque__iata .osv-roda{color:var(--osv-laranja)}
.osv-embarque__linha{position:relative;height:2px;border-top:2px dashed #CFCBC6}
.osv-embarque__linha::after{content:"✈";position:absolute;top:-14px;left:0;font-size:20px;color:var(--osv-laranja);animation:osv-voo 3.6s var(--osv-ease) infinite}
@keyframes osv-voo{0%{left:0;opacity:0}15%{opacity:1}85%{opacity:1}100%{left:calc(100% - 20px);opacity:0}}
.osv-embarque__dados{display:flex;gap:22px;flex-wrap:wrap;font-size:.75rem;color:var(--osv-tinta-3)}
.osv-embarque__dados b{display:block;font:800 .9375rem var(--osv-f-display);color:var(--osv-tinta)}
.osv-embarque__canhoto{position:relative;width:110px;padding:22px 16px;display:flex;flex-direction:column;justify-content:space-between;align-items:center;gap:10px;
  background:var(--osv-laranja);color:#1A0F05;border-left:2px dashed rgba(26,15,5,.35)}
.osv-embarque__canhoto::before,.osv-embarque__canhoto::after{content:"";position:absolute;left:-12px;width:22px;height:22px;border-radius:50%;background:var(--s-fundo)}
.osv-embarque__canhoto::before{top:-11px}.osv-embarque__canhoto::after{bottom:-11px}
.osv-embarque__canhoto b{font:900 1.75rem/1 var(--osv-f-display)}
.osv-embarque__codigo{width:100%;height:46px;background:repeating-linear-gradient(90deg,#1A0F05 0 2px,transparent 2px 4px,#1A0F05 4px 5px,transparent 5px 8px)}
@media(max-width:520px){.osv-embarque{grid-template-columns:1fr}.osv-embarque__canhoto{width:auto;flex-direction:row;border-left:0;border-top:2px dashed rgba(26,15,5,.35)}
  .osv-embarque__canhoto::before,.osv-embarque__canhoto::after{display:none}.osv-embarque__codigo{width:120px}}

/* Globo de arame com rota laranja e avião em órbita */
.osv-globo{position:relative;width:min(100%,var(--globo-w,420px));aspect-ratio:1;margin-inline:auto;border-radius:50%;
  background:radial-gradient(circle at 35% 30%,rgba(245,142,38,.18),transparent 60%);box-shadow:inset 0 0 0 1px var(--s-linha-forte),0 0 120px -20px var(--s-brilho)}
.osv-globo i{position:absolute;inset:0;border-radius:50%;border:1px solid var(--s-linha-forte)}
.osv-globo i:nth-child(1){inset:0 30%}.osv-globo i:nth-child(2){inset:0 12%}.osv-globo i:nth-child(3){inset:0 45%}
.osv-globo i:nth-child(4){inset:22% 0;border-radius:50%/50%}.osv-globo i:nth-child(5){inset:42% 0}.osv-globo i:nth-child(6){inset:8% 3%}
.osv-globo__meridianos{position:absolute;inset:0;animation:osv-globo 14s linear infinite}
@keyframes osv-globo{to{transform:rotateY(180deg)}}
.osv-globo__rota{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.osv-globo__rota path{fill:none;stroke:var(--osv-laranja);stroke-width:2;stroke-dasharray:5 7;stroke-linecap:round}
.osv-globo__aviao{position:absolute;left:0;top:0;font-size:20px;line-height:1;color:var(--osv-laranja-claro);offset-path:var(--rota-globo,path("M 60 300 C 120 80, 330 60, 360 160"));
  offset-rotate:auto;animation:osv-orbita 5s var(--osv-ease) infinite}
@keyframes osv-orbita{from{offset-distance:0%;opacity:0}10%{opacity:1}90%{opacity:1}to{offset-distance:100%;opacity:0}}
.osv-globo__pin{position:absolute;width:12px;height:12px;border-radius:50%;background:var(--osv-laranja);box-shadow:0 0 0 6px rgba(245,142,38,.25);animation:osv-pulso 2.4s infinite}

/* ── Entradas de texto (3A/3B/3C) ──────────────────────────────────────── */
/* data-texto="palavras" (3A desfoque) · data-texto="corte" (3B) — o runtime divide as palavras */
.js [data-texto] .osv-tx{display:inline-block;transition:opacity .8s var(--osv-ease),filter .8s var(--osv-ease),transform .9s var(--osv-ease);transition-delay:var(--atraso,0ms)}
.js [data-texto=palavras] .osv-tx{opacity:0;filter:blur(10px);transform:translateY(.3em)}
.js [data-texto=corte] .osv-tx-mask{display:inline-block;overflow:hidden;vertical-align:bottom;padding-bottom:.1em;margin-bottom:-.1em}
.js [data-texto=corte] .osv-tx{transform:translateY(108%)}
.js [data-texto].is-visivel .osv-tx{opacity:1;filter:none;transform:none}
/* 3C · varredura: <span class="osv-varre" data-varre="2400"><span>ao Peru</span><span>a Paris</span></span> */
.osv-varre{display:inline-grid;vertical-align:bottom}
.osv-varre>span{grid-area:1/1;opacity:0;transition:opacity .35s}
.osv-varre:not(.is-pronta)>span:first-child,.osv-varre>span.is-ativa{opacity:1}
.osv-varre>span.is-ativa{background:linear-gradient(90deg,var(--osv-laranja),var(--osv-laranja-claro) 35%,var(--s-script) 55%,var(--s-script));background-size:300% 100%;
  -webkit-background-clip:text;background-clip:text;color:transparent;animation:osv-varre 1.4s var(--osv-ease) both}
@keyframes osv-varre{from{background-position:100% 0}to{background-position:0 0}}

/* ── Botões especiais ──────────────────────────────────────────────────── */
/* 4A · Luz que contorna (CTA final, momento de decisão). Pílula escura em qualquer superfície. */
.osv-btn--contorna{--btn-cor:#fff;background:transparent;border:0;padding:calc(.95em + 1.5px) calc(1.65em + 1.5px)}
.osv-btn--contorna::before{content:"";position:absolute;inset:-160%;z-index:-2;
  background:conic-gradient(from 0deg,transparent 0 290deg,var(--osv-laranja) 325deg,#FFD9A8 345deg,transparent 360deg);animation:osv-gira 2.8s linear infinite}
.osv-btn--contorna::after{content:"";position:absolute;inset:1.5px;z-index:-1;border-radius:inherit;background:linear-gradient(180deg,#241B14,#110D0A)}
.osv-btn--contorna:hover{transform:translateY(-2px);box-shadow:0 14px 40px -12px rgba(245,142,38,.6)}
/* 4B · Holofote que segue o mouse (secundário premium) */
.osv-btn--holofote{--btn-cor:#fff;--btn-borda:rgba(245,142,38,.4);
  background:radial-gradient(130px circle at var(--mx,50%) var(--my,50%),rgba(245,142,38,.5),transparent 70%),#15100C}
.osv-btn--holofote:hover{--btn-borda:var(--osv-laranja)}
/* 4C · Joia: laranja com volume que afunda ao clicar (compra, inscrição) */
.osv-btn--joia{--btn-cor:#1A0F05;font-weight:800;letter-spacing:.005em;
  background:linear-gradient(180deg,rgba(255,255,255,.16),rgba(255,255,255,0) 50%),var(--osv-laranja);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.4),0 3px 0 var(--osv-laranja-fundo),0 16px 34px -14px rgba(245,142,38,.75);
  transition:transform .18s var(--osv-ease),box-shadow .18s var(--osv-ease),filter .2s}
.osv-btn--joia:hover{transform:translateY(-1px);filter:brightness(1.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.4),0 4px 0 var(--osv-laranja-fundo),0 20px 40px -14px rgba(245,142,38,.85)}
.osv-btn--joia:active{transform:translateY(3px);box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 0 0 var(--osv-laranja-fundo),0 6px 16px -8px rgba(245,142,38,.6)}

/* ── 5B · Bento ────────────────────────────────────────────────────────── */
.osv-bento{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:minmax(160px,auto);gap:var(--osv-e-3)}
.osv-bento>*{position:relative;display:flex;flex-direction:column;justify-content:flex-end;gap:var(--osv-e-2);padding:var(--osv-e-5);border-radius:var(--osv-r-card);
  background:var(--s-vidro);border:1px solid var(--s-linha);overflow:hidden;isolation:isolate;min-width:0}
.osv-bento__largo{grid-column:span 2}
.osv-bento__alto{grid-row:span 2}
.osv-bento__foto{grid-column:span 2;grid-row:span 2;color:#fff;border:0}
.osv-bento__foto>img{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--osv-ease)}
.osv-bento__foto:hover>img{transform:scale(1.05)}
.osv-bento__foto::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(to top,rgba(12,10,8,.88),transparent 60%)}
.osv-bento__foto .osv-d3,.osv-bento__foto .osv-d4{color:#fff}
.osv-bento__foto .osv-texto{color:rgba(255,255,255,.8)}
.osv-bento__acento{background:var(--osv-laranja);border:0}
.osv-bento__acento .osv-stat__numero,.osv-bento__acento .osv-d4{color:#1A0F05}
.osv-bento__acento .osv-stat__legenda,.osv-bento__acento .osv-texto{color:rgba(26,15,5,.75)}
.osv-bento__topo{justify-content:space-between}
@media(max-width:900px){.osv-bento{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.osv-bento{grid-template-columns:1fr}.osv-bento__largo,.osv-bento__foto{grid-column:span 1}.osv-bento__foto{min-height:320px}}

/* ── 5C · Card com feixe na borda (produto principal, oferta) ──────────── */
.osv-card--feixe{border-color:transparent;isolation:isolate;overflow:hidden;background:transparent}
.osv-card--feixe::before{content:"";position:absolute;inset:-70%;z-index:-2;
  background:conic-gradient(from 0deg,transparent 0 300deg,var(--osv-laranja) 340deg,transparent 360deg);animation:osv-gira 4.5s linear infinite}
.osv-card--feixe::after{content:"";position:absolute;inset:1px;z-index:-1;border-radius:calc(var(--osv-r-card) - 1px);background:var(--s-fundo-alt)}
.osv-sup--branco .osv-card--feixe::after{background:#fff}
.osv-oferta.osv-card--feixe{border-color:transparent}

/* ── 6A · Depoimentos em faixas opostas ────────────────────────────────── */
.osv-faixa--reversa .osv-faixa__trilho{animation-direction:reverse}
.osv-faixa__trilho>.osv-depo-mini{margin-right:var(--osv-e-3)}
.osv-depo-mini{display:flex;flex-direction:column;gap:6px;width:280px;flex:none;padding:var(--osv-e-4) var(--osv-e-5);border-radius:16px;
  background:var(--s-vidro);border:1px solid var(--s-linha);font-size:.875rem;line-height:1.45;color:var(--s-texto-2);white-space:normal}
.osv-depo-mini b{font:800 1.25rem/1 var(--osv-f-display);color:var(--s-rotulo)}
.osv-depo-mini cite{font-style:normal;font-weight:700;font-size:.8125rem;color:var(--s-texto)}
/* ── 6C · Cápsulas que abrem o print (data-lightbox) ───────────────────── */
.osv-capsula{display:inline-flex;align-items:center;gap:10px;flex:none;margin-right:var(--osv-e-2);padding:6px 16px 6px 6px;border-radius:var(--osv-r-pilula);
  background:var(--s-vidro);border:1px solid var(--s-linha);font-size:.875rem;color:var(--s-texto);white-space:nowrap;transition:border-color .3s,transform .3s var(--osv-ease)}
.osv-capsula:hover{border-color:var(--osv-laranja);transform:translateY(-2px)}
.osv-capsula__avatar{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;font:800 .875rem var(--osv-f-display);background:var(--osv-laranja);color:#1A0F05;overflow:hidden}
.osv-capsula__avatar img{width:100%;height:100%;object-fit:cover}
.osv-capsula b{color:var(--s-rotulo)}
.osv-capsula::after{content:"↗";font-size:.75rem;color:var(--s-texto-3)}

/* ==========================================================================
   v2.2 — FORMULÁRIOS COMPLETOS E FEEDBACK
   ========================================================================== */
.osv-form{display:flex;flex-direction:column;gap:var(--osv-e-5)}
.osv-form__linha{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));gap:var(--osv-e-4)}
.osv-fieldset{border:0;padding:0;display:flex;flex-direction:column;gap:var(--osv-e-3)}
.osv-fieldset legend{font:700 .9375rem var(--osv-f-texto);color:var(--s-texto);margin-bottom:var(--osv-e-3);padding:0}
.osv-campo__rotulo{display:flex;justify-content:space-between;gap:var(--osv-e-2)}
.osv-campo__rotulo .osv-opcional{font-weight:500;color:var(--s-texto-3)}
.osv-ajuda{font-size:.8125rem;color:var(--s-texto-3)}
.osv-contador{font-size:.75rem;color:var(--s-texto-3);font-variant-numeric:tabular-nums;text-align:right}
.osv-contador.is-limite{color:var(--s-rotulo);font-weight:700}
.osv-campo .osv-sucesso{display:none;font-size:.8125rem;font-weight:600;color:var(--s-texto)}
.osv-campo .osv-sucesso::before{content:"✓ ";color:var(--osv-verde)}
.osv-campo [aria-invalid=false].is-validado{border-color:var(--osv-verde)}
.osv-campo [aria-invalid=false].is-validado~.osv-sucesso{display:block}
.osv-campo :is(input,select,textarea):disabled{opacity:.5;cursor:not-allowed}
.osv-campo :is(input,select,textarea)::placeholder{color:var(--s-texto-3)}
/* Campo com ícone ou prefixo */
.osv-entrada{position:relative;display:flex;align-items:center}
.osv-entrada>input{flex:1;width:100%}
.osv-entrada__icone{position:absolute;left:1.1em;width:18px;height:18px;color:var(--s-texto-3);pointer-events:none}
.osv-entrada__icone~input{padding-left:2.9em}
.osv-entrada__prefixo{position:absolute;left:1.2em;font-weight:700;font-size:.9375rem;color:var(--s-texto-2);pointer-events:none}
.osv-entrada__prefixo~input{padding-left:3.6em}
.osv-entrada__acao{position:absolute;right:6px}
.osv-entrada__acao .osv-btn{min-height:40px}
/* Select */
.osv-campo select{appearance:none;-webkit-appearance:none;padding-right:2.8em;cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 9l6 6 6-6' fill='none' stroke='%23F58E26' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 1.1em center;background-size:18px}
.osv-campo select option{background:var(--s-fundo);color:var(--s-texto)}
/* Checkbox e rádio */
.osv-marca{display:flex;align-items:flex-start;gap:var(--osv-e-3);font-size:.9375rem;color:var(--s-texto-2);cursor:pointer;line-height:1.45}
.osv-marca input{appearance:none;-webkit-appearance:none;flex:none;width:22px;height:22px;margin:0;border:1.5px solid var(--s-linha-forte);background:var(--s-pilula);
  display:grid;place-items:center;cursor:pointer;transition:background .2s,border-color .2s}
.osv-marca input[type=checkbox]{border-radius:7px}
.osv-marca input[type=radio]{border-radius:50%}
.osv-marca input:checked{background:var(--osv-laranja);border-color:var(--osv-laranja)}
.osv-marca input[type=checkbox]:checked::before{content:"";width:12px;height:12px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5' fill='none' stroke='%231A0F05' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat}
.osv-marca input[type=radio]:checked::before{content:"";width:8px;height:8px;border-radius:50%;background:#1A0F05}
.osv-marca input:focus-visible{outline:2px solid var(--s-foco);outline-offset:3px}
.osv-marca input[aria-invalid=true]{border-color:#E5484D;border-width:2px}
.osv-marca strong{color:var(--s-texto)}
/* Interruptor (switch) */
.osv-chave{display:inline-flex;align-items:center;gap:var(--osv-e-3);font-size:.9375rem;color:var(--s-texto-2);cursor:pointer}
.osv-chave input{appearance:none;-webkit-appearance:none;position:relative;width:46px;height:26px;margin:0;border-radius:99px;background:var(--s-linha-forte);cursor:pointer;transition:background .3s}
.osv-chave input::before{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 2px 6px rgba(0,0,0,.3);transition:transform .35s var(--osv-ease)}
.osv-chave input:checked{background:var(--osv-laranja)}
.osv-chave input:checked::before{transform:translateX(20px)}
.osv-chave input:focus-visible{outline:2px solid var(--s-foco);outline-offset:3px}
/* Segmentado (escolha única em pílulas) */
.osv-segmentos{display:inline-flex;flex-wrap:wrap;gap:4px;padding:4px;border-radius:var(--osv-r-pilula);background:var(--s-pilula);border:1px solid var(--s-linha)}
.osv-segmentos input{position:absolute;opacity:0;pointer-events:none}
.osv-segmentos label{padding:.6em 1.2em;border-radius:var(--osv-r-pilula);font-size:.875rem;font-weight:600;color:var(--s-texto-2);cursor:pointer;transition:background .25s,color .25s}
.osv-segmentos input:checked+label{background:var(--osv-laranja);color:#1A0F05}
.osv-segmentos input:focus-visible+label{outline:2px solid var(--s-foco);outline-offset:2px}
/* Cartões de opção (quiz, perfil de viajante, escolha de plano) */
.osv-opcoes{display:grid;gap:var(--osv-e-3);grid-template-columns:repeat(auto-fit,minmax(min(var(--min,200px),100%),1fr))}
.osv-opcao{position:relative;display:flex;flex-direction:column;gap:6px;padding:var(--osv-e-5);border-radius:var(--osv-r-card);border:1.5px solid var(--s-linha);
  background:var(--s-vidro);cursor:pointer;transition:border-color .25s,transform .35s var(--osv-ease),box-shadow .35s}
.osv-opcao:hover{border-color:var(--s-linha-forte);transform:translateY(-2px)}
.osv-opcao input{position:absolute;opacity:0;pointer-events:none}
.osv-opcao__icone{font-size:1.75rem;line-height:1}
.osv-opcao__titulo{font:800 1.0625rem/1.2 var(--osv-f-display);color:var(--s-texto)}
.osv-opcao__texto{font-size:.8125rem;color:var(--s-texto-3)}
.osv-opcao::after{content:"";position:absolute;top:14px;right:14px;width:22px;height:22px;border-radius:50%;border:1.5px solid var(--s-linha-forte);transition:all .25s}
.osv-opcao:has(input:checked){border-color:var(--osv-laranja);box-shadow:0 0 0 4px rgba(245,142,38,.14)}
.osv-opcao:has(input:checked)::after{background:var(--osv-laranja) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5' fill='none' stroke='%231A0F05' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/12px no-repeat;border-color:var(--osv-laranja)}
.osv-opcao:has(input:focus-visible){outline:2px solid var(--s-foco);outline-offset:3px}
/* Upload */
.osv-upload{display:flex;flex-direction:column;align-items:center;gap:var(--osv-e-2);padding:var(--osv-e-7) var(--osv-e-5);border:1.5px dashed var(--s-linha-forte);border-radius:var(--osv-r-card);
  text-align:center;color:var(--s-texto-2);cursor:pointer;transition:border-color .25s,background .25s}
.osv-upload:hover,.osv-upload.is-arrastando{border-color:var(--osv-laranja);background:rgba(245,142,38,.06)}
.osv-upload input{position:absolute;opacity:0;width:1px;height:1px}
.osv-upload b{color:var(--s-texto)}
.osv-upload__arquivo{font-size:.8125rem;font-weight:700;color:var(--s-rotulo)}
/* Formulário em etapas */
.osv-etapas__barra{display:flex;align-items:center;gap:var(--osv-e-3);margin-bottom:var(--osv-e-6)}
.osv-etapas__trilho{flex:1;height:6px;border-radius:99px;background:var(--s-linha);overflow:hidden}
.osv-etapas__progresso{height:100%;width:var(--progresso,0%);border-radius:inherit;background:linear-gradient(90deg,var(--osv-laranja-fundo),var(--osv-laranja));transition:width .6s var(--osv-ease)}
.osv-etapas__contagem{font:700 .8125rem var(--osv-f-texto);color:var(--s-texto-3);font-variant-numeric:tabular-nums}
.osv-etapa{display:none;flex-direction:column;gap:var(--osv-e-5)}
.osv-etapa.is-ativa{display:flex;animation:osv-entra .6s var(--osv-ease)}
@keyframes osv-entra{from{opacity:0;transform:translateX(24px)}to{opacity:1;transform:none}}
.osv-etapas__nav{display:flex;justify-content:space-between;gap:var(--osv-e-3);margin-top:var(--osv-e-6)}
.osv-etapas__nav [data-etapa-voltar][hidden]{display:inline-flex;visibility:hidden}

/* ── Feedback ──────────────────────────────────────────────────────────── */
.osv-alerta{display:grid;grid-template-columns:auto 1fr auto;gap:var(--osv-e-3);align-items:start;padding:var(--osv-e-4) var(--osv-e-5);border-radius:16px;
  border:1px solid var(--s-linha);background:var(--s-vidro);font-size:.9375rem;color:var(--s-texto-2)}
.osv-alerta__icone{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;font-weight:800;font-size:.875rem;background:var(--alerta-cor,var(--osv-laranja));color:#1A0F05}
.osv-alerta b{display:block;color:var(--s-texto)}
.osv-alerta--sucesso{--alerta-cor:var(--osv-verde);border-color:rgba(76,175,80,.4)}
.osv-alerta--aviso{--alerta-cor:var(--osv-laranja);border-color:rgba(245,142,38,.45)}
.osv-alerta--erro{--alerta-cor:#E5484D;border-color:rgba(229,72,77,.45)}
.osv-alerta--erro .osv-alerta__icone{color:#fff}
.osv-alerta__fechar{width:28px;height:28px;border-radius:50%;color:var(--s-texto-3)}
.osv-alerta__fechar:hover{background:var(--s-grade);color:var(--s-texto)}
/* Toast */
.osv-toasts{position:fixed;right:16px;bottom:16px;z-index:var(--osv-z-modal);display:flex;flex-direction:column;gap:8px;width:min(calc(100% - 32px),380px)}
.osv-toast{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:16px;background:#15110D;color:#fff;border:1px solid rgba(255,255,255,.12);
  box-shadow:0 20px 50px -20px rgba(0,0,0,.7);font-size:.9375rem;animation:osv-toast .5s var(--osv-ease) both}
.osv-toast::before{content:"✓";display:grid;place-items:center;flex:none;width:26px;height:26px;border-radius:50%;background:var(--osv-laranja);color:#1A0F05;font-weight:800;font-size:.8125rem}
.osv-toast.is-saindo{animation:osv-toast-sai .3s ease forwards}
@keyframes osv-toast{from{opacity:0;transform:translateY(16px) scale(.97)}}
@keyframes osv-toast-sai{to{opacity:0;transform:translateY(10px)}}
/* Barra de progresso e indicador de vagas */
.osv-progresso{display:flex;flex-direction:column;gap:6px}
.osv-progresso__topo{display:flex;justify-content:space-between;font-size:.8125rem;font-weight:700;color:var(--s-texto-2)}
.osv-progresso__trilho{height:10px;border-radius:99px;background:var(--s-linha);overflow:hidden}
.osv-progresso__barra{height:100%;width:var(--valor,50%);border-radius:inherit;background:linear-gradient(90deg,var(--osv-laranja-fundo),var(--osv-laranja),var(--osv-laranja-claro));
  background-size:200% 100%;animation:osv-progresso 3s linear infinite}
@keyframes osv-progresso{to{background-position:-200% 0}}
/* Abas */
.osv-abas__lista{display:inline-flex;gap:4px;padding:4px;border-radius:var(--osv-r-pilula);background:var(--s-pilula);border:1px solid var(--s-linha);flex-wrap:wrap}
.osv-abas__aba{padding:.6em 1.2em;border-radius:var(--osv-r-pilula);font-size:.875rem;font-weight:600;color:var(--s-texto-2);transition:background .25s,color .25s}
.osv-abas__aba[aria-selected=true]{background:var(--osv-laranja);color:#1A0F05}
.osv-abas__painel{padding-top:var(--osv-e-5)}
.osv-abas__painel[hidden]{display:none}
/* Dica (tooltip) */
.osv-dica{position:relative;display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;border:1px solid var(--s-linha-forte);font-size:.6875rem;font-weight:800;color:var(--s-texto-2);cursor:help;vertical-align:middle}
.osv-dica::after{content:attr(data-dica);position:absolute;bottom:calc(100% + 10px);left:50%;translate:-50% 4px;width:max-content;max-width:240px;padding:8px 12px;border-radius:10px;
  background:#15110D;color:#fff;font:500 .8125rem/1.4 var(--osv-f-texto);text-align:left;opacity:0;pointer-events:none;transition:opacity .2s,translate .2s;z-index:5;box-shadow:0 10px 30px -10px rgba(0,0,0,.6)}
.osv-dica:hover::after,.osv-dica:focus-visible::after{opacity:1;translate:-50% 0}
/* Contador numérico de economia (calculadora simples) */
.osv-calc{display:grid;gap:var(--osv-e-4);padding:var(--osv-e-6);border-radius:calc(var(--osv-r-card) + 4px);background:var(--s-vidro);border:1px solid var(--s-linha)}
.osv-calc input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:6px;border-radius:99px;background:linear-gradient(90deg,var(--osv-laranja) var(--pct,50%),var(--s-linha) var(--pct,50%));outline:0}
.osv-calc input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:24px;height:24px;border-radius:50%;background:#fff;border:3px solid var(--osv-laranja);box-shadow:0 4px 12px rgba(0,0,0,.3);cursor:pointer}
.osv-calc input[type=range]::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:#fff;border:3px solid var(--osv-laranja);cursor:pointer}
.osv-calc input[type=range]:focus-visible{outline:2px solid var(--s-foco);outline-offset:6px}
.osv-calc__resultado{font:800 var(--osv-ts-numero)/1 var(--osv-f-display);letter-spacing:-.03em;color:var(--s-texto)}

/* ── Colunas de depoimentos (adaptado de "testimonial-v2" · 21st.dev) ─────
   <div class="osv-colunas-depo" data-colunas-depo>
     <ul class="osv-colunas-depo__coluna" style="--duracao:15s"> <li class="osv-depo-card">…</li> … </ul>  (×3)
   O runtime duplica cada lista para o loop ficar contínuo. 2ª coluna aparece ≥ 768px, 3ª ≥ 1024px. */
.osv-colunas-depo{display:flex;justify-content:center;gap:var(--osv-e-5);max-height:var(--altura,740px);overflow:hidden;
  -webkit-mask-image:linear-gradient(to bottom,transparent,#000 10%,#000 90%,transparent);mask-image:linear-gradient(to bottom,transparent,#000 10%,#000 90%,transparent)}
.osv-colunas-depo__coluna{flex:0 1 320px;min-width:0;margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:var(--osv-e-5);
  animation:osv-colunas-sobe var(--duracao,15s) linear infinite}
.osv-colunas-depo:hover .osv-colunas-depo__coluna{animation-play-state:paused}
.osv-colunas-depo__coluna:nth-child(2){display:none}.osv-colunas-depo__coluna:nth-child(3){display:none}
@media(min-width:768px){.osv-colunas-depo__coluna:nth-child(2){display:flex}}
@media(min-width:1024px){.osv-colunas-depo__coluna:nth-child(3){display:flex}}
@keyframes osv-colunas-sobe{to{transform:translateY(calc(-50% - var(--osv-e-5) / 2))}}
.osv-depo-card{padding:clamp(1.5rem,2.5vw,2.25rem);border-radius:24px;border:1px solid var(--s-linha);background:var(--s-vidro-solido);
  box-shadow:0 10px 30px -18px var(--s-sombra);transition:transform .45s var(--osv-ease-mola),box-shadow .45s var(--osv-ease),border-color .3s}
.osv-depo-card:hover,.osv-depo-card:focus-visible{transform:translateY(-8px) scale(1.03);border-color:color-mix(in srgb,var(--osv-laranja) 45%,transparent);
  box-shadow:0 25px 50px -12px var(--s-sombra);outline:none}
.osv-depo-card blockquote{margin:0}
.osv-depo-card__destaque{display:block;margin-bottom:var(--osv-e-3);font:800 1.375rem/1 var(--osv-f-display);letter-spacing:-.02em;color:var(--s-rotulo)}
.osv-depo-card p{color:var(--s-texto-2);line-height:1.65}
.osv-depo-card footer{display:flex;align-items:center;gap:var(--osv-e-3);margin-top:var(--osv-e-5)}
.osv-depo-card__avatar{display:grid;place-items:center;flex:none;width:42px;height:42px;border-radius:50%;overflow:hidden;font:800 1rem var(--osv-f-display);
  background:var(--osv-laranja);color:#1A0F05;box-shadow:0 0 0 2px var(--s-linha);transition:box-shadow .3s}
.osv-depo-card:hover .osv-depo-card__avatar{box-shadow:0 0 0 2px var(--osv-laranja)}
.osv-depo-card__avatar img{width:100%;height:100%;object-fit:cover}
.osv-depo-card cite{display:block;font-style:normal;font-weight:700;line-height:1.25;color:var(--s-texto)}
.osv-depo-card footer span{display:block;font-size:.875rem;color:var(--s-texto-3)}
/* Entrada da seção com leve giro (como no original) */
.js [data-revelar=giro]{opacity:0;transform:translateY(50px) rotate(-2deg);transition:opacity .8s var(--osv-ease),transform 1.2s var(--osv-ease)}
.js [data-revelar=giro].is-visivel{opacity:1;transform:none}
