/* =========================================================
   CRESCER — folha de estilo principal
   Paleta e tipografia conforme o Manual de Identidade Visual
   (v1 · agosto de 2026). Mobile-first.
   ========================================================= */

:root{
  /* ---- Paleta institucional (Manual, pág. 05) ---- */
  --teal:     #064B55;  /* azul-petróleo · cor principal */
  --laranja:  #EB5B2A;  /* energia · destaque de CTA */
  --dourado:  #F5A91B;  /* otimismo · acentos */
  --oliva:    #8B9270;  /* crescimento · comunidade */
  --aqua:     #8CBABD;  /* tranquilidade · aprendizagem */
  --lilas:    #8F7DA4;  /* inclusão · diversidade */

  /* ---- Variantes derivadas para superfícies interativas ----
     O laranja institucional não atinge o contraste AA com texto
     branco (3.46:1). Esta variante mais escura mantém o mesmo
     matiz e passa AA (4.56:1). Uso exclusivo em botões e links. */
  --laranja-cta:   #D34414;
  --laranja-cta-h: #B03610;

  /* ---- Neutros ---- */
  --tinta:       #06373F;  /* texto corrente · 12.9:1 sobre branco */
  --tinta-suave: #4A6C71;  /* texto secundário · 5.7:1 */
  --papel:       #FFFFFF;
  --papel-alt:   #F4F8F8;  /* branco com toque de verde-água */
  --linha:       #DCE8E9;
  --teal-fundo:  #04353D;  /* rodapé */

  /* ---- Tipografia (Manual, pág. 06) ---- */
  --f-display: "Fraunces", Georgia, "Times New Roman", serif;
  --f-texto:   "Nunito Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;

  --fs-display: clamp(2.5rem, 1.15rem + 5.6vw, 4.25rem);   /* 40 → 68 */
  --fs-h2:      clamp(1.75rem, 1.15rem + 2.5vw, 2.5rem);   /* 28 → 40 */
  --fs-h3:      clamp(1.25rem, 1.12rem + 0.55vw, 1.5rem);  /* 20 → 24 */
  --fs-lead:    clamp(1.125rem, 1.02rem + 0.45vw, 1.375rem); /* 18 → 22 */
  --fs-corpo:   1.0625rem;                                  /* 17 */
  --fs-peq:     0.9375rem;                                  /* 15 */
  --fs-legenda: 0.8125rem;                                  /* 13 */

  /* ---- Espaço e forma ---- */
  --raio:    18px;
  --raio-sm: 12px;
  --seccao:  clamp(3.5rem, 8vw, 7.5rem);
  --sombra:  0 1px 2px rgba(6,55,63,.04), 0 12px 32px -18px rgba(6,55,63,.28);
}

