/* Botão fixo de contato (orbe da home principal) e seletor de idioma, no canto inferior direito.
   No Hero, o botão de contato fica 100% oculto e os idiomas repousam na base com estética ultra clean.
   Fora do Hero, o botão de contato surge em bottom: 28px e os idiomas sobem para bottom: 104px. */
#escom-fixo{position:fixed;right:28px;bottom:28px;z-index:60;display:flex;flex-direction:column;align-items:center;gap:14px;width:64px;font-family:geist-mono,ui-monospace,monospace;opacity:0;pointer-events:none;visibility:hidden;transform:translateY(24px) scale(0.92);transition:opacity .35s,transform .35s,bottom .35s cubic-bezier(0.16, 1, 0.3, 1)}
.menu-open #escom-fixo{opacity:0 !important;pointer-events:none !important;transform:translateY(8px) !important}

/* FORA DO HERO: o botão se revela com suavidade */
body.fora-do-hero #escom-fixo, html.fora-do-hero #escom-fixo{opacity:1;pointer-events:auto;visibility:visible;transform:none}

/* NO HERO: Oculta terminantemente o botão Fale Conosco em qualquer tela e ancora os idiomas na base */
body.in-hero #escom-fixo, html.in-hero #escom-fixo,
body:not(.fora-do-hero) #escom-fixo, html:not(.fora-do-hero) #escom-fixo{opacity:0 !important;pointer-events:none !important;transform:translateY(24px) scale(0.92) !important;visibility:hidden !important;display:none !important}
body.in-hero .ef-idiomas, html.in-hero .ef-idiomas,
body:not(.fora-do-hero) .ef-idiomas, html:not(.fora-do-hero) .ef-idiomas{bottom:28px !important}
body.fora-do-hero .ef-idiomas, html.fora-do-hero .ef-idiomas{bottom:104px !important}

/* Idiomas: ultra clean, discreto, letras pequenas e finas escritas na vertical */
.ef-idiomas{position:fixed;right:28px;bottom:28px;z-index:60;width:28px;display:flex;flex-direction:column;align-items:center;gap:6px;mix-blend-mode:difference;transition:opacity .25s,transform .25s,bottom .35s cubic-bezier(0.16, 1, 0.3, 1)}
.menu-open .ef-idiomas{opacity:0;pointer-events:none;transform:translateY(8px)}

