/* =======================================================
   Olimpíadas da Economia — CSS global (v2.4)
   - Mobile-first e tipografia fluida
   - Full-height layout (sem "branco" após o footer)
   - Grelhas com CSS Grid
   - Heroes/sections equilibrados em ecrãs grandes
   - Normalização de links em cartões
   ======================================================= */

/* Base & Resets */
*,
*::before,
*::after{ box-sizing:border-box; }

html,body{ height:100%; }
html,body{ margin:0; padding:0; font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif; }
img,svg,video{ max-width:100%; height:auto; display:block; }
.navbar-color{ background-color:rgba(68,68,68,.9)!important; }

/* Full-height page structure */
body{ display:flex; flex-direction:column; min-height:100vh; background:#fff; }
main{ flex:1 0 auto; }
.site-footer{ flex-shrink:0; }

/* Tokens */
:root{
  --oe-green:#22a559;
  --oe-green-ink:#1b8a4b;
  --oe-card-bg:#fff;
  --oe-card-ink:#111827;
  --oe-card-muted:#5f6773;
  --oe-shadow:0 8px 20px rgba(0,0,0,.08), 0 2px 6px rgba(0,0,0,.05);
  --oe-shadow-hover:0 14px 28px rgba(0,0,0,.12), 0 6px 12px rgba(0,0,0,.08);
  --oe-radius:22px;
  --cards-gap:20px;
  --safe-top: env(safe-area-inset-top, 0px);
  --safe-bottom: env(safe-area-inset-bottom, 0px);
}

/* HERO / COVERS */
.cover-home{
  background:url('/projetos/oe/css/img/cover_background/fase_nacional_1.jpg') center/cover no-repeat;
  min-height:min(100vh, 900px);
  display:flex; flex-direction:column; justify-content:space-between;
  padding:calc(72px + var(--safe-top)) 0 calc(28px + var(--safe-bottom));
}

.page-hero{
  background:
    linear-gradient(to bottom,rgba(0,0,0,.45),rgba(0,0,0,.2)),
    url('/css/img/cover_background/AUDM_Home.png') center/cover no-repeat;
  color:#fff;
  text-align:center;
  text-shadow:0 2px 10px rgba(0,0,0,.45);
  min-height: clamp(220px, 35vh, 360px);
  padding: clamp(72px, 8vh, 104px) 0 clamp(28px, 5vh, 48px);
}

/* Regressar à página principal */
.icon-circle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2em;
  height: 2em;
  border-radius: 50%;
  background: transparent;
  border: 2px solid #fff;
  color: #fff;
  font-size: 1em;
}

.page-title{ font-size:clamp(22px, 4.3vw, 40px); font-weight:800; margin:0 0 6px; }
.lead{ font-size:clamp(14px, 2.8vw, 18px); }