/* ---------- Reposição ---------- */
*,*::before,*::after{ box-sizing:border-box }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; scroll-padding-top:96px }
body{
  margin:0;
  background:var(--papel);
  color:var(--tinta);
  font-family:var(--f-texto);
  font-size:var(--fs-corpo);
  line-height:1.65;
  font-optical-sizing:auto;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img,svg{ max-width:100%; height:auto; display:block }
ul{ margin:0; padding:0; list-style:none }
p{ margin:0 0 1em }
p:last-child{ margin-bottom:0 }
a{ color:var(--teal); text-underline-offset:3px }
h1,h2,h3{ margin:0; font-family:var(--f-display); font-weight:600; line-height:1.12;
          font-variation-settings:"SOFT" 0,"WONK" 1; letter-spacing:-.015em; color:var(--teal) }

:where(a,button,input,select,textarea,[tabindex]):focus-visible{
  outline:3px solid var(--teal); outline-offset:3px; border-radius:4px;
}
.section--escura :where(a,button):focus-visible,
.rodape :where(a,button):focus-visible{ outline-color:var(--dourado) }

.skip{
  position:absolute; left:16px; top:-64px; z-index:200;
  background:var(--teal); color:#fff; padding:12px 20px; border-radius:0 0 var(--raio-sm) var(--raio-sm);
  font-weight:700; text-decoration:none; transition:top .2s ease;
}
.skip:focus{ top:0 }

.container{ width:min(1180px,100%); margin-inline:auto; padding-inline:clamp(20px,5vw,56px) }

/* ---------- Componentes de texto ---------- */
.eyebrow{
  display:flex; align-items:center; gap:12px;
  margin:0 0 18px;
  font-size:var(--fs-legenda); font-weight:800; letter-spacing:.16em; text-transform:uppercase;
  color:var(--tinta-suave);
}
.eyebrow::before{ content:""; width:28px; height:2px; background:var(--laranja); flex:none }

.sub-titulo{ font-size:var(--fs-h3); margin:0 0 20px }

.nota-fonte{ margin-top:28px; font-size:var(--fs-peq); color:var(--tinta-suave) }

.por-confirmar{ color:var(--tinta-suave); font-style:italic; font-weight:400 }
.pessoa__nome.por-confirmar,
.post__title.por-confirmar{ color:var(--tinta-suave); opacity:.75 }

.link-seta{
  display:inline-flex; align-items:center; gap:8px; padding-block:7px;
  font-weight:700; color:var(--teal); text-decoration:none;
  border-bottom:2px solid var(--laranja); padding-bottom:2px;
}
.link-seta::after{ content:"→"; transition:transform .2s ease }
.link-seta:hover::after{ transform:translateX(4px) }

/* ---------- Botões ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:15px 28px; border:2px solid transparent; border-radius:999px;
  font-family:var(--f-texto); font-size:var(--fs-corpo); font-weight:700; line-height:1.2;
  text-decoration:none; cursor:pointer;
  transition:background-color .2s ease, color .2s ease, border-color .2s ease, transform .2s ease;
}
.btn:hover{ transform:translateY(-2px) }
.btn--sm{ padding:11px 20px; font-size:var(--fs-peq) }
.btn--primary{ background:var(--laranja-cta); color:#fff }
.btn--primary:hover{ background:var(--laranja-cta-h) }
.btn--ghost{ border-color:var(--teal); color:var(--teal); background:transparent }
.btn--ghost:hover{ background:var(--teal); color:#fff }
.btn--claro{ border-color:rgba(255,255,255,.55); color:#fff; background:transparent }
.btn--claro:hover{ background:#fff; color:var(--teal); border-color:#fff }

/* =========================================================
   Cabeçalho
   ========================================================= */
.site-header{
  position:sticky; top:0; z-index:100;
  background:rgba(255,255,255,.92);
  backdrop-filter:saturate(180%) blur(12px);
  border-bottom:1px solid transparent;
  transition:border-color .2s ease, box-shadow .2s ease;
}
.site-header.is-scrolled{ border-bottom-color:var(--linha); box-shadow:0 8px 24px -20px rgba(6,55,63,.5) }
.site-header__inner{
  width:min(1180px,100%); margin-inline:auto; padding:12px clamp(20px,5vw,56px);
  display:flex; align-items:center; justify-content:space-between; gap:24px;
}
.site-header__logo{ display:block; position:relative; z-index:101; line-height:0; flex:none }
.site-header__logo img{ width:152px; height:auto }
.logo-branco{ display:none }
.nav-aberta .logo-cor{ display:none }
.nav-aberta .logo-branco{ display:block }

.nav-toggle{
  display:inline-flex; align-items:center; gap:10px; position:relative; z-index:101;
  background:none; border:0; padding:8px 4px; cursor:pointer;
  font-family:var(--f-texto); font-size:var(--fs-peq); font-weight:800;
  letter-spacing:.1em; text-transform:uppercase; color:var(--teal);
}
.nav-toggle__bars{ display:block; width:24px }
.nav-toggle__bars span{
  display:block; height:2px; background:var(--teal); border-radius:2px;
  transition:transform .25s ease, opacity .25s ease;
}
.nav-toggle__bars span + span{ margin-top:6px }
.nav-toggle[aria-expanded="true"]{ color:#fff }
.nav-toggle[aria-expanded="true"] .nav-toggle__bars span{ background:#fff }
.nav-toggle[aria-expanded="true"] .nav-toggle__bars span:first-child{ transform:translateY(4px) rotate(45deg) }
.nav-toggle[aria-expanded="true"] .nav-toggle__bars span:last-child{ transform:translateY(-4px) rotate(-45deg) }

/* O cabeçalho usa backdrop-filter, o que o torna bloco de contenção dos
   descendentes com position:fixed. Daí as medidas explícitas em vez de inset:0. */
.nav{
  position:fixed; top:0; left:0; width:100%; height:100vh; height:100dvh; z-index:99;
  background:var(--teal); color:#fff;
  display:flex; flex-direction:column; justify-content:center; gap:40px;
  padding:96px clamp(24px,7vw,56px) 56px; overflow-y:auto; overscroll-behavior:contain;
  transform:translateY(-100%); visibility:hidden;
  transition:transform .35s cubic-bezier(.32,.72,0,1), visibility .35s;
}
.nav.is-open{ transform:translateY(0); visibility:visible }
.nav__list{ display:flex; flex-direction:column; gap:4px }
.nav__list a{
  display:block; padding:10px 0;
  font-family:var(--f-display); font-size:clamp(1.75rem,7vw,2.25rem); font-weight:600;
  font-variation-settings:"SOFT" 0,"WONK" 1;
  color:#fff; text-decoration:none;
}
.nav__list a:hover{ color:var(--dourado) }
.nav__cta{ align-self:flex-start }

@media (min-width:900px){
  .site-header__inner{ padding-block:14px }
  .site-header__logo img{ width:180px }
  .nav-toggle{ display:none }
  .nav{
    position:static; width:auto; height:auto; transform:none; visibility:visible;
    flex-direction:row; align-items:center; gap:clamp(20px,2.4vw,36px);
    background:none; padding:0; color:inherit;
  }
  .nav__list{ flex-direction:row; gap:clamp(18px,2.2vw,32px) }
  .nav__list a{
    font-family:var(--f-texto); font-size:var(--fs-peq); font-weight:700;
    font-variation-settings:normal; color:var(--tinta); padding:6px 0;
    border-bottom:2px solid transparent;
  }
  .nav__list a:hover,
  .nav__list a.is-active{ color:var(--teal); border-bottom-color:var(--laranja) }
}

/* =========================================================
   Hero
   ========================================================= */
.hero{ position:relative; overflow:hidden; padding-block:clamp(3.5rem,9vw,7rem) clamp(4rem,9vw,7.5rem);
       background:radial-gradient(120% 90% at 85% 0%, #EEF6F6 0%, #FFFFFF 62%) }
.hero__mark{
  position:absolute; z-index:0; pointer-events:none;
  width:min(620px,92vw); top:-8%; right:-26%; opacity:.075;
}
.hero__inner{ position:relative; z-index:1 }
.hero__eyebrow{ color:var(--teal) }
.hero__title{
  font-size:var(--fs-display); line-height:.98; letter-spacing:-.03em;
  font-weight:600; max-width:14ch; margin-bottom:28px;
}
.hero__lead{
  max-width:56ch; font-size:var(--fs-lead); line-height:1.5; color:var(--tinta);
  border-left:3px solid var(--laranja); padding-left:20px; margin-bottom:36px;
}
.hero__actions{ display:flex; flex-wrap:wrap; gap:14px; margin-bottom:28px }
.hero__meta{ font-size:var(--fs-peq); color:var(--tinta-suave); margin:0 }

@media (min-width:900px){
  .hero__mark{ width:min(760px,54vw); top:-14%; right:-14%; opacity:.09 }
}

/* =========================================================
   Estrutura de secções
   ========================================================= */
.section{ padding-block:var(--seccao) }
.section--alt{ background:var(--papel-alt) }
.section--escura{ background:var(--teal); color:#fff }
.section--escura .section__title,
.section--escura .caminho__title{ color:#fff }
.section--escura .eyebrow{ color:rgba(255,255,255,.78) }
.section--escura .eyebrow::before{ background:var(--dourado) }

.section__head{ max-width:44rem; margin-bottom:clamp(2rem,5vw,3.5rem) }
.section__title{ font-size:var(--fs-h2) }
.section__intro{ margin-top:20px; font-size:var(--fs-lead); line-height:1.55; color:var(--tinta-suave) }
.section--escura .section__intro{ color:rgba(255,255,255,.82) }

.prose-cols{ max-width:70ch; font-size:var(--fs-lead); line-height:1.6 }
@media (min-width:900px){
  .prose-cols{ columns:2; column-gap:56px; max-width:none; font-size:var(--fs-corpo) }
  .prose-cols p{ break-inside:avoid }
}

/* ---------- Princípios ---------- */
.principios{ display:grid; gap:2px; margin-top:clamp(2.5rem,5vw,3.5rem); background:var(--linha);
             border:1px solid var(--linha); border-radius:var(--raio); overflow:hidden }
.principio{ background:var(--papel-alt); padding:20px }
@media (min-width:760px){ .principio{ padding:28px clamp(20px,3vw,32px) } }
.principio__title{ font-size:var(--fs-h3); margin-bottom:10px }
.principio p{ color:var(--tinta-suave); font-size:var(--fs-peq) }
@media (min-width:760px){ .principios{ grid-template-columns:repeat(2,1fr) } }
@media (min-width:1080px){ .principios{ grid-template-columns:repeat(4,1fr) } }

/* ---------- Áreas de intervenção (elemento assinatura) ---------- */
.areas{ display:grid; gap:14px }
@media (min-width:700px){ .areas{ gap:20px } }
@media (min-width:700px){ .areas{ grid-template-columns:repeat(2,1fr) } }
@media (min-width:1040px){ .areas{ grid-template-columns:repeat(3,1fr) } }

@media (max-width:699px){
  .area{ display:grid; grid-template-columns:auto 1fr; gap:0 16px; padding:22px 20px 24px }
  .area__letra{ width:46px; height:46px; margin-bottom:0; border-radius:13px; font-size:1.5rem }
  .area__title{ grid-column:2; align-self:center }
  .area p{ grid-column:1/-1; margin-top:14px }
}
.area{
  position:relative; background:var(--papel);
  border:1px solid var(--linha); border-radius:var(--raio);
  padding:28px clamp(20px,2.5vw,30px) 30px;
  transition:border-color .25s ease, transform .25s ease, box-shadow .25s ease;
}
.area:hover{ transform:translateY(-4px); border-color:var(--cor,var(--teal)); box-shadow:var(--sombra) }
.area__letra{
  display:flex; align-items:center; justify-content:center;
  width:58px; height:58px; margin-bottom:22px;
  background:var(--cor); color:var(--cor-texto);
  border-radius:16px;
  font-family:var(--f-display); font-size:2rem; font-weight:600; line-height:1;
  font-variation-settings:"SOFT" 0,"WONK" 1;
}
.area__title{ font-size:var(--fs-h3); margin-bottom:12px }
.area p{ color:var(--tinta-suave); font-size:var(--fs-peq) }

.area--convite{ background:var(--teal); border-color:var(--teal); color:#fff }
@media (min-width:700px){
  .area--convite{ grid-column:1/-1; display:grid; grid-template-columns:auto 1fr auto;
                  align-items:center; gap:0 32px; padding:32px clamp(24px,3vw,40px) }
  .area--convite .area__letra{ margin-bottom:0; grid-row:1/3 }
  .area--convite .area__title{ align-self:end; margin-bottom:4px }
  .area--convite p{ align-self:start; margin-bottom:0; grid-column:2 }
  .area--convite .link-seta{ grid-column:3; grid-row:1/3 }
}
.area--convite .area__letra{ background:#fff; color:var(--teal) }
.area--convite .area__title{ color:#fff }
.area--convite p{ color:rgba(255,255,255,.82); margin-bottom:20px }
.area--convite .link-seta{ color:#fff; border-bottom-color:var(--dourado) }

/* ---------- Onde atuamos ---------- */
.split{ display:grid; gap:clamp(2rem,4vw,3.5rem) }
@media (min-width:960px){
  .split{ grid-template-columns:1.35fr .9fr; align-items:start }
  .cartao-nota{ position:sticky; top:118px }
}
.split__main .section__title{ font-size:var(--fs-h2) }

.dados{ margin:32px 0; display:grid; gap:2px; background:var(--linha);
        border:1px solid var(--linha); border-radius:var(--raio-sm); overflow:hidden }
.dados__item{ background:var(--papel-alt); padding:18px 22px }
.dados dt{ font-size:var(--fs-legenda); font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:var(--tinta-suave) }
.dados dd{ margin:6px 0 0; font-size:var(--fs-peq) }
.contacto__aside .dados__item{ background:var(--papel) }

.cartao-nota{
  background:var(--papel); border:1px solid var(--linha); border-top:4px solid var(--dourado);
  border-radius:var(--raio); padding:clamp(24px,3vw,32px);
}
.cartao-nota__title{ font-size:var(--fs-h3); margin-bottom:12px }
.cartao-nota p{ color:var(--tinta-suave); font-size:var(--fs-peq); margin-bottom:22px }

/* ---------- Impacto ---------- */
.aviso-conteudo{
  display:block; max-width:70ch; margin:0 0 36px;
  background:#FEF7EA; border-left:4px solid var(--dourado); border-radius:0 var(--raio-sm) var(--raio-sm) 0;
  padding:18px 22px; font-size:var(--fs-peq); color:var(--tinta);
}
.numeros{ display:grid; gap:2px; background:var(--linha); border:1px solid var(--linha);
          border-radius:var(--raio); overflow:hidden }
@media (min-width:640px){ .numeros{ grid-template-columns:repeat(2,1fr) } }
@media (min-width:1000px){ .numeros{ grid-template-columns:repeat(4,1fr) } }
.numero{ background:var(--papel); padding:32px clamp(20px,2.5vw,28px) }
.numero__valor{
  display:block; font-family:var(--f-display); font-variation-settings:"SOFT" 0,"WONK" 1;
  font-size:clamp(2.75rem,6vw,4rem); font-weight:600; line-height:1; color:var(--teal);
}
.numero__valor[data-valor-pendente]{ color:var(--aqua) }
.numero__label{ display:block; margin-top:12px; font-size:var(--fs-legenda); font-weight:800;
                letter-spacing:.12em; text-transform:uppercase; color:var(--tinta-suave) }

/* ---------- Testemunhos ---------- */
.convite-testemunho{
  max-width:64ch; background:var(--papel); border:1px solid var(--linha);
  border-radius:var(--raio); padding:clamp(28px,4vw,48px); text-align:left;
}
.citacao-vazia{
  font-family:var(--f-display); font-variation-settings:"SOFT" 0,"WONK" 1;
  font-size:4rem; line-height:.75; color:var(--aqua); margin:0 0 8px;
}
.convite-testemunho p:not(.citacao-vazia){ font-size:var(--fs-lead); color:var(--tinta); margin-bottom:28px }

/* ---------- Como pode ajudar ---------- */
.caminhos{ display:grid; gap:14px }
@media (min-width:680px){ .caminhos{ gap:20px } }
@media (min-width:680px){ .caminhos{ grid-template-columns:repeat(2,1fr) } }
@media (min-width:1080px){ .caminhos{ grid-template-columns:repeat(4,1fr) } }
.caminho{
  display:flex; flex-direction:column; align-items:flex-start;
  background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.18);
  border-radius:var(--raio); padding:28px clamp(20px,2.2vw,26px);
}
.caminho__title{ font-size:var(--fs-h3); margin-bottom:12px }
.caminho p{ color:rgba(255,255,255,.82); font-size:var(--fs-peq); margin-bottom:24px; flex:1 }

/* ---------- Equipa e parceiros ---------- */
.equipa{
  display:grid; gap:2px; margin-bottom:clamp(2rem,5vw,4rem);
  background:var(--linha); border:1px solid var(--linha); border-radius:var(--raio); overflow:hidden;
}
@media (min-width:560px){ .equipa{ grid-template-columns:repeat(2,1fr) } }
@media (min-width:1000px){ .equipa{ grid-template-columns:repeat(4,1fr) } }
.pessoa{ background:var(--papel); padding:18px 22px }
.pessoa__nome{ font-size:var(--fs-corpo); margin-bottom:2px }
.pessoa__funcao{ font-size:var(--fs-peq); color:var(--tinta-suave); margin:0 }
/* .pessoa__foto continua definida abaixo: repor a moldura quando houver
   retratos reais com autorização de imagem. */
.pessoa__foto{
  display:block; aspect-ratio:1; border-radius:var(--raio);
  background:repeating-linear-gradient(135deg,var(--papel-alt) 0 12px,#EAF2F2 12px 24px);
  border:1px dashed var(--aqua); margin-bottom:16px;
}

.parceiros{ display:grid; grid-template-columns:repeat(2,1fr); gap:16px }
@media (min-width:700px){ .parceiros{ grid-template-columns:repeat(3,1fr) }
                          .parceiro{ min-height:96px; padding:12px } }
@media (min-width:1000px){ .parceiros{ grid-template-columns:repeat(6,1fr) } }
.parceiro{
  display:flex; align-items:center; justify-content:center; text-align:center;
  min-height:68px; padding:10px;
  border:1px dashed var(--linha); border-radius:var(--raio-sm); background:var(--papel-alt);
  font-size:var(--fs-legenda); color:var(--tinta-suave);
}

/* ---------- Atividade recente ---------- */
.atividade{ display:grid; gap:24px; margin-bottom:36px }
@media (min-width:700px){ .atividade{ grid-template-columns:repeat(3,1fr) } }
.post{ background:var(--papel); border:1px solid var(--linha); border-radius:var(--raio); overflow:hidden }
.post__imagem{
  display:flex; align-items:center; justify-content:center;
  aspect-ratio:16/10; background:repeating-linear-gradient(135deg,#F0F6F6 0 12px,#E7F1F1 12px 24px);
  border-bottom:1px dashed var(--aqua);
  font-size:var(--fs-legenda); color:var(--tinta-suave);
}
.post__data{ margin:20px 22px 6px; font-size:var(--fs-legenda); font-weight:800;
             letter-spacing:.12em; text-transform:uppercase }
.post__title{ margin:0 22px 10px; font-size:var(--fs-h3) }
.post > p:last-child{ margin:0 22px 24px; font-size:var(--fs-peq); color:var(--tinta-suave) }

/* ---------- Atividade: bloco único enquanto não há notícias próprias ---------- */
.bloco-instagram{
  display:flex; flex-direction:column; align-items:flex-start; gap:20px;
  max-width:64ch; background:var(--papel); border:1px solid var(--linha);
  border-left:4px solid var(--aqua); border-radius:0 var(--raio) var(--raio) 0;
  padding:clamp(22px,3vw,30px);
}
.bloco-instagram p{ color:var(--tinta-suave) }
@media (min-width:760px){
  .bloco-instagram{ flex-direction:row; align-items:center; justify-content:space-between; max-width:none }
  .bloco-instagram p{ max-width:52ch }
}

/* ---------- Contactos ---------- */
.contacto{ display:grid; gap:clamp(2rem,4vw,3.5rem) }
@media (min-width:960px){ .contacto{ grid-template-columns:1.3fr .8fr; align-items:start } }

.form{ display:grid; gap:16px; max-width:640px }
@media (min-width:560px){ .form{ gap:20px } }
.campo{ display:grid; gap:8px }
.campo-linha{ display:grid; gap:16px }
@media (min-width:560px){ .campo-linha{ gap:20px } }
@media (min-width:560px){ .campo-linha{ grid-template-columns:1fr 1fr } }
.campo label{ font-size:var(--fs-peq); font-weight:700; color:var(--teal) }
.opcional{ font-weight:400; color:var(--tinta-suave) }
.campo input,
.campo select,
.campo textarea{
  width:100%; padding:14px 16px;
  font-family:var(--f-texto); font-size:var(--fs-corpo); color:var(--tinta);
  background:var(--papel); border:1.5px solid var(--linha); border-radius:var(--raio-sm);
  transition:border-color .2s ease, box-shadow .2s ease;
}
.campo textarea{ resize:vertical; min-height:140px }
.campo input:focus,
.campo select:focus,
.campo textarea:focus{ border-color:var(--teal); box-shadow:0 0 0 3px rgba(6,75,85,.12); outline:none }
.campo input[aria-invalid="true"],
.campo textarea[aria-invalid="true"]{ border-color:var(--laranja-cta) }
.campo--check{ grid-template-columns:auto 1fr; align-items:start; gap:12px }
.campo--check input{ width:22px; height:22px; margin-top:2px; accent-color:var(--teal) }
.campo--check label{ font-weight:400; color:var(--tinta); font-size:var(--fs-peq) }
.campo--check .erro{ grid-column:1/-1 }
.erro{ margin:0; font-size:var(--fs-peq); font-weight:700; color:var(--laranja-cta) }
.form button{ justify-self:start }
.form__estado{ margin:0; font-size:var(--fs-peq); font-weight:700; color:var(--teal) }
.form__nota{ margin:0; font-size:var(--fs-legenda); color:var(--tinta-suave) }

/* =========================================================
   Rodapé — designação completa, morada, contactos e NIPC
   (Manual, pág. 07)
   ========================================================= */
.rodape{ background:var(--teal-fundo); color:rgba(255,255,255,.86); padding-top:clamp(3.5rem,7vw,5.5rem) }
.rodape__inner{ display:grid; grid-template-columns:repeat(2,1fr); gap:1.75rem 1.5rem;
                padding-bottom:clamp(2rem,5vw,4rem) }
.rodape__marca,
.rodape__col--largo{ grid-column:1/-1 }
@media (min-width:760px){ .rodape__inner{ gap:clamp(2rem,4vw,3rem) }
                          .rodape__marca,
                          .rodape__col--largo{ grid-column:auto } }
@media (min-width:1060px){ .rodape__inner{ grid-template-columns:1.1fr 1.2fr .7fr .8fr } }
.rodape__marca .marca-h{ width:200px }
.rodape__marca .marca-v{ display:none; width:250px }
@media (min-width:760px){
  .rodape__marca .marca-h{ display:none }
  .rodape__marca .marca-v{ display:block }
}
.rodape__titulo{ font-size:var(--fs-legenda); font-weight:800; letter-spacing:.16em; text-transform:uppercase;
                 font-family:var(--f-texto); color:var(--dourado); margin-bottom:16px }
.rodape__designacao{ font-size:var(--fs-peq); color:#fff; max-width:34ch }
.rodape p{ font-size:var(--fs-peq) }
.rodape__links{ display:grid; gap:4px; font-size:var(--fs-peq) }
.rodape__links a{ display:inline-block; padding-block:7px }
.rodape a{ color:rgba(255,255,255,.86); text-decoration:underline; text-decoration-thickness:1px;
           text-decoration-color:rgba(255,255,255,.3); text-underline-offset:4px }
.rodape a:hover{ color:#fff; text-decoration-color:var(--dourado) }
.rodape .por-confirmar{ color:var(--aqua) }
.rodape__base{
  display:flex; flex-wrap:wrap; gap:12px 24px; justify-content:space-between;
  padding-block:24px; border-top:1px solid rgba(255,255,255,.16);
  font-size:var(--fs-legenda);
}
.rodape__base p{ margin:0; font-size:var(--fs-legenda) }

/* =========================================================
   Movimento
   ========================================================= */
[data-reveal]{ opacity:0; transform:translateY(18px); transition:opacity .7s ease, transform .7s cubic-bezier(.22,.61,.36,1) }
[data-reveal].is-visible{ opacity:1; transform:none }

.hero__eyebrow,.hero__title,.hero__lead,.hero__actions,.hero__meta{ animation:sobe .8s cubic-bezier(.22,.61,.36,1) backwards }
.hero__eyebrow{ animation-delay:.05s }
.hero__title{ animation-delay:.14s }
.hero__lead{ animation-delay:.24s }
.hero__actions{ animation-delay:.34s }
.hero__meta{ animation-delay:.44s }
.hero__mark{ animation:respira 1.6s cubic-bezier(.22,.61,.36,1) backwards }

@keyframes sobe{ from{ opacity:0; transform:translateY(22px) } to{ opacity:1; transform:none } }
@keyframes respira{ from{ opacity:0; transform:scale(1.12) rotate(-6deg) } to{ opacity:.075; transform:none } }
@media (min-width:900px){ @keyframes respira{ from{ opacity:0; transform:scale(1.12) rotate(-6deg) } to{ opacity:.09; transform:none } } }

.nav-aberta{ overflow:hidden }

@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto }
  *,*::before,*::after{ animation-duration:.001ms !important; animation-iteration-count:1 !important;
                        transition-duration:.001ms !important }
  [data-reveal]{ opacity:1; transform:none }
  .btn:hover{ transform:none }
  .area:hover{ transform:none }
}
