/* =========================================================
   Marioneta — sistema unificado de espaços publicitários
   (rails laterais no desktop, faixas no topo/fim no móvel)
   Política: ~80% do espaço é promoção própria (produtos/serviços
   Marioneta), ~20% é reservado para monetização de terceiros
   (Google AdSense). Ver AD_SLOT_POLICY nos comentários HTML.
   Ficheiro partilhado por todas as páginas — uma só fonte da
   verdade, para nunca divergir entre secções do site.
   ========================================================= */

:root{
  --mn-rail-bg: rgba(10, 20, 22, 0.92);
  --mn-rail-border: #1c2c2e;
  --mn-rail-ink: #fefbee;
  --mn-rail-ink-2: #aab8b7;
  --mn-rail-accent: #c9974f;
  --mn-rail-accent-2: #7b9d9e;
}

/* ---------- desktop side rails ----------
   Só aparecem quando há mesmo espaço vazio real nas margens
   (ecrãs largos, coluna de conteúdo ~640-720px centrada) —
   nunca sobrepõem nem empurram o conteúdo principal. */
.mn-rail{
  display:none;
}
@media (min-width:1360px){
  .mn-rail{
    display:flex;
    flex-direction:column;
    gap:14px;
    position:fixed;
    top:112px;
    width:168px;
    max-height:calc(100vh - 140px);
    overflow:hidden;
    z-index:15;
  }
  .mn-rail--left{ left:calc(50% - 720px); }
  .mn-rail--right{ right:calc(50% - 720px); }
  /* em ecrãs "só" largos (não gigantes) ainda pode não sobrar
     espaço suficiente — recua para dentro da margem visível */
  @media (max-width:1560px){
    .mn-rail--left{ left:18px; }
    .mn-rail--right{ right:18px; }
  }
}

.mn-rail-card{
  background:var(--mn-rail-bg);
  border:1px solid var(--mn-rail-border);
  border-radius:14px;
  padding:16px;
  font-family:"Archivo", system-ui, sans-serif;
}
.mn-rail-card .mn-eyebrow{
  font-size:10.5px;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--mn-rail-accent);
  font-weight:700;
  margin:0 0 8px;
}
.mn-rail-card p{
  font-size:13px;
  line-height:1.5;
  color:var(--mn-rail-ink-2);
  margin:0 0 12px;
}
.mn-rail-card a.mn-rail-cta{
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-size:13px;
  font-weight:700;
  color:#0a0704;
  background:linear-gradient(120deg, var(--mn-rail-accent), var(--mn-rail-accent-2));
  padding:9px 14px;
  border-radius:999px;
  text-decoration:none;
}

/* slot reservado a anúncios de terceiros — inerte até a Google
   começar a servir (conta ainda em revisão); ocupa uma fatia
   pequena do rail, claramente rotulada, nunca o rail inteiro */
.mn-rail-adslot{
  background:var(--mn-rail-bg);
  border:1px dashed var(--mn-rail-border);
  border-radius:12px;
  padding:10px;
  min-height:250px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:6px;
}
.mn-rail-adslot .mn-ad-label{
  font-size:9.5px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--mn-rail-ink-2);
  opacity:.7;
}
.mn-rail-adslot ins.adsbygoogle{ width:100%; }

/* ---------- mobile: faixa de topo (promoção própria) ---------- */
.mn-mobile-strip{ display:none; }
@media (max-width:780px){
  .mn-mobile-strip{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    font-family:"Archivo", system-ui, sans-serif;
  }
  .mn-mobile-strip--top{
    position:relative;
    background:linear-gradient(120deg, rgba(201,151,79,.14), rgba(123,157,158,.10));
    border-bottom:1px solid var(--mn-rail-border);
    padding:9px 16px;
  }
  .mn-mobile-strip--top p{
    margin:0;
    font-size:12.5px;
    color:var(--mn-rail-ink);
    line-height:1.35;
  }
  .mn-mobile-strip--top a.mn-strip-cta{
    flex:none;
    font-size:12px;
    font-weight:700;
    color:var(--mn-rail-accent);
    text-decoration:none;
    white-space:nowrap;
  }
  .mn-mobile-strip--top .mn-strip-close{
    position:absolute;
    top:2px; right:2px;
    background:none; border:none;
    color:var(--mn-rail-ink-2);
    font-size:15px;
    line-height:1;
    padding:6px;
    cursor:pointer;
  }

  /* ---------- mobile: faixa fixa no fim (reservada a anúncios) ---------- */
  .mn-mobile-strip--bottom{
    position:fixed;
    left:0; right:0; bottom:0;
    z-index:40;
    background:var(--mn-rail-bg);
    border-top:1px solid var(--mn-rail-border);
    padding:6px 12px;
    padding-bottom:calc(6px + env(safe-area-inset-bottom));
    min-height:54px;
  }
  .mn-mobile-strip--bottom .mn-ad-label{
    font-size:8.5px;
    letter-spacing:.14em;
    text-transform:uppercase;
    color:var(--mn-rail-ink-2);
    opacity:.65;
    display:block;
    margin-bottom:2px;
  }
  .mn-mobile-strip--bottom ins.adsbygoogle{ display:block; width:100%; min-height:40px; }
  .mn-mobile-strip--bottom .mn-strip-close{
    position:absolute;
    top:4px; right:6px;
    background:none; border:none;
    color:var(--mn-rail-ink-2);
    font-size:14px;
    line-height:1;
    padding:4px;
    cursor:pointer;
  }
  /* quando o rodapé real da página entra em vista, a faixa fixa
     sai do caminho para nunca tapar o rodapé/CTAs finais */
  body.mn-footer-visible .mn-mobile-strip--bottom{ transform:translateY(110%); transition:transform .25s ease; }
  .mn-mobile-strip--bottom{ transition:transform .25s ease; }

  /* dá espaço ao fundo da página para a faixa fixa não tapar conteúdo */
  body.mn-has-bottom-strip{ padding-bottom:60px; }
}

/* dispensa total — o visitante fechou a faixa nesta sessão */
.mn-mobile-strip[hidden]{ display:none !important; }