.ef-idiomas button{writing-mode:vertical-rl;transform:rotate(180deg);padding:2px 2px;border:0;background:none;color:#fff;opacity:.28;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,monospace;font-size:7.5px;font-weight:200;line-height:1;letter-spacing:.28em;text-transform:uppercase;cursor:pointer;transition:opacity .2s,transform .2s,color .2s}
.ef-idiomas button:hover{opacity:.85;transform:rotate(180deg) scale(1.08);color:#00e5ff}
.ef-idiomas button[aria-pressed=true]{opacity:.95;font-weight:400;color:#fff}
.ef-idiomas button:focus-visible{outline:1px solid #00e5ff;outline-offset:2px}
.ef-botao:focus-visible,.ef-painel a:focus-visible,.ef-fechar:focus-visible{outline:2px solid var(--color-brand,#00d1ff);outline-offset:2px}

.ef-contato{position:relative}
.ef-botao{position:relative;display:block;width:64px;height:64px;padding:0;border:0;background:none;cursor:pointer;-webkit-tap-highlight-color:transparent}
.ef-orbe{position:absolute;inset:0;border-radius:50%;background:rgba(0,0,0,.82);border:1px solid rgba(255,255,255,.2);display:grid;place-items:center;box-shadow:0 10px 35px rgba(0,0,0,.7),0 0 25px rgba(0,229,255,.25);transition:transform .3s,box-shadow .3s,border-color .3s}
.ef-orbe::before{content:"";position:absolute;inset:0;border-radius:50%;background:rgba(0,229,255,.15);filter:blur(8px);animation:ef-aura 2s ease-in-out infinite}
.ef-botao:hover .ef-orbe{transform:scale(1.05);border-color:rgba(0,229,255,.6);box-shadow:0 10px 40px rgba(0,229,255,.45)}
.ef-botao:active .ef-orbe{transform:scale(.95)}
.ef-orbe canvas{position:relative;width:48px;height:48px;border-radius:50%}
.ef-selo{position:absolute;top:-3px;right:-3px;width:20px;height:20px;border-radius:50%;background:#0cce6b;border:2px solid #000;display:grid;place-items:center;color:#000}
.ef-selo svg{width:10px;height:10px}

.ef-rotulo{position:absolute;right:calc(100% + 12px);top:50%;transform:translate(4px,-50%);display:flex;align-items:center;gap:8px;padding:6px 12px;border-radius:999px;background:rgba(0,0,0,.85);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.15);color:#e4e4e7;font:500 11px/1 geist-mono,ui-monospace,monospace;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;opacity:.85;pointer-events:none;transition:opacity .3s,transform .3s,color .3s}
.ef-botao:hover .ef-rotulo{opacity:1;transform:translate(0,-50%);color:#00e5ff}
.ef-ponto{width:6px;height:6px;border-radius:50%;background:#0cce6b;animation:ef-aura 2s ease-in-out infinite}

.ef-painel{position:absolute;right:calc(100% + 14px);bottom:0;width:300px;padding:16px;border-radius:16px;background:rgba(12,12,14,.96);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border:1px solid rgba(255,255,255,.15);box-shadow:0 20px 50px rgba(0,0,0,.8),0 0 30px rgba(0,229,255,.15);color:#fff;font-family:aktiv-grotesk,system-ui,sans-serif;animation:ef-entra .2s ease-out}
.ef-painel[hidden]{display:none}
.ef-aberto .ef-botao .ef-rotulo{opacity:0}
.ef-topo{display:flex;align-items:center;justify-content:space-between;padding-bottom:12px;border-bottom:1px solid rgba(255,255,255,.1)}
.ef-status{display:flex;align-items:center;gap:8px;font:600 11px/1 geist-mono,ui-monospace,monospace;letter-spacing:.08em;text-transform:uppercase}
.ef-fechar{display:grid;place-items:center;width:28px;height:28px;padding:0;border:0;background:none;color:#a1a1aa;cursor:pointer;font-size:18px;line-height:1}
.ef-fechar:hover{color:#fff}
.ef-texto{margin:12px 0 0;color:#d4d4d8;font-size:13px;line-height:1.55}
.ef-acoes{display:flex;flex-direction:column;gap:8px;margin-top:16px}
.ef-acoes a{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 14px;border-radius:12px;text-decoration:none;font-size:13px;transition:background-color .2s,box-shadow .2s}
.ef-whats{background:#0cce6b;color:#000;font-weight:600}
.ef-whats:hover{background:#00e5ff;box-shadow:0 0 20px rgba(0,229,255,.4)}
.ef-form{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);color:#fff;font:500 12px/1.2 geist-mono,ui-monospace,monospace!important;letter-spacing:.02em}
.ef-form:hover{background:rgba(255,255,255,.1)}
.ef-form span:last-child{color:#00e5ff}

/* A thumbnail do projeto em destaque no hero fica ancorada no canto inferior direito natural;
   o botão de contato e os seletores de idiomas ficam posicionados acima dela */
@media(min-width:1024px){
  #inicio>.grid-container>a.absolute,#hero-continuation>.grid-container>a.absolute{right:28px;bottom:28px;z-index:20}
}

@keyframes ef-aura{50%{opacity:.45}}
@keyframes ef-entra{from{opacity:0;transform:translateY(10px)}}

@media(max-width:639px){
  #escom-fixo{right:16px;bottom:16px;gap:10px;width:56px}
  .ef-botao{width:56px;height:56px}
  .ef-orbe canvas{width:42px;height:42px}
  .ef-rotulo{display:none}
  .ef-painel{right:0;bottom:calc(100% + 12px);width:min(300px,calc(100vw - 32px))}
  .ef-idiomas{right:14px;bottom:20px;width:24px;gap:5px}
  body.fora-do-hero .ef-idiomas, html.fora-do-hero .ef-idiomas{bottom:84px !important}
  body.in-hero .ef-idiomas, html.in-hero .ef-idiomas,
  body:not(.fora-do-hero) .ef-idiomas, html:not(.fora-do-hero) .ef-idiomas{bottom:20px !important}
  .ef-idiomas button{font-size:7px;letter-spacing:.22em}
  .ef-idiomas.ef-oculto{opacity:0;pointer-events:none;transform:translateY(8px)}
}
@media(prefers-reduced-motion:reduce){
  .ef-orbe::before,.ef-ponto{animation:none}
  .ef-painel{animation:none}
}
