/* TO EVENTOS V7 — somente os cinco ajustes aprovados.
   Todas as mídias preservam sua proporção original. */
:root{--to-orange:#FF4D00;--to-paper:#F4F4F2;--to-graphite:#1A1A1A;--to-hero-ambient:#ff6108}
.hero-scroll-stage .hero{height:100vh;height:100dvh;min-height:100vh;min-height:100dvh;max-height:100dvh}
.hero-scroll-stage .hero-film-screen{background:var(--to-hero-ambient);overflow:hidden}
.hero-scroll-stage .hero-film-screen video{width:100%;height:100%;object-fit:contain;object-position:center center;background:var(--to-hero-ambient);aspect-ratio:auto}
.hero-scroll-stage .hero-visual video{object-fit:contain;object-position:center center}
.to-hero-scroll-cue{position:absolute;z-index:12;left:50%;top:50%;bottom:auto;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:10px;pointer-events:none;opacity:1;padding:0;background:transparent;border:0;box-shadow:none;border-radius:0;filter:none}
.to-cue-label{font:700 11px/1.25 var(--font-ui,Inter,sans-serif);letter-spacing:.16em;text-transform:uppercase;color:var(--to-graphite);text-shadow:none;white-space:nowrap}
.to-cue-mouse{position:relative;width:34px;height:52px;border:1.7px solid var(--to-graphite);border-radius:20px;background:transparent;box-shadow:none}
.to-cue-wheel{position:absolute;left:50%;top:8px;width:4px;height:10px;border-radius:999px;background:var(--to-graphite);transform:translateX(-50%);box-shadow:none;animation:to-cue-wheel 1.25s ease-in-out infinite}
.to-cue-direction{width:7px;height:7px;border-right:2px solid var(--to-graphite);border-bottom:2px solid var(--to-graphite);transform:rotate(45deg);margin-top:-2px}
@keyframes to-cue-wheel{0%,100%{opacity:.32;top:8px}45%{opacity:1;top:25px}}
/* Sobre: não alterar o grid. O GSAP controla somente transform/opacity dos filhos da cópia. */
#sobre .about-copy{min-width:0}
#sobre .botanical-motion{position:relative}
#sobre .botanical-motion video{aspect-ratio:9/16;object-fit:contain;width:100%;height:auto;max-width:400px}
/* Florais a partir dos limites reais NÃO transparentes de cada imagem. */
#solucoes{overflow:clip}
#solucoes .solutions-florals{overflow:clip;pointer-events:none}
#solucoes .solutions-floral{height:auto;max-width:none;object-fit:contain;pointer-events:none;aspect-ratio:auto}
#solucoes .solutions-floral-left{top:5%;left:-45px;width:clamp(120px,10.5vw,175px)}
#solucoes .solutions-floral-right{top:37%;right:-52px;width:clamp(140px,12vw,205px)}
/* Não ocultar flores se GSAP não carregar. Animações adicionam classe somente após inicialização. */
.florals-enhanced #solucoes .solutions-floral{opacity:0}
#projetos .case-featured .case-image{min-width:0;overflow:clip}
#projetos .case-featured .case-image video{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:contain;object-position:center;background:var(--to-graphite)}
/* PDF Showcase: mesma coluna e mesmo painel da apresentação existente. */
#projetos .to-pdf-showcase{min-width:0;width:100%;background:var(--to-paper);border:1px solid rgba(26,26,26,.2);color:var(--to-graphite)}
#projetos .to-pdf-stage{position:relative;width:100%;aspect-ratio:16/9;display:grid;place-items:center;overflow:hidden;background:#161616}
#projetos .to-pdf-stage canvas{display:block;max-width:100%;max-height:100%;width:100%;height:auto;aspect-ratio:16/9;object-fit:contain}
#projetos .to-pdf-fallback{display:none;width:100%;height:100%;border:0}
#projetos .to-pdf-showcase.is-fallback canvas{display:none}
#projetos .to-pdf-showcase.is-fallback .to-pdf-fallback{display:block}
#projetos .to-pdf-loading{position:absolute;inset:0;display:grid;place-items:center;color:var(--to-paper);font:600 12px/1.4 var(--font-ui,Inter,sans-serif);letter-spacing:.08em;text-align:center;padding:16px}
#projetos .to-pdf-showcase.is-ready .to-pdf-loading{display:none}
#projetos .to-pdf-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:12px 14px;border-top:1px solid rgba(26,26,26,.16);font:600 12px/1.2 var(--font-ui,Inter,sans-serif)}
#projetos .to-pdf-controls button,#projetos .to-pdf-controls a{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:8px 12px;border:1px solid rgba(26,26,26,.22);background:transparent;color:var(--to-graphite);font:inherit;text-decoration:none;cursor:pointer}
#projetos .to-pdf-controls button:hover,#projetos .to-pdf-controls a:hover{background:var(--to-orange);border-color:var(--to-orange)}
#projetos .to-pdf-controls button:focus-visible,#projetos .to-pdf-controls a:focus-visible{outline:2px solid var(--to-orange);outline-offset:3px}
#projetos .to-pdf-controls button:disabled{opacity:.4;cursor:not-allowed}
#projetos .to-pdf-counter{white-space:nowrap;min-width:68px;text-align:center;font-variant-numeric:tabular-nums}
#projetos .to-pdf-fullscreen{margin-left:auto}
#projetos .to-pdf-showcase:fullscreen{display:flex;flex-direction:column;background:var(--to-graphite);padding:clamp(12px,2vw,36px)}
#projetos .to-pdf-showcase:fullscreen .to-pdf-stage{flex:1;min-height:0;aspect-ratio:auto}
#projetos .to-pdf-showcase:fullscreen .to-pdf-stage canvas{height:auto;max-height:100%;width:auto}
#projetos .to-pdf-showcase:fullscreen .to-pdf-controls{background:var(--to-paper)}
#projetos .to-pdf-showcase:-webkit-full-screen{display:flex;flex-direction:column;background:var(--to-graphite);padding:clamp(12px,2vw,36px)}
#projetos .to-pdf-showcase:-webkit-full-screen .to-pdf-stage{flex:1;min-height:0;aspect-ratio:auto}
#projetos .to-pdf-showcase:-webkit-full-screen .to-pdf-stage canvas{height:auto;max-height:100%;width:auto}
#projetos .to-pdf-showcase:-webkit-full-screen .to-pdf-controls{background:var(--to-paper)}
.to-pdf-showcase.is-fullscreen-fallback{position:fixed!important;inset:0;z-index:10000;display:flex;flex-direction:column;box-sizing:border-box;width:100vw;height:100vh;height:100dvh;max-height:none;margin:0;border:0;background:var(--to-graphite);color:var(--to-paper);padding:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))}
.to-pdf-showcase.is-fullscreen-fallback .to-pdf-stage{position:relative;display:grid;place-items:center;flex:1;min-height:0;width:100%;aspect-ratio:auto;overflow:hidden;background:#161616}
.to-pdf-showcase.is-fullscreen-fallback .to-pdf-stage canvas{display:block;max-width:100%;max-height:100%;width:auto!important;height:auto!important;object-fit:contain}
.to-pdf-showcase.is-fullscreen-fallback .to-pdf-fallback{display:none;width:100%;height:100%;border:0}
.to-pdf-showcase.is-fullscreen-fallback.is-fallback .to-pdf-fallback{display:block}
.to-pdf-showcase.is-fullscreen-fallback.is-fallback canvas{display:none}
.to-pdf-showcase.is-fullscreen-fallback [hidden]{display:none!important}
.to-pdf-showcase.is-fullscreen-fallback.is-ready .to-pdf-loading{display:none}
.to-pdf-showcase.is-fullscreen-fallback .to-pdf-controls{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;padding:12px;background:var(--to-paper);color:var(--to-graphite)}
.to-pdf-showcase.is-fullscreen-fallback .to-pdf-controls button,.to-pdf-showcase.is-fullscreen-fallback .to-pdf-controls a{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:9px 14px;border:1px solid rgba(26,26,26,.22);background:transparent;color:var(--to-graphite);font:600 12px/1.2 var(--font-ui,Inter,sans-serif);text-decoration:none;cursor:pointer}
.to-pdf-showcase.is-fullscreen-fallback .to-pdf-controls button:hover,.to-pdf-showcase.is-fullscreen-fallback .to-pdf-controls a:hover{background:var(--to-orange);border-color:var(--to-orange)}
html.to-pdf-fallback-active,html.to-pdf-fallback-active body{overflow:hidden}
#projetos .to-pdf-controls [hidden]{display:none!important}
#projetos .to-pdf-exit-fullscreen{background:var(--to-paper);color:var(--to-graphite)}
@media(max-width:1100px){
  #solucoes .solutions-floral-left{left:-35px;width:clamp(95px,11vw,140px)}
  #solucoes .solutions-floral-right{right:-40px;width:clamp(115px,14vw,165px)}
}
@media(max-width:899px){
  .to-hero-scroll-cue{top:50%;bottom:auto;transform:translate(-50%,-50%);gap:8px}
  .to-cue-mouse{width:30px;height:46px}
  .to-cue-wheel{height:9px;top:7px}
  .to-cue-label{font-size:9px;letter-spacing:.13em}
}
@media(max-width:720px){
  #solucoes .solutions-floral-left{top:2%;left:-42px;width:94px}
  #solucoes .solutions-floral-right{top:46%;right:-48px;width:108px}
  #projetos .to-pdf-controls{padding:9px;gap:6px}
  #projetos .to-pdf-controls button,#projetos .to-pdf-controls a{min-height:40px;padding:7px 9px}
  #projetos .to-pdf-fullscreen{margin-left:0}
}
@media(prefers-reduced-motion:reduce){
  .to-cue-wheel{animation:none;top:16px}
  .to-hero-scroll-cue{display:none}
  .florals-enhanced #solucoes .solutions-floral{opacity:1;transform:none}
}

/* Preserve document width while floral images are lazy-loaded and animated. */
#solucoes .solutions-florals{overflow:hidden;contain:paint}

/* Hard containment for the ornamental layers, including lazy images on 360px screens. */
#solucoes{overflow:hidden;contain:paint}
#solucoes .solutions-floral-left{aspect-ratio:720/1613}
#solucoes .solutions-floral-right{aspect-ratio:706/1527}

/* Decorative offscreen GSAP travel must never enable page-level horizontal panning. */
html,body{overflow-x:clip;max-width:100%}


/* V7.3 · Um único vídeo original, sem tiling, canvas ou pixels espelhados.
   Upscale por CSS não cria detalhe, então preservamos o MP4 original.
   Em paisagem, cover preenche integralmente o viewport com crop controlado.
   Em retrato, a arte horizontal fica inteira com transição suave no próprio
   laranja da animação: nunca duplicamos letras, bordas ou texturas. */
:root{--to-hero-ambient:#ff6108}
.hero-scroll-stage .hero-film-screen{
  background:var(--to-hero-ambient);
  isolation:isolate;
}
.hero-scroll-stage .hero-film-screen video{
  position:absolute;
  inset:0;
  display:block;
  width:100%;
  height:100%;
  max-width:none;
  object-fit:cover;
  object-position:center center;
  background:var(--to-hero-ambient);
  transform:none;
  -webkit-mask-image:none;
  mask-image:none;
}
/* Proporções próximas do quadrado/retrato: preservar o logo do vídeo.
   A área restante é o mesmo laranja, sem repetição ou emenda de imagens. */
@media (max-aspect-ratio: 3/2){
  .hero-scroll-stage .hero-film-screen video{
    inset:auto;
    top:50%;
    left:0;
    width:100%;
    height:auto;
    aspect-ratio:16 / 9;
    object-fit:contain;
    transform:translateY(-50%);
    -webkit-mask-image:linear-gradient(to bottom,transparent 0%,#000 13%,#000 87%,transparent 100%);
    mask-image:linear-gradient(to bottom,transparent 0%,#000 13%,#000 87%,transparent 100%);
  }
}
/* A transição para o enquadramento final deve conservar a arte íntegra. */
.hero-scroll-stage.is-hero-framed .hero-film-screen video{
  position:absolute;
  inset:0;
  top:0;
  left:0;
  width:100%;
  height:100%;
  transform:none;
  object-fit:contain;
  -webkit-mask-image:none;
  mask-image:none;
}
