/* Site do Viquis 3D — www.viquis.com
   Cores e letras da marca (marca/marca.py): laranja #E8821A, tinta #1A2432, verde-água #0FA396 (só interface),
   cinza #5B6B7F, papel #F2F5F8; Chakra Petch (títulos), IBM Plex Sans (texto), IBM Plex Mono (cotas).
   Linguagem gráfica: folha de desenho técnico — fios finos, cotas com setas, cantos de enquadramento, legenda no rodapé. */

:root{
  --papel:#ffffff; --papel2:#f2f5f8; --papel3:#e9eef3;
  --tinta:#1a2432; --tinta2:#3a4656; --cinza:#5b6b7f;
  --linha:#d9e0e8; --linha-forte:#b9c4d0;
  --laranja:#e8821a; --laranja-texto:#b25f07; --laranja-fundo:#fdf1e4;
  --verde:#0b8a7f; --verde-fundo:#e3f5f3; --vermelho:#d93d42;
  --topo:64px; --largura:1240px; --margem:clamp(16px, 4vw, 40px);
  --f-titulo:'Chakra Petch', 'IBM Plex Sans', system-ui, sans-serif;
  --f-texto:'IBM Plex Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --f-mono:'IBM Plex Mono', ui-monospace, 'Cascadia Mono', monospace;
  color-scheme: light;
}
:root[data-theme="dark"]{
  --papel:#0f151d; --papel2:#141c26; --papel3:#1a2431;
  --tinta:#edf1f5; --tinta2:#c9d2dc; --cinza:#93a2b3;
  --linha:#243040; --linha-forte:#344356;
  --laranja-texto:#f29a3f; --laranja-fundo:#2a1c0e;
  --verde:#2ec4b6; --verde-fundo:#0e2a28; --vermelho:#ff6b6f;
  color-scheme: dark;
}
:lang(ja), :lang(ko), :lang(zh){
  --f-titulo:'Chakra Petch', 'Hiragino Sans', 'Yu Gothic UI', 'Meiryo', 'Malgun Gothic', 'Microsoft YaHei', 'PingFang SC', 'Noto Sans CJK JP', system-ui, sans-serif;
  --f-texto:'IBM Plex Sans', 'Hiragino Sans', 'Yu Gothic UI', 'Meiryo', 'Malgun Gothic', 'Microsoft YaHei', 'PingFang SC', 'Noto Sans CJK JP', system-ui, sans-serif;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-padding-top:calc(var(--topo) + 16px); }
body:not(.pg-inicio) main{ padding-bottom:clamp(64px, 9vw, 128px); }
body{ margin:0; background:var(--papel); color:var(--tinta); font:400 1.0625rem/1.6 var(--f-texto);
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; overflow-x:hidden; }
img,svg,canvas{ display:block; max-width:100%; }
img{ height:auto; }
a{ color:inherit; text-decoration-thickness:1px; text-underline-offset:3px; }
h1,h2,h3{ font-family:var(--f-titulo); font-weight:700; line-height:1.05; letter-spacing:-.02em; margin:0; text-wrap:balance; overflow-wrap:break-word; hyphens:manual; }
:lang(ja) :is(h1,h2,h3), :lang(ko) :is(h1,h2,h3), :lang(zh) :is(h1,h2,h3){ letter-spacing:0; line-height:1.25; }
:lang(ko) :is(h1,h2,h3,p){ word-break:keep-all; }
:lang(ja) :is(h1,h2,h3), :lang(zh) :is(h1,h2,h3){ line-break:strict; }
p{ margin:0; text-wrap:pretty; }
code{ font-family:var(--f-mono); font-size:.9em; }
:focus-visible{ outline:2px solid var(--laranja); outline-offset:3px; }
.largura{ width:100%; max-width:var(--largura); margin:0 auto; padding:0 var(--margem); }
.estreita{ max-width:860px; }
.saltar{ position:absolute; left:-9999px; top:8px; z-index:100; background:var(--tinta); color:var(--papel); padding:8px 14px; }
.saltar:focus{ left:8px; }

/* temas: imagens da app em claro ou escuro */
:root[data-theme="dark"] .so-claro, :root:not([data-theme="dark"]) .so-escuro{ display:none !important; }

/* ---------------------------------------------------------------- botões */
.btn{ display:inline-flex; align-items:center; justify-content:center; gap:.55em; min-height:44px; padding:.6em 1.2em;
  font:600 .98rem/1.1 var(--f-titulo); letter-spacing:.02em; text-decoration:none; border:1px solid transparent; border-radius:4px;
  cursor:pointer; transition:background .2s, color .2s, border-color .2s, transform .2s; white-space:nowrap; }
