/* ==========================================================================
   Rural Link, tema ruralink-theme
   Rumo "Almanaque": contagem decrescente como heroi, simulador na primeira
   dobra, e a pagina toda orientada a gerar contactos.
   Fraunces (titulos e numeros) + Overpass (corpo) + Overpass Mono (dados).
   Site sempre claro, por decisao do projeto.
   ========================================================================== */

:root{
  /* --- sistema novo --- */
  --verde:#0B4A33;
  --verde-fundo:#083A28;
  --acao:#0B7A4E;
  --acao-forte:#096440;
  --papel:#F3F3EC;
  --branco:#FCFCF8;
  --creme:#F6F1E1;
  --tinta:#101E1C;
  --tinta-suave:#5C6F6B;
  --tinta-clara:#A9C4B4;
  --linha:#C9CDC0;
  --linha2:#E0E2D8;
  --linha-clara:rgba(246,241,225,.20);
  --azul:#1B4FA0;
  --ocre:#E4A62C;
  --ok:#0A6E3F;
  --breve:#C88214;
  --ja:#AF3A22;
  --zap:#25D366;
  --raio:2px;
  --pad:clamp(48px,6.5vw,88px);

  --font-display:Fraunces,Georgia,"Times New Roman",serif;
  --font-body:Overpass,"Segoe UI",system-ui,-apple-system,sans-serif;
  --font-mono:"Overpass Mono",ui-monospace,SFMono-Regular,Menlo,monospace;

  /* --- nomes antigos, mantidos para o reskin do plugin e do SureForms --- */
  --bg:var(--papel);
  --bg-raised:var(--branco);
  --bg-sink:#E7E7DE;
  --text:var(--tinta);
  --text-soft:var(--tinta-suave);
  --border:var(--linha2);
  --border-firm:var(--linha);
  --brand:var(--acao);
  --brand-strong:var(--acao-forte);
  --on-brand:#F6F1E1;
  --accent:var(--azul);
  --accent-bright:#2A6FD0;
  --soil:var(--verde);
  --on-soil:var(--creme);
  --warn:var(--breve);
  --danger:var(--ja);
  --stone:var(--linha2);
  --radius:2px;
}

/* --------------------------------------------------------------- base --- */

*{box-sizing:border-box}
html{scroll-behavior:smooth}

/* O cabecalho e fixo. Sem esta margem, um link para uma ancora deixa o
   titulo escondido por baixo dele e parece que passou ao lado. */
:target,
[id]{scroll-margin-top:92px}
body.admin-bar [id]{scroll-margin-top:126px}
@media screen and (max-width:782px){body.admin-bar [id]{scroll-margin-top:140px}}
body{
  margin:0;background:var(--papel);color:var(--tinta);
  font-family:var(--font-body);font-size:16px;line-height:1.6;font-weight:400;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
::selection{background:var(--ocre);color:var(--verde)}
:focus-visible{outline:2px solid var(--acao);outline-offset:3px;border-radius:2px}
.topo :focus-visible,.calendario :focus-visible,.contacto :focus-visible,
.rodape :focus-visible,.heroi :focus-visible,.page-hero--soil :focus-visible{outline-color:var(--ocre)}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms !important;transition-duration:.001ms !important}
}

.wrap{max-width:1200px;margin:0 auto;padding:0 clamp(18px,4vw,44px)}

.skip-link{
  position:absolute;left:-9999px;top:0;z-index:200;padding:12px 18px;
  background:var(--verde);color:var(--creme);text-decoration:none;
}
.skip-link:focus{left:12px;top:12px}

h1,h2,h3,h4{font-family:var(--font-display);font-weight:700;letter-spacing:-.012em;text-wrap:balance}

.eyebrow{
  font-family:var(--font-mono);font-size:12px;letter-spacing:.17em;
  text-transform:uppercase;color:var(--tinta-suave);margin:0 0 16px;display:block;
}
.kicker{font-family:var(--font-mono);font-size:12px;letter-spacing:.15em;text-transform:uppercase;color:var(--tinta-suave)}

h2.titulo,.section-title{
  font-family:var(--font-display);font-weight:700;font-variation-settings:"opsz" 48;
  font-size:clamp(1.55rem,3.4vw,2.45rem);line-height:1.1;letter-spacing:-.012em;
  margin:0 0 14px;max-width:20ch;
}
.lede,.lead{font-size:1.02rem;color:var(--tinta-suave);max-width:58ch;margin:0;font-weight:300}

.seccao,.section{padding:var(--pad) 0;border-top:1px solid var(--linha)}
.seccao--primeira{border-top:none}
.seccao-topo{margin-bottom:clamp(26px,4vw,42px)}

/* ------------------------------------------------------------- botoes --- */

