/* Privado.pt v1.5.7 — banners com enquadramento personalizável */
.pr-banner-rail{
 position:relative;
 width:calc(100% - 32px);
 max-width:1200px;
 height:218px;
 margin:18px auto;
 overflow:hidden;
 border:1px solid #59462a;
 border-radius:16px;
 background:#19191d;
 box-sizing:border-box;
}
.pr-banner{
 position:absolute;
 inset:0;
 display:flex;
 align-items:center;
 opacity:0;
 pointer-events:none;
 transition:opacity .9s ease;
 background:#151315;
 isolation:isolate;
}
.pr-banner.is-active{opacity:1;z-index:1;pointer-events:auto}
.pr-banner-img{
 position:absolute;
 inset:0;
 width:100%;height:100%;
 object-fit:cover;
 object-position:50% 50%;
 z-index:0;
 display:block;
}
.pr-banner-shade{position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,rgba(7,7,10,.8),rgba(7,7,10,.43) 50%,rgba(7,7,10,.06))}
.pr-banner-content{position:relative;padding:22px 34px;max-width:68%;color:#f5e6d2;z-index:2}
.pr-banner-content h2{font:600 clamp(24px,3.5vw,42px)/1.08 Georgia,serif;color:#f5d49b;margin:0 0 10px}
.pr-banner-content p{font-size:15px;line-height:1.5;margin:0 0 14px}
.pr-banner-action{display:inline-block;background:linear-gradient(125deg,#f5d898,#c9974b);color:#251608;border-radius:9px;padding:10px 16px;text-decoration:none;font-weight:700}
/* Esconde apenas os heros antigos quando há um banner ativo nessa página. */
.pr-banner-active-marker ~ .shell .page-title,
.pr-banner-active-marker ~ .shell .category-hero,
.pr-banner-active-marker ~ .shell .categories-hero,
.pr-banner-active-marker ~ .shell .hero-categories,
.pr-banner-active-marker ~ .shell .inner-hero,
.pr-banner-active-marker ~ .shell .category-banner,
.pr-banner-active-marker ~ .shell .cat-hero{display:none!important}
@media(max-width:720px){
 .pr-banner-rail{height:200px;width:calc(100% - 28px);margin:14px auto}
 .pr-banner-content{padding:18px;max-width:94%}
 .pr-banner-content h2{font-size:clamp(24px,6vw,33px)}
 .pr-banner-content p{font-size:13px}
 .pr-banner-shade{background:linear-gradient(90deg,rgba(7,7,10,.82),rgba(7,7,10,.33))}
}
@media(prefers-reduced-motion:reduce){.pr-banner{transition:none}}


/* Privado.pt v1.5.8 — uma geometria única em todas as páginas.
   Os estilos partilhados servem os banners PHP e a homepage React/JS. */
:root {
  --priv-banner-width: 1200px;
  --priv-banner-height: 240px;
  --priv-banner-gutter: 20px;
}
.pr-banner-rail {
  display:block;
  position:relative;
  width:min(var(--priv-banner-width), calc(100% - (2 * var(--priv-banner-gutter))));
  max-width:var(--priv-banner-width);
  height:var(--priv-banner-height);
  min-height:var(--priv-banner-height);
  max-height:var(--priv-banner-height);
  margin:18px auto 14px;
  padding:0;
  overflow:hidden;
  border:1px solid #59462a;
  border-radius:15px;
  box-sizing:border-box;
  flex:none;
}
.pr-banner-rail .pr-banner {
  position:absolute;
  inset:0;
  min-width:0;
  width:100%;
  height:100%;
}
.pr-banner-rail .pr-banner-img {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  display:block;
}
/* A homepage usa o mesmo espaço útil dos banners PHP, mesmo dentro de .wrap. */
.hero-portal.wrap {
  max-width:calc(var(--priv-banner-width) + (2 * var(--priv-banner-gutter)));
  width:100%;
  margin-inline:auto;
  padding-left:var(--priv-banner-gutter);
  padding-right:var(--priv-banner-gutter);
}
.hero-portal .pr-banner-rail {
  width:100%;
  max-width:none;
  margin:0;
}
/* O hero original também mantém as mesmas dimensões quando não há banner ativo. */
.hero-portal .hero-main.hero-cover-all {
  width:100%;
  height:var(--priv-banner-height);
  min-height:var(--priv-banner-height);
  max-height:var(--priv-banner-height);
  grid-template-columns:minmax(0,1fr) minmax(0,0.45fr);
  margin:0;
  border-radius:15px;
}
.hero-portal .hero-main.hero-cover-all .hero-copy {padding:18px 30px;min-width:0;}
.hero-portal .hero-main.hero-cover-all .hero-copy h1 {
  font-size:clamp(28px,3vw,43px);
  line-height:1.07;
  max-width:570px;
  margin-bottom:8px;
}
.hero-portal .hero-main.hero-cover-all .hero-copy p {
  font-size:14px;
  max-width:450px;
}
.hero-portal .hero-main.hero-cover-all .hero-script {
  font-size:clamp(24px,2.9vw,40px);
}
.pr-banner-content {max-width:min(68%,720px)}
.pr-banner-content h2 {font-size:clamp(25px,3.2vw,42px)}
@media(max-width:720px) {
  :root {--priv-banner-height:190px;--priv-banner-gutter:14px}
  .pr-banner-rail {margin:14px auto 12px;border-radius:12px}
  .hero-portal .hero-main.hero-cover-all {
    grid-template-columns:1fr;
    border-radius:12px;
  }
  .hero-portal .hero-main.hero-cover-all .hero-copy {padding:15px 18px}
  .hero-portal .hero-main.hero-cover-all .hero-copy h1 {font-size:clamp(25px,6vw,33px)}
  .hero-portal .hero-main.hero-cover-all .hero-copy p {font-size:13px}
  .hero-portal .hero-main.hero-cover-all .hero-side {display:none}
  .pr-banner-content {max-width:95%;padding:14px 20px}
  .pr-banner-content h2 {font-size:clamp(23px,6vw,30px)}
  .pr-banner-content p {font-size:12px;margin-bottom:9px}
  .pr-banner-action {padding:8px 12px;font-size:12px}
}


/* v1.5.9 — o banner alinha-se ao conteúdo, não a uma largura global.
   O elemento é colocado dentro do contentor real de cada página. */
.pr-banner-rail.pr-banner-aligned {
  width:100% !important;
  max-width:100% !important;
  min-width:0;
  display:block;
  margin:0 0 14px !important;
  box-sizing:border-box;
}
/* A homepage partilha as mesmas margens dos blocos .wrap logo abaixo. */
.hero-portal.wrap {
  max-width:1280px;
  width:100%;
  padding-left:20px;
  padding-right:20px;
  box-sizing:border-box;
}
.hero-portal .pr-banner-rail,
.hero-portal .hero-main.hero-cover-all {
  width:100%;
  max-width:100%;
  min-width:0;
}
@media (max-width:720px) {
  .hero-portal.wrap {
    padding-left:14px;
    padding-right:14px;
  }
  .pr-banner-rail.pr-banner-aligned { margin-bottom:12px !important; }
}