.btn svg{ width:1.15em; height:1.15em; flex:none; }
.btn-laranja{ background:var(--laranja); color:#1a2432; }
.btn-laranja:hover{ background:#f0922f; transform:translateY(-1px); }
.btn-tinta{ background:var(--tinta); color:var(--papel); }
.btn-tinta:hover{ background:var(--tinta2); }
.btn-linha{ border-color:var(--linha-forte); color:var(--tinta); background:transparent; }
.btn-linha:hover{ border-color:var(--tinta); }
.btn-breve{ border:1px dashed var(--linha-forte); color:var(--cinza); background:var(--papel2); cursor:default; }
.btn-grande{ min-height:52px; padding:.8em 1.5em; font-size:1.05rem; }
.btn-peq{ min-height:38px; padding:.45em .95em; font-size:.9rem; }
.botoes{ display:flex; flex-wrap:wrap; gap:12px; }
.mais{ margin-top:28px; font-weight:500; }
.mais a{ display:inline-flex; align-items:center; gap:.4em; color:var(--laranja-texto); text-decoration:none; font-family:var(--f-titulo); font-weight:600; letter-spacing:.01em; }
.mais a svg{ width:1.1em; height:1.1em; transition:transform .2s; }
.mais a:hover svg{ transform:translateX(3px); }

/* ---------------------------------------------------------------- cabeçalho */
.topo{ position:sticky; top:0; z-index:50; height:var(--topo); border-bottom:1px solid var(--linha); }
/* o vidro fica numa camada de fundo: um backdrop-filter na própria barra prendia o menu do telemóvel
   (position:fixed) dentro da barra, com 44 px de altura (31-10-2026) */
.topo::before{ content:''; position:absolute; inset:0; z-index:-1; background:color-mix(in srgb, var(--papel) 86%, transparent);
  backdrop-filter:saturate(1.4) blur(14px); -webkit-backdrop-filter:saturate(1.4) blur(14px); pointer-events:none; }
.topo-in{ height:100%; max-width:var(--largura); margin:0 auto; padding:0 var(--margem); display:flex; align-items:center; gap:28px; }
.logo{ display:inline-flex; color:var(--tinta); flex:none; }
.logo-svg{ height:28px; width:auto; }
.nav{ display:flex; gap:22px; margin-right:auto; }
.nav a{ text-decoration:none; color:var(--tinta2); font-size:.95rem; font-weight:500; padding:6px 0; border-bottom:2px solid transparent; }
.nav a:hover, .nav a[aria-current="page"]{ color:var(--tinta); border-bottom-color:var(--laranja); }
.topo-acoes{ display:flex; align-items:center; gap:8px; margin-left:auto; }
.icone-btn{ width:40px; height:40px; display:grid; place-items:center; background:none; border:1px solid transparent; border-radius:4px; color:var(--tinta2); cursor:pointer; padding:0; }
.icone-btn:hover{ border-color:var(--linha); color:var(--tinta); }
.icone-btn svg{ width:20px; height:20px; }
:root[data-theme="dark"] #btn-tema svg:first-child, :root:not([data-theme="dark"]) #btn-tema svg:last-child{ display:none; }
.menu-btn{ display:none; }
.linguas{ position:relative; }
.linguas summary{ list-style:none; display:flex; align-items:center; gap:6px; height:40px; padding:0 8px; border-radius:4px; cursor:pointer; color:var(--tinta2);
  font:500 .85rem var(--f-mono); border:1px solid transparent; }
.linguas summary::-webkit-details-marker{ display:none; }
.linguas summary:hover, .linguas[open] summary{ border-color:var(--linha); color:var(--tinta); }
.linguas summary svg{ width:18px; height:18px; }
.linguas-lista{ position:absolute; right:0; top:calc(100% + 8px); width:min(440px, calc(100vw - 32px)); background:var(--papel); border:1px solid var(--linha-forte);
  display:grid; grid-template-columns:repeat(3, 1fr); padding:8px; gap:2px; box-shadow:0 18px 40px -20px rgba(10,20,30,.35); }
.linguas-lista a{ padding:9px 10px; text-decoration:none; font-size:.92rem; border-radius:3px; }
.linguas-lista a:hover{ background:var(--papel2); }
.linguas-lista a[aria-current="true"]{ color:var(--laranja-texto); font-weight:600; }

/* ---------------------------------------------------------------- cantos de enquadramento e cotas */
.cantos{ position:relative; }
.cantos::before, .cantos::after{ content:''; position:absolute; width:18px; height:18px; border:1.5px solid var(--linha-forte); pointer-events:none; z-index:2; }
.cantos::before{ top:0; left:0; border-right:0; border-bottom:0; }
.cantos::after{ bottom:0; right:0; border-left:0; border-top:0; }
.cota{ position:relative; height:18px; margin-bottom:22px; max-width:220px; color:var(--laranja); }
.cota span{ position:absolute; left:0; right:0; top:8px; height:1.5px; background:currentColor; }
.cota::before, .cota::after{ content:''; position:absolute; top:0; width:1.5px; height:18px; background:currentColor; }
.cota::before{ left:0; } .cota::after{ right:0; }
.cota span::before, .cota span::after{ content:''; position:absolute; top:-4px; border:4.5px solid transparent; }
.cota span::before{ left:1px; border-right:9px solid currentColor; border-left:0; }
.cota span::after{ right:1px; border-left:9px solid currentColor; border-right:0; }

/* ---------------------------------------------------------------- página inicial: palco com o 3D */
.palco{ display:grid; grid-template-columns:minmax(0, 5fr) minmax(0, 7fr); position:relative;
  background:linear-gradient(var(--papel), var(--papel)) padding-box; }
.palco::before{ content:''; position:absolute; inset:0; pointer-events:none; opacity:.55;
  background-image:linear-gradient(var(--linha) 1px, transparent 1px), linear-gradient(90deg, var(--linha) 1px, transparent 1px);
  background-size:48px 48px; mask-image:radial-gradient(ellipse 60% 70% at 70% 45%, #000 0%, transparent 75%); -webkit-mask-image:radial-gradient(ellipse 60% 70% at 70% 45%, #000 0%, transparent 75%); }
.palco-visor{ grid-column:2; grid-row:1; position:sticky; top:var(--topo); height:calc(100vh - var(--topo)); height:calc(100svh - var(--topo));
  padding:28px var(--margem) 28px 0; display:flex; flex-direction:column; }
.visor-moldura{ flex:1; position:relative; min-height:0; }
#visor{ position:absolute; inset:0; width:100%; height:100%; cursor:grab; touch-action:pan-y; }
#visor:active{ cursor:grabbing; }
.visor-reserva{ display:none; position:absolute; inset:10% 4%; }
.sem-3d .visor-reserva{ display:block; }
.sem-3d #visor, .sem-3d .dica-arrastar{ display:none; }
.visor-reserva img{ width:100%; height:100%; object-fit:contain; }
.dica-arrastar{ position:absolute; left:50%; bottom:14px; transform:translateX(-50%); font:500 .78rem var(--f-mono); color:var(--cinza); letter-spacing:.04em; white-space:nowrap; transition:opacity .6s; }
.mexeu .dica-arrastar{ opacity:0; }
.rotulos, .rotulos-linhas{ position:absolute; inset:0; pointer-events:none; width:100%; height:100%; overflow:visible; }
.rotulo{ position:absolute; left:0; top:0; display:flex; align-items:center; gap:8px; white-space:nowrap; opacity:0; will-change:transform, opacity;
  font:500 .86rem/1 var(--f-mono); color:var(--tinta); background:var(--papel); border:1px solid var(--linha-forte); padding:7px 10px 7px 7px; border-radius:3px; }
.rotulo b{ display:grid; place-items:center; width:20px; height:20px; border-radius:50%; background:var(--laranja); color:#1a2432; font-size:.72rem; font-weight:600; }
.rotulos-linhas line{ stroke:var(--tinta); stroke-width:1; }
.rotulos-linhas line, .rotulos-linhas circle{ opacity:0; }
.rotulos-linhas circle{ fill:var(--laranja); stroke:var(--papel); stroke-width:2; }
.progresso{ list-style:none; margin:14px 0 0; padding:0; display:flex; gap:6px; justify-content:center; }
.progresso li{ width:26px; height:3px; background:var(--linha); transition:background .3s; }
.progresso li.on{ background:var(--laranja); }

.palco-passos{ grid-column:1; grid-row:1; padding-left:max(var(--margem), calc((100vw - var(--largura)) / 2 + var(--margem))); position:relative; z-index:1; }
.passo{ min-height:calc(100vh - var(--topo)); min-height:calc(100svh - var(--topo)); display:flex; flex-direction:column; justify-content:center; gap:18px;
  padding:48px 24px 48px 0; opacity:.22; transition:opacity .5s; }
.passo.ativo{ opacity:1; }
.passo h2{ font-size:clamp(2rem, 3.4vw, 3.3rem); }
.passo p{ font-size:clamp(1.05rem, 1.3vw, 1.22rem); color:var(--tinta2); max-width:34ch; }
:lang(ja) .passo p, :lang(ko) .passo p, :lang(zh) .passo p{ max-width:30em; }
.passo-num{ font:600 .9rem var(--f-mono); color:var(--laranja-texto); letter-spacing:.06em; }
.passo-num::after{ content:''; display:inline-block; width:56px; height:1px; background:currentColor; vertical-align:middle; margin-left:12px; }
.passo-etapa{ font-family:var(--f-titulo); font-weight:600; text-transform:uppercase; letter-spacing:.14em; font-size:.82rem !important; color:var(--cinza) !important; margin-bottom:-6px; }
.passo-hero{ opacity:1; padding-top:24px; }
.passo-hero h1{ font-size:clamp(2.7rem, 5.6vw, 5.6rem); line-height:.98; letter-spacing:-.03em; }
:lang(ja) .passo-hero h1, :lang(ko) .passo-hero h1, :lang(zh) .passo-hero h1{ font-size:clamp(2.2rem, 4.2vw, 4rem); line-height:1.2; }
.sobre{ font-family:var(--f-mono); font-size:.86rem !important; letter-spacing:.04em; color:var(--laranja-texto) !important; display:flex; align-items:center; gap:10px; }
.sobre::before{ content:''; width:10px; height:10px; background:var(--laranja); transform:rotate(45deg) scaleY(.6); }
.hero-texto{ font-size:clamp(1.12rem, 1.5vw, 1.32rem) !important; max-width:30ch !important; }
.hero-nota{ display:flex; align-items:center; gap:8px; font-size:.92rem !important; color:var(--cinza) !important; }
.hero-nota svg{ width:16px; height:16px; flex:none; }
.nota-app{ display:flex; align-items:flex-start; gap:8px; font-size:.88rem !important; line-height:1.45; color:var(--cinza) !important; margin:12px 0 0; max-width:44ch; }
.nota-app svg{ width:15px; height:15px; flex:none; margin-top:.15em; color:var(--laranja); }
.final-in .nota-app{ margin:-8px auto 0; text-align:left; }

/* ---------------------------------------------------------------- secções */
.sec{ padding:clamp(72px, 11vw, 150px) 0; border-top:1px solid var(--linha); }
.sec-cab{ max-width:780px; margin-bottom:clamp(36px, 5vw, 64px); }
.sec-cab h2{ font-size:clamp(2.2rem, 4.8vw, 4.4rem); letter-spacing:-.03em; }
.sec-cab p{ margin-top:18px; font-size:clamp(1.08rem, 1.4vw, 1.3rem); color:var(--tinta2); max-width:46ch; }

.janela{ margin:0; border:1px solid var(--linha-forte); background:var(--papel2); border-radius:6px; overflow:hidden;
  box-shadow:0 40px 80px -48px rgba(15,30,45,.45); }
.janela-barra{ display:flex; align-items:center; gap:6px; height:34px; padding:0 12px; border-bottom:1px solid var(--linha); background:var(--papel); }
.janela-barra i{ width:10px; height:10px; border-radius:50%; background:var(--linha-forte); }
.janela-barra span{ margin:0 auto; font:500 .76rem var(--f-mono); color:var(--cinza); background:var(--papel2); padding:3px 14px; border-radius:3px; transform:translateX(-24px); }
.janela img{ width:100%; }
.janela figcaption{ font-size:.85rem; color:var(--cinza); padding:12px 16px; border-top:1px solid var(--linha); background:var(--papel); }

/* ferramentas: grelha de fios finos, como uma folha */
.ferr-grelha{ display:grid; grid-template-columns:repeat(12, minmax(0, 1fr)); gap:1px; background:var(--linha); border:1px solid var(--linha); }
.ferr{ grid-column:span var(--c); background:var(--papel); display:flex; flex-direction:column; min-width:0; }
.ferr-txt{ padding:26px 26px 18px; }
.ferr h3{ font-size:1.35rem; letter-spacing:-.01em; }
.ferr p{ margin-top:8px; color:var(--tinta2); font-size:.98rem; }
.ferr-img{ margin-top:auto; aspect-ratio:16 / 10; overflow:hidden; position:relative; border-top:1px solid var(--linha); background:var(--papel2); }
.ferr-img img{ width:calc(100% * var(--z, 1)); max-width:none; margin-left:calc((1 - var(--z, 1)) * var(--x, 0%)); margin-top:calc((1 - var(--z, 1)) * var(--y, 0%) * .625); }
.ferr-folha{ background:#fff; }
.ferr-folha img{ width:100%; height:100%; object-fit:cover; object-position:30% 50%; margin:0; }

/* privacidade */
.sec-priv{ background:var(--tinta); color:var(--papel); border-top:0; }
:root[data-theme="dark"] .sec-priv{ background:#f2f5f8; color:#1a2432; }
.priv-in{ text-align:center; display:flex; flex-direction:column; align-items:center; }
.priv-in h2{ font-size:clamp(2.3rem, 5.8vw, 5.2rem); letter-spacing:-.035em; max-width:16ch; }
.priv-in p{ margin-top:22px; font-size:clamp(1.08rem, 1.5vw, 1.3rem); max-width:52ch; opacity:.82; }
.priv-icone{ width:64px; height:64px; display:grid; place-items:center; border:1.5px solid var(--laranja); color:var(--laranja); margin-bottom:28px; transform:rotate(45deg); }
.priv-icone svg{ width:30px; height:30px; transform:rotate(-45deg); }
.sec-priv .mais a{ color:var(--laranja); }

/* formatos */
.formatos-parede{ list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:0; border-top:1px solid var(--linha); border-left:1px solid var(--linha); }
.formatos-parede li{ font:700 clamp(1.4rem, 3.4vw, 2.6rem)/1 var(--f-titulo); letter-spacing:-.01em; padding:clamp(14px, 2.2vw, 26px) clamp(16px, 2.6vw, 34px);
  border-right:1px solid var(--linha); border-bottom:1px solid var(--linha); flex:1 1 auto; text-align:center; transition:color .2s, background .2s; }
.formatos-parede li:nth-child(-n+3){ color:var(--laranja-texto); }
.formatos-parede li:hover{ background:var(--papel2); }

/* versões */
.versoes{ display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--linha); border:1px solid var(--linha); }
.versao{ background:var(--papel); padding:clamp(24px, 4vw, 48px); display:grid; grid-template-columns:auto 1fr; gap:clamp(20px, 3vw, 36px); align-items:center; }
.versao h3{ font-size:clamp(1.5rem, 2.4vw, 2.1rem); }
.versao p{ margin:12px 0 22px; color:var(--tinta2); }
.telemovel{ width:clamp(120px, 14vw, 180px); border:6px solid var(--tinta); border-radius:22px; overflow:hidden; background:var(--tinta); box-shadow:0 30px 60px -36px rgba(15,30,45,.55); }
:root[data-theme="dark"] .telemovel{ border-color:#2c3a4b; background:#2c3a4b; }
.versao-win{ width:clamp(120px, 14vw, 180px); aspect-ratio:1; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:14px;
  border:1px solid var(--linha-forte); color:var(--tinta); font:500 .8rem var(--f-mono); }
.versao-win svg{ width:52%; height:auto; color:var(--laranja); }

/* preços (curto) e final */
.sec-precos-curto{ background:var(--papel2); }
.precos-curto{ display:grid; grid-template-columns:minmax(0, 7fr) minmax(0, 5fr); gap:clamp(32px, 6vw, 96px); align-items:center; }
.precos-curto-txt{ display:flex; flex-direction:column; align-items:flex-start; gap:22px; }
.precos-numeros{ display:flex; flex-direction:column; gap:28px; }
.precos-numeros > div{ display:flex; flex-direction:column; }
.precos-numeros .cota{ display:block; max-width:none; margin-bottom:10px; }
.precos-numeros b{ font:700 clamp(3.4rem, 8vw, 6.6rem)/1.1 var(--f-titulo); letter-spacing:-.04em; }
.precos-numeros > div:last-child b{ color:var(--laranja-texto); }
.precos-numeros small{ font:500 .85rem var(--f-mono); color:var(--cinza); letter-spacing:.04em; margin-top:14px; }
.precos-curto h2{ font-size:clamp(2rem, 4.2vw, 3.8rem); max-width:20ch; }
.precos-curto p{ font-size:clamp(1.08rem, 1.4vw, 1.3rem); color:var(--tinta2); max-width:50ch; }
.final-in{ text-align:center; display:flex; flex-direction:column; align-items:center; gap:22px; }
.final-in h2{ font-size:clamp(2.4rem, 6vw, 5.4rem); letter-spacing:-.035em; max-width:15ch; }
.final-in p{ font-size:clamp(1.08rem, 1.4vw, 1.3rem); color:var(--tinta2); max-width:46ch; }

/* ---------------------------------------------------------------- páginas interiores */
.pagina-topo{ padding-top:clamp(56px, 9vw, 120px); padding-bottom:clamp(36px, 5vw, 64px); }
.pagina-topo h1{ font-size:clamp(2.6rem, 6.4vw, 5.6rem); letter-spacing:-.035em; }
.pagina-topo.estreita h1{ font-size:clamp(1.7rem, 7vw, 4rem); }   /* termos e privacidade: «Nutzungsbedingungen», «Gebruiksvoorwaarden» numa só linha */
.pagina-topo .intro{ margin-top:22px; font-size:clamp(1.1rem, 1.5vw, 1.35rem); color:var(--tinta2); max-width:56ch; }
.bloco{ margin-top:clamp(48px, 7vw, 88px); }
.bloco h2{ font-size:clamp(1.6rem, 2.8vw, 2.4rem); margin-bottom:20px; }
.bloco p + p{ margin-top:12px; }
.duas{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(24px, 5vw, 72px); }
.nota-fina{ margin-top:18px; font-size:.9rem; color:var(--cinza); max-width:80ch; }
.aviso{ border-left:3px solid var(--laranja); background:var(--laranja-fundo); padding:14px 18px; font-size:.95rem; color:var(--tinta); max-width:80ch; }
.pontos{ margin:0; padding:0; list-style:none; border-top:1px solid var(--linha); }
.pontos li{ padding:14px 0 14px 28px; border-bottom:1px solid var(--linha); position:relative; color:var(--tinta2); }
.pontos li::before{ content:''; position:absolute; left:4px; top:23px; width:8px; height:8px; background:var(--laranja); transform:rotate(45deg) scaleY(.7); }
.pontos li b{ color:var(--tinta); }
.pontos a, .legal a, .bloco p a{ color:var(--laranja-texto); }

/* tabelas (no telemóvel cada linha vira um bloco, sem deslizar para o lado) */
.tabela{ width:100%; border-collapse:collapse; font-size:.98rem; }
.tabela th, .tabela td{ text-align:left; vertical-align:top; padding:14px 16px; border-bottom:1px solid var(--linha); }
.tabela thead th{ font:600 .8rem var(--f-titulo); letter-spacing:.1em; text-transform:uppercase; color:var(--cinza); border-bottom:1.5px solid var(--tinta); }
.tabela tbody th{ font-family:var(--f-titulo); font-weight:600; font-size:1.05rem; color:var(--tinta); }
.tabela td{ color:var(--tinta2); }
.tabela .nosso{ background:var(--laranja-fundo); color:var(--tinta); font-weight:500; }
.tabela thead .nosso{ color:var(--laranja-texto); }
/* comparar: grátis vs Pro */
.tabela-versoes tbody th{ width:46%; font-size:1rem; }
.tabela-versoes tbody th a{ color:inherit; text-decoration:none; }
.tabela-versoes tbody th a:hover{ color:var(--laranja-texto); text-decoration:underline; }
.tabela-versoes td{ width:27%; }
.tabela .tabela-grupo th{ padding:30px 16px 10px; font:600 .8rem var(--f-titulo); letter-spacing:.1em; text-transform:uppercase; color:var(--laranja-texto); border-bottom:1.5px solid var(--tinta); }
.tem, .nao-tem{ display:inline-grid; place-items:center; width:24px; height:24px; vertical-align:middle; }
.tem svg{ width:20px; height:20px; color:var(--verde, #0fa396); }
.nao-tem{ color:var(--cinza); }
.parcial{ display:block; font-size:.92rem; color:var(--tinta2); }
.tem + .parcial{ margin-top:2px; }
.tabela-pro tbody th{ width:25%; }
.bloco-final .botoes{ margin-top:22px; }
.tabela-req tbody th{ width:24%; }

/* funções */
.legenda-selos{ margin-top:26px; display:flex; flex-wrap:wrap; gap:10px; align-items:center; font-size:.9rem; color:var(--cinza); }
.legenda-selos .nota{ flex-basis:100%; max-width:70ch; margin-top:4px; }
.selo{ display:inline-block; font:600 .72rem/1 var(--f-titulo); letter-spacing:.1em; text-transform:uppercase; padding:5px 8px; border-radius:3px; white-space:nowrap; }
.selo-gratis{ background:var(--verde-fundo); color:var(--verde); }
.selo-pro{ background:var(--laranja-fundo); color:var(--laranja-texto); }
.selo-misto{ background:var(--papel3); color:var(--tinta2); }
.grupo{ padding:clamp(48px, 7vw, 96px) 0; border-top:1px solid var(--linha); display:grid; grid-template-columns:minmax(0, 4fr) minmax(0, 8fr); gap:clamp(24px, 4vw, 56px); }
.grupo-cab{ position:sticky; top:calc(var(--topo) + 24px); align-self:start; }
.grupo-cab h2{ font-size:clamp(1.8rem, 3vw, 2.8rem); }
.grupo-img{ margin:24px 0 0; border:1px solid var(--linha); overflow:hidden; background:var(--papel2); }
.funcoes{ display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:1px; background:var(--linha); border:1px solid var(--linha); align-self:start; }
.funcao{ background:var(--papel); padding:24px; text-decoration:none; display:flex; flex-direction:column; gap:10px; transition:background .2s; }
.funcao:hover{ background:var(--papel2); }
.funcao:last-child:nth-child(odd){ grid-column:1 / -1; }
.funcao h3{ font-size:1.2rem; letter-spacing:-.005em; }
.funcao p{ color:var(--tinta2); font-size:.96rem; }
.funcao-mais{ margin-top:auto; padding-top:6px; display:inline-flex; align-items:center; gap:6px; font:600 .82rem var(--f-titulo); letter-spacing:.04em; color:var(--laranja-texto); }
.funcao-mais svg{ width:14px; height:14px; }

/* preços */
.planos{ display:grid; grid-template-columns:repeat(4, minmax(0, 1fr)); gap:1px; background:var(--linha); border:1px solid var(--linha); align-items:stretch; }
.plano{ background:var(--papel); padding:30px 24px; display:flex; flex-direction:column; gap:12px; position:relative; }
.plano h2{ font-size:1.6rem; }
.plano-sub{ color:var(--cinza); font-size:.95rem; min-height:2.9em; }
.plano-destaque{ background:var(--papel2); box-shadow:inset 0 3px 0 var(--laranja); }
.plano-fita{ position:absolute; top:-1px; right:20px; transform:translateY(-50%); background:var(--laranja); color:#1a2432; font:600 .72rem var(--f-titulo); letter-spacing:.1em; text-transform:uppercase; padding:5px 10px; }
.preco{ display:flex; align-items:baseline; gap:6px; flex-wrap:wrap; margin-top:4px; }
.preco b{ font:700 2.6rem/1 var(--f-titulo); letter-spacing:-.03em; }
.preco span{ color:var(--cinza); font-size:.95rem; }
.preco s{ color:var(--cinza); font-size:1.1rem; }
.preco-peq b{ font-size:1.7rem; }
.preco-par{ display:flex; flex-direction:column; gap:18px; }
.preco-par > div{ display:flex; flex-direction:column; gap:8px; }
.preco-par small, .plano-nota{ color:var(--cinza); font-size:.85rem; }
.plano .btn{ width:100%; }
.plano-lista{ list-style:none; margin:10px 0 0; padding:16px 0 0; border-top:1px solid var(--linha); display:flex; flex-direction:column; gap:10px; font-size:.94rem; color:var(--tinta2); }
.plano-lista li{ display:flex; gap:8px; }
.plano-lista svg{ width:18px; height:18px; flex:none; color:var(--verde); margin-top:2px; }
.como{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(auto-fit, minmax(220px, 1fr)); gap:1px; background:var(--linha); border:1px solid var(--linha); }
.como li{ background:var(--papel); padding:24px; display:flex; flex-direction:column; gap:12px; }
.como li span{ width:32px; height:32px; display:grid; place-items:center; border:1.5px solid var(--laranja); color:var(--laranja-texto); font:600 .95rem var(--f-mono); }
.como li p{ color:var(--tinta2); }
.bloco-breve{ padding:28px; border:1px dashed var(--linha-forte); }
.bloco-breve h2{ font-size:1.4rem; margin-bottom:10px; }

/* privacidade */
.pontos-grelha{ display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:1px; background:var(--linha); border:1px solid var(--linha); }
.ponto{ background:var(--papel); padding:clamp(24px, 3vw, 40px); }
.ponto h2{ font-size:clamp(1.3rem, 2vw, 1.7rem); margin-bottom:12px; }
.ponto p{ color:var(--tinta2); }

/* transferir */
.transferir{ display:grid; grid-template-columns:minmax(0, 5fr) minmax(0, 7fr); gap:clamp(24px, 5vw, 64px); align-items:center; }
.transferir-acao{ display:flex; flex-direction:column; align-items:flex-start; gap:12px; }
.detalhes{ font:500 .86rem var(--f-mono); color:var(--cinza); }

/* perguntas */
.perguntas{ border-top:1px solid var(--linha); }
.pergunta{ border-bottom:1px solid var(--linha); }
.pergunta summary{ list-style:none; cursor:pointer; padding:22px 44px 22px 0; position:relative; font:600 clamp(1.08rem, 1.6vw, 1.3rem)/1.3 var(--f-titulo); }
.pergunta summary::-webkit-details-marker{ display:none; }
.pergunta summary::after{ content:''; position:absolute; right:8px; top:50%; width:12px; height:12px; border-right:2px solid var(--laranja); border-bottom:2px solid var(--laranja);
  transform:translateY(-70%) rotate(45deg); transition:transform .25s; }
.pergunta[open] summary::after{ transform:translateY(-30%) rotate(-135deg); }
.pergunta p{ padding:0 0 24px; color:var(--tinta2); max-width:70ch; }

/* novidades (histórico de versões) */
.hist-nota{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:16px; padding:18px 0; border-top:1px solid var(--linha); border-bottom:1px solid var(--linha); }
.hist-nota p{ margin:0; color:var(--tinta2); max-width:52ch; }
.hist-versao{ display:grid; grid-template-columns:170px 1fr; gap:8px 28px; padding:26px 0; border-bottom:1px solid var(--linha); scroll-margin-top:90px; }
.hist-cab{ display:flex; flex-direction:column; align-items:flex-start; gap:6px; }
.hist-cab h2{ font:700 1.6rem/1 var(--f-titulo); letter-spacing:-.01em; margin:0; }
.hist-cab time{ font-size:.86rem; color:var(--tinta3, var(--tinta2)); }
.hist-versao ul{ margin:0; padding-left:20px; color:var(--tinta2); }
.hist-versao li{ margin:4px 0; }
.hist-versao li::marker{ color:var(--laranja); }
.hist-atual .hist-cab h2{ color:var(--laranja-texto); }
@media (max-width:640px){ .hist-versao{ grid-template-columns:1fr; } .hist-cab{ flex-direction:row; flex-wrap:wrap; align-items:baseline; gap:6px 12px; } }

/* contacto e legal */
.email-grande{ font:700 clamp(1.6rem, 4.4vw, 3rem) var(--f-titulo); letter-spacing:-.02em; color:var(--tinta) !important; text-decoration-color:var(--laranja); text-decoration-thickness:2px; overflow-wrap:anywhere; }
.legal section{ padding:24px 0; border-bottom:1px solid var(--linha); }
.legal h2{ font-size:1.25rem; margin-bottom:10px; }
.legal p{ color:var(--tinta2); }
.legal p + p, .legal ul + p, .legal p + ul{ margin-top:10px; }
.legal ul{ margin:0; padding-left:22px; color:var(--tinta2); }
.legal ul li{ margin:6px 0; }
.legal ul li::marker{ color:var(--laranja); }
.legal b{ color:var(--tinta); }
.legal-intro{ font-size:1.05rem; padding-bottom:20px; }
.indice-legal{ border-top:1px solid var(--linha); border-bottom:1px solid var(--linha); padding:18px 0; }
.indice-legal ol{ margin:0; padding:0; list-style:none; columns:2; column-gap:32px; font-size:.92rem; }
.indice-legal li{ break-inside:avoid; padding:3px 0; }
.indice-legal a{ color:var(--tinta2); text-decoration:none; }
.indice-legal a:hover{ color:var(--laranja-texto); text-decoration:underline; }
.legal section{ scroll-margin-top:90px; }
.pagina-topo .aviso{ margin-bottom:28px; }

/* raiz e 404 */
.raiz{ min-height:100vh; display:flex; flex-direction:column; justify-content:center; gap:28px; padding-top:48px; padding-bottom:48px; }
.raiz h1{ font-size:clamp(2rem, 5vw, 3.4rem); }
.raiz-linguas{ display:grid; grid-template-columns:repeat(auto-fill, minmax(160px, 1fr)); gap:1px; background:var(--linha); border:1px solid var(--linha); }
.raiz-linguas a{ background:var(--papel); padding:16px 18px; text-decoration:none; font-weight:500; }
.raiz-linguas a:hover{ background:var(--papel2); }
.erro-num{ font:700 clamp(5rem, 16vw, 11rem)/1 var(--f-titulo); color:var(--laranja); letter-spacing:-.04em; }
.erro .botoes{ margin-top:28px; }

/* ---------------------------------------------------------------- rodapé = legenda de desenho técnico */
.rodape{ border-top:1.5px solid var(--tinta); padding:56px 0 32px; background:var(--papel); }
.rod-grelha{ display:grid; grid-template-columns:minmax(0, 2fr) repeat(3, minmax(0, 1fr)); gap:32px; padding-bottom:40px; }
.rod-marca p{ margin-top:14px; color:var(--tinta2); font-size:.95rem; max-width:34ch; }
.rod-priv{ display:flex; gap:8px; align-items:flex-start; color:var(--cinza) !important; font-size:.88rem !important; }
.rod-priv svg{ width:16px; height:16px; flex:none; margin-top:2px; color:var(--laranja); }
.rod-col{ display:flex; flex-direction:column; gap:10px; }
.rod-col h2{ font:600 .78rem var(--f-titulo); letter-spacing:.12em; text-transform:uppercase; color:var(--cinza); margin-bottom:4px; }
.rod-col a{ text-decoration:none; color:var(--tinta2); font-size:.95rem; }
.rod-col a:hover{ color:var(--tinta); text-decoration:underline; text-decoration-color:var(--laranja); }
.legenda{ display:grid; grid-template-columns:2fr 1fr 1fr 1.6fr 1fr 1.2fr; border:1.5px solid var(--tinta); }
.legenda > div{ padding:8px 12px; border-right:1px solid var(--tinta); display:flex; flex-direction:column; gap:4px; min-width:0; }
.legenda > div:last-child{ border-right:0; }
.legenda small{ font:500 .66rem var(--f-mono); text-transform:uppercase; letter-spacing:.08em; color:var(--cinza); }
.legenda b{ font:600 .95rem var(--f-titulo); display:flex; align-items:center; gap:8px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.diedro{ width:38px; height:18px; flex:none; }

/* ---------------------------------------------------------------- ecrãs médios */
@media (max-width:1100px){
  .nav{ gap:16px; }
  .planos{ grid-template-columns:repeat(2, minmax(0, 1fr)); }
  .ferr{ grid-column:span 6; }
  .ferr:first-child{ grid-column:span 12; }
}

/* ---------------------------------------------------------------- tablet e telemóvel */
@media (max-width:860px){
  :root{ --topo:58px; }
  .menu-btn{ display:grid; }
  .topo-app{ display:none; }
  .nav{ position:fixed; left:0; right:0; top:var(--topo); bottom:0; flex-direction:column; gap:0; padding:12px var(--margem) 32px; background:var(--papel);
    transform:translateY(-8px); opacity:0; visibility:hidden; transition:opacity .2s, transform .2s, visibility 0s .2s; overflow-y:auto; }
  .nav a{ font:600 1.5rem var(--f-titulo); padding:16px 0; border-bottom:1px solid var(--linha); color:var(--tinta); }
  .nav a[aria-current="page"]{ color:var(--laranja-texto); border-bottom-color:var(--linha); }
  .menu-aberto .nav{ opacity:1; transform:none; visibility:visible; transition:opacity .2s, transform .2s; }
  .menu-aberto{ overflow:hidden; }
  .linguas-lista{ position:fixed; left:12px; right:12px; top:calc(var(--topo) + 6px); width:auto; grid-template-columns:repeat(2, 1fr); }

  /* o 3D fica preso no topo e os textos passam por baixo dele */
  .palco{ display:block; }
  .palco::before{ display:none; }
  .palco-visor{ position:sticky; top:var(--topo); height:46vh; height:46svh; z-index:2; background:var(--papel); padding:10px var(--margem) 8px; border-bottom:1px solid var(--linha); }
  .progresso{ margin-top:8px; }
  .palco-passos{ padding:0 var(--margem); }
  .passo{ min-height:64vh; min-height:64svh; justify-content:flex-start; padding:34px 0 48px; gap:14px; }
  .passo-hero{ min-height:0; padding-top:28px; padding-bottom:64px; }
  .passo p, .hero-texto{ max-width:none !important; }
  .rotulo{ font-size:.74rem; padding:5px 8px 5px 5px; gap:6px; }
  .rotulo b{ width:17px; height:17px; font-size:.64rem; }

  .versoes, .duas, .transferir, .pontos-grelha, .precos-curto{ grid-template-columns:1fr; }
  .grupo{ grid-template-columns:1fr; }
  .grupo-cab{ position:static; }
  .funcoes{ grid-template-columns:1fr; }
  .rod-grelha{ grid-template-columns:1fr 1fr; }
  .rod-marca{ grid-column:1 / -1; }
  .legenda{ grid-template-columns:1fr 1fr 1fr; }
  .legenda > div:nth-child(3){ border-right:0; }
  .legenda > div:nth-child(-n+3){ border-bottom:1px solid var(--tinta); }

  /* tabelas: cada linha num bloco */
  .tabela-resp thead{ display:none; }
  .tabela-resp, .tabela-resp tbody, .tabela-resp tr, .tabela-resp th, .tabela-resp td{ display:block; width:auto !important; }
  .tabela-resp tr{ border-bottom:1.5px solid var(--linha-forte); padding:12px 0; }
  .tabela-resp tbody th{ border:0; padding:6px 0 8px; font-size:1.15rem; }
  .tabela-resp td{ border:0; padding:6px 0; display:grid !important; grid-template-columns:36% 1fr; gap:4%; }
  .tabela-resp td::before{ content:attr(data-r); padding-top:2px; font:600 .74rem/1.3 var(--f-titulo); letter-spacing:.06em; text-transform:uppercase; color:var(--cinza); }
  .tabela-resp td.nosso{ background:none; }
  .tabela-resp td.nosso::before{ color:var(--laranja-texto); }
  .tabela-resp .tabela-grupo{ border-bottom:0; padding:26px 0 0; }
  .tabela-resp .tabela-grupo th{ padding:0 0 8px; font-size:.78rem; }
  .tabela-versoes{ font-size:.9rem; }
  .tabela-versoes th, .tabela-versoes td{ padding:11px 6px; }
  .tabela-versoes tbody th{ width:auto; font-size:.92rem; }
  .tabela-versoes td{ width:24%; }
  .tabela-versoes .tabela-grupo th{ padding:24px 6px 8px; }
  .tabela-versoes .parcial{ font-size:.8rem; }
}
@media (max-width:640px){
  .indice-legal ol{ columns:1; }
  .ferr, .ferr:first-child{ grid-column:span 12; }
  .planos{ grid-template-columns:1fr; }
  .versao{ grid-template-columns:1fr; justify-items:start; }
  .linguas summary span{ display:none; }
  .logo-svg{ height:24px; }
  .legenda{ grid-template-columns:1fr 1fr; }
  .legenda > div:nth-child(3){ border-right:1px solid var(--tinta); }
  .legenda > div:nth-child(2n){ border-right:0; }
  .legenda > div:nth-child(-n+4){ border-bottom:1px solid var(--tinta); }
  .formatos-parede li{ flex:1 1 30%; }
}
@media (prefers-reduced-motion: reduce){
  *{ transition:none !important; scroll-behavior:auto !important; }
}
.nq{ white-space:nowrap; }
.aviso-lancamento{ margin:0 0 28px; padding:14px 18px; border-left:4px solid var(--laranja); background:color-mix(in srgb, var(--laranja) 9%, transparent); font-weight:600; max-width:72ch; }
