/* =========================
   BASE / LAYOUT
========================= */
:root{--bg:#fff;--fg:#0f1222;--muted:#5b6070;--brand:#5b7cff;--border:#e3e6ef;--card:#f6f7fb}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,Arial;color:var(--fg);background:var(--bg);line-height:1.6}
a{color:var(--brand);text-decoration:none}
a:hover{text-decoration:underline}
.container{max-width:1100px;margin:0 auto;padding:0 20px}

header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.9);backdrop-filter:saturate(180%) blur(12px);border-bottom:1px solid var(--border)}
.nav{display:flex;align-items:center;justify-content:space-between;padding:12px 0}
.brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:18px;color:var(--fg)}
.brand img{width:36px;height:36px;border-radius:8px}
.menu{display:flex;gap:18px;align-items:center}
.menu a{color:var(--fg);padding:6px 10px;border-radius:8px}
.menu a:hover{background:var(--card)}
.menu-toggle{display:none;border:1px solid var(--border);padding:8px 12px;border-radius:10px;background:#fff}
@media (max-width:800px){
  .menu {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    padding: 10px 0;
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    transition: max-height .3s ease, opacity .3s ease;
  }
  .menu.show {
    max-height: 500px;
    opacity: 1;
  }
  .menu-toggle{display:inline-block}
}


.hero{padding:64px 0 40px;background:linear-gradient(135deg,rgba(91,124,255,.10),rgba(14,165,233,.10));border-bottom:1px solid var(--border)}
.hero-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:28px;align-items:center}
@media (max-width:900px){.hero-grid{grid-template-columns:1fr}}
.hero h1{font-size:40px;line-height:1.2;margin:0 0 10px}
.hero p{color:var(--muted);margin:0 0 18px}

.section{padding:52px 0;border-bottom:1px solid var(--border)}
.section h2{font-size:28px;margin:0 0 6px}
.section p.lead{color:var(--muted);margin-top:0}

