/* ============================================================================
   MOZ WEBSITES — Sistema visual 2026
   Base em papel osso quente, cartões brancos sobrepostos e faixas profundas
   em vinho (#6D0633 → #45063B). Laranja (#F7972C) como acento.
   Tipografia: Epilogue variável (100–900) em todo o site. Como só tem eixo
   de peso, a hierarquia faz-se por peso, corpo, entrelinha e caixa-alta.
   ========================================================================== */

/* ── 1 · Tokens ──────────────────────────────────────────────────────────── */
:root{
  --paper:     #F3EFEA;
  --card:      #FFFFFF;
  --paper-2:   #E8E1D9;

  --wine:      #6D0633;
  --wine-dk:   #4E0524;
  --plum:      #45063B;
  --orange:    #F7972C;
  --orange-dk: #B96409;

  --text:      #190A13;
  --muted:     #5F5058;
  --hint:      #8D7D85;
  --line:      rgba(25,10,19,.12);
  --line-soft: rgba(25,10,19,.07);

  --grad:      linear-gradient(118deg, #6D0633 0%, #45063B 100%);

  --wrap: 1260px;
  --gut: clamp(20px, 4.4vw, 52px);
  --sec: clamp(78px, 8.4vw, 132px);

  --r-xl: 24px;
  --r-lg: 16px;
  --r-md: 11px;
  --r-sm: 7px;

  --ease: cubic-bezier(.22,.8,.24,1);
  --sh-1: 0 1px 2px rgba(25,10,19,.05), 0 4px 14px -6px rgba(25,10,19,.08);
  --sh-2: 0 2px 6px rgba(25,10,19,.05), 0 20px 44px -20px rgba(25,10,19,.20);
  --sh-3: 0 4px 10px rgba(25,10,19,.06), 0 46px 96px -42px rgba(25,10,19,.42);
}

/* Faixas profundas: trocam os tokens locais e tudo lá dentro acompanha. */
.band{
  --paper:transparent; --card:rgba(255,255,255,.06); --paper-2:rgba(255,255,255,.05);
  --text:#FFF4EA; --muted:rgba(255,244,234,.74); --hint:rgba(255,244,234,.52);
  --line:rgba(255,244,234,.17); --line-soft:rgba(255,244,234,.09);
  --orange-dk:#F7972C;
  background:var(--grad); color:var(--text); position:relative; overflow:hidden;
}
.band::after{content:"";position:absolute;right:-10%;top:-40%;width:52%;aspect-ratio:1;
  border-radius:50%;pointer-events:none;z-index:0;
  background:radial-gradient(circle,rgba(247,151,44,.2),transparent 68%)}

/* ── 2 · Base ────────────────────────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

html{font-size:16px;scroll-behavior:smooth;scroll-padding-top:96px;
  background:var(--paper);-webkit-text-size-adjust:100%}

body{
  font-family:'Epilogue','Segoe UI',system-ui,sans-serif;
  font-size:clamp(.98rem,.93rem + .24vw,1.06rem);
  line-height:1.74;letter-spacing:-.004em;
  color:var(--text);background:var(--paper);overflow-x:hidden;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
}
body::after{content:"";position:fixed;inset:0;z-index:1;pointer-events:none;opacity:.03;
  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='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}

img{display:block;max-width:100%;height:auto}
ul,ol{list-style:none}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
strong{font-weight:700;color:var(--text)}
fieldset{border:0}

:focus-visible{outline:2px solid var(--orange);outline-offset:3px;border-radius:5px}

.skip{position:absolute;left:-9999px;top:0;z-index:200;padding:12px 18px;
  background:var(--wine);color:#fff;font-weight:700;border-radius:0 0 8px 0}
.skip:focus{left:0}

.ico{width:1.1em;height:1.1em;flex:none}

.justify{text-align:justify;text-justify:inter-word;hyphens:auto;-webkit-hyphens:auto}
.card .justify,.step .justify,.promise-card .justify{text-align:left;hyphens:manual}
@media (max-width:760px){ .justify{text-align:left;hyphens:manual} }

/* ── 3 · Tipografia ──────────────────────────────────────────────────────── */
.hero-title,.page-title,.h2,.plan-name,.step h3,.card h3,.faq-q span,.foot-col h4,
.drawer-nav a,.hero-facts dt,.hero-chip-n,
.svc-title,.promise-card h3,.stat-row dt{font-family:'Epilogue',system-ui,sans-serif}

.hero-title{font-weight:780;
  font-size:clamp(2.1rem,1.06rem + 3.6vw,3.5rem);line-height:1.03;letter-spacing:-.038em}

/* Os títulos das subpáginas trazem <br> próprio; a medida só serve de
   travão em ecrãs largos, por isso é generosa o suficiente para a linha
   mais comprida não partir antes do <br>. */
.page-title{font-weight:780;
  font-size:clamp(2rem,1.1rem + 3vw,3.15rem);line-height:1.05;letter-spacing:-.038em;
  margin-top:18px;max-width:30ch}

.h2{font-weight:760;
  font-size:clamp(1.7rem,1.1rem + 2.1vw,2.68rem);line-height:1.1;letter-spacing:-.033em;
  text-wrap:balance}

.eyebrow{font-family:'Epilogue',system-ui,sans-serif;font-weight:640;
  font-size:.75rem;letter-spacing:.19em;text-transform:uppercase;color:var(--orange-dk);
  display:flex;align-items:center;gap:11px;margin-bottom:20px}
.eyebrow::before{content:"";width:26px;height:1.5px;background:currentColor;flex:none;opacity:.85}
.eyebrow-center{justify-content:center}

.accent{color:var(--wine)}
.band .accent{color:var(--orange)}
.lead{font-size:1.1rem;color:var(--text);margin-top:22px;font-weight:500;line-height:1.66}

/* ── 4 · Estrutura ───────────────────────────────────────────────────────── */
.wrap{width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gut);
  position:relative;z-index:2}
.section{padding-block:var(--sec);position:relative}
.section-white{background:var(--card)}

.head{max-width:60ch;margin-bottom:clamp(42px,4.8vw,72px)}
.head-lede{color:var(--muted);margin-top:18px;max-width:54ch}
.head-row{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);
  gap:clamp(24px,4vw,64px);align-items:end;max-width:none}
.head-row .head-lede{margin-top:0}
.head-center{max-width:62ch;margin-inline:auto;text-align:center}
.head-center .head-lede{margin-inline:auto}
.row-more{margin-top:clamp(30px,3.2vw,46px);display:flex;justify-content:center}

/* ── 5 · Botões ──────────────────────────────────────────────────────────── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;
  padding:15px 28px;border-radius:100px;
  font-family:'Epilogue',system-ui,sans-serif;font-weight:640;
  font-size:.93rem;line-height:1;white-space:nowrap;border:1px solid transparent;
  /* O movimento responde mais depressa do que a cor: o levantar e o ceder ao
     toque acontecem em 140 ms, o resto acompanha em 280 ms. Acima disso o
     botão parece atrasado em relação ao dedo. */
  transition:transform .14s var(--ease),background-color .28s var(--ease),
             border-color .28s var(--ease),color .28s var(--ease),box-shadow .28s var(--ease)}