/* SECÇÕES */
.landing-section{ padding: clamp(24px, 4vw, 56px) 0; background:#f8fafc; }
.landing-section:nth-of-type(2n){ background:#ffffff; }
.section-title{ font-size:clamp(20px, 3.8vw, 28px); font-weight:800; color:#111827; margin-bottom:1.1rem; }

/* Evita páginas “curtas” em ecrãs XL */
main > .landing-section:first-of-type{ min-height: min(52vh, 700px); }

/* CARDS GERAIS */
.doc-card{
  background:#fff; border:1px solid rgba(0,0,0,.06); border-radius:16px;
  box-shadow:0 8px 20px rgba(0,0,0,.06); padding:18px 20px;
}
.doc-card-title{ font-size:clamp(16px, 3.2vw, 18px); font-weight:700; margin:0 0 6px; }
.doc-card-text{ margin:0 0 8px; color:#4b5563; }

/* Links em cartões (sem azul/sublinhado) */
a.card-link,
.score-card a,
.partner-card a,
.result-card a,
.doc-card a{
  color:inherit !important;
  text-decoration:none !important;
  display:block;
}
a.card-link:hover,
.score-card a:hover,
.partner-card a:hover,
.result-card a:hover,
.doc-card a:hover{
  color:inherit !important;
  text-decoration:none !important;
}

/* GRELHA DE SCORES */
.scores{
  display:grid; grid-template-columns:1fr;
  gap:var(--cards-gap); align-items:stretch;
}
@media (min-width:576px){ .scores{ grid-template-columns:repeat(2, minmax(0,1fr)); } }
@media (min-width:992px){ .scores{ grid-template-columns:repeat(3, minmax(0,1fr)); } }
@media (min-width:1400px){ .scores{ grid-template-columns:repeat(4, minmax(0,1fr)); } }

.score-card{
  background:var(--oe-card-bg); color:var(--oe-card-ink);
  border-radius:var(--oe-radius); box-shadow:var(--oe-shadow);
  border:1px solid rgba(0,0,0,.05);
  padding:clamp(16px, 3.3vw, 28px);
  min-height:clamp(160px, 28vw, 220px);
  display:flex; flex-direction:column; align-items:center; text-align:center;
  transition:transform .15s ease, box-shadow .15s ease;
  text-decoration:none;
}
.score-card:hover{ transform:translateY(-2px); box-shadow:var(--oe-shadow-hover); }

.score-icon{
  width:clamp(64px, 9vw, 86px); height:clamp(64px, 9vw, 86px);
  border-radius:50%; display:grid; place-items:center; margin-bottom:12px;
  background:rgba(34,165,89,.12); border:2px solid rgba(34,165,89,.28);
}
.score-icon img{ max-width:60%; max-height:60%; object-fit:contain; display:block; }
.score-icon i{ font-size:clamp(22px, 4vw, 30px); color:var(--oe-green-ink); }
.score-title{ font-size:clamp(16px, 3.2vw, 20px); font-weight:700; margin:4px 0 6px; }
.score-text{ font-size:clamp(13px, 2.8vw, 15px); line-height:1.55; color:var(--oe-card-muted); margin:0; }

/* MÉTRICAS */
.metrics-section .metric-card{
  background:#fff; border-radius:16px; padding:clamp(16px, 3.2vw, 22px); text-align:center;
  box-shadow:0 8px 20px rgba(0,0,0,.06), 0 2px 6px rgba(0,0,0,.04);
  border:1px solid rgba(0,0,0,.05);
}
.metric-number{ font-size:clamp(26px, 6vw, 40px); font-weight:900; color:var(--oe-green-ink); line-height:1; }
.metric-label{ margin-top:6px; font-size:clamp(12px, 2.8vw, 14px); color:#4b5563; }
.badge-red{ color:#fff; background-color:#f44336!important; }

/* PARCEIROS (GRID) */
.partners-grid{
  display:grid; gap:clamp(14px, 2.8vw, 24px); margin-top:16px;
  grid-template-columns:1fr;
}
@media (min-width:576px){ .partners-grid{ grid-template-columns:repeat(2,1fr); } }
@media (min-width:992px){ .partners-grid{ grid-template-columns:repeat(3,1fr); } }
@media (min-width:1400px){ .partners-grid{ grid-template-columns:repeat(4,1fr); } }

.partner-card{
  display:grid; place-items:center; background:#fff;
  border-radius:14px; border:1px solid rgba(0,0,0,.06);
  box-shadow:0 6px 16px rgba(0,0,0,.06);
  padding:clamp(24px, 4vw, 48px); min-height:clamp(140px, 26vw, 220px);
  text-decoration:none; color:inherit;
  transition:transform .12s ease, box-shadow .12s ease;
}
.partner-card:hover{ transform:translateY(-4px); box-shadow:0 12px 28px rgba(0,0,0,.12); }
.partner-card img{ width:100%; height:auto; max-height:clamp(80px, 14vw, 240px); object-fit:contain; }

/* ABOUT — TIMELINE */
.about-timeline-section{
  position:relative; overflow:hidden; padding:72px 0 48px; background:transparent!important;
}
.about-timeline-section::before{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:url('/css/img/cover_background/AUDM_Home.png') center/cover no-repeat; z-index:0;
}
.about-timeline-section::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(to bottom, rgba(0,0,0,.28), rgba(0,0,0,.42)); z-index:1;
}
.about-timeline-section > .container, .about-timeline{ position:relative; z-index:2; }
.about-timeline-section .section-title{ color:#fff; text-shadow:0 2px 10px rgba(0,0,0,.45); }

.about-timeline{
  position:relative; margin:0 auto; max-width:1100px; padding:8px 0;
}
.about-timeline::before{
  content:""; position:absolute; top:0; bottom:0; left:50%;
  width:3px; transform:translateX(-50%);
  background:linear-gradient(to bottom, rgba(34,165,89,.35), rgba(34,165,89,.10));
  border-radius:2px;
}
.about-timeline-item{
  position:relative; width:100%;
  display:grid; grid-template-columns:1fr 1fr; column-gap:clamp(28px, 7vw, 84px);
  margin:clamp(14px, 3.5vw, 24px) 0;
}
.about-timeline-dot{
  position:absolute; left:50%; top:18px; transform:translate(-50%,-50%);
  width:clamp(10px, 2.6vw, 16px); height:clamp(10px, 2.6vw, 16px);
  border-radius:50%; background:#fff; border:3px solid var(--oe-green);
  box-shadow:0 0 0 5px rgba(34,165,89,.18);
}
.about-timeline-card{
  background:#fff; border:1px solid rgba(0,0,0,.06); border-radius:16px;
  box-shadow:0 10px 22px rgba(0,0,0,.10), 0 2px 6px rgba(0,0,0,.06);
  padding:clamp(14px, 3.6vw, 20px);
  max-width:520px; position:relative; border-left:6px solid var(--oe-green);
}
.about-timeline-card::before{
  content:""; position:absolute; top:24px; width:18px; height:2px;
  background:linear-gradient(90deg, rgba(34,165,89,.45), rgba(34,165,89,0));
}
.about-timeline-item:nth-child(odd) .about-timeline-card{ grid-column:2; justify-self:start; margin-left:22px; }
.about-timeline-item:nth-child(odd) .about-timeline-card::before{ left:-18px; }
.about-timeline-item:nth-child(even) .about-timeline-card{ grid-column:1; justify-self:end; margin-right:22px; }
.about-timeline-item:nth-child(even) .about-timeline-card::before{ right:-18px; }

.about-year{
  display:inline-block; margin:0 0 6px 0; font-size:clamp(13px, 2.8vw, 18px); font-weight:800;
  color:var(--oe-green-ink); text-transform:uppercase; letter-spacing:.3px;
  background:rgba(34,165,89,.10); border:1px solid rgba(34,165,89,.25);
  padding:4px 10px; border-radius:999px;
}
.about-title{ margin:0 0 6px; font-size:clamp(14px, 3.2vw, 19px); font-weight:700; color:#111827; line-height:1.25; }
.about-desc{ margin:0; color:#4b5563; line-height:1.55; font-size:clamp(13px, 2.8vw, 14px); }

/* Mobile timeline */
@media (max-width:767.98px){
  #quem-somos{ --tl-line-x:16px; --tl-line-w:3px; }
  #quem-somos .about-timeline{ max-width:100%!important; padding-inline:16px!important; box-sizing:border-box; }
  #quem-somos .about-timeline::before{ left:var(--tl-line-x)!important; width:var(--tl-line-w)!important; transform:none!important; }
  #quem-somos .about-timeline-item{
    grid-template-columns:32px minmax(0,1fr)!important;
    column-gap:12px!important; margin:18px 0!important;
  }
  #quem-somos .about-timeline-dot{
    left:calc(var(--tl-line-x) + var(--tl-line-w)/2)!important;
    width:12px!important; height:12px!important;
    box-shadow:0 0 0 3px rgba(34,165,89,.18)!important;
  }
  #quem-somos .about-timeline-card{
    grid-column:2!important; justify-self:stretch!important; max-width:none!important;
    width:auto!important; margin:0!important; padding:16px!important; border-radius:14px!important;
    border-left-width:5px!important;
  }
  #quem-somos .about-timeline-card::before{ left:-14px; right:auto; width:14px; top:20px; }
}

/* MVV GRID (igual ao associacao/quem_somos) */
.mvv-grid{ display:grid; gap:20px; grid-template-columns:1fr; }
@media (min-width:768px){ .mvv-grid{ grid-template-columns:repeat(3,1fr); } }
.mvv-card{
  background:#fff; border:1px solid rgba(0,0,0,.06); border-radius:16px;
  box-shadow:0 8px 20px rgba(0,0,0,.06); padding:clamp(16px, 3.2vw, 22px);
  transition:transform .12s ease, box-shadow .12s ease; text-align:center;
}
.mvv-card:hover{ transform:translateY(-2px); box-shadow:0 14px 28px rgba(0,0,0,.12); }
.mvv-icon{ font-size:clamp(22px, 5vw, 32px); color:var(--oe-green-ink); margin-bottom:10px; }
.mvv-title{ font-size:clamp(16px, 3.2vw, 18px); font-weight:800; margin:0 0 6px; }
.mvv-text{ margin:0; color:#4b5563; }

/* LISTAS / CALLOUTS */
.nice-ol{ counter-reset:item; padding-left:0; }
.nice-ol > li{ list-style:none; margin:8px 0; padding-left:36px; position:relative; }
.nice-ol > li::before{
  counter-increment:item; content:counter(item); position:absolute; left:0; top:0;
  width:26px; height:26px; border-radius:50%; background:rgba(34,165,89,.1);
  color:var(--oe-green-ink); display:grid; place-items:center; font-weight:800;
}
.callout{
  background:#fff; border-left:4px solid var(--oe-green); border-radius:12px;
  padding:14px 16px; box-shadow:0 6px 16px rgba(0,0,0,.06);
}

/* CALENDÁRIO */
.table-responsive{ -webkit-overflow-scrolling:touch; }
.calendar-table thead th{ background:#111827; color:#fff; border-color:#111827; }
.calendar-table tbody td, .calendar-table tbody th{ vertical-align:middle; }
.calendar-table td, .calendar-table th{ white-space:normal; }
@media (max-width:420px){
  .calendar-table td, .calendar-table th{ font-size:13px; padding:8px 10px; }
}

/* RESULTADOS */
.result-grid{ display:grid; gap:var(--cards-gap); grid-template-columns:1fr; }
@media (min-width:576px){ .result-grid{ grid-template-columns:repeat(2, minmax(0,1fr)); } }
@media (min-width:992px){ .result-grid{ grid-template-columns:repeat(3, minmax(0,1fr)); } }
@media (min-width:1400px){ .result-grid{ grid-template-columns:repeat(4, minmax(0,1fr)); } }

.result-card{
  display:block; text-decoration:none; color:inherit;
  background:#fff; border:1px solid rgba(0,0,0,.06); border-radius:16px;
  box-shadow:0 8px 20px rgba(0,0,0,.06); padding:clamp(16px, 3.2vw, 22px);
  text-align:center; transition:transform .12s ease, box-shadow .12s ease;
}
.result-card:hover{ transform:translateY(-2px); box-shadow:0 14px 28px rgba(0,0,0,.12); }
.result-card.published{ border-left:6px solid var(--oe-green); }
.result-card.pending{ opacity:.9; }
.state-text{ color:#4b5563; margin:0; }

/* CTA */
.cta-band{ background:linear-gradient(135deg, var(--oe-green-ink), #0c5a2f); color:#fff; padding:48px 0; }
.cta-content{ text-align:center; }
.cta-content h2{ font-weight:800; font-size:clamp(18px, 3.6vw, 28px); margin-bottom:8px; }
.cta-content p{ margin-bottom:18px; opacity:.95; font-size:clamp(13px, 2.8vw, 16px); }
.cta-actions .btn{ border-radius:999px; padding:.6rem 1.25rem; }

/* FOOTER */
.site-footer{
  background-color:rgba(68,68,68,.9); color:#fff; width:100%; font-size:14px;
}
.site-footer .footer-link{ color:#ddd; text-decoration:none; }
.site-footer .footer-link:hover{ color:#fff; text-decoration:underline; }
.site-footer .social-icons a{ color:#ddd; font-size:18px; transition: color .3s, transform .2s; }
.site-footer .social-icons a:hover{ color:#fff; transform:scale(1.2); }

/* Acessibilidade */
@media (prefers-reduced-motion:reduce){
  *{ animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; scroll-behavior:auto !important; }
}

/* ====== Contactos — Hero próprio (não afeta o resto) ====== */
.contacts-hero{
  /* um único background (gradiente + imagem) evita a “barra preta” */
  background:
    linear-gradient(to bottom,
      rgba(0,0,0,.28) 0%,
      rgba(0,0,0,.14) 60%,
      rgba(0,0,0,0) 100%
    ),
    url('/css/img/cover_background/AUDM_Home.png') center/cover no-repeat !important;
  padding: 104px 0 56px;           /* alinhado com as outras covers */
  min-height: 280px;               /* podes ajustar se quiseres mais alto/baixo */
  margin-bottom: -1px;             /* tapa micro “seam” com a secção seguinte */
}

.contacts-hero .section-title{
  color:#fff;
  text-shadow:0 2px 10px rgba(0,0,0,.45);
}
.contacts-hero p{ color:rgba(255,255,255,.85); }

/* contacto: garantir que iframes não criam linhas fantasma */
.contacts-hero iframe,
section.landing-section iframe{ display:block; }

/* Corrigir CSS das bullets para não afetar parágrafos seguintes */

/* Garantir que parágrafos após listas não são afetados */
.bullets + p {
  margin-top: 1rem !important;
}

/* Links inline para não quebrar linha */
.doc-card a:not(.btn) {
  color: inherit !important;
  text-decoration: underline !important;
  display: inline !important;
}