.grid{display:grid;gap:16px}
.grid.cards{grid-template-columns:repeat(3,1fr)}
@media (max-width:900px){.grid.cards{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.grid.cards{grid-template-columns:1fr}}

.card{background:var(--card);border:1px solid var(--border);padding:18px;border-radius:16px}
.card h3{margin:0 0 6px}
.card p{margin:0;color:var(--muted)}

.figure{background:#fff;border:1px dashed var(--border);padding:8px;border-radius:14px}
.figure img{width:100%;height:auto;border-radius:10px;display:block}
.figure figcaption{font-size:14px;color:var(--muted);margin-top:6px}

.btn{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--border);padding:10px 14px;border-radius:12px;background:#fff;color:#111;font-weight:600;cursor:pointer}
.btn:hover{transform:translateY(-1px)}
.btn.primary{background:var(--fg);color:#fff;border-color:var(--fg)}
.btn.tiny{padding:8px 12px;font-size:.9rem;border-radius:10px}

/* =========================
   TIPOGRAFIA / ELEMENTOS
========================= */
.lead{font-size:clamp(1rem,2.2vw,1.25rem);color:#2a3553;margin:.4rem 0 1rem}
.small{font-size:.9em}
.muted{color:#566285}
.destaque{color:var(--brand);font-weight:700;background:rgba(91,124,255,.1);padding:2px 6px;border-radius:6px}
.xsmall {
  font-size: .75em;   /* bem menor */
  color: var(--muted);
}

.chip{display:inline-block;padding:.35rem .8rem;border:1px solid var(--brand);border-radius:999px;margin-right:.4rem;font-weight:600;color:var(--brand);background:rgba(91,124,255,.08);transition:all .25s ease}
.chip:hover{background:var(--brand);color:#fff;transform:translateY(-2px);box-shadow:0 3px 8px rgba(0,0,0,.12)}

.chips{list-style:none;margin:0 0 6px;padding:0;display:flex;gap:.4rem;flex-wrap:wrap}
.chips .chip{margin:0} /* já tens .chip definida */


.checks{list-style:none;padding:0;margin:0 0 1rem;display:grid;gap:.35rem}
.checks li{position:relative;padding-left:1.25rem}
.checks li::before{content:"✓";position:absolute;left:0;top:0;color:#0b5cff;font-weight:700}

.brasoes-hero {
  display: block;
  max-width: 260px;   /* ajusta conforme necessário */
  height: auto;
  margin: 0 auto 1rem; /* centraliza e dá espaçamento inferior */
}

@media (max-width: 480px){
  .brasoes-hero{ width: clamp(110px, 55vw, 180px); } /* um pouco mais pequeno em telemóvel */
}




/* =========================
   CONTACTOS / FOOTER
========================= */
.contact-list{list-style:none;padding:0;margin:0 0 1rem}
.contact-list li{margin-bottom:.4rem}
.contact-form input,.contact-form textarea{width:100%;padding:10px;border:1px solid var(--border,#e8ecf3);border-radius:10px;font:inherit}

.footer{background:#f9fafc;padding:20px 0;border-top:1px solid #e8ecf3;color:var(--muted)}
.footer-grid{display:grid;gap:10px;text-align:center}
.footer-links a{color:inherit;text-decoration:none}
.footer-links a:hover{text-decoration:underline}
@media(min-width:768px){.footer-grid{grid-template-columns:1fr auto auto;text-align:left;align-items:center}}

/* =========================
   EQUIPA (cards + modal)
========================= */
/* === GRID DA EQUIPA === */
.team {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
}
@media (max-width: 900px) {
  .team { grid-template-columns: repeat(2, 1fr); }
}

/* === CARD BASE (desktop/tablet) === */
.member {
  display: flex;
  gap: 14px;
  align-items: center;
}
.member img{
  width: 64px;
  height: 64px;
  border-radius: 14px;
  border: 1px solid var(--border);
  object-fit: cover;
  object-position: 50% 20%; /* foco ligeiro para cima */
}
.member .meta{
  display: flex;
  flex-direction: column;
}

/* === MODAL (mantém como tinhas) === */
.modal{position:fixed;inset:0;display:grid;place-items:center;z-index:1000}
.modal[hidden]{display:none}
.modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.5);backdrop-filter:blur(2px)}
.modal-body{
  position:relative;background:#fff;border-radius:16px;padding:20px;
  width:min(92vw,700px);max-height:90vh;overflow-y:auto;
  display:grid;grid-template-columns:200px 1fr;gap:16px;
  box-shadow:0 10px 40px rgba(0,0,0,.25);animation:fadeIn .2s ease
}
.modal-body img{width:100%;height:200px;object-fit:cover;border-radius:12px;border:1px solid #e8ecf3}
.modal-close{position:absolute;top:10px;right:12px;font-size:26px;background:transparent;border:0;cursor:pointer;color:#444}
@media(max-width:640px){
  .modal-body{grid-template-columns:1fr}
  .modal-body img{height:220px}
}
@keyframes fadeIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}

/* === MOBILE (≤600px): 1.º card isolado; cards em coluna === */
@media (max-width: 600px) {
  /* Carlos Oliveira (primeiro card) ocupa a linha toda */
  .team .member.card:first-child {
    grid-column: 1 / -1;
  }

  /* Layout vertical de todos os cards */
  .team .member.card {
    display: flex;             /* sobrepõe o layout base */
    flex-direction: column;    /* foto em cima, texto em baixo */
    align-items: center;
    text-align: center;
    padding: 12px;
  }

  .team .member.card img {
    width: 120px;              /* imagem maior e proporcional em mobile */
    height: auto;
    border-radius: 10px;
    margin-bottom: 8px;
  }

  .team .member.card .meta {
    gap: 4px;
  }

  .team .member.card .meta strong {
    font-size: 1rem;
    line-height: 1.2;
  }

  .team .member.card .meta .small,
  .team .member.card .meta .xsmall {
    font-size: 0.8rem;
    color: var(--muted, #566285);
  }
}


/* BIO rica no modal da equipa */
.bio p { margin: 0 0 10px; color: var(--fg); }
.bio .bio-lead { font-weight: 700; margin-top: 4px; }
.bio .bio-pontos { margin: 8px 0 10px; padding-left: 18px; }
.bio .bio-pontos li { margin: 4px 0; }
.bio blockquote.bio-quote {
  margin: 10px 0; padding: 8px 12px; border-left: 3px solid var(--brand);
  background: rgba(91,124,255,.06); border-radius: 8px;
}
.bio .bio-figure {
  margin: 12px 0;
  text-align: center;
}

.bio .bio-figure img {
  max-width: 80%;     /* não ocupa 100% em ecrãs largos */
  height: auto;
  border-radius: 8px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.bio .bio-figure figcaption {
  font-size: 0.8rem;
  color: var(--muted, #666);
  margin-top: 4px;
  font-style: italic;
}



  /* FOTO FALLBACK (quando não existe imagem oficial) */

.foto-fallback {
  background: var(--card);
  border: 2px dashed var(--border);
  border-radius: 14px;
  width: 64px;
  height: 64px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--muted);
  text-transform: uppercase;
}


/* =========================
   AGENDA (cards + modal imagem)
========================= */
.agenda-img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:10px;display:block;cursor:zoom-in;transition:transform .25s ease}
.agenda-img:hover{transform:scale(1.02)}

.extra-eventos{
  display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));
  overflow:hidden;max-height:0;opacity:0;
  transition:max-height .4s ease,opacity .4s ease,margin-top .4s ease
}
.extra-eventos.expandir{max-height:3000px;opacity:1;margin-top:16px}

.agenda-btn{background:var(--brand);color:#fff;font-weight:700;border:none;border-radius:12px;padding:12px 22px;cursor:pointer;transition:transform .15s ease,filter .2s ease,background .2s ease}
.agenda-btn:hover{transform:translateY(-2px);filter:brightness(.95)}
.agenda-btn:active{transform:translateY(0)}

.img-modal{position:fixed;inset:0;display:grid;place-items:center;background:rgba(0,0,0,.6);backdrop-filter:blur(2px);z-index:1000;padding:24px}
.img-modal[hidden]{display:none}
.img-modal img{max-width:min(96vw,1200px);max-height:90vh;border-radius:12px;box-shadow:0 10px 40px rgba(0,0,0,.35)}
.img-close{position:absolute;top:12px;right:16px;font-size:28px;line-height:1;border:0;background:transparent;color:#fff;cursor:pointer}

/* =========================
   EIXOS (ver mais + modal)
========================= */
/* bloco extra ocupa toda a largura da grelha principal */
.grid.cards .eixos-extra{
  grid-column:1 / -1;display:grid;gap:16px;grid-template-columns:repeat(3,1fr);
  overflow:hidden;max-height:0;opacity:0;transition:max-height .4s ease,opacity .4s ease,margin-top .4s ease
}
.grid.cards .eixos-extra.expandir{max-height:3000px;opacity:1;margin-top:16px}
@media (max-width:900px){.grid.cards .eixos-extra{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.grid.cards .eixos-extra{grid-template-columns:1fr}}

/* Modal específico dos Eixos: vertical (título → imagem → texto) */
.modal-eixo{
  display:flex;flex-direction:column;gap:12px;
  width:min(92vw,820px);max-height:90vh;overflow-y:auto
}
.modal-eixo h3{margin:0 0 8px;font-size:clamp(20px,2.4vw,28px)}
.eixo-fig{margin:0 0 10px}

/* Imagem do modal dos eixos - contida e menor em desktop */
#eixo-modal-img{
  width:100%;height:auto;object-fit:contain;border-radius:12px;box-shadow:0 6px 22px rgba(0,0,0,.15);display:block;
  max-height:42vh
}
@media (max-width:640px){#eixo-modal-img{max-height:32vh}}
@media (min-width:641px){#eixo-modal-img{max-height:30vh}}

/* Utilitários para ajustar fit/focus no modal da equipa (opcionais) */
.mod-fit-cover{object-fit:cover!important}
.mod-fit-contain{object-fit:contain!important}
.mod-focus-top{object-position:50% 15%!important}
.mod-focus-centro{object-position:50% 50%!important}





/* Slogan final (secção contacto) */
.slogan {
  font-size: clamp(1.5rem, 4vw, 2.2rem);
  font-weight: 800;
  color: var(--brand);
  text-transform: uppercase;
  letter-spacing: 1px;
  margin-top: 28px;
  margin-bottom: 0;
  padding: 10px 20px;
  border-radius: 12px;
  background: linear-gradient(90deg, rgba(91,124,255,.1), rgba(91,124,255,.05));
  display: inline-block;
  position: relative;
  animation: fadeSlideUp .8s ease both;
}


.slogan::after {
  content: "\2713"; /* ✓ */
  color: var(--brand);
  font-size: 1.2em;
  margin-left: 8px;
}

/* Animação suave ao aparecer */
@keyframes fadeSlideUp {
  from { opacity:0; transform:translateY(20px); }
  to   { opacity:1; transform:translateY(0); }
}



.footer {
  background:#f9fafc;
  border-top:1px solid var(--border);
  padding:24px 0;
  font-size:.9rem;
  color:var(--muted);
}

.footer-grid {
  display:grid;
  gap:20px;
  text-align:center;
}

.footer-col a {
  color:inherit;
  text-decoration:none;
  margin:0 6px;
}
.footer-col a:hover {
  text-decoration:underline;
}

/* Desktop: colunas lado a lado */
@media(min-width:768px){
  .footer-grid {
    grid-template-columns: 1fr auto auto;
    align-items:center;
    text-align:left;
  }
  .footer-links a { margin:0 10px; }
}


/* Atualizações */
.updates-list {
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  margin-top: 20px;
}

.update h3 {
  margin: 6px 0;
  font-size: 1.1rem;
  color: var(--fg);
}

.update time {
  font-size: 0.9rem;
  color: var(--muted);
  display: block;
  margin-bottom: 4px;
}


.update-img {
  width: 100%;
  height: auto;
  border-radius: 8px;
  margin-bottom: 10px;
}


.extra-atualizacoes {
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  overflow: hidden;
  max-height: 0;
  opacity: 0;
  transition: max-height .4s ease, opacity .4s ease, margin-top .4s ease;
}

.extra-atualizacoes.expandir {
  max-height: 3000px;
  opacity: 1;
  margin-top: 16px;
}


/* ATUALIZAÇÕES: bloco extra ocupa a largura toda e expande com transição */
.updates-list.grid .extra-atualizacoes{
  grid-column: 1 / -1;
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  overflow: hidden;
  max-height: 0;
  opacity: 0;
  transition: max-height .4s ease, opacity .4s ease, margin-top .4s ease;
}
.updates-list.grid .extra-atualizacoes.expandir{
  max-height: 3000px;
  opacity: 1;
  margin-top: 16px;
}


/* Flyers */
.flyers { text-align:center; }
.flyer-grid {
  display:grid; gap:1.5rem;
  grid-template-columns:repeat(auto-fit,minmax(250px,1fr));
  margin-top:1rem;
}
.flyer-grid img{
  width:100%; height:auto; border-radius:8px;
  box-shadow:0 4px 10px rgba(0,0,0,.12);
  cursor:pointer; transition:transform .25s ease;
}
.flyer-grid img:hover{ transform:scale(1.03); }

/* Lightbox */
.flyer-modal{
  position:fixed; inset:0; display:flex; align-items:center; justify-content:center;
  background:rgba(0,0,0,.9); z-index:9999;
}
.flyer-modal[hidden]{ display:none !important; }   /* respeita o hidden */
.flyer-modal-content{ max-width:90vw; max-height:90vh; border-radius:10px; }
.flyer-close{
  position:absolute; top:16px; right:20px;
  font-size:34px; background:transparent; border:0; color:#fff; cursor:pointer;
}