.btn-solid{background:var(--wine);color:#fff;box-shadow:0 12px 28px -14px rgba(109,6,51,.75)}
.btn-solid:hover{background:var(--wine-dk);transform:translateY(-2px);box-shadow:0 18px 38px -14px rgba(109,6,51,.85)}
.btn-ghost{border-color:var(--line);color:var(--text);background:transparent}
.btn-ghost:hover{border-color:var(--text);transform:translateY(-2px)}
.btn-glass{border-color:var(--line);color:var(--text);background:var(--card);box-shadow:var(--sh-1)}
.btn-glass:hover{border-color:var(--text);transform:translateY(-2px);box-shadow:var(--sh-2)}
.band .btn-solid{background:var(--orange);color:#2A0110;box-shadow:0 14px 32px -14px rgba(247,151,44,.7)}
.band .btn-solid:hover{background:#FFB050}
.band .btn-ghost:hover{border-color:var(--text);background:rgba(255,244,234,.09)}
.btn-sm{padding:11px 20px;font-size:.84rem}
.btn-lg{padding:18px 34px;font-size:.99rem}
.btn-full{width:100%}

/* ── 6 · Barra de utilidades ─────────────────────────────────────────────── */
/* Faixa fina na paleta da marca (ameixa → vinho), a fazer de assinatura no
   topo da página. O preto neutro deixava o cabeçalho desligado do resto. */
.topbar{position:relative;z-index:61;color:rgba(255,244,234,.8);
  background:linear-gradient(90deg,#45063B 0%,#6D0633 62%,#7C0A3A 100%)}
.topbar::after{content:"";position:absolute;inset:auto 0 0;height:1px;
  background:linear-gradient(90deg,transparent,rgba(247,151,44,.5),transparent)}
.topbar-in{display:flex;align-items:center;justify-content:space-between;gap:20px;
  min-height:42px;font-size:.79rem}
.topbar-note{display:flex;align-items:center;gap:9px;color:rgba(255,244,234,.86)}
.topbar-note .live{width:6px;height:6px;border-radius:50%;background:var(--orange);flex:none;
  box-shadow:0 0 0 3px rgba(247,151,44,.28);animation:pulse 2.4s ease-in-out infinite}
@keyframes pulse{0%,100%{opacity:.45}50%{opacity:1}}
.topbar-links{display:flex;align-items:center;gap:18px}
.topbar-links a{display:inline-flex;align-items:center;gap:7px;color:rgba(255,244,234,.8);
  transition:color .25s var(--ease)}
.topbar-links a:hover{color:var(--orange)}
.topbar-links .ico{width:14px;height:14px;color:rgba(247,151,44,.9)}
.topbar-sep{width:1px;height:16px;background:rgba(255,244,234,.24)}

/* ── 7 · Cabeçalho ───────────────────────────────────────────────────────── */
/* Vidro branco por cima do papel: separa o cabeçalho do fundo sem uma linha
   dura, e ganha densidade ao rolar. */
.nav{position:sticky;top:0;z-index:60;
  background:rgba(255,255,255,.72);
  border-bottom:1px solid rgba(25,10,19,.06);
  backdrop-filter:blur(20px) saturate(1.4);-webkit-backdrop-filter:blur(20px) saturate(1.4);
  transition:background-color .3s var(--ease),border-color .3s var(--ease),box-shadow .3s var(--ease)}
.nav.stuck{background:rgba(255,255,255,.92);border-bottom-color:rgba(25,10,19,.1);
  box-shadow:0 12px 34px -24px rgba(69,6,59,.5)}
.nav-in{display:flex;align-items:center;justify-content:space-between;gap:24px;height:76px}
.nav-logo img{height:44px;width:auto}

.nav-links{display:flex;align-items:center;gap:2px}
.nav-links a{position:relative;padding:9px 15px;font-size:.89rem;font-weight:500;color:var(--muted);
  transition:color .25s var(--ease)}
.nav-links a::after{content:"";position:absolute;left:15px;right:15px;bottom:1px;height:2px;
  background:var(--orange);border-radius:2px;transform:scaleX(0);transform-origin:left;
  transition:transform .3s var(--ease)}
.nav-links a:hover,.nav-links a.on{color:var(--text)}
.nav-links a:hover::after,.nav-links a.on::after{transform:scaleX(1)}

.nav-side{display:flex;align-items:center;gap:14px}

.burger{display:none;width:44px;height:44px;border:1px solid var(--line);border-radius:12px;
  align-items:center;justify-content:center;flex-direction:column;gap:5px;background:var(--card)}
.burger span{display:block;width:17px;height:1.6px;background:var(--text);border-radius:2px;
  transition:transform .3s var(--ease)}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(3.3px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){transform:translateY(-3.3px) rotate(-45deg)}

.drawer{position:fixed;inset:0;z-index:70;display:flex;flex-direction:column;justify-content:center;
  padding:96px var(--gut) 36px;background:var(--paper);opacity:0;transform:translateY(-10px);
  transition:opacity .28s var(--ease),transform .28s var(--ease)}
.drawer[hidden]{display:none}
.drawer.open{opacity:1;transform:none}
.drawer-nav{display:flex;flex-direction:column}
.drawer-nav a{display:flex;align-items:baseline;gap:16px;padding:16px 0;
  border-bottom:1px solid var(--line-soft);
  font-weight:740;font-size:1.5rem;letter-spacing:-.032em}
.drawer-nav a.on{color:var(--wine)}
.drawer-nav em{font-weight:620;font-size:.75rem;font-style:normal;
  letter-spacing:.18em;color:var(--orange-dk)}
.drawer-foot{margin-top:auto;padding-top:28px;display:grid;gap:12px}
.drawer-foot p{color:var(--hint);font-size:.84rem;text-align:center}

/* ── 8 · Hero (home) ─────────────────────────────────────────────────────── */
/* O hero assenta agora no gradiente da marca, e não no papel. Os tokens são
   trocados como nas faixas .band: o que está lá dentro herda texto claro,
   linhas claras e sombras próprias, sem ter de reescrever cada regra. */
.hero{position:relative;overflow:hidden;color:#FFF4EA;
  --text:#FFF4EA;
  --muted:rgba(255,244,234,.76);
  --hint:rgba(255,244,234,.58);
  --line:rgba(255,244,234,.16);
  --line-soft:rgba(255,244,234,.09);
  background:
    radial-gradient(120% 90% at 82% 18%, rgba(247,151,44,.16), transparent 58%),
    var(--grad);
  padding-block:clamp(58px,6.4vw,88px) clamp(48px,5.4vw,74px)}

/* Emenda com a secção seguinte: sem isto o corte entre o vinho e o papel
   ficava uma linha dura a meio do ecrã. */
.hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:88px;z-index:1;
  pointer-events:none;
  background:linear-gradient(180deg, transparent, rgba(243,239,234,.14))}

.hero-bg{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none}
/* Sobre fundo escuro a fotografia pode respirar mais: sobe de .58 para .72 e
   funde-se na tinta em vez de ficar por cima dela. O contraste do texto vem
   do véu, não de apagar a imagem. */
.hero-bg img{width:100%;height:100%;object-fit:cover;object-position:74% 32%;
  opacity:.72;mix-blend-mode:luminosity;
  filter:grayscale(.35) contrast(1.12) brightness(.82)}

/* Véu em três camadas, do topo para o fundo da pilha:
   1) horizontal — tinta densa do lado do texto, aberta do lado da imagem;
   2) vertical  — funde o topo no cabeçalho e o fundo na secção seguinte;
   3) vinho     — devolve a cor da marca ao que a fotografia clareou.     */
.hero-bg::after{content:"";position:absolute;inset:0;
  background:
    linear-gradient(96deg,
      rgba(45,4,26,.95) 0%,
      rgba(45,4,26,.9)  26%,
      rgba(45,4,26,.72) 48%,
      rgba(45,4,26,.34) 74%,
      rgba(45,4,26,.5)  100%),
    linear-gradient(180deg, rgba(69,6,59,.7) 0%, transparent 22%, transparent 70%, rgba(45,4,26,.55) 100%),
    linear-gradient(120deg, rgba(109,6,51,.5), rgba(69,6,59,.42))}

/* ── O que deixaria de se ler sobre o vinho ──────────────────────────────
   O acento do título, os botões e os números eram vinho sobre papel. Sobre
   vinho desapareciam. Passam a laranja, que é o acento da marca e o único
   par com contraste suficiente nesta paleta. */
.hero .accent{color:var(--orange)}

.hero .btn-solid{background:var(--orange);color:#2A0110;
  box-shadow:0 14px 34px -14px rgba(247,151,44,.66)}
.hero .btn-solid:hover{background:#FFB050}
/* O botão secundário é branco (.btn-glass). Dentro do hero herdava o texto
   cor de creme e ficava branco sobre branco. Passa a vidro escuro: o texto
   claro tem sempre fundo, mesmo quando passa por uma zona clara da foto. */
.hero .btn-glass{color:#FFF4EA;
  background:rgba(24,4,14,.42);
  border-color:rgba(255,244,234,.34);
  backdrop-filter:blur(12px) saturate(1.2);-webkit-backdrop-filter:blur(12px) saturate(1.2);
  box-shadow:0 1px 0 rgba(255,244,234,.14) inset}
.hero .btn-glass:hover{background:rgba(24,4,14,.6);border-color:#FFF4EA;
  box-shadow:0 1px 0 rgba(255,244,234,.22) inset}


.hero-in{display:grid;grid-template-columns:minmax(0,1.04fr) minmax(0,.96fr);
  gap:clamp(36px,4.4vw,68px);align-items:center}

.hero-title{margin-top:0}
.hero-lede{color:var(--muted);margin-top:24px;max-width:46ch;
  font-size:clamp(1rem,.95rem + .26vw,1.09rem)}
.hero-acts{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px}

.hero-visual{position:relative;padding:0 22px 34px 0}

/* O mockup tem fundo transparente, por isso não precisa de caixa: precisa de
   luz por trás. Um halo laranja difuso separa-o do vinho sem lhe pôr uma
   moldura em cima, e é o que faz o portátil parecer estar à frente. */
.hero-plate{position:absolute;right:2%;top:6%;width:86%;height:82%;z-index:0;
  border-radius:50%;
  background:radial-gradient(closest-side, rgba(247,151,44,.34), rgba(247,151,44,.08) 62%, transparent 78%);
  filter:blur(26px)}

/* Segundo halo, mais frio e mais largo, para o recorte não ficar duro. */
.hero-visual::before{content:"";position:absolute;right:-4%;bottom:2%;width:78%;height:62%;
  z-index:0;border-radius:50%;
  background:radial-gradient(closest-side, rgba(255,244,234,.16), transparent 72%);
  filter:blur(34px)}

.hero-shot{position:relative;z-index:1;background:none;border:0;padding:0;box-shadow:none}
/* A sombra vai no próprio desenho do mockup, não numa caixa à volta: segue o
   contorno do portátil em vez de desenhar um rectângulo que ele não tem. */
.hero-shot img{width:100%;
  filter:drop-shadow(0 34px 46px rgba(0,0,0,.55)) drop-shadow(0 6px 12px rgba(0,0,0,.35))}

.hero-chip{position:absolute;left:-14px;bottom:4px;z-index:2;display:flex;align-items:center;gap:13px;
  padding:15px 20px;border-radius:var(--r-lg);background:var(--card);
  --text:#190A13; --muted:#5F5058; --hint:#8D7D85;
  color:var(--text);
  box-shadow:0 26px 56px -22px rgba(0,0,0,.6)}
.hero-chip-n{font-weight:780;font-size:1.85rem;line-height:1;
  letter-spacing:-.04em;color:var(--wine)}
.hero-chip-t{font-family:'Epilogue',system-ui,sans-serif;font-weight:600;
  font-size:.75rem;letter-spacing:.11em;text-transform:uppercase;line-height:1.45;color:var(--hint)}

.hero-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(20px,2.6vw,44px);
  margin-top:clamp(44px,4.6vw,68px);padding-top:32px;border-top:1px solid var(--line)}
.hero-facts dt{font-weight:760;
  font-size:clamp(1.5rem,1.2rem + .9vw,2.1rem);line-height:1;letter-spacing:-.038em;
  color:var(--wine)}
/* No hero o fundo é vinho: o número em vinho desaparecia. Fica creme, e o
   laranja guarda-se para o botão — a única coisa que se quer que cliquem. */
.hero-facts dt{color:#FFF4EA}
.hero-facts{position:relative;border-top-color:rgba(255,244,234,.18)}
.hero-facts::before{content:"";position:absolute;left:0;top:-1px;width:64px;height:2px;
  background:var(--orange);border-radius:2px}
.hero-facts dd{font-family:'Epilogue',system-ui,sans-serif;font-weight:580;
  font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:var(--hint);
  margin-top:11px;line-height:1.45}

/* ── 9 · Cabeçalho das subpáginas ────────────────────────────────────────── */
.page-head{position:relative;overflow:hidden;background:var(--paper);
  padding-block:clamp(46px,5.4vw,80px) clamp(46px,5vw,72px);
  border-bottom:1px solid var(--line-soft)}
.page-head::before{content:"";position:absolute;right:-6%;top:-70%;width:44%;aspect-ratio:1;
  border-radius:50%;pointer-events:none;
  background:radial-gradient(circle,rgba(109,6,51,.1),transparent 68%)}
.crumb{display:flex;align-items:center;gap:10px;
  font-family:'Epilogue',system-ui,sans-serif;font-weight:600;
  font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;color:var(--hint)}
.crumb a{transition:color .25s var(--ease)}
.crumb a:hover{color:var(--wine)}
.crumb span[aria-current]{color:var(--orange-dk)}
.page-lede{color:var(--muted);margin-top:20px;max-width:58ch;font-size:1.05rem}



/* ── 10b · Quem somos (história) ─────────────────────────────────────────── */
/* Imagem à esquerda, texto à direita — invertido face ao bloco equivalente
   da home, para as duas páginas não lerem como a mesma composição. */
.story{display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);
  gap:clamp(36px,5vw,80px);align-items:center}
.story-media{position:relative;padding:0 22px 26px 0}
.story-fig{position:relative;z-index:1;border-radius:var(--r-xl);overflow:hidden;
  border:1px solid rgba(255,255,255,.7);box-shadow:var(--sh-3)}
.story-fig img{width:100%;aspect-ratio:4/4.1;object-fit:cover}
.story-media::before{content:"";position:absolute;right:0;bottom:0;width:74%;height:72%;
  border-radius:var(--r-xl);background:var(--grad);z-index:0}
.story-badge{position:absolute;left:-14px;bottom:48px;z-index:3;display:flex;align-items:center;gap:13px;
  padding:16px 22px;border-radius:var(--r-lg);background:var(--card);box-shadow:var(--sh-2)}
.story-badge strong{font-family:'Epilogue',system-ui,sans-serif;
  font-weight:780;font-size:1.85rem;line-height:1;
  letter-spacing:-.04em;color:var(--wine)}
.story-badge span{font-family:'Epilogue',system-ui,sans-serif;font-weight:600;
  font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;line-height:1.5;color:var(--hint)}

/* A abertura destaca-se do corpo por peso e por um filete lateral, em vez de
   ficar só um pouco maior — dá entrada clara à leitura. */
.story-lead{margin-top:22px;padding-left:20px;border-left:3px solid var(--orange);
  font-size:clamp(1.04rem,.98rem + .3vw,1.16rem);line-height:1.6;font-weight:600;
  color:var(--text);max-width:52ch}
.story-copy > p:not(.story-lead):not(.eyebrow){color:var(--muted);margin-top:18px;max-width:57ch}

.story-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(14px,2vw,26px);
  margin-top:34px;padding-top:28px;border-top:1px solid var(--line)}
.story-facts b{display:block;font-family:'Epilogue',system-ui,sans-serif;
  font-weight:760;font-size:clamp(1.3rem,1.1rem + .7vw,1.7rem);
  line-height:1;letter-spacing:-.035em;color:var(--wine)}
.story-facts span{display:block;font-family:'Epilogue',system-ui,sans-serif;
  font-weight:580;font-size:.75rem;letter-spacing:.12em;
  text-transform:uppercase;color:var(--hint);margin-top:10px;line-height:1.45}

/* ── 10c · Consulta de domínio ───────────────────────────────────────────── */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* Bloco de pesquisa: composição centrada, com a barra como elemento
   principal. Um cartão de duas colunas deixava metade do espaço vazio e
   não lia como uma pesquisa. O espaçamento vertical é de bloco compacto,
   não de secção inteira. */
.dominio-sec{background:var(--card);padding-block:clamp(30px,3.6vw,52px)}
/* Ocupa a largura do .wrap, como as restantes secções. Só o conteúdo
   interior é que se mantém centrado e com medida legível. */
.dominio{position:relative;overflow:hidden;text-align:center;
  padding:clamp(36px,4vw,58px) clamp(22px,3vw,48px);border-radius:clamp(20px,2.4vw,28px);
  background:linear-gradient(135deg,#7A0A3B 0%,#5A0630 48%,#3C0534 100%);
  color:#FFF4EA;box-shadow:0 34px 76px -40px rgba(69,6,59,.8)}
/* halo quente no topo, a dar profundidade ao degradé */
.dominio::after{content:"";position:absolute;left:50%;top:-78%;width:82%;aspect-ratio:1;
  transform:translateX(-50%);border-radius:50%;pointer-events:none;
  background:radial-gradient(circle,rgba(247,151,44,.26),transparent 66%)}
.dominio > *{position:relative;z-index:2}
.dominio .eyebrow{margin-bottom:14px;color:var(--orange)}

.dominio-titulo{font-family:'Epilogue',system-ui,sans-serif;font-weight:760;
  font-size:clamp(1.5rem,1.1rem + 1.7vw,2.35rem);line-height:1.1;letter-spacing:-.033em;
  text-wrap:balance;max-width:30ch;margin-inline:auto;color:#FFF4EA}
.dominio-lede{color:rgba(255,244,234,.78);margin:14px auto 0;
  font-size:clamp(.95rem,.9rem + .2vw,1.04rem);max-width:70ch}

/* Barra de pesquisa: campo + extensão + botão numa linha. A barra é branca
   sobre o degradé — é o elemento com que se interage, tem de saltar. */
.dominio-form{margin-top:clamp(22px,2.6vw,30px)}
.dominio-linha{display:flex;gap:12px;align-items:stretch;
  max-width:840px;margin-inline:auto}
.dominio-campo{flex:1;min-width:0;display:flex;align-items:stretch;
  border-radius:100px;border:1px solid transparent;background:#fff;overflow:hidden;
  box-shadow:0 10px 26px -14px rgba(0,0,0,.5);
  transition:border-color .25s var(--ease),box-shadow .25s var(--ease)}
.dominio-campo:focus-within{border-color:var(--orange);
  box-shadow:0 0 0 3px rgba(247,151,44,.35)}
.dominio-campo input{flex:1;min-width:0;padding:16px 22px;border:0;background:none;
  font:inherit;font-size:1rem;color:var(--text)}
.dominio-campo input:focus{outline:none}
.dominio-campo input::placeholder{color:#A99CA3}
.dominio-campo select{flex:none;border:0;border-left:1px solid rgba(25,10,19,.12);
  background:#F7F3EF;padding:0 16px;font:inherit;font-size:.92rem;font-weight:650;
  color:var(--wine);cursor:pointer}
.dominio-campo select:focus{outline:none;background:#EFE9E3}

/* sobre o degradé o botão passa a laranja — vinho sobre vinho desaparecia */
.dominio-botao.btn-solid{flex:none;padding-inline:30px;
  background:var(--orange);color:#2A0110;box-shadow:0 12px 28px -14px rgba(247,151,44,.7)}
.dominio-botao.btn-solid:hover{background:#FFB050}
.dominio-botao.btn-solid:disabled{opacity:.6;pointer-events:none}

.dominio-previa{font-size:.89rem;color:rgba(255,244,234,.78);margin-top:16px;min-height:1.4em}
.dominio-previa b{color:#fff;font-weight:750;word-break:break-all}
.dominio-previa.erro{color:#FFB4A8}
.dominio-previa.erro b{color:#FFD9D2}
.dominio-previa.ok{color:#9BE9BE}
.dominio-previa.ok b{color:#D6FFEA}

/* provas rápidas, em linha por baixo da barra */
.dominio-pontos{display:flex;flex-wrap:wrap;justify-content:center;gap:10px 26px;
  margin-top:clamp(20px,2.4vw,28px);padding-top:clamp(18px,2.2vw,24px);
  border-top:1px solid rgba(255,244,234,.18)}
.dominio-pontos li{display:flex;align-items:center;gap:8px;font-size:.85rem;
  color:rgba(255,244,234,.8)}
.dominio-pontos .ico{color:var(--orange);width:.85em;height:.85em}

/* ── 11 · Promessas ──────────────────────────────────────────────────────── */
.promise{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(12px,1.4vw,20px)}
.promise-card{position:relative;padding:clamp(24px,2.3vw,32px);border-radius:var(--r-lg);
  border:1px solid var(--line-soft);background:var(--card);box-shadow:var(--sh-1);
  transition:transform .4s var(--ease),box-shadow .4s var(--ease)}
.promise-card:hover{transform:translateY(-4px);box-shadow:var(--sh-2)}
.promise-n{display:block;font-family:'Epilogue',system-ui,sans-serif;
  font-weight:780;font-size:1.6rem;line-height:1;letter-spacing:-.05em;
  color:transparent;-webkit-text-stroke:1.2px rgba(109,6,51,.36);margin-bottom:16px}
.promise-card h3{font-weight:720;font-size:1.04rem;
  letter-spacing:-.022em;margin-bottom:10px}
.promise-card p{color:var(--muted);font-size:.885rem;line-height:1.7}

/* ── 12 · Serviços (cartões na home) ─────────────────────────────────────── */
.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(12px,1.3vw,18px);counter-reset:svc}
.cards-4{grid-template-columns:repeat(3,1fr)}
.card{position:relative;padding:clamp(26px,2.4vw,32px);border-radius:var(--r-lg);
  border:1px solid var(--line-soft);background:var(--card);counter-increment:svc;
  box-shadow:var(--sh-1);transition:transform .4s var(--ease),box-shadow .4s var(--ease)}
.card:hover{transform:translateY(-5px);box-shadow:var(--sh-2)}
.card-ico{display:grid;place-items:center;width:46px;height:46px;border-radius:13px;
  background:rgba(247,151,44,.15);color:var(--orange-dk);margin-bottom:20px;
  transition:background-color .4s var(--ease),color .4s var(--ease)}
.card-ico svg{width:22px;height:22px}
.card:hover .card-ico{background:var(--orange);color:#2A0110}
.card h3{font-weight:720;font-size:1.04rem;letter-spacing:-.022em;
  line-height:1.3;margin-bottom:11px}
.card p{color:var(--muted);font-size:.885rem;line-height:1.7}

.card-hi{grid-row:span 2;background:var(--grad);border-color:transparent;color:#FFF4EA;
  display:flex;flex-direction:column;justify-content:flex-end;
  box-shadow:0 30px 68px -34px rgba(69,6,59,.72)}
.card-hi:hover{box-shadow:0 38px 84px -34px rgba(69,6,59,.85)}
.card-hi .card-ico{background:var(--orange);color:#2A0110;margin-top:auto}
.card-hi h3{font-size:1.36rem;color:#FFF4EA}
.card-hi p{color:rgba(255,244,234,.82);font-size:.94rem}
.card-tag{position:absolute;top:24px;left:clamp(26px,2.4vw,32px);padding:5px 13px;border-radius:100px;
  background:var(--orange);color:#2A0110;font-family:'Epilogue',system-ui,sans-serif;
  font-weight:680;font-size:.75rem;letter-spacing:.1em;text-transform:uppercase}

/* ── 13 · Serviços (subpágina) ───────────────────────────────────────────── */
/* Sumário no topo: os oito serviços de relance, com salto directo. Estático,
   sem JavaScript — funciona mesmo que o script falhe. */
.svc-index{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;
  background:var(--line);border:1px solid var(--line);border-radius:var(--r-lg);
  overflow:hidden;margin-bottom:clamp(48px,5.6vw,84px)}
.svc-index a{background:var(--card);padding:clamp(18px,2vw,24px);display:flex;
  flex-direction:column;gap:10px;transition:background-color .3s var(--ease)}
.svc-index a:hover{background:var(--paper)}
.svc-index em{font-family:'Epilogue',system-ui,sans-serif;font-weight:640;
  font-style:normal;font-size:.75rem;letter-spacing:.16em;color:var(--orange-dk)}
.svc-index span{font-family:'Epilogue',system-ui,sans-serif;font-weight:680;
  font-size:.95rem;letter-spacing:-.02em;line-height:1.3}

/* Cada serviço ocupa uma linha inteira, alternando o lado do painel visual.
   Dá muito mais peso a cada serviço do que os cartões pequenos anteriores. */
.svc-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.85fr);
  gap:clamp(28px,4.4vw,72px);align-items:center;
  padding-block:clamp(38px,4.4vw,64px);border-top:1px solid var(--line);
  scroll-margin-top:100px}
.svc-row:first-child{border-top:0;padding-top:0}
.svc-row-flip .svc-row-media{order:-1}

.svc-row-n{font-family:'Epilogue',system-ui,sans-serif;font-weight:800;
  font-size:.78rem;letter-spacing:.18em;color:var(--orange-dk);display:block;margin-bottom:14px}
.svc-row h2{font-family:'Epilogue',system-ui,sans-serif;font-weight:740;
  font-size:clamp(1.32rem,1.1rem + .9vw,1.86rem);letter-spacing:-.03em;line-height:1.14}
.svc-row-text{color:var(--muted);margin-top:14px;max-width:56ch;font-size:.95rem}
.svc-row-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}
.svc-row-tags li{padding:7px 14px;border-radius:100px;border:1px solid var(--line);
  font-size:.79rem;color:var(--muted);background:var(--paper)}
.svc-row-foot{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:26px;
  padding-top:22px;border-top:1px solid var(--line-soft)}
.svc-row-prazo{font-family:'Epilogue',system-ui,sans-serif;font-weight:600;
  font-size:.75rem;letter-spacing:.13em;text-transform:uppercase;color:var(--hint)}
.svc-row-prazo b{display:block;font-weight:740;font-size:1rem;
  letter-spacing:-.02em;color:var(--wine);text-transform:none;margin-top:5px}

/* painel visual: ícone grande sobre o degradé da marca */
.svc-row-media{position:relative;aspect-ratio:4/3.1;border-radius:var(--r-xl);overflow:hidden;
  background:var(--grad);display:grid;place-items:center;box-shadow:var(--sh-2)}
.svc-row-media::after{content:"";position:absolute;right:-18%;top:-38%;width:70%;aspect-ratio:1;
  border-radius:50%;background:radial-gradient(circle,rgba(247,151,44,.28),transparent 68%)}
.svc-row-media svg{width:clamp(64px,8vw,104px);height:clamp(64px,8vw,104px);
  color:rgba(255,244,234,.92);position:relative;z-index:2;
  transition:transform .5s var(--ease)}
.svc-row:hover .svc-row-media svg{transform:scale(1.07)}
.svc-row-badge{position:absolute;left:20px;bottom:20px;z-index:2;
  font-family:'Epilogue',system-ui,sans-serif;font-weight:800;
  font-size:2.6rem;line-height:1;letter-spacing:-.05em;color:transparent;
  -webkit-text-stroke:1.4px rgba(255,244,234,.34)}

/* ── 14 · Demonstração (faixa) ───────────────────────────────────────────── */
.demo{display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);
  gap:clamp(36px,5vw,72px);align-items:center}
.demo-copy p{color:var(--muted);margin-top:18px;max-width:50ch}
.demo-points{display:grid;gap:1px;background:var(--line);border:1px solid var(--line);
  border-radius:var(--r-md);overflow:hidden;margin:32px 0 30px}
.demo-points div{background:rgba(0,0,0,.18);padding:15px 20px;display:flex;align-items:baseline;
  gap:14px;flex-wrap:wrap}
.demo-points strong{font-family:'Epilogue',system-ui,sans-serif;font-weight:720;
  font-size:1rem;letter-spacing:-.02em;color:var(--orange);min-width:104px}
.demo-points span{color:var(--muted);font-size:.89rem}

.builder{border-radius:var(--r-xl);border:1px solid rgba(255,244,234,.18);overflow:hidden;
  background:rgba(10,1,7,.44);box-shadow:0 40px 90px -40px rgba(0,0,0,.8)}
.builder-top{display:flex;align-items:center;gap:14px;padding:13px 16px;
  border-bottom:1px solid rgba(255,244,234,.1)}
.builder-dots{display:flex;gap:6px;flex:none}
.builder-dots i{width:8px;height:8px;border-radius:50%;background:rgba(255,244,234,.2)}
.builder-dots i:first-child{background:rgba(247,151,44,.65)}
.builder-addr{display:flex;align-items:center;gap:8px;flex:1;min-width:0;padding:6px 14px;
  border-radius:100px;background:rgba(0,0,0,.32);border:1px solid rgba(255,244,234,.1);
  font-family:'Epilogue',system-ui,sans-serif;font-weight:520;
  font-size:.75rem;color:rgba(255,244,234,.74)}
.builder-addr .ico{width:12px;height:12px;color:var(--orange)}
.builder-addr span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.builder-bar{height:2px;background:rgba(255,244,234,.08)}
.builder-bar span{display:block;height:100%;width:0;background:var(--orange);
  transition:width .45s var(--ease)}
.builder-screen{display:grid;gap:8px;padding:14px;height:clamp(300px,31vw,394px);
  grid-template-columns:repeat(6,1fr)}
.builder[data-kind="0"] .builder-screen{grid-template-rows:24px 1.75fr 1fr 18px;
  grid-template-areas:"nav nav nav nav nav nav" "hero hero hero hero hero hero"
    "a a b b c c" "foot foot foot foot foot foot"}
.builder[data-kind="1"] .builder-screen{grid-template-rows:24px 1fr 1fr .8fr 18px;
  grid-template-areas:"nav nav nav nav nav nav" "hero hero hero hero a a"
    "hero hero hero hero b b" "c c c c c c" "foot foot foot foot foot foot"}
.builder[data-kind="2"] .builder-screen{grid-template-rows:24px 1fr 1fr .7fr 18px;
  grid-template-areas:"nav nav nav nav nav nav" "a a hero hero hero hero"
    "b b hero hero hero hero" "c c c c c c" "foot foot foot foot foot foot"}
.blk{position:relative;border-radius:var(--r-sm);padding:9px;overflow:hidden;
  background:rgba(255,244,234,.07);border:1px solid rgba(255,244,234,.09);
  display:flex;flex-direction:column;justify-content:center;gap:6px;
  opacity:0;transform:translateY(9px) scale(.986);filter:blur(3px);
  transition:opacity .5s var(--ease),transform .5s var(--ease),filter .5s var(--ease)}
.blk.on{opacity:1;transform:none;filter:none}
.blk::after{content:"";position:absolute;inset:0;border-radius:inherit;
  box-shadow:0 0 0 1.5px var(--orange) inset;opacity:0}
.blk.on::after{animation:snap .7s var(--ease)}
@keyframes snap{0%{opacity:.8}100%{opacity:0}}
.blk-nav{grid-area:nav;flex-direction:row;align-items:center;gap:8px;padding:0 10px}
.blk-hero{grid-area:hero;padding:clamp(11px,1.8vw,18px);gap:8px;background:rgba(255,244,234,.1)}
.blk-a{grid-area:a}.blk-b{grid-area:b}.blk-c{grid-area:c}
.blk-foot{grid-area:foot;flex-direction:row;align-items:center;gap:10px;padding:0 10px;
  background:rgba(255,244,234,.05)}
.blk .ln{height:6px;border-radius:100px;background:rgba(255,244,234,.28);width:100%}
.blk .ln.sm{width:38%;height:5px;background:rgba(255,244,234,.17)}
.blk .ln.md{width:62%}
.blk .ln.lg{width:80%;height:8px}
.blk .ln.xl{width:92%;height:12px;background:rgba(255,244,234,.55)}
.blk-nav .ln{width:24px;height:5px}
.blk .sq{height:34%;min-height:24px;border-radius:6px;background:rgba(247,151,44,.34)}
.blk-nav .sq{width:15px;height:15px;min-height:0;border-radius:5px;margin-right:auto;background:var(--orange)}
.blk .pill-sk{width:70px;height:18px;border-radius:100px;background:var(--orange);margin-top:3px}
.builder-cap{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:15px;
  padding:0 3px;font-family:'Epilogue',system-ui,sans-serif;font-weight:580;
  font-size:.75rem;letter-spacing:.13em;text-transform:uppercase;color:var(--hint)}
.builder-state{display:inline-flex;align-items:center;gap:7px;color:var(--orange);white-space:nowrap}
.builder-state::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;
  animation:blip 1.1s ease-in-out infinite}
.builder-state.done{color:#7BE3AE}
.builder-state.done::before{animation:none}
@keyframes blip{0%,100%{opacity:.25}50%{opacity:1}}

/* ── 15 · Processo ───────────────────────────────────────────────────────── */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(18px,2.2vw,34px)}
.step{position:relative;padding-top:28px;border-top:2px solid var(--line)}
.step::before{content:"";position:absolute;top:-2px;left:0;width:0;height:2px;background:var(--wine);
  transition:width .9s var(--ease)}
.step.in::before{width:100%}
.step:nth-child(2).in::before{transition-delay:.12s}
.step:nth-child(3).in::before{transition-delay:.24s}
.step:nth-child(4).in::before{transition-delay:.36s}
.step-n{display:block;font-family:'Epilogue',system-ui,sans-serif;
  font-weight:800;font-size:2.9rem;line-height:1;letter-spacing:-.055em;
  color:transparent;-webkit-text-stroke:1.3px rgba(25,10,19,.22);margin-bottom:18px}
.step h3{font-weight:720;font-size:1.08rem;letter-spacing:-.022em;margin-bottom:10px}
.step p{color:var(--muted);font-size:.89rem;line-height:1.7}
.step-t{display:inline-block;margin-top:16px;font-family:'Epilogue',system-ui,sans-serif;
  font-weight:620;font-size:.75rem;letter-spacing:.12em;
  text-transform:uppercase;color:var(--orange-dk)}
/* sobre faixa escura o contorno e a barra de progresso invertem-se */
.band .step-n{-webkit-text-stroke-color:rgba(255,244,234,.36)}
.band .step::before{background:var(--orange)}

/* ── 16 · Números em faixa ───────────────────────────────────────────────── */
.stat-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(20px,3vw,48px)}
.stat-row dt{font-weight:780;
  font-size:clamp(1.9rem,1.3rem + 1.6vw,2.9rem);line-height:1;letter-spacing:-.042em;color:var(--orange)}
.stat-row dd{font-family:'Epilogue',system-ui,sans-serif;font-weight:580;
  font-size:.75rem;letter-spacing:.11em;text-transform:uppercase;color:var(--muted);
  margin-top:12px;line-height:1.5}

/* ── 17 · Portfólio ──────────────────────────────────────────────────────── */
.filters{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:clamp(28px,3vw,42px)}
.filter{display:inline-flex;align-items:center;gap:8px;padding:11px 19px;border-radius:100px;
  border:1px solid var(--line);background:var(--card);
  font-family:'Epilogue',system-ui,sans-serif;font-weight:620;
  font-size:.85rem;color:var(--muted);
  transition:border-color .25s var(--ease),color .25s var(--ease),background-color .25s var(--ease),transform .15s var(--ease)}
.filter span{font-size:.75rem;color:var(--hint);letter-spacing:.06em}
.filter:hover{border-color:var(--text);color:var(--text)}
.filter:active{transform:scale(.96)}
.filter.on{background:var(--wine);border-color:var(--wine);color:#fff}
.filter.on span{color:rgba(255,255,255,.66)}

.work{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(12px,1.3vw,18px)}
.work-3{grid-template-columns:repeat(3,1fr)}
/* Três por linha, todos iguais. Cheguei a dar mais peso aos dois primeiros,
   mas ao filtrar por categoria a contagem muda e sobrava um buraco na grelha.
   O momento grande da página é o destaque, em cima; aqui o trabalho é deixar
   comparar os projectos lado a lado. */
.work-grid{grid-template-columns:repeat(6,1fr);gap:clamp(16px,1.6vw,24px)}
.work-grid .work-item{grid-column:span 2}
.work-grid .work-wide{grid-column:span 3}

/* ── Cartão de projecto ──────────────────────────────────────────────────
   Duas partes: o trabalho em cima, a informação em baixo. O texto deixa de
   assentar na fotografia, por isso o contraste é sempre o mesmo — e a imagem
   deixa de ser cortada para caber por baixo de palavras. */
.work-item{position:relative;display:flex;flex-direction:column;
  border-radius:var(--r-xl);overflow:hidden;isolation:isolate;
  background:var(--card);border:1px solid var(--line-soft);
  box-shadow:0 1px 2px rgba(25,10,19,.04);
  transition:transform .38s var(--ease), box-shadow .38s var(--ease),
             border-color .38s var(--ease), opacity .35s var(--ease)}

/* A moldura do trabalho. Fundo na paleta, para o mockup se destacar sem
   precisar de sombra a fingir profundidade. */
.work-shot{position:relative;display:block;aspect-ratio:16/10;overflow:hidden;
  background:
    radial-gradient(120% 100% at 78% 12%, rgba(247,151,44,.14), transparent 60%),
    linear-gradient(148deg,#5B0A2E,#3A0733)}
.work-shot::after{content:"";position:absolute;inset:0;
  box-shadow:inset 0 -1px 0 rgba(255,244,234,.1)}
.work-item img{width:100%;height:100%;object-fit:cover;object-position:center;
  transform:scale(1.005);
  transition:transform .7s var(--ease), filter .45s var(--ease)}

.work-body{display:flex;flex-direction:column;gap:7px;flex:1;
  padding:clamp(18px,2vw,24px) clamp(18px,2vw,26px) clamp(16px,1.8vw,22px)}

.work-tipo{font-family:'Epilogue',system-ui,sans-serif;font-weight:660;
  font-size:.75rem;letter-spacing:.13em;text-transform:uppercase;color:var(--orange-dk)}
.work-nome{font-family:'Epilogue',system-ui,sans-serif;font-weight:740;
  font-size:clamp(1.06rem,.96rem + .4vw,1.28rem);letter-spacing:-.028em;
  line-height:1.22;color:var(--text)}

/* Sector e cidade separados por um traço fino em vez de um ponto no meio de
   uma linha cinzenta: lê-se de relance qual é qual. */
.work-linha{display:flex;flex-wrap:wrap;align-items:center;gap:9px;
  font-size:.84rem;color:var(--muted)}
.work-linha em{font-style:normal}
.work-linha i{font-style:normal;color:var(--hint);
  padding-left:9px;border-left:1px solid var(--line)}

/* A acção fica encostada ao fundo do cartão: em cartões de alturas
   diferentes, alinha sempre na mesma linha. */
.work-accao{margin-top:auto;padding-top:14px;display:inline-flex;align-items:center;gap:7px;
  font-family:'Epilogue',system-ui,sans-serif;font-weight:660;font-size:.8rem;
  letter-spacing:.03em;color:var(--wine);
  transition:color .28s var(--ease), gap .28s var(--ease)}
.work-accao .ico{width:.95em;height:.95em;
  transition:transform .28s var(--ease)}

/* Fio laranja que corre no topo do cartão ao passar o rato. Um só sinal de
   que o cartão é clicável, em vez de sombra, escala e cor ao mesmo tempo. */
.work-item::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;z-index:3;
  background:var(--orange);transform:scaleX(0);transform-origin:left;
  transition:transform .42s var(--ease)}

@media (hover:hover) and (pointer:fine){
  .work-item:hover{transform:translateY(-4px);border-color:var(--line);
    box-shadow:0 2px 6px rgba(25,10,19,.05), 0 24px 48px -22px rgba(69,6,59,.32)}
  .work-item:hover::before,
  .work-item:focus-visible::before{transform:scaleX(1)}
  .work-item:hover img{transform:scale(1.05)}
  .work-item:hover .work-accao{color:var(--orange-dk);gap:10px}
  .work-item:hover .work-accao .ico{transform:translate(2px,-2px)}
}
.work-item:active{transform:translateY(-1px) scale(.995)}
.work-item:focus-visible::before{transform:scaleX(1)}

.work-item[hidden]{display:none}

/* ── Carrossel de projectos (página inicial) ─────────────────────────────
   Arrastar com o dedo é o gesto natural no telemóvel, e o scroll-snap dá isso
   sem uma linha de JavaScript. As setas existem para o rato, onde arrastar
   não é óbvio. */
.carrossel{position:relative}
/* Esbate as pontas: sem isto os cartões cortam a direito na margem e parece
   um erro de alinhamento em vez de uma montra que continua. */
@media (min-width:900px){
  .carrossel-pista{
    -webkit-mask-image:linear-gradient(90deg,transparent,#000 3%,#000 97%,transparent);
    mask-image:linear-gradient(90deg,transparent,#000 3%,#000 97%,transparent)}
}
.carrossel-pista{display:flex;gap:clamp(14px,1.5vw,22px);
  overflow-x:auto;overscroll-behavior-x:contain;
  scroll-snap-type:x mandatory;scroll-behavior:smooth;
  /* O respiro nas pontas evita que o primeiro e o último cartão fiquem
     colados à margem quando a pista chega ao fim. */
  padding:4px 4px 20px;margin-inline:-4px;
  scrollbar-width:none;-ms-overflow-style:none}
.carrossel-pista::-webkit-scrollbar{display:none}
.carrossel-pista .work-item{flex:0 0 clamp(260px,30%,380px);scroll-snap-align:start}

.carrossel-seta{position:absolute;top:calc(50% - 34px);z-index:4;
  width:46px;height:46px;display:none;place-items:center;
  border-radius:50%;border:1px solid var(--line);
  background:var(--card);color:var(--wine);box-shadow:var(--sh-2);
  transition:background-color .2s var(--ease),color .2s var(--ease),
             transform .14s var(--ease),opacity .2s var(--ease)}
.carrossel-seta:hover{background:var(--wine);color:#fff;border-color:var(--wine)}
.carrossel-seta:active{transform:scale(.94)}
/* A pista é um ciclo: nunca chega ao fim, por isso as setas nunca ficam
   inúteis e não precisam de estado desactivado. */
.carrossel-ant{left:calc(var(--gut) * -1 + 4px);transform:rotate(180deg)}
.carrossel-ant:active{transform:rotate(180deg) scale(.94)}
.carrossel-seg{right:calc(var(--gut) * -1 + 4px)}
.carrossel-seta .ico{width:20px;height:20px;transform:rotate(45deg)}

/* Só com rato: no telemóvel arrasta-se, e as setas roubavam espaço ao ecrã. */
@media (hover:hover) and (pointer:fine){
  .carrossel-seta{display:grid}
}
@media (max-width:1340px){
  .carrossel-ant{left:6px}
  .carrossel-seg{right:6px}
}
@media (max-width:680px){
  .carrossel-pista .work-item{flex-basis:min(82%,320px)}
}

.work-empty{text-align:center;color:var(--hint);padding:60px 0}

/* transição suave ao filtrar: esmorece e encolhe antes de sair da grelha,
   em vez do salto instantâneo de [hidden] */
.work-item.work-out{opacity:0;transform:scale(.94);pointer-events:none}
.work-item.work-hide{display:none}

/* Projecto em destaque: abre a página com peso, antes da grelha filtrável. */
.spotlight{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);
  border-radius:var(--r-xl);overflow:hidden;border:1px solid var(--line-soft);
  box-shadow:var(--sh-2);margin-bottom:clamp(40px,4.6vw,68px);background:var(--card)}
.spotlight-media{position:relative;overflow:hidden;min-height:280px}
.spotlight-media img{width:100%;height:100%;object-fit:cover;
  transition:transform .9s var(--ease)}
.spotlight:hover .spotlight-media img{transform:scale(1.04)}
.spotlight-flag{position:absolute;top:18px;left:18px;z-index:2;padding:6px 14px;border-radius:100px;
  background:var(--orange);color:#2A0110;font-family:'Epilogue',system-ui,sans-serif;
  font-weight:680;font-size:.75rem;letter-spacing:.13em;
  text-transform:uppercase}
.spotlight-body{padding:clamp(28px,3.2vw,46px);display:flex;flex-direction:column;justify-content:center}
.spotlight-cat{font-family:'Epilogue',system-ui,sans-serif;font-weight:620;
  font-size:.75rem;letter-spacing:.17em;text-transform:uppercase;color:var(--orange-dk);
  margin-bottom:12px}
.spotlight-body h2{font-family:'Epilogue',system-ui,sans-serif;
  font-weight:750;font-size:clamp(1.4rem,1.15rem + 1vw,2rem);
  letter-spacing:-.032em;line-height:1.12}
.spotlight-body p{color:var(--muted);margin-top:14px;font-size:.93rem;max-width:44ch}
.spotlight-meta{display:flex;flex-wrap:wrap;gap:20px;margin-top:24px;padding-top:22px;
  border-top:1px solid var(--line-soft)}
.spotlight-meta div{font-family:'Epilogue',system-ui,sans-serif;
  font-weight:600;font-size:.75rem;letter-spacing:.13em;
  text-transform:uppercase;color:var(--hint)}
.spotlight-meta b{display:block;font-weight:720;font-size:.95rem;
  letter-spacing:-.018em;color:var(--text);text-transform:none;margin-top:6px}

/* ── 18 · Depoimentos ────────────────────────────────────────────────────── */
/* Grelha clara de cartões. Deliberadamente diferente do CTA logo abaixo:
   fundo claro, três colunas, sem navegação. */
.quotes{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(14px,1.6vw,24px);
  align-items:start}
.quote{position:relative;display:flex;flex-direction:column;
  padding:clamp(28px,2.7vw,38px);border-radius:var(--r-xl);
  border:1px solid var(--line-soft);background:var(--paper);
  transition:transform .4s var(--ease),box-shadow .4s var(--ease),border-color .4s var(--ease)}
.quote:hover{transform:translateY(-4px);box-shadow:var(--sh-2);border-color:var(--line)}
.quote-mark{width:34px;height:34px;color:var(--orange);opacity:.85;margin-bottom:20px;flex:none}
.quote blockquote{font-size:.97rem;line-height:1.72;color:var(--text);font-weight:500}
.quote figcaption{margin-top:auto;padding-top:22px;display:grid;gap:3px}
.quote figcaption::before{content:"";width:28px;height:2px;background:var(--orange);
  border-radius:2px;margin-bottom:16px}
.quote figcaption strong{font-family:'Epilogue',system-ui,sans-serif;
  font-weight:720;font-size:.95rem;letter-spacing:-.018em;
  color:var(--wine)}
.quote figcaption span{font-size:.84rem;color:var(--hint)}

/* ── 19 · Planos ─────────────────────────────────────────────────────────── */
.plans{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(14px,1.6vw,24px);align-items:start}
.plan{position:relative;display:flex;flex-direction:column;padding:clamp(28px,2.7vw,38px);
  border-radius:var(--r-xl);border:1px solid var(--line-soft);background:var(--card);
  box-shadow:var(--sh-1);transition:transform .4s var(--ease),box-shadow .4s var(--ease)}
.plan:hover{transform:translateY(-5px);box-shadow:var(--sh-2)}
.plan-star{background:var(--grad);border-color:transparent;color:#FFF4EA;
  box-shadow:0 32px 74px -34px rgba(69,6,59,.78)}
.plan-star:hover{box-shadow:0 40px 88px -34px rgba(69,6,59,.88)}
.plan-flag{position:absolute;top:-12px;left:clamp(28px,2.7vw,38px);padding:6px 14px;border-radius:100px;
  background:var(--orange);color:#2A0110;font-family:'Epilogue',system-ui,sans-serif;
  font-weight:680;font-size:.75rem;letter-spacing:.12em;text-transform:uppercase}
.plan-tier{font-family:'Epilogue',system-ui,sans-serif;font-weight:640;
  font-size:.75rem;letter-spacing:.19em;text-transform:uppercase;color:var(--orange-dk);margin-bottom:12px}
.plan-star .plan-tier{color:var(--orange)}
.plan-name{font-weight:760;font-size:1.56rem;letter-spacing:-.033em;line-height:1.08}
.plan-for{color:var(--muted);font-size:.88rem;margin-top:10px;min-height:3.4em;line-height:1.6}
.plan-star .plan-for{color:rgba(255,244,234,.78)}
.plan-list{display:grid;gap:12px;margin:26px 0 30px;padding-top:26px;border-top:1px solid var(--line)}
.plan-star .plan-list{border-top-color:rgba(255,244,234,.2)}
.plan-list li{display:flex;align-items:flex-start;gap:11px;font-size:.89rem;color:var(--muted);line-height:1.58}
.plan-star .plan-list li{color:rgba(255,244,234,.82)}
.plan-list .ico{color:var(--orange-dk);margin-top:.34em;width:.9em;height:.9em}
.plan-star .plan-list .ico{color:var(--orange)}
.plan .btn{margin-top:auto}
.plan-star .btn-solid{background:var(--orange);color:#2A0110;box-shadow:none}
.plan-star .btn-solid:hover{background:#FFB050}
.plans-note{text-align:center;color:var(--hint);font-size:.86rem;margin-top:34px;max-width:64ch;
  margin-inline:auto}

/* ── 20 · Perguntas frequentes ───────────────────────────────────────────── */
.faq-grid{display:grid;grid-template-columns:minmax(0,.74fr) minmax(0,1.26fr);
  gap:clamp(36px,5vw,76px);align-items:start}
.faq-side{position:sticky;top:116px}
.faq-side .head-lede{margin-bottom:26px}
.faq{border-top:1px solid var(--line)}
.faq-item{border-bottom:1px solid var(--line)}
.faq-q{width:100%;display:flex;align-items:center;justify-content:space-between;gap:22px;
  padding:22px 2px;text-align:left;transition:color .3s var(--ease)}
.faq-q span{font-weight:660;font-size:clamp(.97rem,.93rem + .24vw,1.07rem);
  letter-spacing:-.02em;line-height:1.4}
.faq-q:hover{color:var(--wine)}
.faq-ico{position:relative;flex:none;width:25px;height:25px;border-radius:50%;border:1px solid var(--line);
  transition:border-color .35s var(--ease)}
.faq-ico::before,.faq-ico::after{content:"";position:absolute;top:50%;left:50%;width:9px;height:1.6px;
  background:currentColor;transform:translate(-50%,-50%);
  transition:transform .35s var(--ease),opacity .25s var(--ease)}
.faq-ico::after{transform:translate(-50%,-50%) rotate(90deg)}
.faq-q[aria-expanded="true"]{color:var(--wine)}
.faq-q[aria-expanded="true"] .faq-ico{border-color:var(--wine)}
.faq-q[aria-expanded="true"] .faq-ico::after{transform:translate(-50%,-50%) rotate(0);opacity:0}
.faq-a{display:grid;grid-template-rows:0fr;transition:grid-template-rows .4s var(--ease)}
.faq-a > div{overflow:hidden}
.faq-a.open{grid-template-rows:1fr}
.faq-a p{color:var(--muted);font-size:.92rem;padding:0 48px 24px 2px;max-width:64ch}

/* ── 21 · Orçamento ──────────────────────────────────────────────────────── */
.brief{display:grid;grid-template-columns:minmax(0,.84fr) minmax(0,1.16fr);
  gap:clamp(32px,4.4vw,76px);align-items:start}
.brief-copy p{color:var(--muted);margin-top:18px;max-width:46ch}
.brief-tr{display:grid;gap:11px;margin-top:28px}
.brief-tr li{display:flex;align-items:center;gap:11px;font-size:.9rem;color:var(--text)}
.brief-tr .ico{color:var(--orange-dk);width:.9em;height:.9em}
.brief-direct{display:grid;gap:11px;margin-top:30px;padding-top:26px;border-top:1px solid var(--line)}
.brief-direct a,.brief-direct span{display:flex;align-items:center;gap:11px;font-size:.92rem;
  color:var(--muted);transition:color .25s var(--ease)}
.brief-direct a:hover{color:var(--wine)}
.brief-direct .ico{color:var(--orange-dk)}

.brief-form{display:grid;gap:17px;padding:clamp(26px,3vw,38px);border-radius:var(--r-xl);
  background:var(--paper);border:1px solid var(--line);box-shadow:var(--sh-1)}
.field{display:grid;gap:8px}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:15px}
.field label,.field legend{font-family:'Epilogue',system-ui,sans-serif;
  font-weight:640;font-size:.75rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--hint)}
.field label span{color:var(--orange-dk)}
.legend-hint{text-transform:none;letter-spacing:.02em;font-size:.75rem;color:var(--hint)}
.field legend{margin-bottom:11px}
.field input,.field textarea{width:100%;padding:14px 16px;border-radius:var(--r-md);
  border:1px solid var(--line);background:var(--card);color:var(--text);
  font-family:inherit;font-size:.93rem;line-height:1.6;resize:vertical;
  transition:border-color .3s var(--ease),box-shadow .3s var(--ease)}
.field input::placeholder,.field textarea::placeholder{color:#A99CA3}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--wine);
  box-shadow:0 0 0 3px rgba(109,6,51,.1)}
.field input[aria-invalid="true"]{border-color:#C0392B}

.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{padding:10px 16px;border-radius:100px;border:1px solid var(--line);background:var(--card);
  font-size:.83rem;font-weight:500;color:var(--muted);
  transition:border-color .25s var(--ease),color .25s var(--ease),background-color .25s var(--ease)}
.chip:hover{border-color:var(--wine);color:var(--text)}
.chip.on{background:var(--wine);border-color:var(--wine);color:#fff;font-weight:600}
.brief-note{font-size:.78rem;color:var(--hint);text-align:center;line-height:1.6}
.brief-note.err{color:#C0392B}

/* ── 22 · CTA final ──────────────────────────────────────────────────────── */
/* Cartão suspenso sobre o papel, centrado. Ao não ser uma faixa de largura
   total, separa-se do rodapé escuro que vem logo a seguir. */
.cta-sec{padding-block:clamp(20px,3vw,44px) clamp(60px,6.4vw,96px);background:var(--paper)}
.cta-card{position:relative;overflow:hidden;text-align:center;
  padding:clamp(38px,5vw,76px) clamp(26px,4vw,64px);
  border-radius:clamp(22px,2.6vw,32px);
  background:linear-gradient(135deg,#7A0A3B 0%,#5A0630 46%,#3C0534 100%);
  color:#FFF4EA;box-shadow:0 40px 90px -44px rgba(69,6,59,.85)}
.cta-card::after{content:"";position:absolute;left:50%;top:-72%;width:78%;aspect-ratio:1;
  transform:translateX(-50%);border-radius:50%;pointer-events:none;
  background:radial-gradient(circle,rgba(247,151,44,.24),transparent 66%)}
.cta-card > *{position:relative;z-index:2}
.cta-card .eyebrow{color:var(--orange);margin-bottom:22px}
.cta-card .h2{max-width:22ch;margin-inline:auto}
.cta-note{margin-top:20px;color:rgba(255,244,234,.72);font-size:.9rem}
.cta-acts{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-top:32px}
.cta-card .btn-solid{background:var(--orange);color:#2A0110;box-shadow:0 14px 32px -14px rgba(247,151,44,.7)}
.cta-card .btn-solid:hover{background:#FFB050}
.cta-card .btn-ghost{border-color:rgba(255,244,234,.3);color:#FFF4EA}
.cta-card .btn-ghost:hover{border-color:#FFF4EA;background:rgba(255,244,234,.1)}
.cta-tel{margin-top:24px;font-size:.86rem;color:rgba(255,244,234,.58)}
.cta-tel a{color:#FFF4EA;border-bottom:1px solid rgba(255,244,234,.35);padding-bottom:1px;
  transition:color .25s var(--ease),border-color .25s var(--ease)}
.cta-tel a:hover{color:var(--orange);border-color:var(--orange)}

/* ── 23 · Rodapé ─────────────────────────────────────────────────────────── */
/* Quase preto com fundo de ameixa. Recua deliberadamente: o vermelho vivo
   fica reservado ao cartão do CTA, que é onde se quer o clique. */
.foot{
  --text:#FFF4EA; --muted:rgba(255,244,234,.66); --hint:rgba(255,244,234,.44);
  --line:rgba(255,244,234,.13); --line-soft:rgba(255,244,234,.08);
  background:linear-gradient(180deg,#1F0417 0%,#160310 58%,#10020B 100%);
  color:var(--text);
  padding-block:clamp(56px,5.8vw,84px) 30px;position:relative;z-index:2;overflow:hidden;
}
.foot::after{content:"";position:absolute;left:-10%;top:-30%;width:46%;aspect-ratio:1;
  border-radius:50%;pointer-events:none;
  background:radial-gradient(circle,rgba(109,6,51,.42),transparent 70%)}
.foot .wrap{position:relative;z-index:2}
.foot-top{display:grid;grid-template-columns:1.8fr 1fr 1fr 1.25fr;gap:clamp(28px,3.2vw,52px);
  padding-bottom:44px;border-bottom:1px solid var(--line-soft)}
.foot-brand img{height:62px;width:auto}
.foot-brand p{color:var(--muted);font-size:.88rem;margin-top:18px;max-width:36ch;line-height:1.74}
.foot-social{display:flex;gap:10px;margin-top:22px}
.foot-social a{width:40px;height:40px;display:grid;place-items:center;border:1px solid var(--line);
  border-radius:11px;color:var(--muted);
  transition:color .3s var(--ease),border-color .3s var(--ease),transform .3s var(--ease)}
.foot-social a:hover{color:var(--orange);border-color:var(--orange);transform:translateY(-2px)}
.foot-col{display:flex;flex-direction:column;gap:12px}
.foot-col h4{font-weight:640;font-size:.75rem;letter-spacing:.19em;
  text-transform:uppercase;color:var(--hint);margin-bottom:6px}
.foot-col a,.foot-col span{display:flex;align-items:center;gap:10px;font-size:.89rem;color:var(--muted)}
.foot-col a{transition:color .25s var(--ease)}
.foot-col a:hover{color:var(--orange)}
.foot-col .ico{color:var(--orange);width:1em;height:1em;flex:none}
.foot-bottom{display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;padding-top:26px;
  font-size:.8rem;color:var(--hint)}

/* ── 24 · WhatsApp flutuante ─────────────────────────────────────────────── */
.wa-float{position:fixed;right:clamp(16px,2.2vw,28px);bottom:clamp(16px,2.2vw,28px);z-index:50;
  width:56px;height:56px;display:grid;place-items:center;border-radius:50%;
  background:var(--wine);color:#fff;box-shadow:0 16px 38px -12px rgba(109,6,51,.7);
  opacity:0;transform:translateY(70px) scale(.7);
  transition:transform .45s var(--ease),opacity .35s var(--ease),background-color .3s var(--ease)}
.wa-float.show{opacity:1;transform:none}
.wa-float:hover{background:var(--wine-dk)}

/* ── 24b · Transição suave entre páginas ──────────────────────────────────── */
/* Nos motores que já suportam a View Transitions API entre documentos
   (Chrome/Edge e Safari recentes), navegar entre páginas do site passa a
   dissolver suavemente em vez de saltar a branco. Em navegadores sem suporte
   isto é ignorado sem qualquer efeito — não há JavaScript a compensar. */
@view-transition{ navigation: auto; }

/* ── 24c · Declaração (faixa de abertura em quem-somos) ───────────────────── */
.creed{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);
  gap:clamp(32px,5vw,72px);align-items:center}
.creed-quote{font-family:'Epilogue',system-ui,sans-serif;
  font-weight:720;
  font-size:clamp(1.4rem,1.05rem + 1.5vw,2.15rem);line-height:1.24;letter-spacing:-.03em;
  text-wrap:balance}
.creed-quote em{font-style:normal;color:var(--orange)}
.creed-by{margin-top:24px;padding-top:20px;border-top:1px solid var(--line);
  font-family:'Epilogue',system-ui,sans-serif;font-weight:600;
  font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;color:var(--hint)}
.creed-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;
  background:var(--line);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden}
.creed-stats div{background:rgba(0,0,0,.18);padding:clamp(20px,2.4vw,28px)}
.creed-stats dt{font-family:'Epilogue',system-ui,sans-serif;
  font-weight:780;font-size:clamp(1.6rem,1.2rem + 1.1vw,2.2rem);
  line-height:1;letter-spacing:-.04em;color:var(--orange)}
.creed-stats dd{font-family:'Epilogue',system-ui,sans-serif;
  font-weight:580;font-size:.75rem;letter-spacing:.11em;
  text-transform:uppercase;color:var(--muted);margin-top:10px;line-height:1.5}

/* ── 24d · Incluído em todos os projectos ─────────────────────────────────── */
.included{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;
  background:var(--line);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden}
.included li{background:var(--card);padding:clamp(20px,2.2vw,26px);
  display:flex;align-items:flex-start;gap:12px;font-size:.9rem;line-height:1.6;
  transition:background-color .3s var(--ease)}
.included li:hover{background:var(--paper)}
.included .ico{color:var(--orange-dk);margin-top:.3em;width:.95em;height:.95em}

/* ── 24e · Manifesto (princípios em quem-somos) ───────────────────────────── */
/* Lista editorial de linhas, deliberadamente diferente da grelha de cartões
   .promise usada no "Porquê nós" da home — evita repetir o mesmo padrão
   visual duas vezes no site. */
.manifesto{border-top:1px solid var(--line)}
.manifesto-item{display:grid;grid-template-columns:88px 1fr;gap:clamp(18px,3vw,36px);
  padding:clamp(26px,2.8vw,38px) 0;border-bottom:1px solid var(--line);align-items:start}
.manifesto-n{font-family:'Epilogue',system-ui,sans-serif;font-weight:800;
  font-size:2.9rem;line-height:1;letter-spacing:-.05em;color:transparent;
  -webkit-text-stroke:1.3px rgba(109,6,51,.32);transition:-webkit-text-stroke-color .4s var(--ease)}
.manifesto-item:hover .manifesto-n{-webkit-text-stroke-color:var(--orange-dk)}
.manifesto-item h3{font-weight:730;font-size:1.18rem;
  letter-spacing:-.026em;margin-bottom:9px}
.manifesto-item p{color:var(--muted);font-size:.93rem;max-width:64ch}

/* ── 25 · Revelação ──────────────────────────────────────────────────────── */
.reveal{opacity:0;transform:translateY(20px);
  transition:opacity .75s var(--ease),transform .75s var(--ease)}
.reveal.in{opacity:1;transform:none}
.hero-el{opacity:0;transform:translateY(18px);animation:enter .9s var(--ease) forwards}
.hero-title{animation-delay:.06s}
.hero-lede{animation-delay:.2s}
.hero-acts{animation-delay:.32s}
.hero-visual{animation-delay:.16s}
.hero-facts{animation-delay:.44s}
@keyframes enter{to{opacity:1;transform:none}}

/* ── 26 · Adaptação ──────────────────────────────────────────────────────── */
@media (max-width:1100px){
  .nav-links{display:none}
  .burger{display:flex}
  .topbar-note{display:none}
  .topbar-in{justify-content:center}
  .cards,.cards-4{grid-template-columns:repeat(2,1fr)}
  .card-hi{grid-row:auto;grid-column:span 2}
  /* Em coluna única o cartão deixa de empurrar o ícone para baixo, e a
     etiqueta em absoluto passava a sobrepor-se-lhe. Entra na coluna. */
  .card-hi{justify-content:flex-start}
  .card-hi .card-ico{margin-top:0}
  .card-tag{position:static;order:-1;align-self:flex-start;margin-bottom:18px}
  .promise{grid-template-columns:repeat(2,1fr)}
  .head-row{grid-template-columns:1fr;align-items:start}
  .hero-in,.demo,.faq-grid,.brief{grid-template-columns:1fr}
  .quotes{grid-template-columns:1fr;max-width:640px;margin-inline:auto}
  .hero-visual{max-width:620px;margin-top:8px}
  /* Numa só coluna o texto passa por cima da imagem: o véu deixa de ser
     horizontal e passa a uniforme, para manter o contraste de leitura.
     Sobre o vinho a tinta é escura — com o véu claro de antes, o texto cor
     de creme ficava ilegível de cima a baixo. */
  .hero-bg img{object-position:64% 30%;opacity:.55}
  .hero-bg::after{background:
    linear-gradient(180deg, rgba(45,4,26,.92) 0%, rgba(45,4,26,.86) 22%,
      rgba(45,4,26,.8) 62%, rgba(45,4,26,.9) 100%),
    linear-gradient(120deg, rgba(109,6,51,.5), rgba(69,6,59,.42))}
  .dominio-linha{flex-direction:column}
  .dominio-botao.btn-solid{width:100%;padding-block:16px}
  .dominio-pontos{gap:10px 18px}
  .story{grid-template-columns:1fr}
  .story-media{max-width:560px;margin-inline:auto;width:100%}
  .story-fig img{aspect-ratio:16/11}
  .faq-side{position:static}
  .steps{grid-template-columns:repeat(2,1fr);gap:34px 26px}
  .plans{grid-template-columns:1fr;max-width:520px;margin-inline:auto}
  .plan-star{order:-1}
  .plan-for{min-height:0}
  .foot-top{grid-template-columns:1fr 1fr}
  .foot-brand{grid-column:1/-1}
  .hero-facts,.stat-row{grid-template-columns:repeat(2,1fr);gap:26px 30px}
  .work-3{grid-template-columns:repeat(2,1fr)}
  .work-grid .work-item,.work-grid .work-wide{grid-column:span 3}
  .svc-index{grid-template-columns:repeat(2,1fr)}
  .svc-row{grid-template-columns:1fr;gap:28px}
  .svc-row-flip .svc-row-media{order:0}
  .svc-row-media{aspect-ratio:16/7;max-height:260px}
  .creed{grid-template-columns:1fr}
  .included{grid-template-columns:repeat(2,1fr)}
  .spotlight{grid-template-columns:1fr}
  .spotlight-media{aspect-ratio:16/9;min-height:0}
}

@media (max-width:820px){
  .work-grid{grid-template-columns:1fr}
  .work-grid .work-item,.work-grid .work-wide{grid-column:span 1}
  .work-grid .work-wide{aspect-ratio:16/11}
  .work-3{grid-template-columns:1fr}
}

@media (max-width:680px){
  html{scroll-padding-top:78px}
  .nav-in{height:64px}
  .nav-logo img{height:28px}
  .nav-cta{display:none}
  /* Em telemóvel só cabe o telefone e as redes; o e-mail fica no rodapé. */
  .topbar-in{min-height:38px}
  .topbar-links{gap:14px;font-size:.75rem}
  .topbar-links a{white-space:nowrap}
  .topbar-links a[href^="mailto"],.topbar-sep{display:none}
  .hero{padding-block:34px 44px}
  .hero-bg img{opacity:.34}
  .hero-visual{padding:0 14px 24px 0}
  .hero-chip{left:-6px;padding:12px 16px}
  .hero-chip-n{font-size:1.5rem}
  .story-media{padding:0 14px 22px 0}
  .story-badge{left:-6px;bottom:36px;padding:13px 17px}
  .story-badge strong{font-size:1.55rem}
  .story-facts{grid-template-columns:1fr;gap:18px}
  .story-lead{padding-left:16px}
  .cards,.cards-4,.promise{grid-template-columns:1fr}
  .card-hi{grid-column:span 1}
  .steps{grid-template-columns:1fr;gap:28px}
  .field-row{grid-template-columns:1fr}
  .builder-screen{height:258px;padding:11px;gap:6px}
  .foot-top{grid-template-columns:1fr}
  .wa-float{width:52px;height:52px}
  .cta-acts .btn{width:100%}
  .svc-index{grid-template-columns:1fr}
  .svc-row-media{aspect-ratio:16/8;max-height:200px}
  .svc-row-badge{font-size:1.9rem;left:16px;bottom:16px}
  .svc-row-foot{gap:14px}
  .creed-stats,.included{grid-template-columns:1fr}
  .manifesto-item{grid-template-columns:56px 1fr;gap:16px}
  .manifesto-n{font-size:2rem}
}

/* ── 26b · Atalho para o painel ──────────────────────────────────────────── */
/* Texto miúdo e discreto, propositadamente. Não é conteúdo para visitantes:
   é um atalho de trabalho, e só aparece quando o site corre na máquina de
   quem o gere (ver script.js). A área de clique é maior do que a letra, para
   continuar a acertar-lhe sem esforço. */
.foot-admin{margin-left:14px;padding:6px 4px;
  font-size:.63rem;letter-spacing:.05em;color:var(--hint);opacity:.5;
  transition:opacity .25s var(--ease),color .25s var(--ease)}
.foot-admin:hover,.foot-admin:focus-visible{opacity:1;color:var(--orange)}

/* ── 27 · Toque: alvos e estados ─────────────────────────────────────────── */
/* Num rato o cursor aponta a um pixel; num dedo a área útil ronda os 9 mm.
   As ligações da barra de topo, as redes do rodapé e os itens de navegação
   tinham entre 14 px e 25 px de altura — clicáveis com precisão, não com o
   polegar. Aqui recebem área mínima sem mudar o desenho: a caixa cresce, o
   texto fica onde estava. */
@media (pointer:coarse){
  .topbar-links a,
  .nav-links a,
  .drawer-nav a,
  .foot-col a,
  .crumb a,
  .brief-direct a,
  .cta-tel a{min-height:44px;display:inline-flex;align-items:center}
  .foot-social a{width:44px;height:44px}
  .filter,.chip{min-height:44px}
  .nav-cta{min-height:44px}
  .faq-q{padding-block:26px}
}

/* Em ecrãs de toque não existe estado de passagem: o :hover fica «colado»
   depois do toque e o cartão continua levantado. Só se aplica onde há rato. */
@media (hover:none){
  .card:hover,.promise-card:hover,.quote:hover,.plan:hover,
  .work-item:hover,.foot-social a:hover,.btn:hover{transform:none}
  .work-item:hover img{filter:grayscale(1) contrast(1.05);transform:none}
}

/* Resposta ao toque: o elemento cede sob o dedo e volta. É o único sinal de
   que a interface ouviu o gesto antes de a página mudar. */
.btn:active,
.dominio-botao:active,
.burger:active,
.faq-q:active{transform:scale(.97)}
.foot-social a:active{transform:scale(.94)}

/* ── 28 · Movimento reduzido ─────────────────────────────────────────────── */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;
    transition-duration:.001ms !important}
  .reveal,.hero-el{opacity:1;transform:none}
  .blk{opacity:1;transform:none;filter:none}
  .step::before{width:100%}
  .wa-float{opacity:1;transform:none}
}
