
:root{
  --bg:#f7f5ef;
  --paper:#fbfaf6;
  --ink:#0a0a0a;
  --text:#41444a;
  --muted:#6d7076;
  --line:#dedbd3;
  --orange:#f1511b;
  --yellow:#f7b62d;
  --max:1180px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-family: Helvetica, Arial, sans-serif;line-height:1.5}
a{color:inherit}
img{display:block;max-width:100%}
.shell{width:min(var(--max),calc(100% - 80px));margin:auto}
.site-header{height:72px;background:rgba(251,250,246,.98);border-bottom:1px solid #ece8df;position:sticky;top:0;z-index:50}
.header-row{height:100%;display:flex;align-items:center}
.oa-logo{width:176px;height:50px;object-fit:contain;object-position:left center}
.nav{margin-left:auto;display:flex;gap:32px;align-items:center}
.nav a{text-decoration:none;text-transform:uppercase;font-size:11px;font-weight:700;padding:26px 0 18px;border-bottom:2px solid transparent}
.nav a:hover,.nav a.active{color:var(--orange);border-bottom-color:var(--orange)}
.list-b{margin-left:42px;background:var(--orange);color:#fff;text-decoration:none;padding:11px 20px;border-radius:4px;font-size:15px;font-weight:700}
.menu{display:none;margin-left:auto;border:1px solid var(--line);background:#fff;padding:8px 10px;font:inherit;font-size:12px;font-weight:700}
.hero-home{display:grid;grid-template-columns:41% 24% 35%;min-height:382px;background:var(--paper)}
.hero-copy{padding:63px 50px 55px max(48px,calc((100vw - var(--max))/2 + 1px))}
.kicker{color:var(--orange);text-transform:uppercase;letter-spacing:.14em;font-size:14px;font-weight:700}
h1,h2,h3{line-height:1.05;letter-spacing:-.045em;margin-top:0}
h1{font-size:55px;margin:12px 0 22px}
h2{font-size:42px;margin:4px 0 14px}
h3{font-size:19px;letter-spacing:-.02em}
.lead{font-size:20px;line-height:1.45;color:#333a42;max-width:520px}
.button{display:inline-block;margin-top:25px;background:var(--orange);color:#fff;text-decoration:none;text-transform:uppercase;font-size:13px;font-weight:700;padding:14px 18px;border-radius:3px}
.button .arrow{font-size:20px;margin-left:15px}

.pattern{
 background-color:#f7f4ec;
 background-image:url('images/padrao-laranja-amarelo-base.png');
 background-repeat:no-repeat;
 background-position:center top;
 background-size:cover;
}
.hero-image{background:center/cover no-repeat;min-height:382px}
.home-hero-image{background-image:url('images/algarve-hero.jpg')}
.icon-grid{display:grid;grid-template-columns:repeat(5,1fr);background:#fcfbf7;border-top:1px solid #eeeae1;border-bottom:1px solid #eeeae1}
.pillar{padding:43px 28px 44px;border-right:1px solid var(--line);min-height:275px}
.pillar:last-child{border-right:0}
.icon{width:42px;height:42px;margin-bottom:22px;color:var(--orange)}
.icon svg{width:100%;height:100%;stroke:currentColor;fill:none;stroke-width:1.8}
.pillar p{color:#5b6068;font-size:14px;min-height:68px}
.more{color:var(--orange);font-size:11px;font-weight:700;text-decoration:none;letter-spacing:.08em;text-transform:uppercase}
.section{padding:58px 0 68px}
.section.white{background:#fff}
.section-top{display:flex;justify-content:space-between;gap:30px;align-items:end;margin-bottom:30px}
.section-top .all{font-size:11px;color:var(--orange);font-weight:700;text-transform:uppercase;text-decoration:none}
.news-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.news-card{background:#fff;border:1px solid #efebe3;box-shadow:0 8px 18px rgba(0,0,0,.025)}
.news-card img{width:100%;height:158px;object-fit:cover}
.news-copy{padding:16px 16px 20px}
.news-meta{font-size:10px;color:#74777c;text-transform:uppercase}
.news-meta span{color:var(--orange);margin-left:12px}
.news-card h3{margin:11px 0 9px;font-size:17px;line-height:1.28}
.news-card p{font-size:13px;color:#60646b;margin:0}
.quote-band{display:grid;grid-template-columns:42% 38% 20%;min-height:174px}
.quote-photo{background:url('images/algarve-banner.jpg') center/cover no-repeat}
.quote-orange{background:var(--orange);color:#fff;padding:35px 46px;display:flex;justify-content:center;flex-direction:column}
.quote-orange q{font-family: Helvetica, Arial, sans-serif;font-style:italic;font-size:29px;line-height:1.18}
.quote-orange small{margin-top:18px;font-size:12px}
.site-footer{background:#fcfbf7;padding:28px 0 34px}
.footer-row{display:grid;grid-template-columns:210px 1fr auto;align-items:center;gap:34px}
.footer-logo{width:165px}
.footer-nav{display:flex;justify-content:center;gap:18px}
.footer-nav a{font-size:10px;text-decoration:none;text-transform:uppercase}
.social{display:flex;gap:10px}
.social a{display:grid;place-items:center;width:27px;height:27px;border:2px solid #111;border-radius:5px;text-decoration:none;font-size:11px;font-weight:800}
.footer-bottom{border-top:1px solid var(--line);margin-top:26px;padding-top:18px;display:flex;justify-content:space-between;gap:20px;font-size:9px;color:#6c6f75;text-transform:uppercase}

/* manifesto */
.manifesto-hero{min-height:365px;position:relative;background:#fff;overflow:hidden}
.manifesto-photo{position:absolute;inset:0;background:url('images/manifesto-hero.jpg') center/cover no-repeat}
.manifesto-hero .fade{position:absolute;inset:0;background:linear-gradient(90deg,#fbfaf6 0%,#fbfaf6 25%,rgba(251,250,246,.76) 40%,rgba(251,250,246,0) 64%)}
.manifesto-hero .hero-text{position:relative;z-index:2;padding:47px 0 36px;width:440px}
.manifesto-hero h1{font-size:54px}
.pattern-strip{position:absolute;right:0;top:0;width:140px;height:100%}
.vision-grid{display:grid;grid-template-columns:47% 53%;gap:30px}
.vision-copy{padding-right:45px}
.vision-copy p{color:#555a61;font-size:16px}
.values-grid{display:grid;grid-template-columns:1fr 1fr}
.value{padding:18px 42px 30px;border-left:1px solid var(--line)}
.value:nth-child(n+3){border-top:1px solid var(--line)}
.value .icon{margin-bottom:10px}
.value h3{margin-bottom:7px}
.value p{margin:0;color:#62666c;font-size:14px}
.manifesto-band .quote-photo{background-image:url('images/manifesto-banner.jpg')}
.commit-grid{display:grid;grid-template-columns:repeat(4,1fr)}
.commit{padding:0 24px;border-right:1px solid var(--line)}
.commit:first-child{padding-left:0}
.commit:last-child{border-right:0}
.commit .num{font-size:38px;color:var(--orange);font-weight:300}
.commit p{font-size:13px;color:#686c72}
.cta-band{display:grid;grid-template-columns:38% 62%;background:#fff}
.cta-photo{background:url('images/manifesto-cta.jpg') center/cover no-repeat;min-height:130px}
.cta-copy{padding:28px 40px;display:flex;align-items:center;justify-content:space-between;gap:30px}
.cta-copy h2{font-size:33px;margin-bottom:0}

/* generic page hero */
.page-hero{display:grid;grid-template-columns:38% 27% 35%;min-height:270px;background:#fbfaf6}
.page-hero-copy{padding:44px 35px 40px max(48px,calc((100vw - var(--max))/2 + 1px))}
.page-hero h1{font-size:49px}
.candidates-hero-img{background:url('images/candidatos-hero.jpg') center/cover no-repeat;position:relative}
.candidates-hero-img .quote{font-family: Helvetica, Arial, sans-serif;font-style:italic;font-size:25px;line-height:1.15;position:absolute;top:48px;left:52px;max-width:220px;color:#3a3a37}

/* candidates */
.candidates-wrap{padding:20px 0 45px}
.cand-section{margin-bottom:24px}
.cand-heading{font-size:12px;color:var(--orange);text-transform:uppercase;letter-spacing:.12em;font-weight:700;border-bottom:1px solid var(--line);padding-bottom:5px;margin-bottom:9px}
.cand-grid{display:grid;gap:12px}
.cols-2{grid-template-columns:repeat(2,170px)}
.cols-4{grid-template-columns:repeat(4,1fr)}
.cols-6{grid-template-columns:repeat(6,1fr)}
.cols-7{grid-template-columns:repeat(7,1fr)}
.cand-card{background:#fff;border:1px solid #f0ece4}
.cand-photo{height:190px;background:#ecebea;display:flex;align-items:center;justify-content:center;overflow:hidden}
.cand-photo img{width:100%;height:100%;object-fit:contain}
.cand-placeholder{font-size:11px;color:#777;text-align:center;padding:15px}
.cand-meta{padding:8px 9px 10px}
.cand-meta strong{display:block;font-size:12px}
.cand-meta span{display:block;font-size:10px;color:#555}
.candidates-band .quote-photo{background-image:url('images/candidatos-banner-color.jpg')}

/* Program */
.program-hero{padding:58px 0;background:#fff;border-bottom:1px solid var(--line)}
.program-hero h1{font-size:48px;max-width:820px}
.program-hero .sub{font-size:22px;font-weight:700;line-height:1.35}
.program-layout{display:grid;grid-template-columns:250px 1fr;gap:36px;padding:45px 0 70px}
.program-nav{position:sticky;top:100px;align-self:start}
.program-nav a{display:block;text-decoration:none;font-size:11px;text-transform:uppercase;font-weight:700;padding:10px 0;border-bottom:1px solid var(--line)}
.program-nav a:hover{color:var(--orange)}
.program-content section{background:#fff;border:1px solid #ece7de;padding:36px 42px;margin-bottom:18px;scroll-margin-top:100px}
.program-content h2{font-size:33px}
.program-content h3{font-size:23px;margin-top:34px}
.program-content p,.program-content li{font-size:15px;color:#3f4349}
.program-content ul{padding-left:20px}
.program-content li{margin:10px 0}
.program-content .axis{list-style:none;padding:0;counter-reset:a}
.program-content .axis li{counter-increment:a;display:grid;grid-template-columns:55px 1fr;border-top:1px solid var(--line);padding:12px 0}
.program-content .axis li:before{content:"0" counter(a);color:var(--orange);font-size:26px;font-weight:700}

/* simple pages */
.simple-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.simple-card{background:#fff;border:1px solid var(--line);padding:27px}
.simple-card p{color:#62666d}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.notice{background:#fff;border-left:4px solid var(--orange);padding:18px 20px;color:#4c5056}

@media(max-width:980px){
  .shell{width:min(var(--max),calc(100% - 40px))}
  .nav,.list-b{display:none}.menu{display:block}
  .nav.open{display:flex;position:absolute;left:0;right:0;top:72px;background:#fff;flex-direction:column;align-items:flex-start;padding:20px 28px;gap:4px;border-bottom:1px solid var(--line)}
  .nav.open a{padding:8px 0}
  .hero-home,.page-hero{grid-template-columns:1fr}
  .hero-copy,.page-hero-copy{padding:45px 28px}
  .pattern{min-height:230px}.hero-image{min-height:310px}
  .icon-grid{grid-template-columns:repeat(2,1fr)}
  .news-grid{grid-template-columns:repeat(2,1fr)}
  .quote-band{grid-template-columns:1fr}.quote-photo{min-height:180px}.pattern{min-height:180px}
  .footer-row{grid-template-columns:1fr}.footer-nav{justify-content:flex-start;flex-wrap:wrap}
  .manifesto-hero .hero-text{padding-left:20px;width:min(440px,70vw)}
  .vision-grid{grid-template-columns:1fr}.vision-copy{padding-right:0}
  .commit-grid{grid-template-columns:1fr 1fr;row-gap:28px}.commit:nth-child(2){border-right:0}
  .cta-band{grid-template-columns:1fr}
  .cols-6,.cols-7{grid-template-columns:repeat(3,1fr)}
  .cols-4{grid-template-columns:repeat(2,1fr)}
  .program-layout{grid-template-columns:1fr}.program-nav{position:static}
  .simple-grid,.contact-grid{grid-template-columns:1fr}
}
@media(max-width:600px){
  .shell{width:calc(100% - 28px)}
  .oa-logo{width:145px}
  h1{font-size:42px}.manifesto-hero h1{font-size:42px}
  .icon-grid,.news-grid{grid-template-columns:1fr}
  .pillar{min-height:auto}.pillar p{min-height:auto}
  .values-grid,.commit-grid{grid-template-columns:1fr}
  .value,.commit{border-left:0;border-right:0;border-top:1px solid var(--line);padding-left:0}
  .cta-copy{align-items:flex-start;flex-direction:column}
  .cols-4,.cols-6,.cols-7{grid-template-columns:repeat(2,1fr)}
  .cand-photo{height:170px}
  .program-content section{padding:28px 22px}
  .footer-bottom{flex-direction:column}
}

/* V4 — padrão gráfico oficial fornecido pelo utilizador */
.hero-home > .pattern{
  background-size:auto 116%;
  background-position:34% 0%;
}
.page-hero > .pattern{
  background-size:auto 118%;
  background-position:30% 0%;
}
.quote-band > .pattern{
  background-size:190% auto;
  background-position:26% 16%;
}
.pattern-strip{
  background-size:auto 112%;
  background-position:34% 0%;
}
.manifesto-hero .pattern-strip{
  background-size:auto 112%;
  background-position:31% 2%;
}

/* O programa também recebe o mesmo elemento gráfico, em escala própria */
.program-hero{
  position:relative;
  overflow:hidden;
  padding-right:min(26vw,360px);
}
.program-hero::after{
  content:"";
  position:absolute;
  top:0;
  right:0;
  width:min(24vw,330px);
  height:100%;
  background-image:url('images/padrao-laranja-amarelo-base.png');
  background-repeat:no-repeat;
  background-position:27% 0%;
  background-size:auto 118%;
  border-left:1px solid #e8e1d6;
  pointer-events:none;
}
.program-hero .shell{position:relative;z-index:1}

/* pequenas áreas decorativas usam uma leitura mais ampliada da mesma base */
@media(max-width:980px){
  .hero-home > .pattern,
  .page-hero > .pattern{
    background-size:cover;
    background-position:center 12%;
  }
  .quote-band > .pattern{
    background-size:cover;
    background-position:center 20%;
  }
  .program-hero{
    padding-right:0;
    padding-bottom:235px;
  }
  .program-hero::after{
    top:auto;
    bottom:0;
    width:100%;
    height:205px;
    background-size:cover;
    background-position:center 18%;
    border-left:0;
    border-top:1px solid #e8e1d6;
  }
}

/* V5 — rodapé conforme informação dos previews aprovados */
.site-footer{background:#fcfbf7;border-top:1px solid #dedbd3;padding:25px 0 23px}
.site-footer .footer-row{grid-template-columns:185px 1fr auto;min-height:42px}
.site-footer .footer-logo{width:155px;height:44px;object-fit:contain;object-position:left center}
.site-footer .footer-nav{gap:16px}
.site-footer .footer-nav a{font-size:9px;font-weight:500;letter-spacing:.015em}
.site-footer .social a{width:25px;height:25px;border-radius:5px;font-size:10px}
.site-footer .footer-bottom{margin-top:21px;padding-top:14px;font-size:8px;letter-spacing:.015em}
@media(max-width:980px){
  .site-footer .footer-row{grid-template-columns:1fr}
  .site-footer .footer-nav{justify-content:flex-start}
}

/* V6 — padrão gráfico com desvanecimento conforme imagem inicial */
.pattern{
  background-image:url('images/padrao-desvanecido-oficial.png') !important;
  background-repeat:no-repeat !important;
  background-color:#f7f5ef !important;
  box-shadow:none !important;
}

/* Menos repetição: cada zona usa uma grande janela da mesma imagem */
.hero-home > .pattern{
  background-size:260% auto !important;
  background-position:7% 4% !important;
}
.page-hero > .pattern{
  background-size:245% auto !important;
  background-position:9% 3% !important;
}
.quote-band > .pattern{
  background-size:285% auto !important;
  background-position:8% 6% !important;
}
.pattern-strip{
  background-size:235% auto !important;
  background-position:9% 3% !important;
}

/* Apagar visualmente o efeito mosaico excessivo nas áreas grandes */
.hero-home > .pattern,
.page-hero > .pattern,
.quote-band > .pattern,
.pattern-strip{
  background-color:#f7f5ef !important;
}

/* Programa — mesma base, mas em grande escala e com bastante área vazia */
.program-hero::after{
  background-image:url('images/padrao-desvanecido-oficial.png') !important;
  background-repeat:no-repeat !important;
  background-size:240% auto !important;
  background-position:7% 3% !important;
  opacity:1 !important;
}

/* Rodapé escuro conforme previews recentes */
.site-footer{
  background:#242424 !important;
  color:#fff !important;
  border-top:0 !important;
}
.site-footer .footer-nav a,
.site-footer .footer-bottom{
  color:#fff !important;
}
.site-footer .footer-bottom{
  border-top:1px solid rgba(255,255,255,.35) !important;
}
.site-footer .social a{
  color:#fff !important;
  border-color:#fff !important;
}
.site-footer .footer-logo{
  width:220px !important;
  height:auto !important;
  object-fit:contain !important;
  object-position:left center !important;
}

/* Em mobile mantém-se o carácter desvanecido, sem repetir o padrão */
@media(max-width:980px){
  .hero-home > .pattern,
  .page-hero > .pattern,
  .quote-band > .pattern,
  .pattern-strip{
    background-size:210% auto !important;
    background-position:8% 4% !important;
  }
  .program-hero::after{
    background-size:200% auto !important;
    background-position:8% 4% !important;
  }
}

/* V7 — reposição integral da linguagem do rodapé V1 */
.site-footer{
  background:#f9f7f1 !important;
  color:#111 !important;
  border-top:1px solid #dedbd3 !important;
  padding:34px 0 42px !important;
}
.footer-v1-top{
  display:grid;
  grid-template-columns:1.3fr 1fr 1fr 1.3fr auto;
  gap:26px;
  align-items:center;
}
.footer-v1-logo{
  display:block;
  width:165px;
  height:54px;
  object-fit:contain;
  object-position:left center;
}
.footer-v1-item{
  font-size:12px;
  line-height:1.4;
  color:#111;
}
.footer-v1-item strong{
  display:block;
  font-size:14px;
  line-height:1.25;
}
.footer-v1-item span{display:block}
.footer-v1-bottom{
  border-top:1px solid #dedbd3;
  margin-top:28px;
  padding-top:18px;
  display:flex;
  justify-content:space-between;
  gap:18px;
  font-size:10px;
  color:#666;
  text-transform:uppercase;
  letter-spacing:.03em;
}
@media(max-width:980px){
  .footer-v1-top{grid-template-columns:1fr 1fr}
}
@media(max-width:600px){
  .footer-v1-top{grid-template-columns:1fr}
  .footer-v1-bottom{flex-direction:column}
}

/* V8 — grafismo por baixo do título superior, prolongado da esquerda até à imagem direita */

/* Home: o grafismo passa a existir como camada contínua atrás da área de título
   e prolonga-se até ao início da fotografia, sem competir com o texto. */
.hero-home{
  position:relative;
  overflow:hidden;
}
.hero-home::before{
  content:"";
  position:absolute;
  z-index:0;
  left:0;
  top:0;
  width:65%;
  height:100%;
  background-image:
    linear-gradient(90deg,rgba(247,245,239,.12) 0%,rgba(247,245,239,.18) 58%,rgba(247,245,239,.02) 100%),
    url('images/padrao-desvanecido-oficial.png');
  background-repeat:no-repeat;
  background-size:auto 185%;
  background-position:left 4%;
  opacity:.48;
  pointer-events:none;
}
.hero-home .hero-copy{
  position:relative;
  z-index:2;
  background:linear-gradient(90deg,rgba(251,250,246,.90) 0%,rgba(251,250,246,.78) 70%,rgba(251,250,246,.18) 100%);
}
.hero-home > .pattern{
  position:relative;
  z-index:1;
  background-image:none !important;
  background-color:transparent !important;
}
.hero-home .hero-image{
  position:relative;
  z-index:1;
}

/* Páginas interiores com hero tripartido */
.page-hero{
  position:relative;
  overflow:hidden;
}
.page-hero::before{
  content:"";
  position:absolute;
  z-index:0;
  left:0;
  top:0;
  width:65%;
  height:100%;
  background-image:
    linear-gradient(90deg,rgba(247,245,239,.10) 0%,rgba(247,245,239,.16) 60%,rgba(247,245,239,.02) 100%),
    url('images/padrao-desvanecido-oficial.png');
  background-repeat:no-repeat;
  background-size:auto 190%;
  background-position:left 4%;
  opacity:.48;
  pointer-events:none;
}
.page-hero-copy{
  position:relative;
  z-index:2;
  background:linear-gradient(90deg,rgba(251,250,246,.91),rgba(251,250,246,.72) 72%,rgba(251,250,246,.12));
}
.page-hero > .pattern{
  position:relative;
  z-index:1;
  background-image:none !important;
  background-color:transparent !important;
}
.page-hero > :last-child{
  position:relative;
  z-index:1;
}

/* Manifesto: mesma lógica desde a margem esquerda até à zona fotográfica */
.manifesto-hero::before{
  content:"";
  position:absolute;
  z-index:1;
  left:0;
  top:0;
  width:66%;
  height:100%;
  background-image:url('images/padrao-desvanecido-oficial.png');
  background-repeat:no-repeat;
  background-size:auto 190%;
  background-position:left 4%;
  opacity:.28;
  pointer-events:none;
}
.manifesto-hero .fade{z-index:2}
.manifesto-hero .hero-text{z-index:4}
.manifesto-hero .pattern-strip{display:none}

/* Programa: grafismo horizontal por baixo/atrás da área de título,
   terminando na faixa gráfica da direita. */
.program-hero{
  padding-right:0 !important;
  min-height:330px;
}
.program-hero::before{
  content:"";
  position:absolute;
  z-index:0;
  left:0;
  top:0;
  width:100%;
  height:100%;
  background-image:url('images/padrao-desvanecido-oficial.png');
  background-repeat:no-repeat;
  background-size:auto 205%;
  background-position:left 2%;
  opacity:.34;
  pointer-events:none;
}
.program-hero::after{
  display:none !important;
}
.program-hero .shell{
  position:relative;
  z-index:2;
  min-height:330px;
  padding-top:6px;
  padding-right:34%;
  background:linear-gradient(90deg,rgba(255,255,255,.93) 0%,rgba(255,255,255,.82) 58%,rgba(255,255,255,.16) 82%,rgba(255,255,255,0) 100%);
}

/* Mantém títulos e botões perfeitamente legíveis */
.hero-copy h1,.hero-copy .kicker,.hero-copy .lead,
.page-hero-copy h1,.page-hero-copy .kicker,.page-hero-copy .lead,
.manifesto-hero .hero-text,
.program-hero .shell{
  position:relative;
}

/* Mobile: grafismo continua horizontal, mas mais subtil */
@media(max-width:980px){
  .hero-home::before,
  .page-hero::before{
    width:100%;
    height:52%;
    background-size:auto 165%;
    opacity:.38;
  }
  .hero-home .hero-copy,
  .page-hero-copy{
    background:rgba(251,250,246,.80);
  }
  .manifesto-hero::before{
    width:100%;
    opacity:.22;
  }
  .program-hero .shell{
    padding-right:20px;
    min-height:0;
    background:rgba(255,255,255,.82);
  }
  .program-hero{
    padding-bottom:0 !important;
  }
}

/* V9 — grafismo sem desvanecimento e ajustado responsivamente ao espaço disponível */

/* HOME */
.hero-home::before{
  opacity:1 !important;
  width:65% !important;
  height:100% !important;
  background-image:url('images/padrao-desvanecido-oficial.png') !important;
  background-repeat:no-repeat !important;
  background-size:cover !important;
  background-position:left top !important;
}
.hero-home .hero-copy{
  background:rgba(251,250,246,.86) !important;
}

/* PÁGINAS INTERIORES */
.page-hero::before{
  opacity:1 !important;
  width:65% !important;
  height:100% !important;
  background-image:url('images/padrao-desvanecido-oficial.png') !important;
  background-repeat:no-repeat !important;
  background-size:cover !important;
  background-position:left top !important;
}
.page-hero-copy{
  background:rgba(251,250,246,.86) !important;
}

/* MANIFESTO */
.manifesto-hero::before{
  opacity:1 !important;
  width:66% !important;
  height:100% !important;
  background-image:url('images/padrao-desvanecido-oficial.png') !important;
  background-repeat:no-repeat !important;
  background-size:cover !important;
  background-position:left top !important;
}
.manifesto-hero .fade{
  background:linear-gradient(
    90deg,
    rgba(251,250,246,.84) 0%,
    rgba(251,250,246,.74) 28%,
    rgba(251,250,246,.18) 62%,
    rgba(251,250,246,0) 100%
  ) !important;
}

/* PROGRAMA */
.program-hero::before{
  opacity:1 !important;
  width:100% !important;
  height:100% !important;
  background-image:url('images/padrao-desvanecido-oficial.png') !important;
  background-repeat:no-repeat !important;
  background-size:cover !important;
  background-position:left top !important;
}
.program-hero .shell{
  background:linear-gradient(
    90deg,
    rgba(255,255,255,.90) 0%,
    rgba(255,255,255,.82) 54%,
    rgba(255,255,255,.18) 82%,
    rgba(255,255,255,0) 100%
  ) !important;
}

/* O grafismo ocupa sempre integralmente a área disponível sem repetição */
.hero-home::before,
.page-hero::before,
.manifesto-hero::before,
.program-hero::before{
  background-origin:border-box !important;
  background-clip:border-box !important;
  background-repeat:no-repeat !important;
}

/* Breakpoints responsivos */
@media(max-width:1200px){
  .hero-home::before,
  .page-hero::before{
    width:67% !important;
    background-size:cover !important;
    background-position:left center !important;
  }
  .manifesto-hero::before{
    width:70% !important;
    background-size:cover !important;
    background-position:left center !important;
  }
}

@media(max-width:980px){
  .hero-home::before,
  .page-hero::before,
  .manifesto-hero::before{
    width:100% !important;
    height:100% !important;
    background-size:cover !important;
    background-position:left top !important;
    opacity:1 !important;
  }

  .hero-home .hero-copy,
  .page-hero-copy{
    background:rgba(251,250,246,.84) !important;
  }

  .manifesto-hero .fade{
    background:rgba(251,250,246,.72) !important;
  }

  .program-hero::before{
    background-size:cover !important;
    background-position:left top !important;
    opacity:1 !important;
  }
  .program-hero .shell{
    background:rgba(255,255,255,.80) !important;
  }
}

@media(max-width:600px){
  .hero-home::before,
  .page-hero::before,
  .manifesto-hero::before,
  .program-hero::before{
    background-size:auto 100% !important;
    background-position:left top !important;
  }

  .hero-home .hero-copy,
  .page-hero-copy{
    background:rgba(251,250,246,.88) !important;
  }
}

/* V10 — background semi-transparente à escala total do grafismo,
   seguindo a lógica visual da página Manifesto */

/* HOME */
.hero-home::after{
  content:"";
  position:absolute;
  z-index:1;
  left:0;
  top:0;
  width:65%;
  height:100%;
  background:linear-gradient(
    90deg,
    rgba(251,250,246,.86) 0%,
    rgba(251,250,246,.78) 52%,
    rgba(251,250,246,.38) 78%,
    rgba(251,250,246,.10) 100%
  );
  pointer-events:none;
}
.hero-home .hero-copy{
  background:transparent !important;
  z-index:2 !important;
}
.hero-home > .pattern,
.hero-home .hero-image{
  z-index:0 !important;
}

/* PÁGINAS INTERIORES */
.page-hero::after{
  content:"";
  position:absolute;
  z-index:1;
  left:0;
  top:0;
  width:65%;
  height:100%;
  background:linear-gradient(
    90deg,
    rgba(251,250,246,.86) 0%,
    rgba(251,250,246,.78) 52%,
    rgba(251,250,246,.38) 78%,
    rgba(251,250,246,.10) 100%
  );
  pointer-events:none;
}
.page-hero-copy{
  background:transparent !important;
  z-index:2 !important;
}
.page-hero > .pattern,
.page-hero > :last-child{
  z-index:0 !important;
}

/* MANIFESTO — mantém a mesma lógica, mas garante que o fundo cobre
   toda a dimensão da zona gráfica e não apenas a caixa de texto */
.manifesto-hero .fade{
  z-index:2 !important;
  left:0;
  top:0;
  width:66%;
  height:100%;
  background:linear-gradient(
    90deg,
    rgba(251,250,246,.86) 0%,
    rgba(251,250,246,.78) 52%,
    rgba(251,250,246,.38) 78%,
    rgba(251,250,246,.10) 100%
  ) !important;
}
.manifesto-hero .hero-text{
  z-index:3 !important;
}

/* PROGRAMA — overlay integral sobre toda a área do grafismo */
.program-hero::after{
  content:"" !important;
  display:block !important;
  position:absolute !important;
  z-index:1 !important;
  left:0 !important;
  top:0 !important;
  width:100% !important;
  height:100% !important;
  background:linear-gradient(
    90deg,
    rgba(255,255,255,.88) 0%,
    rgba(255,255,255,.80) 52%,
    rgba(255,255,255,.38) 78%,
    rgba(255,255,255,.10) 100%
  ) !important;
  border:0 !important;
  pointer-events:none !important;
}
.program-hero .shell{
  z-index:2 !important;
  background:transparent !important;
}

/* O overlay acompanha exatamente a área do grafismo */
.hero-home::after{width:65% !important;}
.page-hero::after{width:65% !important;}
.manifesto-hero .fade{width:66% !important;}

/* TABLET */
@media(max-width:1200px){
  .hero-home::after,
  .page-hero::after{
    width:67% !important;
  }
  .manifesto-hero .fade{
    width:70% !important;
  }
}

/* MOBILE — grafismo e fundo ocupam toda a largura */
@media(max-width:980px){
  .hero-home::after,
  .page-hero::after,
  .manifesto-hero .fade,
  .program-hero::after{
    width:100% !important;
    height:100% !important;
    background:rgba(251,250,246,.78) !important;
  }

  .program-hero::after{
    background:rgba(255,255,255,.80) !important;
  }
}

/* V11 — correção da página Candidatos:
   candidatos-hero.jpg já inclui a frase editorial na própria imagem. */
.candidates-hero-img > .quote{display:none !important;}

/* V12 — mesma lógica do hero da Home em todas as páginas */
.unified-hero{
  display:grid !important;
  grid-template-columns:41% 24% 35% !important;
  min-height:382px !important;
  position:relative !important;
  overflow:hidden !important;
  background:var(--paper) !important;
}

/* Grafismo: rigorosamente igual em todas as páginas */
.unified-hero::before{
  content:"" !important;
  position:absolute !important;
  z-index:0 !important;
  left:0 !important;
  top:0 !important;
  width:65% !important;
  height:100% !important;
  opacity:1 !important;
  pointer-events:none !important;
  background-image:url('images/padrao-desvanecido-oficial.png') !important;
  background-repeat:no-repeat !important;
  background-size:cover !important;
  background-position:left top !important;
}

/* Background semi-transparente: mesma dimensão e gradação da Home */
.unified-hero::after{
  content:"" !important;
  position:absolute !important;
  z-index:1 !important;
  left:0 !important;
  top:0 !important;
  width:65% !important;
  height:100% !important;
  pointer-events:none !important;
  background:linear-gradient(
    90deg,
    rgba(251,250,246,.86) 0%,
    rgba(251,250,246,.78) 52%,
    rgba(251,250,246,.38) 78%,
    rgba(251,250,246,.10) 100%
  ) !important;
}

.unified-hero .hero-copy{
  position:relative !important;
  z-index:2 !important;
  padding:54px 42px 42px max(58px,calc((100vw - var(--max))/2 + 1px)) !important;
  background:transparent !important;
}
.unified-hero .pattern{
  position:relative !important;
  z-index:0 !important;
  background-image:none !important;
  background-color:transparent !important;
}
.unified-hero .hero-image{
  position:relative !important;
  z-index:0 !important;
  min-height:382px !important;
  background-repeat:no-repeat !important;
  background-size:cover !important;
  background-position:center !important;
  filter:grayscale(100%);
}
.unified-hero h1{
  font-size:58px !important;
  line-height:.96 !important;
  letter-spacing:-.045em !important;
  margin:7px 0 17px !important;
}
.unified-hero .lead{
  max-width:500px !important;
}

/* Imagens da direita — mantém Home e Candidatos; outras podem variar */
.manifesto-right-image{
  background-image:url('images/manifesto-banner.jpg') !important;
  background-position:center center !important;
}
.programa-right-image{
  background-image:url('images/noticia-2.jpg') !important;
  background-position:center center !important;
}
.noticias-right-image{
  background-image:url('images/noticia-3.jpg') !important;
}
.apoios-right-image{
  background-image:url('images/noticia-4.jpg') !important;
}
.contactos-right-image{
  background-image:url('images/algarve-banner.jpg') !important;
}

/* Página Programa: o texto é integralmente preservado, com ajuste tipográfico
   apenas para caber na mesma composição/proporção do hero. */
.program-unified .hero-copy{
  padding-top:36px !important;
  padding-bottom:28px !important;
}
.program-unified h1{
  font-size:43px !important;
  line-height:1 !important;
  margin:8px 0 12px !important;
}
.program-unified .sub{
  font-size:19px !important;
  line-height:1.2 !important;
  font-weight:700 !important;
  margin-bottom:10px !important;
}
.program-unified .hero-copy p{
  font-size:13px !important;
  line-height:1.35 !important;
  margin:7px 0 !important;
  max-width:520px !important;
}

/* Manifesto: mesmas proporções, sem hero alternativo */
.manifesto-unified h1{
  font-size:55px !important;
}

/* Candidatos: manter exatamente a imagem já aprovada */
.candidatos-unified .candidates-hero-img{
  background-image:url('images/candidatos-hero.jpg') !important;
  background-position:center center !important;
}
.candidatos-unified .candidates-hero-img > .quote{
  display:none !important;
}

/* Responsividade uniforme */
@media(max-width:1200px){
  .unified-hero{
    grid-template-columns:41% 24% 35% !important;
  }
  .unified-hero h1{font-size:50px !important;}
  .program-unified h1{font-size:38px !important;}
}
@media(max-width:980px){
  .unified-hero{
    grid-template-columns:1fr !important;
    min-height:auto !important;
  }
  .unified-hero::before,
  .unified-hero::after{
    width:100% !important;
    height:52% !important;
  }
  .unified-hero::after{
    background:rgba(251,250,246,.78) !important;
  }
  .unified-hero .hero-copy{
    min-height:360px !important;
    padding:45px 28px !important;
  }
  .unified-hero .pattern{
    display:none !important;
  }
  .unified-hero .hero-image{
    min-height:300px !important;
  }
  .unified-hero h1{font-size:46px !important;}
  .program-unified .hero-copy{
    min-height:auto !important;
  }
}
@media(max-width:600px){
  .unified-hero .hero-copy{
    min-height:330px !important;
    padding:36px 22px !important;
  }
  .unified-hero h1{font-size:40px !important;}
  .program-unified h1{font-size:34px !important;}
  .unified-hero .hero-image{min-height:245px !important;}
}

/* Hide legacy hero pseudo layers where they could conflict */
.manifesto-hero,
.program-hero,
.page-hero{
  /* retained only for legacy selectors elsewhere; V12 uses unified heroes */
}

/* V13 — apenas substituição das imagens da direita.
   Todo o layout, grafismo, proporções e overlay da V12 permanecem intactos. */
.manifesto-right-image{
  background-image:url('images/manifesto-arquitectura-ai.jpg') !important;
  background-position:center center !important;
}
.programa-right-image{
  background-image:url('images/programa-arquitectura-ai.jpg') !important;
  background-position:center center !important;
}

/* V14 — imagens AI finais em dois ficheiros separados */
.manifesto-right-image{
  background-image:url('images/manifesto-arquitectura-ai-v2.jpg') !important;
  background-position:center center !important;
}
.programa-right-image{
  background-image:url('images/programa-arquitectura-ai-v2.jpg') !important;
  background-position:center center !important;
}


/* V16 — mantém integralmente dimensões/proporções dos candidatos da V15.
   Apenas desloca a Delegada para uma coluna lateral direita. */
.candidates-layout-delegate{
  display:grid;
  grid-template-columns:minmax(0,1fr) 220px;
  column-gap:34px;
  align-items:stretch;
}
.candidates-original{
  min-width:0;
}

/* Os .cand-grid e .cand-card do corpo principal mantêm todas as regras originais. */
.delegate-column{
  border-left:1px solid var(--line);
  padding-left:28px;
  display:flex;
  align-items:center;
}
.delegate-inner{
  width:100%;
}
.delegate-heading{
  font-size:11px;
  line-height:1.2;
  font-weight:700;
  letter-spacing:.10em;
  text-transform:uppercase;
  margin:0 0 12px;
}

/* A Delegada usa a mesma linguagem de cartão, sem alterar os restantes. */
.delegate-column .cand-card{
  width:100%;
}

@media(max-width:980px){
  .candidates-layout-delegate{
    grid-template-columns:1fr;
    row-gap:30px;
  }
  .delegate-column{
    border-left:0;
    border-top:1px solid var(--line);
    padding:28px 0 0;
  }
  .delegate-inner{
    width:min(220px,100%);
  }
}


/* V17 — topo final em todas as páginas */
.header-v17{
  display:flex !important;
  align-items:center !important;
  gap:28px !important;
}

/* O retângulo adapta-se ao conteúdo: não há largura fixa nem corte do texto */
.campaign-pill{
  display:inline-flex !important;
  align-items:center !important;
  flex:0 0 auto !important;
  width:auto !important;
  max-width:none !important;
  min-width:max-content !important;
  padding:0 18px !important;
  height:48px !important;
  box-sizing:border-box !important;
  background:var(--yellow) !important;
  color:#000 !important;
  border-radius:4px !important;
  white-space:nowrap !important;
  overflow:visible !important;
}
.campaign-pill-lista{
  display:inline-flex !important;
  align-items:center !important;
  height:26px !important;
  padding-right:15px !important;
  margin-right:15px !important;
  border-right:1px solid rgba(255,255,255,.65) !important;
  font-size:13px !important;
  line-height:1 !important;
  font-weight:700 !important;
  letter-spacing:.03em !important;
}
.campaign-pill-name{
  display:inline-block !important;
  font-size:13px !important;
  line-height:1 !important;
  font-weight:400 !important;
  letter-spacing:.015em !important;
  white-space:nowrap !important;
}

/* Menu encostado à direita */
.header-v17 .nav{
  margin-left:auto !important;
  display:flex !important;
  justify-content:flex-end !important;
  align-items:center !important;
  gap:24px !important;
}
.header-v17 .nav a{
  font-size:10px !important;
  white-space:nowrap !important;
}

/* Garante que o botão antigo LISTA B à direita não reaparece */
.header-v17 > .list-b{
  display:none !important;
}

/* Rodapé final aprovado */
.footer-v17{
  display:grid !important;
  grid-template-columns:1.15fr 1fr 1fr 1.35fr 1.25fr !important;
  gap:34px !important;
  align-items:start !important;
}
.footer-v17 .footer-v1-item strong{
  display:block !important;
  font-weight:700 !important;
}
.footer-v17 .footer-v1-item span{
  display:block !important;
  margin-top:5px !important;
  font-weight:400 !important;
}

/* Responsividade */
@media(max-width:1180px){
  .header-v17{
    gap:20px !important;
  }
  .campaign-pill{
    padding:0 14px !important;
  }
  .campaign-pill-lista,
  .campaign-pill-name{
    font-size:12px !important;
  }
  .header-v17 .nav{
    gap:16px !important;
  }
  .header-v17 .nav a{
    font-size:9px !important;
  }
}
@media(max-width:980px){
  .header-v17 .nav{
    display:none !important;
  }
  .header-v17 .menu{
    margin-left:auto !important;
  }
  .campaign-pill{
    max-width:calc(100vw - 110px) !important;
    min-width:0 !important;
  }
  .campaign-pill-name{
    overflow:hidden !important;
    text-overflow:ellipsis !important;
  }
  .footer-v17{
    grid-template-columns:1fr 1fr !important;
  }
}
@media(max-width:600px){
  .campaign-pill{
    height:44px !important;
    padding:0 12px !important;
  }
  .campaign-pill-lista{
    padding-right:10px !important;
    margin-right:10px !important;
  }
  .campaign-pill-name{
    font-size:10px !important;
  }
  .footer-v17{
    grid-template-columns:1fr !important;
  }
}

/* V19 — texto preto no retângulo amarelo torrado do menu superior */
.campaign-pill,
.campaign-pill-lista,
.campaign-pill-name{
  color:#000 !important;
}
.campaign-pill-lista{
  border-right-color:rgba(0,0,0,.45) !important;
}

/* V24 — terceiro cartão de contacto para email */
.contact-grid{
  grid-template-columns:repeat(3,minmax(0,1fr));
}
.contact-email-link{
  color:inherit;
  text-decoration:none;
  overflow-wrap:anywhere;
}
.contact-email-link:hover{
  text-decoration:underline;
}
@media(max-width:980px){
  .contact-grid{
    grid-template-columns:1fr;
  }
}

/* V31 — notícia Ricardo Latoeiro */
.news-card-link{display:block;color:inherit;text-decoration:none}
.news-card-link:hover h3{text-decoration:underline}
.news-detail-section{padding-top:54px}
.news-detail{max-width:1180px;margin:0 auto}
.news-detail-meta{font-size:12px;font-weight:700;letter-spacing:.08em;margin-bottom:12px}
.news-detail h1{font-size:clamp(32px,4vw,58px);line-height:1.02;max-width:1050px;margin:0 0 38px}
.news-detail-grid{display:grid;grid-template-columns:minmax(300px,44%) minmax(0,1fr);gap:48px;align-items:start}
.news-detail-image img{display:block;width:100%;height:auto}
.news-detail-body{font-size:16px;line-height:1.58}
.news-detail-body p{margin:0 0 1.15em}
@media(max-width:800px){.news-detail-grid{grid-template-columns:1fr;gap:28px}.news-detail-section{padding-top:32px}}

/* V32 */
.home-news-single{grid-template-columns:minmax(0,1fr);max-width:760px}.read-full-news{display:inline-block;margin-top:14px;font-weight:700;text-decoration:none;color:inherit}.read-full-news:hover{text-decoration:underline}

/* V33 — tipografia e destaque da notícia */
html,body,button,input,textarea,select{font-family:Helvetica,Arial,sans-serif}
.home-news-single{max-width:560px}
.home-news-single .news-card img{width:100%;aspect-ratio:1/1;object-fit:cover;object-position:center 24%;display:block}

/* V34 — uniformização final */
html,body,button,input,textarea,select{font-family:Helvetica,Arial,sans-serif}
.manifesto-enquadramento{
  margin-top:0;
  padding-top:24px;
}

/* V40 — novo hero global fornecido pelo utilizador */
.hero-global-v40{
  width:100%;
  aspect-ratio:1952/800;
  background:url('images/hero-global-v40.png') center center/cover no-repeat;
}

/* V41 — textos originais repostos sobre o novo hero */
.hero-global-v40.hero-with-copy{
  position:relative;
  display:block;
}
.hero-global-v40.hero-with-copy .hero-copy{
  position:absolute;
  left:6.3%;
  top:50%;
  transform:translateY(-50%);
  width:34%;
  z-index:2;
  background:transparent;
}
.hero-global-v40.hero-with-copy .hero-copy h1,
.hero-global-v40.hero-with-copy .hero-copy .kicker,
.hero-global-v40.hero-with-copy .hero-copy .lead{
  position:relative;
  z-index:2;
}
@media(max-width:760px){
  .hero-global-v40.hero-with-copy .hero-copy{
    left:5%;
    width:48%;
  }
}

/* V42 — pequeno afastamento do início do conteúdo do Programa */
.programa-intro-offset{padding-top:28px;}


/* V45 — correções responsivas */

/* O seletor V17 anterior escondia o menu mesmo quando o JS adicionava .open. */
@media(max-width:980px){
  .header-v17{
    position:relative !important;
  }
  .header-v17 .nav.open{
    display:flex !important;
    position:absolute !important;
    left:0 !important;
    right:0 !important;
    top:60px !important;
    z-index:1000 !important;
    margin-left:0 !important;
    padding:18px 20px !important;
    background:#fff !important;
    border-bottom:1px solid var(--line) !important;
    flex-direction:column !important;
    align-items:flex-start !important;
    justify-content:flex-start !important;
    gap:2px !important;
  }
  .header-v17 .nav.open a{
    width:100% !important;
    padding:10px 0 !important;
    font-size:11px !important;
  }
}

/* No telemóvel o hero deixa de depender apenas do aspect-ratio:
   ganha altura suficiente para conter todo o texto e o botão. */
@media(max-width:760px){
  .hero-global-v40.hero-with-copy{
    aspect-ratio:auto !important;
    min-height:390px !important;
    background-position:center center !important;
  }
  .hero-global-v40.hero-with-copy .hero-copy{
    box-sizing:border-box !important;
    left:0 !important;
    top:0 !important;
    transform:none !important;
    width:62% !important;
    height:auto !important;
    padding:34px 16px 28px 20px !important;
  }
  .hero-global-v40.hero-with-copy .hero-copy h1{
    font-size:34px !important;
    line-height:1.02 !important;
    margin:8px 0 14px !important;
  }
  .hero-global-v40.hero-with-copy .hero-copy .kicker{
    font-size:10px !important;
    line-height:1.3 !important;
  }
  .hero-global-v40.hero-with-copy .hero-copy .lead{
    font-size:15px !important;
    line-height:1.35 !important;
    margin:0 !important;
  }
  .hero-global-v40.hero-with-copy .hero-copy .button{
    display:inline-flex !important;
    align-items:center !important;
    margin-top:16px !important;
    padding:11px 12px !important;
    font-size:10px !important;
    line-height:1.15 !important;
    white-space:nowrap !important;
  }
  .hero-global-v40.hero-with-copy .hero-copy .button .arrow{
    font-size:15px !important;
    margin-left:7px !important;
  }
}

/* O afastamento pedido no topo do Programa mantém-se sem criar um segundo layout. */
.programa-intro-offset{padding-top:28px;}

/* V46 — bloco introdutório do Programa fora do hero */
.program-proposal-intro{
  margin:0 0 38px;
  padding:0 0 26px;
  border-bottom:1px solid var(--line);
}
.program-proposal-intro h2{
  margin:0 0 14px;
  font-family:Helvetica,Arial,sans-serif;
  font-size:28px;
  line-height:1.12;
}
.program-proposal-intro p{
  margin:0;
  max-width:820px;
  font-family:Helvetica,Arial,sans-serif;
  line-height:1.5;
}
@media(max-width:760px){
  .program-proposal-intro{margin-bottom:30px;padding-bottom:22px}
  .program-proposal-intro h2{font-size:24px}
}


/* V47 — menu mobile e textos do hero responsivos em todas as páginas */
@media (max-width:980px){
  .header-v17{position:relative !important; flex-wrap:nowrap !important;}
  .header-v17 .menu{
    display:block !important;
    position:relative !important;
    z-index:1002 !important;
    flex:0 0 auto !important;
    margin-left:auto !important;
    cursor:pointer !important;
  }
  .header-v17 .nav{display:none !important;}
  .header-v17 .nav.open{
    display:flex !important;
    position:absolute !important;
    top:calc(100% + 8px) !important;
    left:12px !important;
    right:12px !important;
    z-index:1001 !important;
    box-sizing:border-box !important;
    margin:0 !important;
    padding:14px 18px !important;
    background:#fff !important;
    border:1px solid var(--line) !important;
    box-shadow:0 10px 24px rgba(0,0,0,.12) !important;
    flex-direction:column !important;
    align-items:stretch !important;
    gap:0 !important;
  }
  .header-v17 .nav.open a{
    display:block !important;
    width:100% !important;
    box-sizing:border-box !important;
    padding:11px 0 !important;
    font-size:11px !important;
    line-height:1.2 !important;
  }
}

@media (max-width:760px){
  .hero-global-v40.hero-with-copy{
    position:relative !important;
    aspect-ratio:1952/800 !important;
    min-height:0 !important;
    overflow:hidden !important;
    background-position:center center !important;
  }
  .hero-global-v40.hero-with-copy .hero-copy{
    position:absolute !important;
    box-sizing:border-box !important;
    left:4.5% !important;
    top:50% !important;
    transform:translateY(-50%) !important;
    width:48% !important;
    max-height:92% !important;
    padding:0 !important;
    margin:0 !important;
    overflow:hidden !important;
  }
  .hero-global-v40.hero-with-copy .hero-copy .kicker{
    margin:0 0 clamp(2px,1vw,6px) !important;
    font-size:clamp(6px,1.9vw,10px) !important;
    line-height:1.15 !important;
    letter-spacing:.04em !important;
  }
  .hero-global-v40.hero-with-copy .hero-copy h1{
    margin:0 0 clamp(3px,1.2vw,8px) !important;
    font-size:clamp(15px,5.2vw,30px) !important;
    line-height:.98 !important;
  }
  .hero-global-v40.hero-with-copy .hero-copy .lead,
  .hero-global-v40.hero-with-copy .hero-copy p{
    margin:0 !important;
    font-size:clamp(7px,2.15vw,13px) !important;
    line-height:1.18 !important;
  }
  .hero-global-v40.hero-with-copy .hero-copy br{display:none !important;}
}

@media (max-width:420px){
  .campaign-pill{padding:0 9px !important; max-width:calc(100vw - 88px) !important;}
  .campaign-pill-lista{font-size:10px !important; padding-right:7px !important; margin-right:7px !important;}
  .campaign-pill-name{font-size:8px !important;}
  .header-v17 .menu{padding:7px 8px !important; font-size:10px !important;}
  .hero-global-v40.hero-with-copy .hero-copy{left:4% !important; width:49% !important;}
  .hero-global-v40.hero-with-copy .hero-copy h1{font-size:clamp(14px,5vw,22px) !important;}
  .hero-global-v40.hero-with-copy .hero-copy .lead,
  .hero-global-v40.hero-with-copy .hero-copy p{font-size:clamp(6.5px,2vw,10px) !important;}
}


/* V48 — espaçamento legível dos textos do hero em ecrãs pequenos */
@media (max-width:760px){
  .hero-global-v40.hero-with-copy .hero-copy br{
    display:inline !important;
  }
  .hero-global-v40.hero-with-copy .hero-copy br::after{
    content:" " !important;
  }
  .hero-global-v40.hero-with-copy .hero-copy h1,
  .hero-global-v40.hero-with-copy .hero-copy .kicker,
  .hero-global-v40.hero-with-copy .hero-copy .lead,
  .hero-global-v40.hero-with-copy .hero-copy p{
    white-space:normal !important;
    word-break:normal !important;
    overflow-wrap:normal !important;
    word-spacing:.06em !important;
  }
}

/* V50 — evento nas notícias */
.event-mailto{display:inline-block;max-width:100%;box-sizing:border-box;margin-top:12px;padding:13px 17px;background:#f36a20;color:#fff;text-decoration:none;font-size:14px;font-weight:700;overflow-wrap:anywhere}
.event-mailto:hover,.event-mailto:focus{background:#d64e0b;color:#fff}
.home-news-single{grid-template-columns:repeat(2,minmax(0,1fr))}
.home-news-single .news-card img{aspect-ratio:1/1;object-fit:cover}
@media(max-width:760px){.home-news-single{grid-template-columns:1fr}}

/* V51 — três notícias na homepage */
@media(min-width:761px){.home-news-single{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* V52 — PURA */
.pura-feature{background:#fffaf4;scroll-margin-top:90px;padding:76px 0 88px}
.pura-feature-heading{margin-bottom:30px}.pura-feature-heading h2{font-size:clamp(32px,4.5vw,60px);margin:6px 0 0;color:#0b304a}
.pura-feature-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,4vw,64px);align-items:center}
.pura-brand{display:block;width:100%;height:auto;object-fit:contain;margin:0 0 28px}
.pura-feature-info p{font-size:clamp(16px,1.55vw,20px);line-height:1.65;max-width:630px;color:#233c4d}
.pura-feature-video video{display:block;width:100%;height:auto;max-height:660px;object-fit:contain;background:#fff;box-shadow:0 16px 48px rgba(9,48,74,.14)}
.pura-hero-cta{display:inline-block;margin-top:20px;padding:13px 18px;background:#ed651d;color:#fff!important;text-decoration:none;font-size:12px;font-weight:700;line-height:1.25;max-width:100%;box-sizing:border-box}
.pura-hero-cta:hover,.pura-hero-cta:focus{background:#cb4b0a}
@media(max-width:760px){.pura-feature{padding:42px 0 56px}.pura-feature-grid{grid-template-columns:1fr}.pura-brand{max-width:540px}.pura-hero-cta{font-size:clamp(7px,2vw,12px)!important;padding:8px 10px!important;margin-top:8px!important}.hero-global-v40.hero-with-copy .hero-copy:has(.pura-hero-cta){max-height:96%!important}}

/* V53: vídeo vertical sem faixas laterais de interface; mantém o frame integral */
.pura-feature-video{display:flex;justify-content:center;align-items:center;background:transparent}
.pura-feature-video video{width:auto;max-width:100%;height:auto;max-height:660px;aspect-ratio:9/16;object-fit:contain;background:transparent}
@media(max-width:760px){.pura-feature-video video{width:100%;max-width:400px;max-height:none}}

/* V54 — botão manual da apresentação PURA */
.pura-video-start{display:inline-block;margin-top:22px;padding:14px 21px;border:0;border-radius:0;background:#ed651d;color:#fff;font:700 14px/1.25 Helvetica,Arial,sans-serif;cursor:pointer;text-align:center}
.pura-video-start:hover,.pura-video-start:focus-visible{background:#cb4b0a;color:#fff}
@media(max-width:760px){.pura-video-start{margin-top:16px;padding:12px 17px;font-size:13px}}
