/* WIB Portugal — static styles */
:root{
  --bg:#fbfcfe; --fg:#0f1a3a; --muted:#5b6b8c; --border:#dce3f2;
  --card:#ffffff; --primary:#143d8f; --primary-deep:#0c265c; --primary-glow:#4a7de0;
  --soft:#f1f5fd; --accent:#e2ecff;
  --grad-hero:linear-gradient(135deg,#0c265c 0%,#143d8f 50%,#4a7de0 100%);
  --grad-soft:linear-gradient(180deg,#f1f5fd 0%,#fbfcfe 100%);
  --grad-card:linear-gradient(145deg,#ffffff 0%,#f1f5fd 100%);
  --shadow-soft:0 4px 20px -8px rgba(12,38,92,.18);
  --shadow-glow:0 20px 60px -15px rgba(20,61,143,.45);
}
*{box-sizing:border-box;border-color:var(--border)}
html{scroll-behavior:smooth}
body{margin:0;font-family:'Noto Sans',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--fg);line-height:1.55;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
h1,h2,h3{margin:0;letter-spacing:-.02em;line-height:1.1}
p{margin:0}
.container{max-width:1200px;margin:0 auto;padding:0 24px}
.text-gradient{background:var(--grad-hero);-webkit-background-clip:text;background-clip:text;color:transparent}
.eyebrow{font-size:13px;font-weight:600;color:var(--primary);text-transform:uppercase;letter-spacing:.12em}
.muted{color:var(--muted)}

/* nav */
.nav{position:fixed;top:0;left:0;right:0;z-index:50;background:rgba(251,252,254,.78);backdrop-filter:blur(12px);border-bottom:1px solid rgba(220,227,242,.7)}
.nav-inner{max-width:1200px;margin:0 auto;padding:0 24px;height:64px;display:flex;align-items:center;justify-content:space-between;gap:16px}
.brand{font-weight:800;font-size:18px;color:var(--primary);letter-spacing:-.01em}
.brand img{height:40px;width:auto}
.nav-links{display:none;gap:22px;font-size:14px;font-weight:500;color:var(--muted)}
.nav-links a:hover{color:var(--primary)}
.cta-phone{display:none;align-items:center;gap:8px;background:var(--primary);color:#fff;padding:9px 16px;border-radius:999px;font-weight:600;font-size:14px;box-shadow:var(--shadow-soft);transition:transform .2s,box-shadow .2s}
.cta-phone:hover{transform:translateY(-2px);box-shadow:var(--shadow-glow)}
.menu-btn{background:transparent;border:1px solid var(--border);width:40px;height:40px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;color:var(--fg)}
.mobile-menu{display:none;border-top:1px solid var(--border);background:rgba(255,255,255,.96);backdrop-filter:blur(8px)}
.mobile-menu.open{display:block}
.mobile-menu .container{padding:16px 24px;display:flex;flex-direction:column;gap:4px}
.mobile-menu a{padding:10px 12px;border-radius:8px;font-size:14px;font-weight:500;color:var(--muted)}
.mobile-menu a:hover{color:var(--primary);background:var(--soft)}
@media(min-width:1024px){.nav-links{display:flex}.menu-btn{display:none}}
@media(min-width:640px){.cta-phone{display:inline-flex}}

/* hero */
.hero{position:relative;min-height:100vh;padding-top:64px;overflow:hidden;text-align:left;display:flex;align-items:center}
.hero-bar{display:none!important;position:absolute;visibility:hidden;pointer-events:none}
.hero-inspector{display:none!important;position:absolute;visibility:hidden;pointer-events:none}
.hero-bg{position:absolute;left:0;right:0;top:64px;bottom:0;z-index:0;pointer-events:none}
.hero-fade{display:none!important}
.hero-content{position:relative;width:100%;padding:80px 0;z-index:4}

.hero .container{max-width:1200px}
.hero h1{margin-top:24px;font-size:clamp(38px,5.5vw,64px);font-weight:800;max-width:820px;line-height:1.15}
.hero p.lead{margin:24px 0 0;max-width:760px;font-size:20px;line-height:1.6;color:var(--muted)}
.hero-ctas{margin-top:32px;display:flex;flex-wrap:wrap;justify-content:flex-start;gap:16px}
.btn{display:inline-flex;align-items:center;gap:8px;padding:13px 24px;border-radius:999px;font-weight:600;font-size:15px;transition:transform .2s,box-shadow .2s,background .2s}
.btn-primary{background:var(--grad-hero);color:#fff;box-shadow:var(--shadow-glow)}
.btn-primary:hover{transform:translateY(-3px)}
.btn-ghost{background:var(--card);border:1px solid var(--border);color:var(--fg)}
.btn-ghost:hover{background:var(--soft)}
.stats{margin:40px 0 0;max-width:440px;display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.stat{background:var(--grad-card);border:1px solid var(--border);border-radius:14px;padding:16px;box-shadow:var(--shadow-soft)}
.stat .k{font-size:20px;font-weight:800;background:var(--grad-hero);-webkit-background-clip:text;background-clip:text;color:transparent}
.stat .v{font-size:12px;color:var(--muted);margin-top:4px}

/* sections */
section.block{padding:96px 0}
section.soft{background:var(--grad-soft)}
.section-head{max-width:720px;margin:0 auto;text-align:center}
.section-head h2{margin-top:12px;font-size:clamp(30px,4vw,48px);font-weight:800}
.section-head p{margin-top:20px;font-size:18px;color:var(--muted)}

.grid{display:grid;gap:24px}
.grid.cols-3{grid-template-columns:1fr;margin-top:64px}
.grid.cols-2{grid-template-columns:1fr;margin-top:48px;align-items:center}
.grid.cards-2{grid-template-columns:1fr;gap:20px}
@media(min-width:768px){.grid.cols-3{grid-template-columns:repeat(3,1fr)}.grid.cards-2{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1024px){.grid.cols-2{grid-template-columns:1fr 1fr;gap:48px}}

.card{background:var(--grad-card);border:1px solid var(--border);border-radius:18px;padding:28px;box-shadow:var(--shadow-soft);transition:transform .3s,box-shadow .3s}
.card:hover{transform:translateY(-6px);box-shadow:var(--shadow-glow)}
.card .ic{display:inline-flex;width:48px;height:48px;align-items:center;justify-content:center;border-radius:12px;background:var(--grad-hero);color:#fff;box-shadow:var(--shadow-soft)}
.card .ic-flat{color:var(--primary)}
.card h3{margin-top:18px;font-size:19px;font-weight:700}
.card p{margin-top:8px;font-size:14px;color:var(--muted);line-height:1.6}

ul.checks{margin:32px 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:14px}
ul.checks li{display:flex;gap:12px;align-items:flex-start;font-size:15px}
ul.checks svg{flex-shrink:0;color:var(--primary);margin-top:2px}

/* periodicidade */
.period-grid{margin-top:56px;display:grid;gap:24px;grid-template-columns:1fr}
@media(min-width:768px){.period-grid{grid-template-columns:1fr 1fr}}
.period-card{border-radius:24px;padding:32px;box-shadow:var(--shadow-soft)}
.period-card.dark{background:var(--grad-hero);color:#fff;box-shadow:var(--shadow-glow)}
.period-card.light{background:var(--card);border:1px solid var(--border)}
.period-card .head{display:flex;align-items:center;gap:12px;font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.1em;opacity:.85}
.period-card .big{margin-top:12px;font-size:64px;font-weight:800;line-height:1}
.period-card.light .big{background:var(--grad-hero);-webkit-background-clip:text;background-clip:text;color:transparent}
.period-card p{margin-top:16px;font-size:15px;line-height:1.6}
.period-card.dark p{opacity:.92}
.period-card.light p{color:var(--muted)}
.icon-row{margin-top:24px;display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.icon-row div{background:rgba(255,255,255,.18);backdrop-filter:blur(4px);border-radius:12px;padding:12px;display:flex;justify-content:center}
.note{margin-top:24px;border-radius:12px;background:rgba(20,61,143,.08);padding:16px;font-size:14px;color:var(--fg)}

/* contact */
.contact-card{position:relative;overflow:hidden;border-radius:24px;background:var(--grad-hero);color:#fff;padding:48px 32px;box-shadow:var(--shadow-glow)}
@media(min-width:768px){.contact-card{padding:64px}}
.contact-card h2{font-size:clamp(30px,4vw,48px);font-weight:800}
.contact-card .lead{margin-top:16px;font-size:18px;opacity:.92;max-width:560px}
.contact-grid{margin-top:40px;display:grid;gap:16px;grid-template-columns:1fr}
@media(min-width:640px){.contact-grid{grid-template-columns:1fr 1fr}}
.contact-item{display:flex;align-items:center;gap:16px;background:rgba(255,255,255,.12);backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.22);border-radius:16px;padding:18px;transition:background .2s}
.contact-item:hover{background:rgba(255,255,255,.22)}
.contact-item .ic{width:48px;height:48px;border-radius:12px;background:#fff;color:var(--primary);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}
.contact-item .lbl{font-size:11px;text-transform:uppercase;letter-spacing:.1em;opacity:.85}
.contact-item .val{font-size:18px;font-weight:700;margin-top:2px}
.contact-card .extra{margin-top:32px;font-size:14px;opacity:.85}
.contact-card .extra a{text-decoration:underline;font-weight:600}

/* footer */
footer{border-top:1px solid var(--border);padding:40px 0;font-size:14px;color:var(--muted)}
footer .container{display:flex;flex-direction:column;gap:20px;text-align:center}
footer .footer-row{display:flex;flex-direction:column;gap:8px;align-items:center;justify-content:space-between}
footer .footer-links{display:flex;flex-wrap:wrap;gap:8px 24px;justify-content:center}
footer .footer-links a{color:var(--muted);text-decoration:none}
footer .footer-links a:hover{color:var(--accent)}
@media(min-width:768px){
  footer .container{text-align:left}
  footer .footer-row{flex-direction:row}
  footer .footer-links{justify-content:center}
}

/* reveal */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .9s cubic-bezier(.22,1,.36,1),transform .9s cubic-bezier(.22,1,.36,1)}
.reveal.in-view{opacity:1;transform:translateY(0)}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
.float{animation:float 6s ease-in-out infinite}
.float.delay{animation-delay:2s}

/* ==========================================================================
   FOOTER 
   ========================================================================== */
   .site-footer {
    background-color: #ffffff;
    color: #1e293b;
    font-family: 'Noto Sans', sans-serif;
    padding: 40px 0 30px 0;
    border-top: 1px solid #e2e8f0;
  }
  
  .footer-container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 24px;
  }
  
  .footer-divider {
    border: 0;
    border-top: 1px solid #e2e8f0;
    margin: 25px 0;
  }
  
  /* Linha de topo (Logo e Tagline) */
  .footer-header {
    display: table;
    width: 100%;
  }
  
  .footer-logo-text {
    display: table-cell;
    font-size: 28px;
    font-weight: 800;
    color: #1d4ed8; /* Azul escuro corporativo */
    letter-spacing: -0.5px;
    vertical-align: middle;
  }
  
  .footer-tagline {
    display: table-cell;
    text-align: right;
    font-size: 14px;
    color: #334155;
    font-weight: 500;
    vertical-align: middle;
    max-width: 400px;
  }
  
  /* Grelha principal das 3 colunas */
  .footer-main-grid {
    display: table;
    width: 100%;
    table-layout: fixed;
  }
  
  .footer-col {
    display: table-cell;
    width: 33.333%;
    vertical-align: top;
  }
  
  .footer-col h3 {
    font-size: 15px;
    font-weight: 700;
    color: #153D8F;
    margin: 0 0 12px 0;
  }
  
  .footer-col p {
    font-size: 14px;
    color: #334155;
    margin: 4px 0;
    line-height: 1.5;
  }
  
  .footer-col ul {
    list-style: none;
    padding: 0;
    margin: 0;
  }
  
  .footer-col ul li {
    margin-bottom: 8px;
  }
  
  .footer-col ul li a {
    font-size: 14px;
    color: #334155;
    text-decoration: none;
    transition: color 0.2s;
  }
  
  .footer-col ul li a:hover {
    color: #1d4ed8;
    text-decoration: underline;
  }
  
  /* Secção de Financiamento e Logos */
  .footer-funding-section {
    display: table;
    width: 100%;
  }
  
  .funding-text {
    display: table-cell;
    width: 50%;
    font-size: 13px;
    color: #64748b;
    line-height: 1.5;
    vertical-align: middle;
  }
  
  .funding-logos {
    display: table-cell;
    width: 50%;
    text-align: right;
    vertical-align: middle;
  }
  
  .funding-logos img {
    display: inline-block;
    vertical-align: middle;
    height: 42px; /* Altura ideal proporcional para os logos alinhados */
    width: auto;
    margin-left: 20px;
  }
  
  /* Barra inferior (Datas e Copyright) */
  .footer-bottom-bar {
    display: table;
    width: 100%;
    font-size: 13px;
    color: #64748b;
  }
  
  .footer-date {
    display: table-cell;
    text-align: left;
  }
  
  .footer-copy {
    display: table-cell;
    text-align: right;
  }
  
  /* Responsividade para Telemóvel (Empilha tudo na vertical se o ecrã for pequeno) */
  @media (max-width: 768px) {
    .footer-header, 
    .footer-logo-text, 
    .footer-tagline,
    .footer-main-grid, 
    .footer-col,
    .footer-funding-section, 
    .funding-text, 
    .funding-logos,
    .footer-bottom-bar, 
    .footer-date, 
    .footer-copy {
      display: block !important;
      width: 100% !important;
      text-align: left !important;
    }
    
    .footer-tagline {
      margin-top: 10px;
    }
    
    .footer-col {
      margin-bottom: 25px;
    }
    
    .funding-logos {
      margin-top: 15px;
    }
    
    .funding-logos img {
      margin-left: 0;
      margin-right: 15px;
      height: 35px;
    }
    
    .footer-copy {
      margin-top: 8px;
    }
  }