.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  min-height:50px;padding:14px 26px;border-radius:var(--raio);
  font-family:var(--font-body);font-size:15px;font-weight:600;line-height:1.2;
  text-decoration:none;cursor:pointer;border:1px solid var(--acao);
  background:var(--acao);color:#F6F1E1;
  transition:background .18s ease,transform .18s ease;
}
.btn:hover{background:var(--acao-forte);transform:translateY(-1px);color:#F6F1E1}
.btn svg{flex:0 0 auto}
.btn--linha,.btn--ghost{background:transparent;color:var(--tinta);border-color:var(--linha)}
.btn--linha:hover,.btn--ghost:hover{background:rgba(16,30,28,.05);color:var(--tinta);transform:none}

/* Em fundo verde o botao de contorno tem de ser creme, senao fica texto
   escuro sobre verde escuro e nao se le. */
.heroi .btn--linha,.contacto .btn--linha,.calendario .btn--linha,
.finale .btn--linha,.page-hero--soil .btn--linha,.topo .btn--linha,
.heroi .btn--ghost,.contacto .btn--ghost,.calendario .btn--ghost{
  color:var(--creme);border-color:rgba(246,241,225,.42);
}
.heroi .btn--linha:hover,.contacto .btn--linha:hover,.calendario .btn--linha:hover,
.finale .btn--linha:hover,.page-hero--soil .btn--linha:hover,.topo .btn--linha:hover,
.heroi .btn--ghost:hover,.contacto .btn--ghost:hover,.calendario .btn--ghost:hover{
  background:rgba(246,241,225,.14);color:var(--creme);border-color:var(--creme);
}
.btn--creme,.btn--light{background:var(--creme);color:var(--verde);border-color:var(--creme)}
.btn--creme:hover,.btn--light:hover{background:#fff;color:var(--verde)}
.btn--zap{background:var(--zap);border-color:var(--zap);color:#053322}
.btn--zap:hover{background:#1FC15C;color:#053322}
.btn--ghost-light{background:transparent;color:var(--creme);border-color:var(--linha-clara)}
.btn--ghost-light:hover{background:rgba(246,241,225,.10);color:var(--creme)}
.arw{transition:transform .18s ease;display:inline-block}
.btn:hover .arw{transform:translateX(3px)}

.grupo-cta,.hero-cta{display:flex;flex-wrap:wrap;gap:11px}
.grupo-cta--empilha{flex-direction:column;align-items:stretch}
.grupo-cta--empilha .btn{width:100%}

/* -------------------------------------------------------------- topo --- */

.topo{position:sticky;top:0;z-index:80;background:var(--verde);color:var(--creme);border-bottom:1px solid var(--linha-clara)}
body.admin-bar .topo{top:32px}
@media screen and (max-width:782px){body.admin-bar .topo{top:46px}}

/* Atencao: usar so padding-top/bottom. A forma curta "padding:13px 0"
   anulava a margem lateral do .wrap e o logotipo ficava desalinhado do
   resto do conteudo, encostado a borda em ecras estreitos. */
.topo-in{display:flex;align-items:center;gap:clamp(12px,2.2vw,32px);padding-top:13px;padding-bottom:13px}
.topo__marca{flex:0 0 auto;display:block}
.topo__marca img{height:30px;width:auto;filter:brightness(0) invert(1) opacity(.96)}
.menu{display:flex;gap:clamp(12px,1.7vw,25px);margin-left:auto;font-size:14.5px}
.menu ul,ul.menu{list-style:none;margin:0;padding:0;display:flex;gap:clamp(12px,1.7vw,25px)}
.menu li{margin:0}
.menu a{text-decoration:none;color:var(--tinta-clara);padding:6px 0;transition:color .16s;display:block}
.menu a:hover,.menu .current-menu-item > a{color:var(--creme)}
.topo__tel{
  display:inline-flex;align-items:center;gap:9px;text-decoration:none;color:var(--creme);
  font-family:var(--font-mono);font-size:13.5px;white-space:nowrap;padding:8px 0;flex:0 0 auto;
}
.topo__tel:hover{color:var(--ocre)}
/* 44px e o minimo recomendado para um alvo de toque. */
.topo__cta{min-height:44px;padding:10px 18px;font-size:14px;flex:0 0 auto}

.nav-toggle{
  display:none;width:46px;height:46px;padding:11px;margin-left:auto;flex:0 0 auto;
  background:transparent;border:1px solid var(--linha-clara);border-radius:var(--raio);cursor:pointer;
}
.nav-toggle span{display:block;height:2px;background:var(--creme);margin:4px 0;transition:transform .2s,opacity .2s}
.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}

.painel-movel{background:var(--verde-fundo);border-top:1px solid var(--linha-clara);padding:8px 0 18px}
.painel-movel ul.menu,.painel-movel .menu ul{flex-direction:column;gap:0}
.painel-movel .menu{margin:0;display:block}
.painel-movel .menu a{padding:13px 0;border-bottom:1px solid var(--linha-clara);font-size:16px}
.painel-movel__cta{padding-top:16px}
.painel-movel__cta .btn{width:100%}

@media (max-width:1080px){.menu:not(.painel-movel .menu){display:none}}
@media (max-width:1080px){.nav-toggle{display:block;margin-left:0}.topo__tel{margin-left:auto}}
@media (max-width:640px){.topo__cta{display:none}}
@media (min-width:1081px){.painel-movel{display:none !important}}

/* ============================================================ homepage === */
/* ---- heroi ---------------------------------------------------------- */

.heroi{position:relative;overflow:hidden;background:var(--verde);color:var(--creme);padding:clamp(28px,4vw,50px) 0 clamp(34px,5vw,58px)}
.heroi__foto{
  position:absolute;inset:0;z-index:0;opacity:.17;filter:grayscale(1) contrast(1.12);
  -webkit-mask-image:linear-gradient(to bottom,transparent,#000 40%,transparent 98%);
  mask-image:linear-gradient(to bottom,transparent,#000 40%,transparent 98%);
}
.heroi__foto img{width:100%;height:100%;object-fit:cover;object-position:50% 66%}
/* Veu escuro opcional, para o texto continuar legivel quando a fotografia
   e mostrada com mais intensidade. A opacidade vem do Personalizador. */
.heroi__veu{position:absolute;inset:0;z-index:0;background:var(--verde);opacity:0;pointer-events:none}
.heroi > .wrap{position:relative;z-index:1}
.heroi .eyebrow{color:var(--ocre)}

.relogio{display:flex;align-items:flex-end;gap:clamp(14px,2.6vw,28px);flex-wrap:wrap}
.relogio__n{
  font-family:var(--font-display);font-weight:900;font-variation-settings:"opsz" 144;
  font-size:clamp(4.4rem,13vw,9.5rem);line-height:.78;letter-spacing:-.05em;
  font-variant-numeric:tabular-nums;color:var(--creme);
}
.relogio__lado{padding-bottom:clamp(6px,1.2vw,14px);max-width:34ch}
.relogio__p{
  font-family:var(--font-display);font-weight:700;font-variation-settings:"opsz" 60;
  font-size:clamp(1.25rem,2.8vw,1.9rem);line-height:1;margin:0 0 9px;
}
.relogio__q{margin:0;font-size:14.5px;color:var(--tinta-clara);line-height:1.5;font-weight:300}
.relogio__q b{color:var(--creme);font-weight:600}
.relogio--vazio .relogio__lado{padding-bottom:0}
.tique{font-family:var(--font-mono);font-size:12px;letter-spacing:.09em;color:var(--ocre);font-variant-numeric:tabular-nums;margin:12px 0 0;min-height:1.2em}

.heroi__texto{
  display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(20px,4vw,52px);align-items:end;
  margin-top:clamp(28px,4vw,46px);padding-top:clamp(22px,3vw,34px);border-top:1px solid var(--linha-clara);
}
@media (max-width:880px){.heroi__texto{grid-template-columns:1fr;align-items:start}}
.heroi h1{
  font-family:var(--font-display);font-weight:700;font-variation-settings:"opsz" 72;
  font-size:clamp(1.8rem,4.2vw,2.95rem);line-height:1.06;letter-spacing:-.016em;
  margin:0;max-width:17ch;color:var(--creme);
}
.heroi__sub{margin:0 0 20px;color:var(--tinta-clara);font-weight:300;font-size:1.02rem;max-width:44ch}

/* ---- apoios abertos: dois quadros lado a lado ------------------------ */

.apoios{display:grid;grid-template-columns:1fr 1fr;gap:clamp(18px,2.5vw,28px);align-items:start}
@media (max-width:980px){.apoios{grid-template-columns:1fr}}

.quadro-apoios{border:1px solid var(--linha);background:var(--branco);display:flex;flex-direction:column;min-width:0}
.quadro-apoios__barra{
  display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;
  padding:13px 20px;border-bottom:1px solid var(--linha2);background:#EFEFE7;
}
.sim__rot{font-family:var(--font-mono);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--tinta-suave);font-weight:600}
.conta{font-family:var(--font-mono);font-size:12px;color:var(--acao);font-variant-numeric:tabular-nums;font-weight:600}

.quadro-apoios__pe{
  margin-top:auto;padding:16px 20px;border-top:1px solid var(--linha2);background:#EFEFE7;
  display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;
}
.quadro-apoios__pe p{
  margin:0;flex:1 1 12ch;min-width:0;
  font-family:var(--font-mono);font-size:12px;letter-spacing:.09em;
  text-transform:uppercase;color:var(--tinta-suave);line-height:1.6;
}
.quadro-apoios__pe .btn{min-height:44px;padding:11px 20px;font-size:14px;flex:0 0 auto}

.gal__intro{padding:20px 20px 4px}
.gal__intro p{margin:0 0 14px;color:var(--tinta-suave);font-size:14.5px;font-weight:300;line-height:1.6}
.gal__intro p:first-child{color:var(--tinta);font-weight:600}
.pulso{width:7px;height:7px;border-radius:50%;background:var(--acao);display:inline-block;margin-right:8px;vertical-align:1px;animation:pulso 2.6s infinite}
@keyframes pulso{
  0%{box-shadow:0 0 0 0 rgba(11,122,78,.55)}
  70%{box-shadow:0 0 0 8px rgba(11,122,78,0)}
  100%{box-shadow:0 0 0 0 rgba(11,122,78,0)}
}

.lista{list-style:none;margin:0;padding:0;flex:1}
.lista li{
  display:grid;grid-template-columns:1fr auto;gap:4px 14px;align-items:center;
  padding:13px 20px;border-bottom:1px solid var(--linha2);
  transition:opacity .25s ease,background .16s ease;
}
.lista li:last-child{border-bottom:none}
.lista li:hover{background:#F1F5EF}
.lista li.fora{opacity:.3}
.lista .cod{font-family:var(--font-mono);font-size:12px;color:var(--azul);letter-spacing:.04em;display:block;margin-bottom:2px}
.lista .nome{font-size:14.5px;line-height:1.35;text-decoration:none}
.lista a.nome:hover{text-decoration:underline;text-underline-offset:3px}
.lista__vazia{color:var(--tinta-suave);font-weight:300}
.selo{
  font-family:var(--font-mono);font-size:12px;font-weight:600;white-space:nowrap;
  font-variant-numeric:tabular-nums;padding:5px 9px;border:1px solid currentColor;
  border-radius:var(--raio);color:var(--ok);
}
.selo.breve{color:var(--breve)}
.selo.ja{color:var(--ja)}
.consola__pe{
  padding:12px 20px;border-top:1px solid var(--linha2);background:#EFEFE7;margin:0;
  font-family:var(--font-mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--tinta-suave);
}

/* ---- calendario do ano ---------------------------------------------- */

.calendario{background:var(--verde);color:var(--creme);border-top:none}
.calendario .eyebrow{color:var(--ocre)}
.calendario h2.titulo{color:var(--creme)}
.calendario .lede{color:var(--tinta-clara)}
.ano__rolo{overflow-x:auto;padding-bottom:8px}
.ano{min-width:740px}
.ano__linha{display:grid;grid-template-columns:190px 1fr;gap:16px;align-items:center;padding:7px 0}
.ano__rot{font-size:13.5px;color:var(--creme);font-weight:300}
.ano__pista{position:relative;height:16px;background:rgba(246,241,225,.10);display:block}
.ano__faixa{position:absolute;top:0;bottom:0;background:var(--ocre);opacity:.85;display:block}
.ano__faixa.alt{background:#3FBE86}
.ano__escala{display:grid;grid-template-columns:190px 1fr;gap:16px;margin-top:12px;border-top:1px solid var(--linha-clara);padding-top:9px;min-width:740px}
.ano__escala ol{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(12,1fr);font-family:var(--font-mono);font-size:12px;letter-spacing:.05em;color:var(--tinta-clara)}
.ano__legenda{display:flex;gap:22px;flex-wrap:wrap;margin-top:24px;font-family:var(--font-mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--creme)}
.ano__legenda span{display:flex;align-items:center;gap:9px}
.ano__legenda i{width:16px;height:8px;display:block;flex:0 0 auto}
.ano__nota{margin:12px 0 0;font-size:13.5px;font-weight:300;color:var(--tinta-clara);max-width:56ch}

/* ---- quadro dos GAL -------------------------------------------------- */

.gal__nota{
  margin:0 0 18px !important;padding-left:14px;border-left:2px solid var(--ocre);
  font-size:14px;color:var(--tinta);font-weight:400;
}
.gal__lista{list-style:none;margin:0;padding:0}
.gal__lista li{padding:12px 20px;border-bottom:1px solid var(--linha2)}
.gal__lista li:last-child{border-bottom:none}
.gal__nome{display:block;font-size:14.5px;font-weight:600;line-height:1.3;margin-bottom:3px}
.gal__concelhos{display:block;font-size:13px;font-weight:300;color:var(--tinta-suave);line-height:1.45}

/* ---- servicos -------------------------------------------------------- */

.servicos-topo{max-width:760px;margin-bottom:clamp(26px,4vw,42px)}
/* A fotografia fica a toda a largura, colada por cima dos cartoes: se for
   um triptico, cada painel cai por cima do seu cartao. A altura maxima
   impede que uma fotografia normal (3:2) ocupe o ecra inteiro. */
.frentes__foto{margin:0;border:1px solid var(--linha);border-bottom:none;background:#fff;line-height:0;overflow:hidden}
.frentes__foto img{display:block;width:100%;height:auto;max-height:480px;object-fit:cover}

.frentes{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--linha);border:1px solid var(--linha)}
@media (max-width:900px){.frentes{grid-template-columns:1fr}}
.frente{background:var(--branco);padding:26px 24px 24px;display:flex;flex-direction:column;transition:background .18s ease}
.frente:hover{background:#fff}
.frente h3{
  font-family:var(--font-display);font-weight:600;font-variation-settings:"opsz" 30;
  font-size:1.3rem;line-height:1.18;margin:0 0 12px;letter-spacing:-.008em;
}
.frente > p{margin:0 0 22px;color:var(--tinta-suave);font-size:14.5px;font-weight:300;line-height:1.65;flex:1}
.frente__pe{margin-top:auto}
.frente__rot{
  display:block;font-family:var(--font-mono);font-size:12px;letter-spacing:.15em;
  text-transform:uppercase;color:var(--tinta-suave);margin-bottom:10px;
}
.frente__tags{list-style:none;margin:0 0 20px;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.frente__tags li{
  font-size:12.5px;line-height:1;padding:6px 10px;border-radius:var(--raio);
  background:#EFEFE7;color:var(--tinta-suave);white-space:nowrap;
}
.frente__link{
  display:inline-flex;align-items:center;gap:7px;
  font-family:var(--font-body);font-size:14.5px;font-weight:600;
  color:var(--acao);text-decoration:none;padding-top:16px;
  border-top:1px solid var(--linha2);width:100%;
}
.frente__link:hover{color:var(--acao-forte)}
.frente__link:hover .arw{transform:translateX(3px)}

.rail{border:1px solid var(--linha);border-top:none;background:#fff;padding:22px}
.rail__rot{font-family:var(--font-mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--tinta-suave);margin:0 0 18px;text-align:center}
.rail__logos{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:clamp(20px,4vw,48px)}
.rail__logos img{height:38px;width:auto;object-fit:contain;opacity:.88;transition:opacity .2s}
.rail__logos img:hover{opacity:1}
.rail__logos .alto{height:46px}

/* ---- clientes -------------------------------------------------------- */

.marcas{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.marcas--1{grid-template-columns:minmax(0,320px)}
.marcas--2{grid-template-columns:repeat(2,1fr)}
.marcas--4{grid-template-columns:repeat(4,1fr)}
@media (max-width:980px){.marcas--4{grid-template-columns:repeat(2,1fr)}}
@media (max-width:760px){.marcas,.marcas--2,.marcas--4{grid-template-columns:1fr}}
.marca{background:#fff;border:1px solid var(--linha);padding:26px 22px 16px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;min-height:150px}
.marca__img{display:flex;align-items:center;justify-content:center;height:56px;width:100%}
.marca__img img{max-height:56px;width:auto;max-width:100%;object-fit:contain}
.marca__rot{font-family:var(--font-mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--tinta-suave);text-align:center}
.marca__rot b{display:block;color:var(--tinta);font-size:12px;letter-spacing:.04em;text-transform:none;font-weight:600;margin-bottom:3px}

/* ---- contactos ------------------------------------------------------- */

.contacto{background:var(--verde);color:var(--creme);border-top:none}
.contacto .eyebrow{color:var(--ocre)}
.contacto .lede{color:var(--tinta-clara)}
.contacto__grelha{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,60px);align-items:start}
@media (max-width:900px){.contacto__grelha{grid-template-columns:1fr}}
.contacto__titulo{
  font-family:var(--font-display);font-weight:700;font-variation-settings:"opsz" 60;
  font-size:clamp(1.7rem,4vw,2.7rem);line-height:1.08;margin:0 0 14px;max-width:18ch;color:var(--creme);
}
.tel-grande{
  display:inline-flex;align-items:center;gap:14px;text-decoration:none;color:var(--creme);
  font-family:var(--font-display);font-weight:700;font-variation-settings:"opsz" 72;
  font-size:clamp(1.7rem,4.6vw,2.9rem);line-height:1;letter-spacing:-.02em;
  font-variant-numeric:tabular-nums;margin:26px 0 8px;transition:color .18s;min-height:44px;
}
.tel-grande:hover{color:var(--ocre)}
.tel-grande svg{flex:0 0 auto;opacity:.75}
.tel-rot{font-family:var(--font-mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--tinta-clara);margin:0 0 22px}
.contactos{list-style:none;margin:0;padding:0;border-top:1px solid var(--linha-clara)}
.contactos li{display:flex;justify-content:space-between;gap:16px;align-items:center;flex-wrap:wrap;padding:14px 0;border-bottom:1px solid var(--linha-clara)}
.contactos .rot{font-family:var(--font-mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--tinta-clara)}
.contactos .val{font-size:16px}
.contactos a{color:var(--creme);text-decoration:none;border-bottom:1px solid var(--linha-clara)}
.contactos a:hover{border-bottom-color:var(--ocre);color:var(--ocre)}

.contacto__form{background:var(--creme);color:var(--tinta);padding:clamp(22px,3vw,30px);border-radius:var(--raio)}
.contacto__form h3{font-family:var(--font-display);font-weight:700;font-variation-settings:"opsz" 36;font-size:1.35rem;line-height:1.2;margin:0 0 16px}
.form-leads--recurso p{color:var(--tinta-suave);font-weight:300;margin:0 0 18px}

/* -------------------------------------------------------------- rodape --- */

.rodape{background:var(--verde-fundo);color:var(--tinta-clara);padding:clamp(38px,5vw,58px) 0 30px}
/* Mesmo tamanho do logotipo do cabecalho, porque os dois aparecem no
   mesmo ecra. Desce o suficiente para ficar a meio das duas primeiras
   linhas de links das colunas ao lado, abaixo dos titulos delas. */
.rodape__logo{height:30px;width:auto;filter:brightness(0) invert(1) opacity(.9);margin:41px 0 0}
.rodape__marca .rodape__sobre{margin-top:18px}
@media (max-width:880px){
  /* Em coluna unica a descida deixa de fazer sentido. */
  .rodape__logo{margin-top:0}
}
.rodape__grelha{display:grid;grid-template-columns:1.5fr repeat(4,1fr);gap:clamp(20px,3vw,36px)}
@media (max-width:1080px){.rodape__grelha{grid-template-columns:1fr 1fr 1fr}}
@media (max-width:880px){.rodape__grelha{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.rodape__grelha{grid-template-columns:1fr}}
.rodape h2{font-family:var(--font-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--creme);margin:0 0 14px;font-weight:600}
.rodape ul{list-style:none;margin:0;padding:0;display:grid;gap:9px;font-size:14px}
.rodape li{margin:0}
.rodape a{text-decoration:none;color:var(--tinta-clara)}
.rodape a:hover{color:var(--creme)}
.rodape__sobre{font-size:14px;font-weight:300;max-width:34ch;margin:0 0 16px}
.rodape__redes{
  display:flex;gap:14px;justify-content:center;
  margin-top:clamp(30px,4vw,44px);padding-top:clamp(26px,3vw,34px);
  border-top:1px solid var(--linha-clara);
}
.rodape__redes a{
  display:flex;align-items:center;justify-content:center;width:56px;height:56px;
  border:1px solid var(--linha-clara);border-radius:var(--raio);color:var(--creme);
  transition:background .16s,color .16s,border-color .16s,transform .16s;
}
.rodape__redes a:hover{background:var(--creme);color:var(--verde-fundo);border-color:var(--creme);transform:translateY(-2px)}
.rodape__fim{
  margin-top:32px;padding-top:18px;border-top:1px solid var(--linha-clara);
  display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;
  font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;
}

/* Alvos de toque: aumenta a area que responde ao dedo sem mexer no desenho.
   Os links dos contactos tinham 16 a 27px de altura. */
.contact-details a,.contactos a{position:relative}
.contact-details a::before,.contactos a::before{content:"";position:absolute;inset:-7px -4px}
.topo__marca{display:flex;align-items:center;min-height:44px}
/* ---------------------------------------- barra fixa de contacto (movel) --- */

.barra-fixa{display:none}
@media (max-width:760px){
  .barra-fixa{
    display:grid;grid-template-columns:1fr 1fr;gap:1px;
    position:fixed;left:0;right:0;bottom:0;z-index:90;
    background:var(--linha);border-top:1px solid var(--verde-fundo);
    padding-bottom:env(safe-area-inset-bottom);
  }
  .barra-fixa a{display:flex;align-items:center;justify-content:center;gap:9px;min-height:56px;text-decoration:none;font-family:var(--font-body);font-size:15px;font-weight:600}
  .barra-fixa__liga{background:var(--acao);color:#F6F1E1}
  .barra-fixa__zap{background:var(--zap);color:#053322}
  body{padding-bottom:60px}
}

/* ============================================== paginas de conteudo === */

.page-hero{background:var(--papel);padding:clamp(40px,5.5vw,72px) 0 clamp(28px,4vw,44px);border-bottom:1px solid var(--linha)}
.page-hero h1{
  font-family:var(--font-display);font-weight:700;font-variation-settings:"opsz" 72;
  font-size:clamp(1.9rem,4.4vw,3rem);line-height:1.06;margin:0 0 14px;max-width:20ch;
}
.page-hero .lead{max-width:56ch}
.page-hero--soil{background:var(--verde);color:var(--creme);border-bottom:none;position:relative;overflow:hidden}
.page-hero--soil > .wrap{position:relative;z-index:1}
/* Mesma receita do heroi da pagina inicial. A opacidade, o filtro e a
   posicao vem do Personalizador, em "Página inicial: topo". */
.page-hero__foto{
  position:absolute;inset:0;z-index:0;opacity:.17;filter:grayscale(1) contrast(1.12);
  -webkit-mask-image:linear-gradient(to bottom,transparent,#000 40%,transparent 98%);
  mask-image:linear-gradient(to bottom,transparent,#000 40%,transparent 98%);
}
.page-hero__foto img{width:100%;height:100%;object-fit:cover;object-position:50% 66%}
.page-hero__veu{position:absolute;inset:0;z-index:0;background:var(--verde);opacity:0;pointer-events:none}
.page-hero--soil h1{color:var(--creme)}
.page-hero--soil .lead{color:var(--tinta-clara)}
.page-hero--soil .eyebrow{color:var(--ocre)}
.page-hero .hero-cta{margin-top:24px}

.block-grid{display:grid;gap:clamp(28px,4vw,52px)}
.block{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(22px,4vw,44px);align-items:start;padding-top:clamp(24px,3vw,36px);border-top:1px solid var(--linha)}
.block:first-child{border-top:none;padding-top:0}
@media (max-width:880px){.block{grid-template-columns:1fr}}
.block h2{font-family:var(--font-display);font-weight:700;font-variation-settings:"opsz" 40;font-size:clamp(1.35rem,2.8vw,1.9rem);line-height:1.14;margin:0 0 12px}
.block h3{font-family:var(--font-display);font-weight:600;font-variation-settings:"opsz" 30;font-size:1.15rem;margin:0 0 8px}
.block p{color:var(--tinta-suave);font-weight:300}

.list{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:9px}
.list li{position:relative;padding-left:20px;color:var(--tinta-suave);font-weight:300;font-size:15px}
.list li::before{content:"";position:absolute;left:0;top:.62em;width:9px;height:1px;background:var(--acao)}

.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;background:var(--linha);border:1px solid var(--linha);margin-top:28px}
.stat{background:var(--branco);padding:18px 20px}
.stat b{display:block;font-family:var(--font-display);font-weight:900;font-variation-settings:"opsz" 60;font-size:1.9rem;line-height:1;margin-bottom:6px;font-variant-numeric:tabular-nums}
.stat span{font-family:var(--font-mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--tinta-suave)}
.out{font-family:var(--font-mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--tinta-suave)}
.proof{border-top:1px solid var(--linha);padding-top:26px;margin-top:30px}
.trust-line{font-family:var(--font-mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--tinta-clara);margin-top:18px}
.finale{background:var(--verde);color:var(--creme);padding:var(--pad) 0}
.finale h2,.finale .section-title{color:var(--creme)}
.finale p{color:var(--tinta-clara)}
.entities{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:22px}
.entities .lbl{font-family:var(--font-mono);font-size:12px;letter-spacing:.13em;text-transform:uppercase;color:var(--tinta-suave);width:100%;margin-bottom:4px}
.entities b{font-family:var(--font-mono);font-size:12px;font-weight:400;padding:8px 13px;border:1px solid var(--linha);background:#fff;color:var(--tinta-suave);border-radius:var(--raio)}

/* -------------------------------------------------- pagina Servicos --- */

.atalhos{display:flex;flex-wrap:wrap;gap:8px;margin-top:26px}
.atalhos a{
  display:inline-flex;align-items:center;min-height:40px;padding:9px 16px;
  border:1px solid var(--linha);border-radius:var(--raio);background:var(--branco);
  font-size:14px;font-weight:600;color:var(--tinta);text-decoration:none;
  transition:background .16s,border-color .16s,color .16s;
}
.atalhos a:hover{background:var(--acao);border-color:var(--acao);color:#F6F1E1}

.servicos-lista{padding:var(--pad) 0 0}
.servico{
  display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(24px,4vw,56px);
  align-items:start;padding-bottom:var(--pad);
}
.servico + .servico{border-top:1px solid var(--linha);padding-top:var(--pad)}
@media (max-width:900px){.servico{grid-template-columns:1fr}}
.servico h2{
  font-family:var(--font-display);font-weight:700;font-variation-settings:"opsz" 48;
  font-size:clamp(1.5rem,3.2vw,2.25rem);line-height:1.1;letter-spacing:-.012em;margin:0 0 14px;
}
.servico__curto{font-size:1.05rem;color:var(--tinta);font-weight:500;margin:0 0 16px;max-width:52ch}
.servico__texto p{color:var(--tinta-suave);font-weight:300;margin:0 0 16px;max-width:60ch;line-height:1.7}
.servico__texto .list{margin-top:22px}

.servico__lado{display:flex;flex-direction:column;gap:18px;position:sticky;top:96px}
@media (max-width:900px){.servico__lado{position:static}}
.servico__fig{margin:0}
.servico__caixa{border:1px solid var(--linha);background:var(--branco);padding:22px}
.servico__caixa .frente__tags{margin-bottom:20px}
.servico__caixa .btn{width:100%}

.metodologia{max-width:760px}
.metodologia .section-title{max-width:22ch}
.metodologia .lede{font-size:1.08rem;line-height:1.7;max-width:66ch}

/* -------------------------------------------------- caixas de imagem --- */

.img-slot{
  background:var(--bg-sink);border:1px dashed var(--linha);border-radius:var(--raio);
  min-height:220px;display:flex;align-items:center;justify-content:center;padding:20px;
}
.img-slot--land{min-height:300px}
.img-slot__label{
  font-family:var(--font-mono);font-size:12px;letter-spacing:.08em;color:var(--tinta-suave);
  text-align:center;max-width:34ch;line-height:1.7;
}
.img-slot__label b{display:block;text-transform:uppercase;letter-spacing:.14em;color:var(--tinta);margin-bottom:6px;font-size:12px}

/* --------------------------------------------------- contactos (pagina) --- */

.contact-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(26px,4vw,54px);align-items:start}
@media (max-width:880px){.contact-grid{grid-template-columns:1fr}}
.contact-details{list-style:none;margin:0;padding:0;border-top:1px solid var(--linha)}
.contact-details .row{display:flex;justify-content:space-between;gap:16px;align-items:center;flex-wrap:wrap;padding:14px 0;border-bottom:1px solid var(--linha)}
.contact-details .k{font-family:var(--font-mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--tinta-suave)}
.contact-details .v{font-size:16px}
.contact-details a{color:var(--tinta);text-decoration:none;border-bottom:1px solid var(--linha)}
.contact-details a:hover{border-bottom-color:var(--acao);color:var(--acao)}
.contact-form{background:var(--branco);border:1px solid var(--linha);padding:clamp(22px,3vw,30px)}
.contact-form__title{font-family:var(--font-display);font-weight:700;font-variation-settings:"opsz" 36;font-size:1.35rem;margin:0 0 16px}

/* Pagina Contactos: telefone grande em fundo claro, os tres caminhos de
   contacto, e os passos do que acontece depois. Os passos sao numerados
   porque sao mesmo uma sequencia. */
.tel-grande--claro{color:var(--tinta);margin:0 0 6px}
.tel-grande--claro:hover{color:var(--acao)}
.contacto-info .tel-rot{color:var(--tinta-suave)}
.contacto-info__cta{margin:0 0 28px}
.contact-details a.contacto-mapa{
  display:inline-block;margin-left:10px;border-bottom:0;
  font-family:var(--font-mono);font-size:12px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--acao);font-weight:600;
}
.contact-details a.contacto-mapa:hover{text-decoration:underline;text-underline-offset:3px}
.passos-contacto{margin-top:36px}
.passos-contacto h2{
  font-family:var(--font-display);font-weight:700;font-variation-settings:"opsz" 36;
  font-size:1.3rem;line-height:1.2;margin:0 0 18px;
}
.passos-contacto ol,.passos-lista{list-style:none;margin:0;padding:0;counter-reset:passo;display:grid;gap:14px}
.passos-contacto li,.passos-lista li{
  counter-increment:passo;display:grid;grid-template-columns:36px 1fr;gap:14px;align-items:start;
  color:var(--tinta-suave);font-weight:300;font-size:15px;line-height:1.55;
}
.passos-contacto li::before,.passos-lista li::before{
  content:counter(passo,decimal-leading-zero);
  font-family:var(--font-mono);font-size:12px;font-weight:600;color:var(--acao);
  background:var(--branco);border:1px solid var(--linha);border-radius:var(--raio);
  text-align:center;padding:6px 0;line-height:1;
}

/* ---------------------------------------------------- pagina Sobre Nos --- */
/* Titulo do bloco a esquerda, texto a direita, separados por reguas
   finas. Antes cada .block tinha uma grelha de duas colunas com um so
   filho, e o conteudo encolhia para a esquerda com um vazio a direita. */
.sobre{padding:var(--pad) 0 0}
.sobre__bloco{
  display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(20px,4vw,56px);
  align-items:start;padding-bottom:calc(var(--pad) * .65);
}
.sobre__bloco + .sobre__bloco{border-top:1px solid var(--linha);padding-top:calc(var(--pad) * .65)}
@media (max-width:880px){.sobre__bloco{grid-template-columns:1fr}}
.sobre__tit{
  font-family:var(--font-display);font-weight:700;font-variation-settings:"opsz" 48;
  font-size:clamp(1.45rem,3vw,2.1rem);line-height:1.1;letter-spacing:-.012em;
  margin:0;position:sticky;top:110px;
}
@media (max-width:880px){.sobre__tit{position:static}}
.sobre__texto p{font-size:1.05rem;line-height:1.75;color:var(--tinta-suave);font-weight:300;margin:0 0 16px;max-width:60ch}
.sobre__texto p:first-child{color:var(--tinta);font-weight:400}
.sobre__texto .passos-lista{margin-top:24px}
/* Na mesma pagina a lista de pontos e os passos tem de ter o mesmo corpo. */
.sobre__texto .passos-lista li{font-size:1rem;color:var(--tinta);font-weight:400;align-items:center}
.sobre__lista{list-style:none;margin:22px 0 0;padding:0;display:grid;gap:12px}
.sobre__lista li{position:relative;padding-left:22px;color:var(--tinta);font-size:1rem;line-height:1.55}
.sobre__lista li::before{content:"";position:absolute;left:0;top:.55em;width:8px;height:8px;background:var(--acao);border-radius:1px}
.sobre__texto .entities{margin-top:20px}

/* Banda final verde: o rotulo pequeno em cinzento nao se lia em cima do
   verde. */
.finale .eyebrow{color:var(--ocre)}
.finale .section-title{max-width:20ch}
.finale .hero-cta{margin-top:26px}

/* -------------------------------------------------- conteudo (posts) --- */

.prose,.entry-content{max-width:68ch}
.prose > * + *,.entry-content > * + *{margin-top:1.05em}
.prose h2,.entry-content h2{font-family:var(--font-display);font-weight:700;font-variation-settings:"opsz" 40;font-size:1.6rem;margin-top:1.9em}
.prose h3,.entry-content h3{font-family:var(--font-display);font-weight:600;font-variation-settings:"opsz" 30;font-size:1.25rem;margin-top:1.6em}
/* Links escritos no editor ficam verdes. Botoes e componentes com estilo
   proprio ficam de fora, senao apanhavam texto verde por cima do seu
   proprio fundo: era o que punha o botao verde sem texto visivel e os
   botoes de partilha ilegiveis. */
.prose a:not(.btn):not([class*="rl-share"]),
.entry-content a:not(.btn):not([class*="rl-share"]){color:var(--acao)}
.prose ul,.prose ol,.entry-content ul,.entry-content ol{padding-left:1.25em}
.prose li,.entry-content li{margin-bottom:.4em}
.prose blockquote,.entry-content blockquote{border-left:2px solid var(--acao);padding-left:1.1em;margin-left:0;color:var(--tinta-suave);font-style:normal}
.prose img,.entry-content img{border-radius:var(--raio)}

/* Cartoes separados, pelo mesmo motivo dos cartoes do simulador: com a
   grelha incompleta, a tecnica do fundo cinzento deixava um quadrado a
   sobrar no fim da lista. */
.post-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px;background:transparent;border:0}
.post-grid .post-card{
  background:var(--branco);border:1px solid var(--linha);border-radius:var(--raio);
  padding:22px;display:flex;flex-direction:column;
  transition:background .16s,border-color .16s;
}
.post-grid .post-card:hover{background:#fff;border-color:var(--acao)}
.post-card__foto{display:block;margin:-22px -22px 18px;border-bottom:1px solid var(--linha2)}
.post-card__foto img{display:block;width:100%;height:180px;object-fit:cover}
.post-grid h2,.post-grid h3{
  font-family:var(--font-display);font-weight:600;font-variation-settings:"opsz" 30;
  font-size:1.14rem;line-height:1.25;margin:0 0 10px;
}
.post-grid h2 a{text-decoration:none;color:inherit}
.post-grid h2 a:hover{color:var(--acao)}
.post-grid p{color:var(--tinta-suave);font-size:14.5px;font-weight:300;line-height:1.6;margin:0 0 16px;flex:1}
/* ---------------------------------------------- artigo: partilha e fecho --- */
/* A caixa vem do snippet WPCode "Caixa de Partilha". O tema so a veste,
   para deixar de parecer um widget de outro site. */
.entry-content .rl-share-box{
  background:transparent;border:0;border-top:1px solid var(--linha);
  border-radius:0;padding:22px 0 0;margin:2.6rem 0 0;box-shadow:none;
}
.entry-content .rl-share-box > p{
  font-family:var(--font-mono);font-size:12px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--tinta-suave);margin:0 0 14px;font-weight:600;
}
.entry-content .rl-share-row{display:flex;flex-wrap:wrap;gap:9px}
.entry-content .rl-share-btn{
  display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:11px 16px;
  background:transparent;color:var(--tinta);border:1px solid var(--linha);
  border-radius:var(--raio);font-family:var(--font-body);font-size:14px;font-weight:600;
  text-decoration:none;cursor:pointer;box-shadow:none;
  transition:background .16s,border-color .16s,color .16s;
}
.entry-content .rl-share-btn:hover{background:var(--acao);border-color:var(--acao);color:#F6F1E1}
.entry-content .rl-share-btn svg{width:16px;height:16px;flex:0 0 auto}

.artigo__foto{max-width:68ch;margin:0 auto 2.2rem}
.artigo__foto img{width:100%;height:auto;border-radius:var(--raio);display:block}
.artigo__foto figcaption{
  font-family:var(--font-mono);font-size:12px;letter-spacing:.05em;
  color:var(--tinta-suave);padding-top:10px;
}

.artigo__fecho{
  max-width:68ch;margin:2.6rem auto 0;padding-top:1.8rem;
  border-top:1px solid var(--linha);
}
.artigo__fecho p{margin:0 0 16px;color:var(--tinta-suave);font-weight:300;max-width:56ch}
.artigo__voltar{margin:22px 0 0 !important;font-size:14px}
.artigo__voltar a{
  font-family:var(--font-mono);font-size:12px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--tinta-suave);text-decoration:none;font-weight:600;
}
.artigo__voltar a:hover{color:var(--acao)}

.post-card__data{
  margin-top:auto;padding-top:14px;border-top:1px solid var(--linha2);
  font-family:var(--font-mono);font-size:12px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--tinta-suave);
}

/* Pastilha de categoria, com as mesmas cores por familia do simulador. */
.cat{
  display:inline-block;align-self:flex-start;margin-bottom:12px;
  padding:5px 10px;border-radius:var(--raio);
  font-family:var(--font-body);font-size:12px;font-weight:600;letter-spacing:.01em;
  text-transform:none;background:#EAEBE3;color:var(--tinta-suave);
}
.cat[data-fam="floresta"]{background:#E1EFE4;color:#1E5C39}
.cat[data-fam="agricola"]{background:#EDF0DC;color:#5B6A16}
.cat[data-fam="produtores"]{background:#DFEBF6;color:#1B4FA0}
.cat[data-fam="entidades"]{background:#E6E7EE;color:#3B3F70}
.cat[data-fam="jovem"]{background:#F7EBD5;color:#8A5D12}
.page-links{margin-top:24px;font-family:var(--font-mono);font-size:12px}

/* ================================================= simulador (plugin) === */
/* O plugin traz o seu proprio estilo (verde, arredondado, sombras). Aqui
   alinha-se ao tema. NAO MEXER sem testar a pagina do simulador. */

.simulador-wrap #rlpepac-app{
  --rl-accent:var(--brand); --rl-accent2:var(--brand-strong);
  --rl-ink:var(--text); --rl-mut:var(--text-soft);
  margin:0;
}
.simulador-wrap #rlpepac-app h2{font-family:var(--font-display);font-size:clamp(1.4rem,3vw,1.9rem);letter-spacing:-.02em;color:var(--text)}
.simulador-wrap #rlpepac-app .rlpepac-sub{color:var(--text-soft);font-size:1rem}
/* Cartoes separados, cada um com o seu contorno.
   Antes a grelha tinha fundo cinzento e 1px de intervalo, e eram os
   cartoes brancos que desenhavam as linhas. Bonito com a grelha cheia,
   mas quando sobrava uma celula via-se um quadrado cinzento. Assim
   funciona com qualquer numero de avisos. */
.simulador-wrap #rlpepac-app .rlpepac-grid{
  gap:16px;background:transparent;border:0;border-radius:0;overflow:visible;
  grid-template-columns:repeat(auto-fill,minmax(300px,1fr));
  align-items:stretch;
}
.simulador-wrap #rlpepac-app .rlpepac-card{
  border:1px solid var(--border-firm);border-radius:var(--radius);
  background:var(--bg-raised);box-shadow:none;
  padding:1.5rem 1.5rem 1.3rem;transition:background .15s,border-color .15s;
  display:flex;flex-direction:column;
}
.simulador-wrap #rlpepac-app .rlpepac-card:hover{transform:none;box-shadow:none;background:#fff;border-color:var(--brand)}
.simulador-wrap #rlpepac-app .rlpepac-card .rl-cta{margin-top:auto;padding-top:1.1rem}

/* O aviso encerrado ocupa a linha toda, no fim, como um rodape da lista.
   Fica claro que e outra coisa e nao deixa buracos na grelha. Arranjo
   horizontal proprio: identificacao a esquerda, estado e accao a direita. */
.simulador-wrap #rlpepac-app .rlpepac-card.rl-esta-fechado,
.simulador-wrap #rlpepac-app .rlpepac-card:has(.rl-fechado){
  grid-column:1/-1;
  display:grid;grid-template-columns:1fr auto;gap:8px 28px;align-items:center;
}
.simulador-wrap #rlpepac-app .rl-esta-fechado .rl-tipo{grid-column:1;grid-row:1;justify-self:start;margin-bottom:0}
.simulador-wrap #rlpepac-app .rl-esta-fechado h3{grid-column:1;grid-row:2;margin:0}
.simulador-wrap #rlpepac-app .rl-esta-fechado .rl-fechado{grid-column:2;grid-row:1;justify-self:end;margin:0}
.simulador-wrap #rlpepac-app .rl-esta-fechado .rl-cta{grid-column:2;grid-row:2;justify-self:end;margin-top:0;padding-top:0}
@media (max-width:640px){
  .simulador-wrap #rlpepac-app .rlpepac-card.rl-esta-fechado,
  .simulador-wrap #rlpepac-app .rlpepac-card:has(.rl-fechado){grid-template-columns:1fr}
  .simulador-wrap #rlpepac-app .rl-esta-fechado .rl-tipo,
  .simulador-wrap #rlpepac-app .rl-esta-fechado h3,
  .simulador-wrap #rlpepac-app .rl-esta-fechado .rl-fechado,
  .simulador-wrap #rlpepac-app .rl-esta-fechado .rl-cta{grid-column:1;grid-row:auto;justify-self:start}
}
/* Etiqueta de familia: pastilha legivel em vez de mono minusculo, com cor
   propria por familia. A familia e marcada pelo main.js em data-fam. */
.simulador-wrap #rlpepac-app .rl-tipo{
  display:inline-block;border-radius:var(--radius);padding:5px 10px;margin-bottom:.9rem;
  font-family:var(--font-body);font-size:12px;font-weight:600;letter-spacing:.01em;
  text-transform:none;background:#EAEBE3;color:var(--text-soft);
}
.simulador-wrap #rlpepac-app .rl-tipo[data-fam="floresta"]{background:#E1EFE4;color:#1E5C39}
.simulador-wrap #rlpepac-app .rl-tipo[data-fam="agricola"]{background:#EDF0DC;color:#5B6A16}
.simulador-wrap #rlpepac-app .rl-tipo[data-fam="produtores"]{background:#DFEBF6;color:#1B4FA0}
.simulador-wrap #rlpepac-app .rl-tipo[data-fam="entidades"]{background:#E6E7EE;color:#3B3F70}
.simulador-wrap #rlpepac-app .rl-tipo[data-fam="jovem"],
.simulador-wrap #rlpepac-app .rl-tipo.rl-jovem{background:#F7EBD5;color:#8A5D12}

/* Aviso encerrado: cinzento, sem alarme, e no fim da lista.
   O vermelho fica reservado para prazos a acabar. */
.simulador-wrap #rlpepac-app .rl-fechado{
  display:inline-block;background:#6E7C78;color:#fff;border:0;border-radius:var(--radius);
  font-family:var(--font-mono);font-size:12px;font-weight:600;letter-spacing:.13em;
  text-transform:uppercase;padding:7px 11px;margin:0 0 .2rem;
}
.simulador-wrap #rlpepac-app .rlpepac-card.rl-esta-fechado,
.simulador-wrap #rlpepac-app .rlpepac-card:has(.rl-fechado){background:#EFEFE9}
.simulador-wrap #rlpepac-app .rlpepac-card.rl-esta-fechado h3,
.simulador-wrap #rlpepac-app .rlpepac-card:has(.rl-fechado) h3{color:var(--text-soft)}
.simulador-wrap #rlpepac-app .rlpepac-card.rl-esta-fechado .rl-cta button,
.simulador-wrap #rlpepac-app .rlpepac-card:has(.rl-fechado) .rl-cta button{
  background:transparent;color:var(--text);border:1px solid var(--border-firm);
}
.simulador-wrap #rlpepac-app .rlpepac-card.rl-esta-fechado .rl-cta button:hover,
.simulador-wrap #rlpepac-app .rlpepac-card:has(.rl-fechado) .rl-cta button:hover{background:rgba(16,30,28,.06)}
.simulador-wrap #rlpepac-app .rlpepac-card h3{font-family:var(--font-display);font-size:1.06rem;letter-spacing:-.01em;color:var(--text)}
.simulador-wrap #rlpepac-app .rl-prazo{font-family:var(--font-mono);font-size:.76rem;color:var(--text-soft);letter-spacing:.02em}
.simulador-wrap #rlpepac-app .rl-prazo b{color:var(--warn)}
.simulador-wrap #rlpepac-app .rl-cta button{
  border-radius:2px;padding:.85em 1.2em;font-family:var(--font-body);font-weight:600;
  background:var(--brand);color:var(--on-brand);
}
.simulador-wrap #rlpepac-app .rl-cta button:hover{background:var(--brand-strong)}
.simulador-wrap #rlpepac-app .rl-cta button.rl-secondary{background:transparent;color:var(--brand);border:1.5px solid var(--border-firm)}
.simulador-wrap #rlpepac-app .rlpepac-empty{border-radius:var(--radius);border-color:var(--border);color:var(--text-soft)}

.simulador-wrap #rlpepac-wizard{
  border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-raised);
  box-shadow:none;padding:1.8rem;margin-top:1.8rem;
}
.simulador-wrap #rlpepac-wizard .rl-wz-title{font-family:var(--font-display);color:var(--text)}
.simulador-wrap #rlpepac-wizard .rl-wz-progress{background:var(--stone);border-radius:0}
.simulador-wrap #rlpepac-wizard .rl-wz-bar{background:var(--brand)}
.simulador-wrap #rlpepac-wizard .rl-q{color:var(--text)}
.simulador-wrap #rlpepac-wizard .rl-hint{color:var(--text-soft)}
.simulador-wrap #rlpepac-wizard .rl-opt{border-color:var(--border-firm);border-radius:2px;background:var(--bg)}
.simulador-wrap #rlpepac-wizard .rl-opt:hover{border-color:var(--brand);background:var(--bg-raised)}
.simulador-wrap #rlpepac-wizard input[type=number]{border-color:var(--border-firm);border-radius:2px;background:var(--bg)}
.simulador-wrap #rlpepac-wizard .rl-nav button{border-radius:2px}
.simulador-wrap #rlpepac-wizard .rl-back{background:transparent;color:var(--text-soft);border:1.5px solid var(--border-firm)}
.simulador-wrap #rlpepac-wizard .rl-next{background:var(--brand);color:var(--on-brand)}
.simulador-wrap #rlpepac-wizard .rl-badge{border-radius:2px;font-family:var(--font-mono);letter-spacing:.02em}

/* SureForms: alinhar com o tema (homepage, Simulador e Contactos) */
.simulador-wrap .srfm-form-container,
.contact-form .srfm-form-container,
.contacto__form .srfm-form-container{
  --srfm-color-scheme-primary:var(--brand);
  --srfm-color-scheme-text-on-primary:var(--on-brand);
  --srfm-color-input-label:var(--text);
  --srfm-color-input-text:var(--text);
  --srfm-color-input-background:#fff;
  --srfm-color-input-border:var(--border-firm);
  --srfm-btn-border-radius:2px;
}
.srfm-form-container,.sureforms-form{max-width:none}
.srfm-form-container input[type=text],
.srfm-form-container input[type=email],
.srfm-form-container input[type=tel],
.srfm-form-container input[type=number],
.srfm-form-container select,
.srfm-form-container textarea{
  border:1px solid var(--border-firm);border-radius:2px;background:#fff;
  color:var(--text);font-family:var(--font-body);font-size:16px;padding:.8em .9em;min-height:48px;
}
/* Etiquetas curtas: sans, pequenas, legiveis. O mono em maiusculas so
   funciona em duas ou tres palavras, e o texto de consentimento e longo. */
.srfm-form-container label,.srfm-form-container .srfm-block-label{
  font-family:var(--font-body);font-size:13px;font-weight:600;
  letter-spacing:0;text-transform:none;color:var(--text);line-height:1.5;
}
.srfm-form-container .srfm-checkbox-label,
.srfm-form-container .srfm-gdpr-label,
.srfm-form-container input[type=checkbox] + label,
.srfm-form-container label:has(input[type=checkbox]){
  font-weight:400;font-size:13.5px;line-height:1.55;color:var(--text-soft);
}
.srfm-form-container .srfm-description,.srfm-form-container .srfm-helper-txt{
  font-family:var(--font-body);font-size:12.5px;color:var(--text-soft);text-transform:none;letter-spacing:0;
}
.srfm-form-container .srfm-submit-button,
.srfm-form-container button[type=submit]{
  background:var(--brand);color:var(--on-brand);border:0;border-radius:2px;
  font-weight:600;font-family:var(--font-body);font-size:15px;padding:.95em 1.5em;min-height:50px;cursor:pointer;
}
.srfm-form-container .srfm-submit-button:hover,
.srfm-form-container button[type=submit]:hover{background:var(--brand-strong)}
.contact-form .srfm-submit-button,
.simulador-wrap .srfm-submit-button,
.contacto__form .srfm-submit-button{border-radius:2px !important}

/* --------------------------------------------------------- utilitarios --- */

.screen-reader-text{
  border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;width:1px;
  margin:-1px;overflow:hidden;padding:0;position:absolute;word-wrap:normal!important;
}
.text-center{text-align:center}
[hidden]{display:none !important}
